Backtest Reality Check
- ユーティリティ
- バージョン: 1.0
- アクティベーション: 10
Backtest Reality Check は MetaTrader 5 のユーティリティです。ストラテジーテスターのレポートを読んで測り、同じ EA がご自身の口座で実際に起こしたことも、同じ関数で測ります。二つを並べ、レポートの隣に差を出し続けます。
・採点して終わりにしません。レポートを測ったあと、その物差しを持ったまま実運用に付いていきます。口座で取引が増えるたびに測り直し、レポートの隣に差を出し続けます。
・実運用の取引が 30 に届かないうちは、差を差と呼びません。数字は灰色にして表示したうえで、まだ判定できないとパネルに書きます。材料が足りないうちは、答えを作りません。
・売買しません。注文を出すことも、変更することも、決済することもしません。ソースコードに、取引命令を呼び出している箇所は一つもありません。
■ 印が付いても、理由までは分かりません
行に印が付いたときの意味は、その値が右に書いてあるしきい値を越えた、ということだけです。この商品は EA の良し悪しを判定しません。その数字がなぜそう見えるのかも分かりません。相場つきの変化も、ブローカーの違いも、過剰最適化も、ただの偶然も、どれも似た形で数字に表れます。ここでできるのは測ることであって、判定することではありません。画面に出るのは、レポートから測った値と、その値がしきい値を越えたということまでです。
■ 実運用とレポートを並べた画面
Live vs Report のタブは、レポート側の値と、口座で実際に起きたことを同じ行に並べます。
Manual (0) Link Unlink
Report: GridBot_EURUSD_M15.htm
Report Live Diff
Trades 28 140 -
Win rate 67.86% 41.43% -26.4 pt
Profit factor 3.50 1.64 -1.86
Expected payoff 32.14 7.16 -24.99 0.22x
Avg win 66.32 44.14 -22.18
Avg loss -40.00 -19.00 +21.00
Max drawdown 0.40% 0.38% -0.0 pt
Avg holding time 5.9 h 4.9 h -0.9 h
Trades per week 5.64 5.52 -0.12 0.98x
Avg lot 0.10 0.10 -0.00
Win rate differs from the report by -26.4 pt over 140 trades
実運用の取引は、レポートを読んだときと同じ形に組み立ててから、レポートと同じ測定関数に通します。同じ式を二度書いたのではないので、レポート側と実運用側で数字がずれるとしたら、共有しているその関数を書き換えたときだけです。片方だけ別の計算をしていた、ということが起こりません。
取引数の行だけは差を出しません。数ヶ月のバックテストと数週間の実運用で本数が同じになるはずはなく、引き算に意味がないからです。割合どうしの差は、パーセントではなくポイントで出します。パーセントの差をパーセントと書くと、別の意味になってしまうためです。引き算より比のほうが読みやすい行では、比も右に並べます。実運用の値をレポートの値で割ると、その数になります。
比べる相手の EA は、口座の履歴から自動で見つけます。履歴に残っているマジックナンバーを拾って EA ごとの行にするので、設定は要りません。マジックナンバーを持たない取引は Manual (0) という一行にまとまります。人が手で出した注文と、マジックナンバーを設定し忘れた EA は、外からは見分けがつかないからです。
■ まだ言えないときは、まだ言えないと言います
Not enough live trades yet (18 of 30)
Win rate 50.00% vs 67.86% - with 18 trades, a gap this size can occur by chance
実運用の取引が 30 に届かないうちは、Report・Live・Diff の3列すべてを灰色にして、まだ判定できないと表示します。数字そのものは隠しません。隠すこともまた、不誠実だからです。差は見せますが、差とは呼びません。
Win rate の差は、しきい値を越えたかどうかではなく、偶然の範囲かどうかで扱います。レポート側の割合と実運用の取引数から標準誤差を出し、その 1.96 倍の幅に差が収まっているうちは、偶然に起こりうるものとして扱います。
この規則は、二つの画面を見比べれば、ご自身で再現できます。どちらの画面も同じレポートを測っているので、幅を動かしているのは実運用の取引数だけです。取引数の少ないほうでは幅が差より広いので、偶然に起こりうる、と表示されます。多いほうでは幅が差より狭いので、その言い方は消えて、差だけが示されます。
この判定は、わざと EA の側に寄せてあります。変わっていない EA に変わったと言うくらいなら、待つほうがましだからです。
まだ言えない、と言えること。それがこの商品の中身です。いつでも答えを出す道具は、何も測っていません。
■ レポートの置き方
テスターのレポートは HTML で保存してください。保存のときの選択は HTML と XML の二つで、どちらも既定になっていません。ここを取り違えると、フォルダに置いてもレポートが読み込まれません。
XML を選んで保存したファイルは、現在のバージョンでは読めません。フォルダの中にそのファイルがあると、パネルにファイル名を表示し、HTML で保存し直すよう案内します。
保存先は MQL5\Files\BacktestRealityCheck\reports です。このフォルダは起動時に自動で作られます。中が空のあいだは、置くべき絶対パスをパネルに表示します。
■ 読むもの/送らないもの
読むのはテスターのレポートと、口座に残っている取引の履歴の二つだけです。価格もチャートも経済指標も、外部のデータも読みません。チャートに適用しますが、そのチャートの銘柄は見ていません。
数字はレポートの明細から取っています。項目名に依存していないので、どの言語の環境で保存したレポートでも同じ数字が出ます。同じバックテストを、ターミナルの表示言語を変えて二回保存し、両方を読ませてみれば確かめられます。
テスターのレポートに入っているのは、EA の名前、銘柄、期間、設定した値、ブローカー名、通貨、初期証拠金、レバレッジです。口座番号も氏名も入りません。読み込みも計算も手元のパソコンの中だけで終わり、外部との通信は一度もしません。どこへも何も送りません。
■ できないこと・やらないこと
・口座に対する操作を一切しません。発注も決済も、SL/TP の変更も、EA の起動や停止もしません。
・ヘッジ口座向けです。ネッティング口座ではポジションが合算されるため、EA ごとの数字も合算されることがあります。
■ 無料デモ
Sample data - not a real report
無料デモはストラテジーテスターの中で動きます。内蔵のサンプルが最初から入っているので、起動した瞬間から数字の入った画面が出ます。
Sample data - not a real report の一行は、最初から最後まで画面に出ています。ターミナルのジャーナルにも同じ行が出るので、どちらを読んでも、サンプルの数字を実際の口座の数字と取り違えることがありません。本番のチャートでは、この行は出ません。
■ パラメーターと動作環境
InpReportFolder InpUseCommonFolder InpRescanSeconds InpMinTradesForStats
InpFlagTopTradeShare InpFlagEquityR2 InpFlagMinTrades InpIncludeSwapCommission
InpHistoryDays InpPanelX InpPanelY InpFontSize InpShowTesterSelfDemo
パラメーターは十三個で、すべて既定値のまま動きます。
MetaTrader 5 のユーティリティとして、使っていないチャートに一つ適用します。ヘッジ口座向けです。リリース前に自動テストで確認しており、取引命令の呼び出しも、DLL の呼び出しも、外部との通信も、一つもありません。
これは決済済みの取引を読んで数える道具であって、これから起きることについては何も言いませんし、成果を約束することもありません。取引には損失が生じるおそれがあります。まずはデモ口座でお試しください。
