Colibri グリッド マネージャー戦略
概要
Colibri Grid Manager は、MetaTrader 4 Expert Advisor Colibri.mq4 (元のフォルダ MQL/9713) の StockSharp ポートです。この戦略は裁量グリッド取引に焦点を当てています。オンデマンドで階層化された未決注文を準備し、設定されたリスクバジェットを使用して各注文のサイズを設定し、保護エグジットを付加し、さらなる取引を無効にする前に毎日のドローダウン制限を適用します。
取引ロジック
- この戦略が開始されると、選択したローソク足シリーズとオーダーブックをサブスクライブして参照価格を追跡し、毎日の利益ベースをリセットし、以前の注文をクリアします。
EnableGridが true で、位置またはアクティブなグリッド順序が存在しない場合、ストラテジーは許可された方向ごとに新しいグリッドを構築します (AllowBuy、AllowSell)。注文は、手動の中心価格を中心に、または明示的な買い/売りエントリーアンカーに相対して配分できます。- 注文タイプ (
OrderType) は、グリッドが指値、ストップ、または即時市場エントリーを使用するかどうかを制御します。レベル間の距離は、LevelSpacingPointsを介してポイント単位で設定され、商品ティック サイズを使用して価格増分に変換されます。 - 音量は固定 (
FixedOrderVolume) またはRiskPercentから派生します。リスクベースのサイジングでは、現在のポートフォリオ資本の設定された割合をすべてのレベルにわたって一方向に割り当て、それを保護ストップによって暗示される金銭的リスクで割ります。 - エントリー注文が約定すると、戦略はペアの保護注文を自動的に配置します。ストップは
StopLossPriceまたはStopDistancePointsから導出されますが、テイクプロフィットはTakeProfitDistancePointsに依存するか、デフォルトで 1 グリッド ステップ離れたものになります。保留中の注文はExpirationHours時間後に期限切れになる場合があります。 - この戦略は、実現損益と変動損益を継続的に監視します。現在の取引日の損失が
DailyLossLimitPercentに違反すると、すべての注文がキャンセルされ、オープンポジションが閉じられ、翌日が始まるまで新しいグリッドの作成が一時停止されます。 - 手動切り替え (
CloseAllPositions、CloseLongPositions、CloseShortPositions、CancelOrders) を使用すると、トレーダーはコードに触れることなく、ブックを即座に平らにしたりクリーニングしたりできます。
パラメーター
- EnableGrid – 自動グリッド メンテナンスを有効または無効にするマスター スイッチ。
- OrderType – レベルの作成時に使用されるエントリ順序タイプ (
Limit、Stop、Market)。 - AllowBuy/AllowSell – グリッドに参加できるサイドを選択します。
- UseCenterLine / CenterPrice – 有効にすると、中心価格を中心に買い/売りレベルを対称的に分配します。ゼロセンターは中間価格を使用します。
- LevelSpacingPoints – 連続するレベル間の間隔。ポイント単位で測定され、商品ティック サイズを介して絶対価格差に変換されます。
- LevelsCount – 方向ごとのレベルの数。マーケット モードの場合、この値に関係なく 1 つの注文のみが送信されます。
- BuyEntryPrice / SellEntryPrice – センター モードが無効な場合のロング グリッドとショート グリッドの明示的なアンカー (ゼロのデフォルトは現在のビッド/アスク)。
- StopLossPrice – すべての注文に適用される絶対ストップレベル。
StopDistancePointsから停留所を取得するには、0 のままにします。 - StopDistancePoints – 絶対的なストップ価格が指定されていない場合のフォールバックストップ距離 (ポイント単位)。
- TakeProfitDistancePoints – ポイント単位のオプションのテイクプロフィット距離。ゼロの場合、ストラテジーは 1 つのグリッド ステップをデフォルトのターゲットとして使用します。
- UseRiskSizing / RiskPercent – パーセンテージベースのサイジングを有効にし、各方向グリッドに割り当てられる資本の部分を定義します。値は、その方向のすべてのレベルに均等に分割されます。
- FixedOrderVolume – リスクベースのサイジングが無効になっている場合、または有効な数量を生成できない場合に使用される注文サイズ。
- ExpirationHours – 保留中のグリッド注文のオプションの有効期間。
- DailyLossLimitPercent – 取引日の開始時に取得されたポートフォリオ株式の割合として表される取引停止しきい値。
- CloseAllPositions / CloseLongPositions / CloseShortPositions / CancelOrders – UI からアクセスできる手動メンテナンス コマンド。
- CandleType – 毎日のリセットなどのメンテナンス イベントに使用されるキャンドル シリーズ。
実装メモ
- この戦略は、高レベルの StockSharp API:
SubscribeCandles、SubscribeOrderBook、BuyLimit、SellStopなど) にのみ依存します。直接コネクタ ロジックやインジケーターへのアクセスは必要ありません。 - 注文サイジングでは、
Security.PriceStepとSecurity.StepPriceを使用して、MQL スクリプトからのポイントベースの距離を金銭リスクに変換します。 - プロテクション・イグジットは、元のエントリー注文を変更するのではなく、個別のストップ/リミット注文によって実装されます。これは、リンクされたプロテクション注文を処理する StockSharp の方法と一致します。
- 日次損失フィルターは暦日が変わるとリセットされ、ポートフォリオ値が再度記録されます。トレーダーは、安全ロックをオーバーライドしたい場合は、
EnableGridを切り替えることで手動で取引を再開できます。 - MT4 グローバル変数、緊急終了フラグ、ソース スクリプトのグラフィカル クリーンアップ ルーチンは、厳密に型指定されたパラメーターと手動切り替えに置き換えられました。
使用のヒント
- グリッドを有効にする前に、グリッドを中央に配置するか、特定の価格に固定するかを定義します。中央に配置されたグリッドの場合は、意味のある
CenterPriceを指定します。アンカーグリッドの場合は無効のままにして、売買エントリー価格を入力します。 - 金融商品のボラティリティに合わせて、
LevelSpacingPoints、StopDistancePoints、およびTakeProfitDistancePointsを調整します。 3 つはすべてポイントベースの値であることに注意してください。 - リスクベースのサイジングを使用する場合は、商品に有効な
PriceStepとStepPriceがあることを確認してください。そうしないと、戦略は固定ボリュームに戻ります。 - 設定パラメータを変更する前に、手動制御パラメータを使用してポジションをすばやくキャンセルまたはフラット化します。
- 複数の戦略が同じポートフォリオを共有している場合は、1 日あたりの損失限度額と外部リスク管理を組み合わせます。
元のExpert Advisorとの違い
- StockSharp バージョンは、MT4 グローバル変数やコメントベースのマジックナンバー ロジックではなく、クリーンなパラメーター インターフェイスに焦点を当てています。
- 緊急閉鎖フラグ、グリッド サイズの自動調整、および元のコードからのグラフィカル オブジェクトのクリーンアップは、手動の切り替えと簡単なパラメーターの検証に削減されます。
- MQL スクリプトのトレーリング ストップ ヘルパーは複製されません。必要に応じて、StockSharp の既存の末尾モジュールを使用します。
- オーダー間の MQL 依存関係ロジック (「マザー」オーダーに基づいて実行/キャンセル) は再現されません。各レベルは、独自の保護命令に従って独立して動作します。
これらの調整は、元の Colibri エキスパート アドバイザーの精神 (厳格な資金管理を備えた構造化されたマルチレベル エントリ) を維持しながら、実装を慣用的な StockSharp パターンに合わせています。