MOEX API(Moscow Exchange)に基づいた最も単純な投資戦略の実装

はじめに



暗号通貨のこの暑い時期に、高い瞬間投機的収入だけでなく、あなたのお金が働いてあなたの人生を稼ぐことができることを覚えておく価値があります。 投資対象を選択する際のファンダメンタル分析の支持者である私は、数年間、証券にお金を預けることを好みます。 私は自分の心理的安定に合った投資ポートフォリオを形成するいくつかの段階を経て、ポートフォリオを数回レビューし、徐々に私が持っているものに到達しました。







戦略の本質:単純な移動平均を追跡するという形で最も単純な技術分析を使用して、トレンドの変化のポイントを見つけ、資産を売買します。 どのような場合でも、100%作動するので、すぐに取引所で急いで取引を開始するように動揺しないでください。 (!)会社で行われている基本的なプロセスの理解と連動してのみ機能します。



戦略を適用するための2つのオプション



最初のオプション



適切な投資ポートフォリオを形成するという理論の最も興味深い部分には触れません。リバランスなどについてのみ説明します。 リバランス -高価な資産を売却し、安価な資産を購入することにより、ポートフォリオ内の資産の割合を定期的に均等化します。 このアクションの有効性については議論がありますが、これは良い習慣であると私は考えています。 問題は、どのように、いつ、どのように使うかです。







特定の月にポートフォリオ全体のバランスを取り直す必要があると考える人もいれば、都合の良い瞬間を捉える必要があると考える人もいます(残念ながら、これは常に可能とは限りません)。 したがって、リバランスを実装する際に、これら2つのアプローチを組み合わせてみます。



2番目のオプション



また、すべての投資家は抑制された投機家を持ち、この投機的な静脈は私たちのそれぞれで定期的に目覚めます。 もちろん、修正中ではなく、脳が頑固に「売れ売り」を説得するときは、穏やかな時間に目覚めるのが最善です。 内部投機家を養うために、多くのトレーダーが使用する最も単純な戦略を使用でき、同時に非常にシンプルで信頼性があります。 「トレンドをたどる」戦略( 説明 )。 たとえば、外国為替市場または他の市場リソースでこれらの条件を満たしている場合がありますが、投機と投資の組み合わせの観点からは、この戦略を別の観点から見させる大きな違いがあります。



私が従ういくつかの企業の例を挙げ、それらを基本的な意味で非常に良いと考えます(良いビジネス、報告、配当):



例1:エネル







例2:アエロフロート







赤い円は、異なる期間の2つの移動平均の交点を示します。これは、トレンドが十分に強く、基本的な状況に応じてアクション(購入/販売)を決定できることを示す信号です。 たとえば、Aeroflotは四半期ごとに販売される可能性がありますが、これはまさに最新の四半期レポートのためです。 多くの投機家は、販売を開始するのに十分なこの要素を持っています。 長期投資家の場合、これは平均購入価格を平均化する(低価格で紙を購入する)か、リバランスを行うことができるというシグナルです。



技術部



私はターミナルのズボンに座るのが好きではなく、ブローカーはトレンドトラッキング機能を提供していないため、モスクワExchange APIの利用可能な説明、 クエリガイドを検討し、興味のあるツールのトレンド変更について通知するスクリプトを書くことにしました(「ポートフォリオが構成されているすべての証券)



最初に、小さなクラスを作成しました。



クラスコード
class emitent { public $name; public $cost; //  public $trand; //  public $closeCost; //  public $average50; //   50  public $average15; //   15  public function getPrice($emitent,$format){ $uri = 'https://iss.moex.com/iss/engines/stock/markets/shares/securities/'.$emitent.$format; $result = file_get_contents($uri); $resultObject = json_decode($result,true); /* @var $resultObject type */ $this->cost = $resultObject['marketdata']['data'][2][12]; return $this->cost; } public function getAverage50($emitent,$format){ $historyPrice = []; $historydata = []; $date1 = date("ymd",strtotime("-1 days")); $date2 = date("ymd",strtotime("-100 days")); $uri = 'https://iss.moex.com/iss/history/engines/stock/markets/shares/boards/TQBR/securities/'.$emitent.$format.'?from='.$date2.'&till='.$date1; $result = file_get_contents($uri); $resultObject = json_decode($result,true); $historydata = $resultObject['history']['data']; $historydata_reverse = array_reverse($historydata); for ($i=0;$i<50;$i++){ array_push($historyPrice,$historydata_reverse[$i][11]); } $average50 = array_sum($historyPrice)/count($historyPrice); return $average50; } public function getAverage15($emitent,$format){ $historyPrice = []; $historydata = []; $date1 = date("ymd",strtotime("-1 days")); $date2 = date("ymd",strtotime("-50 days")); $uri = 'https://iss.moex.com/iss/history/engines/stock/markets/shares/boards/TQBR/securities/'.$emitent.$format.'?from='.$date2.'&till='.$date1; $result = file_get_contents($uri); $resultObject = json_decode($result,true); $historydata = $resultObject['history']['data']; $historydata_reverse = array_reverse($historydata); for ($i=0;$i<15;$i++){ array_push($historyPrice,$historydata_reverse[$i][11]); } $average15 = array_sum($historyPrice)/count($historyPrice); return $average15; } }
      
      







ディレクトリから取った微妙な点から:



