GitHub で見る

クールダウン・ロック付きトレンド切り替え

短い時間軸のローソク足系列で 2 本の指数移動平均がクロスすると、実際にトレンドが変わる回数よりはるかに多くのシグナルが出ます。ひとつの価格帯の周りでクロスが連続すると、互いに打ち消し合うエントリーで口座が埋まってしまいます。このダイアグラムはクロスを 1 回だけ使い、そのあとその方向を一定本数のローソク足のあいだ閉じてロックします。ロックを担うのがフラグ(Flag)ブロック、それを再び開くカウントダウンが遅延値(Delay value)ブロック、そしてカウントダウンを開始させるのが、両方向の約定を「エントリーが発生した」という 1 本のラインにまとめる組み合わせ(Combination)です。

戦略の概要

  • 1 つの系列の確定したローソク足が、短期と長期の指数移動平均に入力されます。ダイアグラム内のどの部分も、形成中のローソク足には反応しません。
  • 2 つのクロス(Crossing)ブロックが、同じ移動平均のペアを入力を入れ替えて読み取ります。そのため、一方は短期平均が長期平均を上抜けた足でちょうど真になり、もう一方は下抜けた足でちょうど真になります。
  • ポジション(Position)ブロックをゼロと比較することで、口座がノーポジション、買い持ち、売り持ちのいずれであるかが分かります。この判定こそが、クロスを単なる観測ではなく許可されたシグナルに変えます。
  • 方向ごとに専用のフラグがあります。エントリーシグナルがそのトリガーであり、フラグはセットされた最初の 1 回だけトリガーを通します。したがって、その方向の 2 回目以降のシグナルは黙って捨てられます。
  • エントリーはポジション変更(Position modify)ブロックで、ノーポジションの状態からのみ建てます。これにより、許可されたシグナルと実際に出される注文が食い違わないようになります。
  • 2 つのエントリーブロックはどちらも約定を 1 つの組み合わせに送ります。この 1 本のラインが遅延値ブロックを起動し、約定をポジション保護(Position protection)に渡し、約定をチャート上に描画します。
  • 遅延値は約定後の確定したローソク足を数え、カウントが尽きるとパルスを 1 回出力します。このパルスは両方のフラグのリセット入力に接続されており、両方向が再び取引可能になります。
  • ポジションを保有している間に逆方向のクロスが起きると、2 つ目の組み合わせがそれを受けて取引を手仕舞います。テイクプロフィットとストップロスの幅により、それより早く終わることもあります。

エントリーとエグジットの条件

  • ロングエントリー: ノーポジションの状態で、確定したローソク足において短期平均が長期平均を上抜けます。この 2 つの事実を結ぶ論理条件が買い側のフラグをトリガーします。以前の買いによってフラグがまだロックされていれば、シグナルはそこで消え、注文は出されません。ロックされていなければフラグが 1 回だけ発火し、ポジション変更が設定された数量で成行買いを行います。フラグはカウントダウンが解除するまでセットされたままです。
  • ショートエントリー: ノーポジションの状態で、確定したローソク足において短期平均が長期平均を下抜けます。シグナルは同じルールで売り側のフラグを通過し、ポジション変更が同じ数量で成行売りを行います。2 つのフラグは独立しているため、買い側がロックされていても売りを取ることは妨げられません。
  • エグジット: 買い持ち中の下抜けと売り持ち中の上抜けは 1 つの組み合わせで合流し、クローズに設定された 1 つのポジション変更をトリガーします。決済数量はこのブロック自身が算出します。ポジション保護はエントリー約定を受けて並行して動作し、テイクプロフィットまたはストップロスの幅で取引をより早く終わらせることができます。1 回の注文でドテンすることはありません。ポジションはまずノーポジションに戻り、反対方向は後から、口座が空でその方向のロックが解けているときに起きたクロスによって建てられます。

パラメーター

パラメーター 既定値 説明
Candles 00:05:00 ダイアグラム全体が動作するローソク足系列の時間軸。クールダウンの単位も決めます。クールダウンはこの系列のローソク足の本数で数えられます。
Fast EMA Length 14 短期指数移動平均の期間。
Slow EMA Length 40 長期指数移動平均の期間。短期側より明確に大きく設定してください。期間が近い移動平均は絶えずクロスし、フィルタリングをすべてラッチが担うことになります。
Cooldown Candles 72 エントリーが約定した後、その方向がロックされたままになる確定ローソク足の本数。大きくすると取引が減り、小さくするともみ合いの局面で連続して複数のエントリーが出ます。
Volume 1 1 回のエントリーの数量(銘柄の単位)。両方向で共通です。
Take Profit, % 1.5 テイクプロフィットまでの幅。エントリー価格に対する割合(%)。
Stop Loss, % 1 ストップロスまでの幅。エントリー価格に対する割合(%)。

ダイアグラムの詳細

  • フラグは false を出力しません。これはゲートではなくラッチです。セットされた瞬間だけを伝え、遮断するものはすべて沈黙することで遮断します。だからこそ、方向を再び開くのは論理否定ではなくリセット入力です。
  • 遅延値は空の状態からのみ起動します。カウントダウンの実行中に届いた約定はそれを延長しません。したがって、休止期間は一連の約定のうち最初の約定から測られ、最後の約定からではありません。
  • カウントダウンを進めるのはローソク足系列そのものです。ローソク足がカウント入力に入って値を減らすため、休止期間は本数で表され、実時間ではなく時間軸に従います。
  • リセットパルスは両方向を同時に開きますが、ロックは方向ごとに別々にかかります。休止期間中に一度も取引しなかった方向は、もう一方の方向が支払ったパルスによってロックを解かれます。これが、方向ごとのラッチと 1 つの全体タイマーとの意図的な違いです。
  • エントリー条件はノーポジションであることを要求し、エントリーブロックもそれ以外の状態からは意図的に動作しません。ラッチはシグナルによって消費されるため、約定できなかったシグナルはその方向の休止期間を無駄にしてしまうからです。

使い方

.json ファイルを Designer に読み込み、バックテスターで過去データを使って実行し、実運用の前にパラメーターやブロック自体を自分の銘柄に合わせて調整してください。