マーケットメーカー気配値管理ストラテジーダイアグラム
このダイアグラムは平均回帰シグナルを気配値の完全なライフサイクルへ変換します。価格が低速平均のバンドを外れると板の自分側に指値を置き、最良価格に合わせて差し替え、期限切れまたは根拠を失った注文を取り消し、受動的な試行が時間切れになった場合だけスプレッドを越えて約定を取りに行きます。
戦略の概要
- 確定済み5分足を期間100のSimpleMovingAverageへ送り、2つのFormulaで平均の上下0.8%にバンドを作ります。
- Market depth(板情報)がBestBidとBestAskを提供し、変数がローソク足の時刻で値を採取するため、板更新と足シグナルがずれません。
- 現在の終値はバンド外、前の終値はまだバンド内である必要があります。Position比較は既存ポジションと同方向の追加を防ぎます。
- Order registering(注文登録)は採取したBestBidに買い指値、BestAskに売り指値を共通のQuote Volumeで出します。
- Combinationは現在の注文参照を保持します。Order replacing(注文差し替え)は新しい注文を同じ流れへ戻し、相対ずれが閾値を超えると最良価格へ移動します。
- Order cancellation(注文取消)は反対側バンドの突破時と12本経過時に気配値を取り消します。まだフラットで価格がバンド外ならModify positionが成行で開始します。
- Position protection(ポジション保護)は0.8%の利益または0.4%の損失で終了し、その約定がMass order cancellation(一括取消)を起動します。
エントリーとエグジットの条件
- ロングエントリー: 現在終値が下側バンドを下回り、前の終値がバンド以上で、Positionがロングでなく、BestBidが利用可能なら、その価格に買い指値を出します。ずれが0.001を超えると差し替えます。12本後もフラットで価格が下側バンド未満なら取り消し、OpenPositionの成行買いを送ります。
- ショートエントリー: 現在終値が上側バンドを上回り、前の終値がバンド以下で、Positionがショートでなく、BestAskが利用可能なら、その価格に売り指値を出して差し替えで追随します。12本後もフラットで価格が上側バンド超なら取り消し、OpenPositionの成行売りを送ります。
- エグジット: 登録、差し替え、または成行フォールバックからの全エントリー約定がPosition protectionへ入ります。終値が0.8%利確と0.4%損切りを駆動し、保護注文の約定後にMass order cancellationが残る気配値を取り消します。
パラメーター
| パラメーター | 既定値 | 説明 |
|---|---|---|
| Candle Time Frame | 00:05:00 | 平均、バンドシグナル、板価格採取、気配値年齢、保護判定に使う時間枠。 |
| SMA Length | 100 | バンド中央のSimpleMovingAverageの長さ。 |
| Band Deviation | 0.008 | 相対半幅。0.008は平均の上下0.8%を表します。 |
| Quote Volume | 1 | 気配値、差し替え、成行フォールバックで使う数量。 |
| Re-quote Threshold | 0.001 | 最良価格との差が注文差し替えを起動する相対距離。 |
| Quote Life, candles | 12 | 受動的な試行が期限切れになるまでの確定足数。 |
| Take Profit, % | 0.8 | エントリー約定から有利方向への距離(%)。 |
| Stop Loss, % | 0.4 | エントリー約定から不利方向への距離(%)。 |
ダイアグラムの詳細
- Previous value(前値)は終値変換前に前のローソク足を保持するため、セットアップはバンド外に出た瞬間だけ発生します。
- BestBid、BestAsk、Positionは変数に保持され、確定足で出力されるため、比較と注文は現在の足時刻を持ちます。
- 登録・差し替え後の注文はCombination
バスへ入り、価格変換、差し替え、取消、チャートは常に最新注文を使います。 - 年齢カウンターはバンド離脱時にリセットし、足ごとに1増え、期限の1つ上で止まります。12との一致は期限切れイベントを1回だけ出します。
- 指値登録と差し替えは渡された価格を保ちます。成行フォールバックはOpenPositionに限定され、保護と一括取消が終了後の状態を整理します。
使い方
.json ファイルを Designer に読み込み、バックテスターで過去データを使って実行し、実運用の前にパラメーターやブロック自体を自分の銘柄に合わせて調整してください。