Data → Precision と Cross checks → Higher backtest precision の違いを徹底解説

未分類

StrategyQuant には、バックテスト精度に関する設定が2つ存在します。

Data → Test parameters → Precision

Cross checks(robustness) → Higher backtest precision

です。

パッと見は似ていますが、
機能・目的・役割がまったく違います。

この記事では、公式マニュアルと Petrさん(SQサポート)の回答を組み合わせ、
初心者でも迷わないよう 完全に整理して説明します。


■ まず最初の結論(最重要)

  • Data → Precision は“メインのバックテスト精度”
  • Cross-check → Higher backtest precision は“耐久テスト(ロバストネス検査)”

つまり:

  • Precision → EAの基礎品質を決める
  • Higher precision → EAの壊れやすさを検査する

役割が根本的に違います。


■ 1. Data → Test parameters → Precision とは?

Precision は「バックテストの再現精度」を決める設定。
成行中心なら最速の Selected timeframe で十分。
Stop/Limit を使うなら 1 minute tick simulation が必須。

Precision は「バックテストの再現精度」を決める設定。


■ Precision(精度)で選べるのは現在この2つだけ

SQX Build 142 では、Precision は以下の2択に整理されています。


● 1) Selected timeframe only(fastest)

バーの OHLC(始値・高値・安値・終値)だけを使う
→ とにかく速い。大量生成向き。

・H1なら H1 の1本の値だけで計算
・Stop/Limit を多用する戦略では誤差が出やすい
・「成行がメイン」のEAなら基本これで問題なし


● 2) 1 minute data tick simulation(slow)

1分足の中の動きを Tick として再現
→ Selected timeframe より正確。ただし遅い。

・Stop/Limit のヒット精度が上がる
・逆指値系を使う戦略は必ずこちら
・計算量が増えるため Builder の速度は落ちる


■ Precision の本質

Precision は EA の“土台になる精度” を決める。
精度を下げれば速く大量に作れるが、ズレやすい。
精度を上げると時間が増えるが、初期の品質が安定する。


■ どんな戦略ならどちらを選ぶべきか?

★ 成行オンリーの戦略(Stop/Limit を使わない)

理由:
成行注文中心の戦略では、Tick レベルの intrabar 動きを正確に再現するメリットがほとんどありません。
ただし、どの精度を選んでもスプレッドは常に変動するため、バックテストが現実と1:1で一致することはない点には注意。


★ Stop / Limit を頻繁に使う戦略

→ Selected timeframe only(最速)
→ 1 minute data tick simulation(より正確)

理由:
指値・逆指値が「触れた/触れていない」判定は戦略結果に大きく影響するため、
1分足ベースでも Tick 動きを再現する精度が必要。
ただし、これもあくまでバックテスト精度が高くなるだけで、
“現実のスプレッド変動と完全一致するわけではない”点を理解して使う。


■ 2. Cross checks → Higher backtest precision とは?

★ Builder や Retester の後で実行される「耐久テスト(ロバストネス検査)」

公式ドキュメントでは、次のように説明されています:

It backtests the strategy again on the same data,
but with higher precision.
(同じデータを使い、より高い精度で再テストする)

つまり Cross-check では:

「メインのバックテスト(Main)」の精度とは異なる設定で再テストし、
そのときの動きの変化を見ることで EA の安定性(ロバストネス)を確認する

という役割を担います。


● Cross-check の基本的な考え方

  • Main(低精度)で好成績の EA が
  • Higher precision(高精度)で再テストしたときに
    結果が 大きく変わる ようであれば、

→ 「この EA は、特定の精度・特定のバー形状に依存している可能性が高い」
→ = 過剰最適化(Curve fitting)の疑いが強くなる

という判断材料になります。


● ただし「乖離=カーブフィット」と断定はできない

Petr が強調した重要ポイントです:

  • 結果が 似ていれば、安定している可能性は高い
  • 結果に 乖離があれば、注意すべきシグナルではある
  • しかし それだけでロバストネスは判定できない

Petr の言葉:

Using only this comparison to determine robustness is insufficient.
A strategy can pass the high-precision cross-check and still be curve-fit.

つまり:

Cross-check は“参考指標のひとつ”であり、
単独で最終判断を下すためのものではない。


● Cross-check の役割まとめ

  • EA が 精度を変えても安定しているか を見る検査
  • Builder の精度設定とは目的がまったく違う
  • 「精度の違いに弱い EA」=壊れやすい EA を早期に発見できる
  • ただし“通ったから完全に安全”でもない点に注意

● つまり役割はこう分かれる

  • Main(Data → Precision)
     → EA を “作る” ときに使う基礎精度
  • Cross-check(Higher backtest precision)
     → EA が “精度を変えても壊れないか” を確認する追加テスト

■ 3. 両者の違いを一言で

項目Data → PrecisionCross-check → Higher precision
目的EAを“作る”精度EAを“検査する”精度
タイミングBuilderで毎回フィルター通過後だけ
回数全EAに適用生き残ったEAのみ
効果EA品質の土台を作る過剰最適化EAを排除する
メリットスピード or 精度の選択可能追加の品質保証
デメリット低精度は品質が下がる時間がかかる

