GitHub で見る

セッション注文ライフサイクル付きボリンジャーブレイクアウト

この図は両方向のボリンジャーブレイクを保留注文の見えるライフサイクルにします。確定終値がBollinger Bands(20, 1)の外なら突破帯に入口を登録し、約定後は移動する中央線に反対指値を置き、Order replacingで追従します。07:00-20:00終了時には一括取消とポジション解消を行います。

戦略の概要

  • 確定5分足が期間20・幅1のBollinger Bandsと、上下の突破比較に使う終値を更新します。
  • Working timeは07:00から20:00だけ新規入口を許可し、共通のPosition == 0条件により意図的にflat-onlyとします。
  • 上側の確定突破は上帯に買い指値を、下側の突破は下帯に対称な売り指値を登録します。
  • 入口約定の実際のTrade.Volumeで中央線の反対出口を定量し、部分約定や非既定数量を定数に置き換えません。
  • CombinationはOrder replacingが返す最新注文を保持し、出口約定または時間終了で残る稼働注文をすべて取り消します。

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

  • ロングエントリー: Working time内で確定終値が上帯より高くPosition == 0なら、その上帯値に買い指値を登録します。
  • ショートエントリー: Working time内で確定終値が下帯より低くPosition == 0なら、その下帯値に売り指値を登録します。
  • エグジット: 入口約定後、正確な約定数量の反対指値を中央線に登録し、新しい中央値ごとに移動します。出口約定は残存注文を取消します。07:00-20:00外では全注文を取消し、Modify positionがロングまたはショートを成行で閉じます。

パラメーター

パラメーター 既定値 説明
Candle Time Frame 00:05:00 図の確定足間隔。月次リプレイ用にC#既定4時間から適応しています。
Bollinger Period 20 Bollinger BandsのLengthで、実際のC#戦略パラメーターです。
Bollinger Width 1 Bollingerの標準偏差倍率で、実際のC#パラメーターです。
Session Start 07:00:00 C#コンストラクタではなくREADMEから追加したWorking time開始です。
Session End 20:00:00 Working time終了。時間外は注文取消とポジション解消を行います。
Order Volume 1 各入口注文の数量。出口は実際の入口約定数量を使います。

ダイアグラムの詳細

  • 実行C#は4時間足を使います。5分足は1か月の受入リプレイで十分な形成値と突破を得るための明示的な適応です。
  • C#コンストラクタのパラメーターはBandPeriod、BandWidth、CandleTypeだけです。Session StartとSession EndはREADME由来でWorking timeに実装し、注文数量も公開します。
  • C#はロングにPosition <= 0、ショートにPosition >= 0を許し、反対ポジションを成行で閉じて反転します。本図は意図的にPosition == 0だけで入り、反転しません。
  • 執行形式も適応しています。元コードは成行で出入りしますが、本図は突破帯に入口指値を置き中央線の出口指値を維持します。入口は押し戻りを待つ場合があります。
  • Order replacingは新しい注文オブジェクトを返すため、各側の初期注文と置換出力をCombinationへ集め、自己入力へ戻しません。
  • 受入リプレイ銘柄に価格刻みがないため価格縮小を無効化しています。指標レベル自体は変わりません。

使い方

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