 https://iss.moex.com/iss/history/engines/stock/markets/shares/boards/TQBR/securities/
      
      





履歴 -適切な期間からの価格のリクエスト

株式 -取引システム(エンジン)「株式市場と預金市場」

株式 -特定の市場(市場)「株式市場」

TQBR-特定の取引モード(ボード)「T +シェアとDR」



サーバー応答またはjsonまたはxml。 データを含む配列を取得します。 配列内のデータは、送信するリクエストによって異なる場合があります。 配列のフィールドの説明は、「COLUMNS」ブロックの同じデータに保存されます。 値は「DATA」ブロックにあります。



たとえば、株式市場に関連するすべてのフィールドの詳細な説明は、 このページにあります(ちなみに、この説明は記事を準備するときにしか見つかりませんでした)。

発言。 100日以上の間隔をとる場合、配列ポインターを移動して、そこで複数の要求を行う必要があります。 この状況は、Moex APIマニュアルの最後のページに記載されています


その後、スクリプト自体が作成されました( スティックを使用したコードの品質のために、負けないでください )。



スクリプトコード
 require_once ($_SERVER["DOCUMENT_ROOT"].'/classes.php'); $file = 'portfolio.json'; //     $portfolio = json_decode(file_get_contents($file), true); foreach ($portfolio as &$emitent) { $sending_mail = false; $emitentMoex = new emitent(); $emitentMoex->name = $emitent[0]; $emitentMoex->trand = $emitent[1]; $format = '.json'; $price = $emitentMoex ->getPrice($emitentMoex->name, $format); $history15 = $emitentMoex ->getAverage15($emitentMoex->name, $format); $history50 = $emitentMoex ->getAverage50($emitentMoex->name, $format); if ($history15<$history50){ $trend_course = " "; $trand_course_bool = false; } else { $trend_course = " "; $trand_course_bool = true; } if ($trand_course_bool != $emitentMoex->trand){ $sending_mail = true; $trend_course .='.  '; (boolean)$emitent[1] = $trand_course_bool; } if ($sending_mail){ $date = date("ymd"); $headers = "Content-type: text/html; charset=UTF-8 \r\n"; $headers .= "From: Change trands alert <yourmail@box.com>\r\n"; $message = ": ".$emitentMoex->name."<br>"." : ".$price. "<br>"."  15: ".$history15."<br>"."  50: ".$history50."<br>".$trend_course; mail("yourmail@box.com", 'test'.$date , $message,$headers); } } file_put_contents($file, json_encode($portfolio,true)); ?>
      
      







同じフォルダーにあるjson配列から、ティッカーのリストとトレンドの方向のラベルを受け取ります。 指定された期間の価格を要求し、式を使用して単純な移動平均の値を計算します。





 frac sum limitsi=1nPin







ここで、Pは終値、nは価格値が取得される期間の数です。



配列の例
 [ ["GAZP",true], ["MTSS",true], ["FEES",false], ["ENRU",true], ["IRAO",0], . . . ["AFLT",0], ["LKOH",true], ["GMKN",true] ]
      
      







さらに、値が大きい(50日)平均(15日)より低いか低いかに応じて、現在の方向を決定します。 現在の方向を保存された方向と比較し、値が変更されたときにメールボックスに通知を送信します。

次に、ティッカーのニュースを開き、状況を分析します。



まとめ



この交換では、情報へのアクセスが20分遅れで無料で提供されます。 データは日中の推測には適していませんが、中期的に意思決定を支援するツールを作成することは非常に適しています。 外出先で、たとえば、目標価格の達成の指標。 多くのブローカーとコンサルタントがパブリックドメインのターゲット価格に関する推奨事項を投稿し、価格を追跡するスクリプトを簡単に作成できます。 たとえば、yahoo.financeの場合、このツールは最初に壊れた後、完全に削除されました。 また、公的な外国のサービスは、発行者の価格に関する情報を不正に受け取ります。



この情報があなたのポートフォリオをより便利にコントロールするのに役立つことを願っています。



長期投資家向けの便利なリンク:



はい

投資家ノート

富への道



PSトレンドの監視とは、株のテクニカル分析のことです。 多くのファンダメンタル投資家は、占いや予測などを考慮して、TAに対して否定的な態度を持っています。 しかし、私が主張するのは、TAは投資家の意思決定の補助者であり、仮説を確認するだけの可能性が高いということです。 しかし、いかなる場合でも、強制的な承認のためのツールではありません。 彼らは非専門の金融コンサルタントの間で繰り返すことを好むので、上に書かれたすべては行動へのガイドではなく、取引の推奨でもありません。



All Articles