ストラテジーテスタ

本マニュアルでは、JForex4のストラテジーテスター(Strategy Tester)を使用して戦略をバックテストする方法について、設定、テスト方法、注文執行ロジック、結果の見方まで解説します。


ストラテジーテスターを開く

  • 上部メニューバーの View から Strategy Tester を選択します。
  • テスターは OrdersPositionsMessages と並ぶ新しいタブとして開きます。
  • ドロップダウンメニューから戦略を選択します。まだワークスペースに追加されていない場合は、先に Open をクリックして追加してください。
  • (任意) Edit をクリックすると、コードエディタで戦略のソースコードを開けます——.java ソースファイルが存在する場合のみ利用可能です。

テストを設定する

アカウント設定

Account をクリックして、模擬取引口座を定義します:

  • 初期証拠金と口座通貨
  • レバレッジ
  • マージンカット水準(使用レバレッジに対する割合)
  • 資産ストップロス(MC Equity)——資産がこの水準を下回ると自動的にテストを停止

通貨ペア・銘柄

Instruments をクリックして、ヒストリカルデータをダウンロードする対象銘柄を選択します。戦略が取引または計算に使用するすべての銘柄を選択してください。

注:ここは戦略が実際に取引する銘柄を選択する場所ではありません——それは別途設定するもので、戦略内にハードコードされているか、後述の Define Parameters ウィンドウで選択します。

サンプル期間と時間枠

ヒストリカルデータの日付範囲(Sample Period)と時間枠Time Frame)を選択します:

  • Ticks(ティック)——実際のヒストリカルティックデータを使用(最も精度が高いが、最も低速)。
  • ローソク足(Candles)(1分足/1時間足/1日足)——高速で、OHLCローソク足データから補間によりティックを生成します。基準として Bid または Ask も選択可能です。

ビジュアルモード

ビジュアルモードVisual Mode)を有効にすると、シミュレーションの進行をライブチャート上で確認できます。有効にすると、Start ボタンからテストの一時停止や速度変更を行う再生コントロールも利用できるようになります。

最適化

戦略に設定可能なパラメータがある場合、最適化Optimization)を有効にすることで、一度の実行で複数のパラメータの組み合わせをテストできます。各パラメータ(銘柄と期間を除く)について、最小値・ステップ幅・最大値を設定でき、戦略はステップの組み合わせごとに1回ずつテストされます。

各組み合わせの結果はテスターウィンドウ下部に表示されます。行を右クリックすると、キャンセル、設定のコピー、レポートの表示、入力パラメータの再利用が行えます。

プロフィットファクターProfit Factor)= 総利益 ÷ 総損失(いずれも正の値として扱う)。例えば、総利益1000、総損失250の場合 → プロフィットファクター = 4.0。この値は常に正の値であり、数値が高いほど一般に勝ちトレードと負けトレードの比率が良好であることを示します。


ティックフィルター(Ticks時間枠のみ)

時間枠として Ticks を選択した場合、ティックのフィルタリング方法を選択します:

フィルター 動作
Process all ticks(すべてのティックを処理) 最も精密だが最も低速——記録されたすべてのティックを再現します。
Process all ticks with a different non-recurrent price(価格が重複しないティックのみ処理) 同じ価格が繰り返されるティックをスキップします。
Process ticks on a market direction(市場の方向転換時のみ処理) 価格方向における実際の転換点を示すティック以外はスキップします。
Process ticks on a predefined price range change(所定の値幅変動時のみ処理) 価格が定義した値幅で変動するまでティックをスキップします。
Process ticks with the specified time interval(指定の時間間隔で処理) 定義した時間間隔に基づいてティックをスキップします。

補間方法(ローソク足時間枠のみ)

時間枠がローソク足期間(1分足、1時間足、1日足)の場合に利用可能です。実際のティックデータをダウンロードする代わりに、OHLCローソク足データから合成ティックを生成することで、テスト速度が大幅に向上します。

方式 説明
Cubic Spline(三次スプライン補間) ローソク足ベースの方式の中で最も精度が高い方法。OHLC価格を基準点として三次スプライン補間によりティックを構築します。非常に短い期間(例:10秒足)では、実際のフィードよりも多くのティックが生成される場合があります。
4 ticks at OHLC(OHLCで4ティック生成) 利用可能な補間方法の中で最も信頼性が高い方法。 各ローソク足を正確に4つの価格ティック——始値(Open)、高値(High)、安値(Low)、終値(Close)——に補間します。HighとLowの順序は、どちらが始値に近いかによって決まります:始値に近い方が2番目のティックとして、もう一方より先に処理されます。
Tick on Open(始値でティック生成) ローソク足の始値を使用して1つのティックを生成します。
Tick on Close(終値でティック生成) ローソク足の終値を使用して1つのティックを生成します。

