GitHub で見る

歩み値で動かすトレーリングストップとランダムエントリー戦略のダイアグラム

多くのダイアグラムは、いつエントリーするかを決めるためにブロックを費やします。この例はそこにほとんど費やさず、出口の作り方にすべてを充てています。エントリーはコイン投げです。ランダム (Random) ブロックが確定したローソク足ごとに数値を 1 つ引き、それがしきい値のどちら側に落ちたかでロングかショートかが決まります。本題はその先にあり、トレーリングストップをローソク足 1 本につき 1 回ではなく、歩み値に流れる約定のたびに引き直します。

戦略の概要

  • 5 分足のローソク足シリーズがこのダイアグラムの時計です。確定したローソク足 1 本が抽選 1 回とエントリー試行 1 回にあたり、それ以外にエントリーのロジックを進めるものはありません。
  • ランダムブロックはそのローソク足で起動し、0 から 1 の間の数値を引きます。しきい値との比較がロング側の判定になり、その同じ答えの論理否定 (NOT) がショート側の判定になるため、1 つの比較で両方向をまかなえます。
  • 現在のポジションは、入力で値を保持しローソク足のトリガーで放出する変数によって、ローソク足のリズムに合わせられます。保持されたその値をゼロと比較したものが、ノーポジションかどうかの判定です。
  • 2 つの論理積 (AND) ゲートが、コイン投げの結果とノーポジション判定を組み合わせます。どちらの入力もローソク足のリズムで届くため、各ゲートは確定ローソク足 1 本につきちょうど 1 回だけ判定されます。
  • どちらのエントリーブロックにも新規建ての条件が設定されているため、ゲートが「はい」を出し続けても、すでにあるポジションに積み増すことはできません。このダイアグラムは同時に 1 つのポジションだけを保有し、ドテンはしません。
  • ローソク足と並行してティックのストリームも購読され、コンバーターがすべての約定から価格を取り出します。
  • ポジション保護 (Position protection) は、エントリーの約定を組み合わせ (Combination) 経由で受け取り、Price ソケットにはその約定価格を受け取ります。トレーリングが有効なので、含み益をさらに伸ばす約定が出るたびにストップがその後ろを追いかけ、決済はローソク足の上ではなく、ローソク足と足の間で決まります。
  • チャートパネルには、ローソク足、両方のエントリー注文、保護用のストップ注文、そしてすべての約定が描画されるため、ポジションの一生を 1 枚のパネルで読み取れます。

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

  • ロングエントリー: 確定したローソク足で、引いた数値がしきい値を下回り、かつ保持されたポジションがゼロのとき。ロング側のゲートが通り、ポジション変更 (Position modify) が注文数量を成行で買います。
  • ショートエントリー: 同じ確定ローソク足で、引いた数値がしきい値以上、つまりロング側の比較を論理否定 (NOT) で反転した結果が成立し、かつ保持されたポジションがゼロのとき。ポジション変更が注文数量を成行で売ります。
  • エグジット: 決済シグナルもテイクプロフィットもありません。最初の約定が入った時点から、ポジション保護がそのトレードを引き受けます。ストップをエントリー価格から 0.5% 離した位置に置き、トレーリングが有効なため、より有利な価格が約定するたびに、ロングなら上へ、ショートなら下へストップを運んでいきます。約定がその水準に触れた瞬間に成行注文でポジションが決済され、次の確定ローソク足では再びコインを投げられる状態に戻ります。

パラメーター

パラメーター 既定値 説明
Candles 00:05:00 ローソク足シリーズの時間足。確定したローソク足 1 本がコイン投げ 1 回、エントリー試行 1 回にあたります。
Coin Threshold 0.5 引いた数値を比較する相手の値。0.5 では両方向が同じ確からしさになり、これより小さくするとロングが出にくくなり、大きくするとロングが出やすくなります。
Order Volume 1 注文サイズ (ロット単位)。
Trailing Stop, % 0.5 トレーリングストップの距離。エントリー価格に対するパーセントで指定します。

ダイアグラムの詳細

  • ランダムブロックは、グローバルな乱数源ではなく戦略自身の乱数源から数値を引きます。そのため同じヒストリカルデータを 2 回再生すれば、同じコイン投げの並びと同じ取引の集合が得られます。
  • ストップは価格ステップの固定本数ではなく、エントリー価格に対するパーセントで指定します。価格単位で同じ距離でも、65 000 付近で取引される銘柄と 5 付近で取引される銘柄とでは、意味がまったく違います。その両方で通用する形はパーセント指定だけです。
  • Price ソケットに歩み値を流し込んでいることが、決済の粒度を細かくしています。代わりにローソク足の終値で価格を与えたなら、同じストップは 1 時間に 12 回しか判定されません。
  • ストップは連続して追随します。価格が有利に動くたびにストップも動き、ストップを再び前へ進めるために価格が先に稼いでおかなければならない追加の距離はありません。
  • ノーポジションの間は確定ローソク足ごとにエントリーが試みられるため、このダイアグラムは通常なにかしらのポジションを持っており、保護用のストップには常に管理すべきポジションがあります。

使い方

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