まず、ズレを観察する

3環境の結果(トレード数・勝率・累積リターン・最大ドローダウン)を、1つの表に並べてみてください。おそらく、まったく同じ数字にはならないはずです。トレード数が1〜2回違ったり、累積リターンが数%〜数十%違ったりします。

ここで慌てる必要はありません。ズレること自体が正常で、むしろ全部ピッタリ一致するほうが不自然です。大事なのは「どれが正しいか」と犯人探しをすることではなく、ズレの一つひとつが、どの条件の違いから来ているかを説明できることです。順に見ていきます。

同じルール MQL5 Pine Python データの違い コストの違い 約定の違い 結果A結果B結果C 3つの要因を通って、少しずつ違う結果になる
同じルールでも、データ・コスト・約定という3つの関門を通るあいだに結果はずれていく

原因①:使うデータの違い

3環境は、それぞれ違う出どころのデータを使っています。MQL5はMT5業者のデータ、PineはTradingViewのデータ、PythonはあなたがエクスポートしたCSV。第6回で触れたとおり、同じ「S&P500」でも複数の姿があります

つまり、データの違いは最も影響が大きく、かつ気づきにくいズレの元です。結果を比べる前に、3環境ができるだけ近い対象・近い期間を見ているかを、まず確認します。

原因②:スプレッド・手数料

コスト(スプレッド・手数料)を入れるかどうか、いくらにするかで、成績は大きく動きます。月末ロングは月に1回だけの売買なので影響は比較的小さいですが、それでも無視はできません。

3環境でコスト条件をそろえていないと、そのぶんが丸ごとズレになります。比較するなら、まず「Pythonもコストを引く」「3つとも同じくらいのスプレッドにする」と条件を合わせるのが先です。売買回数が多い戦略ほど、この差は雪だるま式に効きます。

原因③:約定タイミング

第7〜9回で繰り返し触れた点です。いつの価格で約定したことにするかが、環境で違います。

つまり、MQL5とPineは「翌日の始値」、Pythonは「当日の引け」。約定の瞬間が1本ぶんずれています。1日ぶんの値動きがまるごと片方に入るか入らないかの差なので、月末のように値が動きやすい時期だと、無視できないズレになります。 どちらが正しいということはなく、どちらも「そう仮定した」という約束ごとです。比較するなら、この仮定もそろえる(たとえばPythonも次の足の始値で約定するよう書き換える)必要があります。

ズレを消すのではなく、説明できるようにする

目標は、3環境の数字を無理やり一致させることではありません。データ・コスト・約定の3条件をそろえていけば差は縮みますが、それでも完全には一致しないのが普通です。 大事なのは、残った差について「これはデータの対象が違うから」「これは約定の仮定が違うから」と説明できること。原因を言えないズレが残っているうちは、まだどこかに勘違いか間違いが隠れている、というサインです。

その他のズレの元

主な3つ以外にも、細かいズレの元があります。知っておくと、原因不明の差に出会ったときの手がかりになります。

この経験から持ち帰ること

このコースで一番伝えたかったのは、コードの書き方そのものよりも、「検証結果は条件しだいで動く」という感覚です。同じルールを3つで書いて初めて、1つの成績の数字が、いかに多くの前提の上に乗っているかが実感できます。

だから、他人が公開している「バックテストで年利◯%」という数字を見たときも、どのデータで・どのコストで・どの約定で出した数字かを問う癖がつきます。それが書かれていない成績は、そのまま信じるには足りません。検証コース(過剰最適化)で学んだ「何通り試したか」と並んで、これも数字を疑うための大事な視点です。

実運用へ進む前に、通常・悪化・ストレスのコスト条件と、 フォワードテスト・停止基準を固定してください。 3環境の一致は実装確認であって、将来の利益保証ではありません。

月末ロングという簡単な題材を使いましたが、やったことは本格的な戦略検証と同じです。ここで身につけた「同じルールでも環境で結果はぶれる」「差は条件で説明する」という姿勢は、この先どんな戦略を検証するときにも効いてきます。お疲れさまでした。

データ コスト 約定タイミング ズレは失敗ではなく、原因を切り分ける材料
環境ごとの検証結果が違うときは、データ・コスト・約定を順に確認します。

チェックリスト

コースの締めくくりとして、以下が自分の言葉で説明できるか確認してください。

ミニテスト

最後に4問だけ確認です。不正解なら別の選択肢を選び直せます。正解すると解説が表示されます。

Q1. 同じルールなのに3環境で結果がズレる、と分かったときの正しい受け止め方は?

ズレること自体は正常で、全部一致するほうが不自然です。大事なのは犯人探しではなく、差の原因を条件の違いとして説明できることです。

Q2. 影響が最も大きく、かつ気づきにくいズレの元として本文が挙げるのは?

同じ「S&P500」でも現物・先物・ETF・CFDで別物になり、提供元や期間でも変わります。比較の前に、近い対象・近い期間を見ているか確認します。

Q3. 約定タイミングについて、本コースの実装の関係は?

MQL5・Pineは翌日の始値、Pythonは当日の引け。1日ぶんの値動きが入るか入らないかの差で、月末のような動きやすい時期には無視できません。

Q4. 他人の「バックテストで年利◯%」という成績を見たとき、このコースが勧める見方は?

成績は条件とセットで初めて意味を持ちます。データ・コスト・約定の前提が書かれていない数字は、そのまま信じるには足りません。過剰最適化の「何通り試したか」と並ぶ、数字を疑う視点です。