ブローカーエミュレーター

ブローカーエミュレーターは、注文の約定をシミュレートするバックテストモジュールです。これは、ストラテジーテスト環境内でブローカーの中核ロジックを再現するもので、注文がいつどのように約定されるか、どのようなコストが適用されるか、どの価格モデルが使用されるかなどを処理します。このモジュールは、その動作の各要素を制御する各種パラメーターにより設定されます。

仕組み

ブローカーエミュレーター のセクションは、ストラテジー設定パネルの一番下にあります。ここには、手数料の差し引きから注文約定に使用される価格モデルに至るまで、バックテストエンジンによるブローカー環境のシミュレーションに変わるすべてのパラメーターがまとめられています。これらの設定を組み合わせることで、シミュレーションによる約定が実際のトレード状況をどの程度忠実に再現するかを決定します。

パラメーター

  • 手数料: 各取引で支払われる取引手数料の額。手数料はエントリーと決済時両方に適用されます。値と計算モードを指定する必要があります。以下の3つのモードが利用可能です。
    • パーセント: 取引金額の指定された割合に相当する手数料を課します。計算される金額は、取引規模によって異なります。
    • 固定: 契約件数や取引金額に関わらず、注文ごとに一定の金額を課します。 
    • 1枚ごと: 取引される契約ごとに手数料を課します。
  • レバレッジ(ロング)・レバレッジ(ショート): ロングポジションおよびショートポジションに必要な証拠金、つまりトレーダーが自己資金から拠出しなければならないポジションの割合を指定します。
  • スリッページ: 成行注文および逆指値注文の約定価格に加算するティック数を指定します。変動の激しい市場において、スプレッドを考慮し、現実的な約定コストをシミュレーションする際に使用できます。
  • 指値注文の約定: 値注文の約定ロジックを制御します。以下の2つのモードが利用可能です。 
    • 指定価格: 指定した指値価格で正確に約定します。特定の水準で確実に約定されるようにします。
    • 指定価格+1ティック: 価格が指定水準を1ティック超えて動いた場合にのみ約定します。価格が指値水準を明確に超えた場合にのみ、十分な流動性があると仮定します。
  • 約定タイミングの遅延: バーのライフサイクルに対して、どのタイミングで注文を約定するかを制御します。
    • なし: 注文が行われたバーと同じバーで約定されます。
    • 1ティック: 市場状況による1ティックの遅延を想定し、次のティックで注文は約定されます。 
  • 平均足モード: チャートが平均足に設定されている場合に、注文の約定に使用される価格値を決定します。
    • 平均足バー: 視覚的なチャート設定に合わせて、注文の約定に平均足の価格を使用します。
    • 標準バー: より現実的な結果を得るため、 注文を約定に実際のOHLC値を使用します。

ストラテジーのプロパティで指定される各パラメーターは、対応するPine Scriptのstrategy()関数呼び出しの引数を編集することで変更できます。

主な使用例

  • 実際のブローカー手数料との一致: 手数料を実際のブローカーの体系(パーセント、固定、または1枚ごと)に合わせて設定し、エクイティカーブに実際の取引コストを反映させます。
  • レバレッジポジションのシミュレーション: ロングポジションとショートポジションのレバレッジを調整して、証拠金取引のシナリオをモデル化し、バックテストにおいてレバレッジが利益と損失の双方をどのように増幅させるかを確認します。
  • 約定スリッページの考慮: 成行注文または逆指値注文を使用するストラテジーでは、スリッページをゼロ以外の値に設定し、変動の激しい市場における注文約定による価格への影響をシミュレートします。 
  • 保守的な指値注文シミュレーション: 「指定価格+1ティック」 を使用することで、市場が触れただけで明確にその価格を通過していない場合の約定を防ぎ、理想的な約定条件への過剰適合を抑えます。
  • 約定の先読みを防ぐ: 「約定タイミングの遅延」→「1ティック」 の順に有効にすると、特定のバーで行われた注文が次のティックまで約定されないことが保証され、実際の約定タイミングの遅延がより正確に反映されます。
  • 平均足チャートの現実的なバックテスト: 平均足モードを標準バーに設定すると、合成された平均足の価格ではなく、実際のOHLC値で注文が約定され、より信頼性の高いバックテスト結果が得られます。