GitHub で見る

スプレッドで絞り込むエントリー・テンプレート戦略のダイアグラム

ここでのシグナルはあえて単純にしてあります。ローソク足が自らの始値より高く引け、同時に価格が緩やかな移動平均を上抜ける、それだけです。このダイアグラムの本題はむしろ、そのシグナルと発注の間に立ちはだかるもの――板情報から読み取るスプレッド、エントリー同士の間隔を空けるクールダウン、固定値ではなく資本から算出する発注数量――のほうにあります。

戦略の概要

  • 確定した4時間足が、期間50の単純移動平均と、各ローソク足から始値と終値を取り出す2つのコンバーターに供給されます。
  • ローソク足の色は2つの比較で決まります。終値が始値より高ければ陽線、始値より低ければ陰線です。
  • 前回値ブロック(Previous value)の一方が1本前のローソク足を、もう一方が1本前の移動平均を保持します。これによりクロスは、専用のインジケーターではなく、ごく普通の比較の組み合わせとして読み取られます。
  • 板情報(Market depth)が最良買気配と最良売気配を供給し、数式が一方から他方を差し引きます。その結果はローソク足が解放する変数に保持されるため、エントリー条件は他の条件と同じ時点に属するスプレッドを比較することになります。
  • 戦略損益(Strategy P&L)が実現損益を運ぶ変数に供給され、数式がそれを初期資本に加算し、さらに別の数式がその資本を発注数量へ変換します。資本にリスク配分率を掛け、終値で割り、小数第3位に丸めます。
  • 変数と min(a + 1, n) の数式で組んだカウンターが、直近の約定から数えたローソク足の本数を測り、8本が経過するまで新規エントリーを止めます。
  • どちらのエントリーもノーポジションの状態からのみ行われるため、このダイアグラムは常に1つのポジションだけを保有し、買い増し・売り増しはしません。
  • 決済は反対色のローソク足であり、その上にポジション保護(Position protection)が0.7%のテイクプロフィットと0.5%のストップロスを重ねます。

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

  • ロングエントリー: 陽線であること、1本前の終値が1本前の移動平均以下にあり、今回の終値が現在の移動平均を上回っていること、スプレッドが上限内に収まっていること、ポジションがフラットであること、そしてクールダウンが経過していること。これらが揃うと、ポジション変更(Position modify)が算出された数量で成行買いを出します。
  • ショートエントリー: 陰線であること、1本前の終値が1本前の移動平均以上にあり、今回の終値が現在の移動平均を下回っていること。スプレッド、フラットポジション、クールダウンの条件は同じです。ポジション変更が、同じ計算式による数量で成行売りを出します。
  • エグジット: 陰線が買いポジションを、陽線が売りポジションを決済します。両方の条件は組み合わせブロック(Combination)で合流し、ポジションを閉じる設定の1つのポジション変更を起動するため、方向ごとに決済ブロックを用意する必要はありません。ポジション保護はエントリーの約定を独立して監視しており、0.7%の利益または0.5%の損失でそれより早く決済することもあります。

パラメーター

パラメーター 既定値 説明
Candles 04:00:00 ダイアグラム全体が動作するローソク足の時間軸。
SMA Length 50 終値を比較する対象となる単純移動平均の期間。
Spread Limit 50 エントリーを許容する板の最大の広さ(価格単位)。スプレッドの広い銘柄では値を上げてください。
Start Capital 1000000 資本の計算が出発点とする口座資金。取引前に実際の口座規模に合わせて設定してください。
Risk Fraction 0.3 1つのポジションに投じる資本の割合を小数で指定します。0.3 は30パーセントです。
Cooldown Bars 8 約定後、次のエントリーが許可されるまでに経過しなければならない確定足の本数。
Take Profit, % 0.7 テイクプロフィットまでの距離。エントリー価格に対するパーセントで指定します。
Stop Loss, % 0.5 ストップロスまでの距離。エントリー価格に対するパーセントで指定します。

ダイアグラムの詳細

  • ローソク足ブロックは8つの受け手に値を渡します。移動平均、2つのコンバーター、1本前のローソク足を保持するブロック、スプレッド用の変数、実現損益用の変数、クールダウンのカウンター、そしてチャートパネルです。
  • 板はローソク足よりはるかに頻繁に更新されるため、そのスプレッドを直接比較することはしません。変数が最新の値を受け取り、ローソク足の確定時にそれを解放することで、エントリー条件のすべての項が同じ時計で動きます。
  • 実現損益の変数はゼロから始まり、最初の取引が決済されて初めて値を持ちます。そのおかげで数量の数式は最初のローソク足から値を受け取れます。
  • 2つのエントリーブロックは1つの数量計算の数式を共有しており、買いと売りは同じルールでサイズが決まります。
  • クールダウンのカウンターは戦略の約定ブロックによってリセットされます。つまりエントリーであれ保護による決済であれ、約定が起きればローソク足8本の待機が最初からやり直しになります。

使い方

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