GitHub で見る

金額ターゲット・フラット化戦略のダイアグラム

金額ターゲットは価格をまったく見ません。ポジションに乗っている金額が一定の数値に達した時点で、そのポジションを決済します。このダイアグラムは、その規則を単純な2本の移動平均のエンジンの上に載せたものです。クロスが相場に入るタイミングを決め、利益ターゲットと損失リミットが「これで十分」とする水準を決めます。どちらかに達した瞬間にポジションはフラットにされ、まだ有効な注文もすべて取り消されます。

戦略の概要

  • 確定した5分足が短期と長期の指数移動平均に入力され、クロスのブロックがこの2本を1つのイベントにまとめます。短期線が長期線を上抜けると true、下抜けると false になります。
  • 論理NOTが下抜けに専用のシグナルを与えるため、上下それぞれの方向が独立したゲートになります。
  • ポジションブロックの値をゼロと比較することで、ダイアグラムがノーポジション、買い、売りのいずれであるかが分かります。各ゲートは、1つのクロスと1つのポジション状態の論理ANDです。
  • どちらのエントリーも固定数量の成行注文で、ポジションを新規に建てる条件が設定されています。そのため、すでにポジションを保有している時に来たクロスでそこに積み増しされることはありません。
  • 損益(Strategy P&L)ブロックは、保有中のポジションの評価損益を独自の周期で出力します。ローソク足1本につき1回ではなく、1時間に数回の頻度です。
  • 2つの比較がその数値を利益ターゲットおよび損失リミットと突き合わせます。各しきい値は同じ損益の値によってトリガーされる変数なので、比較は常に同一時点の2つのオペランドを見ることになります。
  • 組み合わせ(Combination)ブロックが2つの結果を1本の決済ラインにまとめ、そこで同時に2つの動作が行われます。ポジション変更(Position modify)が成行でポジションを決済し、一括注文取消(Mass order cancellation)が残っている有効な注文をすべて取り消します。
  • 保有ポジションと逆方向のクロスもポジションを決済するため、移動平均が反対を向いた取引をこのダイアグラムが抱え続けることはありません。

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

  • ロングエントリー: ポジションがない状態で、確定したローソク足において短期移動平均が長期移動平均を上抜けた場合、ポジション変更(Position modify)が注文数量を成行で買います。
  • ショートエントリー: ポジションがない状態で、確定したローソク足において短期移動平均が長期移動平均を下抜けた場合、ポジション変更(Position modify)が注文数量を成行で売ります。
  • エグジット: 決済の経路は独立して2つあります。金額による決済は、ポジションの評価損益が利益ターゲットに達するか、損失リミットまで下がった時点で発動します。組み合わせ(Combination)ブロックがシグナルを伝え、ポジションは成行で決済され、残っている注文はすべて取り消されます。保有ポジションと逆方向のクロスでも決済されます。どちらが先に起きても、ダイアグラムはフラットに戻って待機し、フラットな状態で次のクロスが発生すると、買いまたは売りで次のポジションを建てます。

パラメーター

パラメーター 既定値 説明
Candles 00:05:00 2本の移動平均を計算するローソク足系列の時間軸。
Fast EMA Length 12 短期指数移動平均の期間。
Slow EMA Length 26 長期指数移動平均の期間。
Volume 1 各エントリーが送る注文数量(ロット単位)。
Profit To Close 300 ポジションを利益として決済する評価損益の金額。
Loss To Close -600 ポジションを損失として決済する評価損益の金額。損益と直接比較されるため、負の数で指定します。

ダイアグラムの詳細

  • しきい値は評価損益、すなわち保有中のポジションに乗っている金額と比較されるため、ポジションごとに金額建てのテイクプロフィットとストップロスとして働きます。同じ2つの比較を実現損益の出力につなぐと、この組は代わりに一方向のスイッチになります。口座がその数値に達した時点で、その稼働は終了します。
  • 金額による決済はローソク足の周期に縛られません。損益の更新を受けて動作するため、次の足の確定を待たずに、足の途中でターゲットを取ることができます。
  • このダイアグラムが送る注文はすべて成行注文なので、同梱のヒストリカルデータでは一括取消が取り消す対象を見つけることはありません。それでも配線してあるのは、有効な注文を残したままの金額決済は決済として半分でしかないからであり、板に残るタイプの注文がダイアグラムに加わった瞬間から意味を持ち始めます。
  • 決済側のブロックはいずれもポジションを閉じる条件が設定されているため、売買方向も数量も指定する必要がありません。ブロックが保有ポジションを読み取り、その数量ちょうどの反対売買の注文を送ります。
  • 金額の層が見えるようになるのは、5分という周期のおかげです。これよりはるかに長いローソク足では、この2本の移動平均は月に数えるほどしかクロスせず、ポジションの数も少なくなります。しきい値も、5分足の系列が生む値動きの幅に合わせて設定されています。

使い方

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