■ 4. Petr のアドバイスの意図

Petr が強調していたポイントは、
“Builder を速く回すこと=良い戦略が多く作れる” ではない
という点です。

彼の言葉:

“Quick does not always equate to quality”
(速さは必ずしも品質を意味しない)

つまり、Precision を低くして Builder を高速化すると、
確かに EA は大量に生成できますが、その分だけ 品質は不安定になる可能性が高いということです。


● Precision を低くして量産した場合の問題点

Selected timeframe only(最速)でEAを作ると、

  • バーの中の価格変動が再現されない
  • 利確・損切りが「刺さる/刺さらない」の判定がズレやすい
  • Stop/Limit を含む戦略では特に誤差が大きくなる

その結果:

Cross-check(高精度)でテストすると成績が崩れる EA が大量に出る。

これは Petr が「速さ=品質ではない」と言った理由です。


● Precision を上げて作った場合のメリット

Builder で最初から Precision を “1-minute data tick simulation” にすると:

  • 価格の再現性が高まり、
  • 利確・損切り判定のズレが減り、
  • EA の初期品質が向上し、
  • Cross-check で落ちる EA の数も自然と減る

結果として:

生成スピードは遅くなるが、後のふるい落としが圧倒的に楽になる。


● ただし「高精度=完璧」ではない

Petr の重要な補足:

  • スプレッドは現実では常に変動する
  • バックテストのスプレッドは固定
  • よって どの精度を使っても“現実と1:1にはならない”

つまり:

高精度は「より正確に近づく」だけであって、完全な再現ではない。


● Petr のアドバイスを要約するとこうなる

速さを優先して低精度で量産すると、
後で大量の不安定EAを捨てることになる。

一方、
Precision を高めて作れば、生成量は減るが、最初から質の良いEAが残りやすい。

そして最終判断には、
Cross-check(Higher precision)を併用することが不可欠。

■ 5. 結局、どう使い分ければよいのか?(完全版)

EAを作るときの「Precision」と、
完成したEAを検査する「Higher backtest precision」。

この2つは目的が違うため、
どう組み合わせるかで“量産型”にも“高品質型”にも調整できます。

以下では、Petr のアドバイスに基づく 推奨ワークフロー をまとめます。


● パターン①:とにかくEAを量産したいとき(初心者〜中級者向け)

Data → Precision
 Selected timeframe only(最速)

Cross-check(Builder または Retester)
 Higher backtest precision をON
 (= M1/Tick 精度で再テスト)

Retester
 通過したEAのみ再検査

この方法の特徴:

  • Builder が高速に回せる
  • EA を大量に生成できる
  • ただし 低精度ゆえに不安定EAも多く混ざる
  • 結果、Retester や Cross-check で大量に落ちる
  • 根気と時間が必要

こんな人向け:
「とにかく量を回したい」「あとでふるい落とす前提で作りたい」


● パターン②:質を重視したいとき(中級者〜上級者向け)

Data → Precision
 1-minute data tick simulation(またはTick)

Cross-check
 Higher backtest precision をON
 (BuilderでもRetesterでも良い)

この方法の特徴:

  • 最初から価格再現性が高い
  • EAの初期品質が高くなりやすい
  • Builder の速度は遅くなる
  • しかし Cross-checkでの脱落数が激減する
  • 結果としてトータルの時間は短くなることも多い

こんな人向け:
「EAの精度と安定性を優先したい」「量より質で攻めたい」


● Petr の推奨フロー(実務的ベストバランス)

Petr がメールで示した内容を整理すると、
最もおすすめなのは以下のワークフローです:

  1. Builderは Selected timeframe only で高速生成
  2. 初期フィルターを通過したEAだけを抽出
  3. そのEAに対して、M1 Tick(またはTick)で再テスト
  4. Cross-check → Higher precision で精度違いテスト

これは:

  • 最初の回転を速くして
  • 後で「質」をしっかり確認する

という 効率と品質の両立を目指す方法 です。


● 注意:高精度=完璧ではない

Precision を上げても:

  • スプレッドは現実のように変動しない
  • 実運用とは1:1で一致しない
  • Tick精度=完全な再現 ではない

高精度はあくまで “より正確に近づく手段” であり、
“完全再現” と誤解しないことが大切です。


■ 6. まとめ(完全版)

Data → Precision
= EA を“作るときの基礎精度”
(速さ or 正確さの選択)

Cross-check → Higher backtest precision
= EA を“精度を変えても壊れないか確認する検査”
(ロバストネス確認)


● 最重要ポイント

  • 両方必要
  • 片方だけではEAの品質は安定しない
  • Precision は「生成の質」
  • Higher precision は「耐久性の検査」
  • 一致・乖離は“参考指標のひとつ”であり、単独で判断しない

● 最終的な結論

速さだけを追うと、後で大量の不合格EAを捨てることになる。
精度だけを追うと、Builder が遅すぎて回らない。

だからこそ:

「低精度で作る → 高精度で検査する」
が、Petr の推奨する最も合理的な使い分け。