例:戦略が1分足で取引を行い、それ以上の細かい粒度を必要としない場合、時間枠として 1 Min を、補間方法として 4 ticks at OHLC を選択してください——これにより、戦略は1分ごとに正確に4つのティック(始値、続いて近い方から順に高値/安値、そして終値)を受け取ります。

カスタム設定

  • Save interpolated price data(補間ティックデータの保存)——補間によって生成されたティックデータを保持するか破棄するかを設定します。
  • ビジュアルモード: 資産(Equity)、残高(Balance)、損益(P/L)の表示/非表示、保存済みチャートテンプレートTemplate)の選択、ビジュアルモード中に表示されるデフォルトの期間Period)の設定。
  • メッセージ: Save Messages to を有効にしてファイルへ保存、Save Reports to を有効にしてレポートをファイルへ保存、Show Reports を有効にしてテスト終了後にレポートを自動的に開く。

注文執行ロジック

テスターが注文をどのように約定させるかを正確に理解することは、バックテスト結果を信頼する上で不可欠です。

基本ルール: 注文は原則としてその注文自身の価格で約定します——ただし、マーケットギャップが発生した場合(例:休場後にギャップを伴って市場が再開する場合)は例外です。ギャップが発生した場合:

  • LIMIT(指値)注文は、注文価格よりも有利な価格で約定します。
  • MAX.SLIPPAGE設定のないSTOP(逆指値)注文は、ギャップ後に最初に利用可能な価格で約定します。
  • MAX.SLIPPAGE設定のあるSTOP注文は、約定価格がそのスリッページ許容範囲を超える場合、自動的にLIMIT注文として再送されます。

詳細な約定ロジック:

  • BID側で発生した注文は、補間されたBID側のローソク足価格と比較されます。ASK側で発生した注文は、補間されたASK側のローソク足価格と比較されます。
  • 注文(種類を問わず)がCLOSE、HIGH、またはLOWの価格ティックによってトリガーされた場合、注文自身の価格で約定します。必要に応じて直近のスプレッドで調整されます(このトリガーが反対側から発生した場合に適用されます)。
  • 注文がOPENの価格ティックによってトリガーされた場合、対応する側のそのOPEN価格で約定します——ただしMAX.SLIPPAGEが設定されたSTOP注文の場合は例外です:OPENティックがSTOP注文のスリッページ許容範囲を超える場合、その注文はLIMIT注文に変換されます。

ヒント:「4 ticks at OHLC」には各ローソク足に必ずOpenティックが含まれるため、この方法でテストを行う際は、OPENトリガーに関するこのロジック(およびSTOP/MAX.SLIPPAGEの例外)が常に適用されます。

テストを実行する

  • Start ボタンをクリックします。
  • Define Parameters ウィンドウが開き、戦略の設定可能な値(銘柄、数量、スリッページ、ストップロス/テイクプロフィットなど)を設定します。実際に表示される項目は、戦略のコード内容によって異なります。
  • Run をクリックしてシミュレーションを開始します。
  • ビジュアルモードが有効な場合、再生コントロールを使ってテストの実行中に一時停止や速度調整ができます。
  • 完了すると(ティックベースの大規模なテストは時間がかかる場合があります)、Show Reports が有効であればテストレポートがブラウザに自動的に表示されます

結果を確認する

レポートには、トレードごとの結果、資産(Equity)/残高(Balance)曲線、そして上記のプロフィットファクターをはじめとする集計統計が含まれます。最適化(Optimization)による走査を実行した場合は、構成を決定する前に、テスターウィンドウ下部の結果一覧から各パラメータの組み合わせのレポートを比較してください。


ベストプラクティス

  • 最終検証では、Ticks/「Process all ticks」から始めてください。 最も低速ではありますが、実際の市場環境に最も近いシミュレーションです。
  • 迅速な反復作業にはローソク足補間を使用してください。 戦略の開発・調整段階では、「4 ticks at OHLC」を使うことで、完全なティック履歴をダウンロードすることなく、迅速かつ信頼性の高いフィードバックが得られます。
  • 補間/ティックフィルターの選択を戦略のロジックに合わせてください。 OPEN価格に反応する戦略は、「4 ticks at OHLC」と「Tick on Close」とでは挙動が異なります——テスト方法が戦略の実際のトリガーロジックと一致していることを確認してください。
  • MAX.SLIPPAGEに関連する挙動に注意してください。 STOP注文に依存する戦略の場合、MAX.SLIPPAGEの有無両方でテストを行い、ギャップやOPENティックの発生時に注文がLIMIT約定に変換される仕組みを把握してください。
  • 注意: テスターに表示される過去の実績は、将来の実績を保証するものではありません——実運用に移行する前に、必ずデモ環境でさらなる検証を行ってください。