1本の足で1回だけ仕掛ける機能 改善版

アイキャッチ

足(バー)作成直後かどうかを判定するもっとシンプルな方法

1本の足で1回だけ仕掛ける機能の記事にて、1本の足で1回だけ仕掛ける機能をご紹介しました。

私はずっとこれを使ってきたのですが、もっとシンプルな方法を他人様のコードから見つけましたので、ご紹介します。

最大の利点は関数化されていることです。以前はコードのあちこちに仕込みが必要だったのですが、これは関数呼ぶだけです。

関数の内部も実にシンプル!なんて素晴らしいのでしょう。

1つ欠点をあげるとするならば、静的変数を使っているため、呼び出し元のコードでこの関数を何度も呼び出しても意図した動作にはならない点です。

例えば、OnTick()の冒頭と終盤に、足が生成された瞬間かどうかを判定するアルゴリズムを入れたいとします。その場合、IsNewBar()をそれぞれの場所に書いてしまいそうになりますが、これをやってしまうと終盤の方のIsNewBar()が正しく動作してくれません(足が生成された瞬間と判断してくれません)。

コード内の複数箇所で足が生成された瞬間かどうかを判定する場合は、以下のように変数に結果を格納し、その変数を使い回しましょう。

スポンサードリンク

ブログランキングに参加中!

ポチっとクリック頂けると励みになります♪
(クリックしてもランキング一覧が表示されるだけですが、それでOKです)

にほんブログ村 為替ブログ FX システムトレード派へ

コメントを残す



5 × 4 =