仕掛けの成立までの処理の流れ <株入門>


前回の続き、
処理の流れは、以下。
1.check_entry(index)
 indexの日に、フィルターをくぐり抜けて、シグナル発生してれば仕掛け。
仕掛けがあれば、tradeを生成して仕掛けを実行。

2.set_stop(position, index)
 indexの日のストップをpositionに設定。

3.check_exit(trade, index)
 indexの日に、手仕舞うシグナルが発生してれば手仕舞う。
 
詳細を順に見てゆこう。仕掛けのところから、
1.check_entry(index)
 indexの日に、フィルターをくぐり抜けて、シグナル発生してれば仕掛け。
仕掛けがあれば、tradeを生成して仕掛けを実行。
 ここで、ストップ設定をする。

1-1.内部メソッドentry_through_filter(index)を呼び出し、
 フィルターをかけ仕掛ける。
 仕掛けが成立してなければ、それで終わり。

1-2.仕掛ければ、trade_with_first_stop(trade, index)を呼び、
 初期のストップ設定。
 (初期のストップ設定だけset_stopと別にしてる理由はまだ不明。)

と、さらに細分化します。
entry_through_filter(index)の内部は、
1-1-1.filter_signal(index)を呼び、
 フィルターの判定を返す。仕掛け不可なら終わり。
 買いないし売りが可能なら、tradeを生成。仕掛けるつもり。
 両方可能なときは、買い優先。(この理由は不明、両建てはしない主義らしい)

1-1-2.check_entry_rule(long_short, index)で仕掛ける。
 check_entry_ruleを呼びだす周辺は冗長な書き方であまり意味がない。
 ので、そこは気にしません。
 (売りと買い別にメソッド用意する意味ほぼなく、素直に引数で渡せばいいだけです。
  余計なことするので、トリッキーなことしてます。ムダです。))
 とにかく、全てのEntryを順次チェックして、仕掛け成立した時点で終了。
 全部調べて、仕掛けないこともある。

 
で、trade_with_first_stop(trade, index)の内部に移ると、
1-2-1.通常はtightest_stop(trade, index)を呼び、ストップ値算出。
 (tightest_stopの説明はあとで)
 ただし、Stopが元々セットされてない場合はパスしてtradeを返すことで仕掛け成立。
 ストップ値算出の結果が、出てなければパス。tradeを返さず仕掛け不成立とする。
 それ以外は算出したストップを設定し、tradeを返し仕掛け成立。
 この時trade.first_stopにも設定。初期ストップ値のことらしい。
 (これを設定するために、最初だけ別のメソッドで分けたらしいと知れる。
  ただし、first_stopの目的はR倍数計算する為らしい。
  初日に設定されず、翌日始めて設定されても、ここには値が残らないのか、
  トレーリングストップするなら、履歴は全部保存したらとも思う。)
 
 
以上が、フィルターを抜けて、仕掛けて、最初のストップを設定をするまでの流れである。
ムダに小分けにし過ぎで、理解が煩雑になってる気がする。
 

覚えておくことは、以下の二点。
 買いと売り両方出来るときは、買い優先。
 Stopがセットされていうのに、仕掛けでストップ値設定出来ないときは仕掛けない。
それだけで、いいかとも思います。
 

Filterの算出、Entryの順次処理、Stopの算出、Exitの順次処理。
この4つと、全Ruleを回すeach_rulesは用意して、
あとは、enter,setStop,exitって外部に向けてのメソッド3つ、いやそれも1つに纏めるかな。
position配列とindexを引数にすればいいのだから。
分岐先固有の内部メソッドを作るって、あまり発想が良くないな。

機能を提供するのがメソッドなのだから、
条件別にどう機能を使うかは、使うところで書いておきたい。
trade_with_first_stopみたいな構成にするのは、見通し悪くしそう。

残りの、ストップと手仕舞いは明日。
 
  
 
質問コーナー、お問い合わせは、sanpome.net@gmail.com まで。

  
 

社会・経済ニュース ブログランキングへ

にほんブログ村 海外生活ブログへ
にほんブログ村

カテゴリー: 株式投資, 株式投資入門はじめました2016.05 タグ: , , パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*