誰がデータを用意するのか(3環境の違い)

まず、3つの環境で「データを誰が用意するか」を整理します。ここが分かると、なぜPythonだけ入手の話が必要なのかが腑に落ちます。

MQL5 / MT5 内蔵データを自動使用 Pine / TradingView TVのデータを自動使用 Python CSVを自分で用意 FX・貴金属 JForex 株価指数など TVエクスポート
MQL5とPineはデータ供給が自動。外部から取ってくる必要があるのは主にPython編

FX・貴金属:JForex(Dukascopy)

FX通貨ペア(USD/JPY、EUR/USD など)と、XAUUSD(ゴールド)・XAGUSD(シルバー)を検証したいときは、スイスの Dukascopy 銀行が提供する JForex のヒストリカルデータが定番です。品質が高く、長期間のデータを無料でダウンロードできるのが利点です。

なお、FX業者ごとに価格は微妙に異なります。JForexのデータで検証した結果は「Dukascopyの価格での結果」であり、あなたが使う業者の価格とは完全には一致しません。この差も、第10回で扱う「環境によるズレ」の一種です。

株価指数など:TradingViewからエクスポート

S&P500やナスダックなどの株価指数、個別株、仮想通貨など、FX・貴金属以外を検証したいときは、TradingViewからのエクスポートが手軽です。このコースの題材である月末ロングも、S&P500を使うのでこちらが該当します。

同じ「S&P500」でも中身は1つではない

ひとくちにS&P500といっても、現物指数(SPX)・先物・ETF(SPY)・CFDなど複数の表し方があり、値も時間帯も少しずつ違います。 TradingViewでもMT5でも、どの「S&P500」を選んだかで結果が変わります。検証するときは、3環境でできるだけ近い対象を選ぶように意識し、それでも残る差は「対象が違うことによるズレ」として記録します(第10回)。

データを使う前の確認

どの入手先でも、読み込んだ直後に次の6点を確認する習慣をつけます。ここを飛ばすと、検証結果そのものが当てになりません。

  1. 期間の長さ:何年ぶんあるか。数か月では季節性の検証には短すぎます。月末ロングなら最低でも10年前後は欲しいところです。
  2. 穴(欠損):途中で日付が飛んでいないか。土日や祝日で休みになるのは正常ですが、平日が長期間抜けているのは異常です。
  3. 時刻の基準:日付が何時基準で区切られているか。基準がずれると「その日の終値」が1日ずれ、月末判定が狂うことがあります。
  4. 列名と形式:time・close などの列名、日付の書式、価格の小数桁が想定どおりか。
  5. 重複と異常値:同じ時刻の重複、OHLCの大小関係、ゼロ価格、桁違いの値がないか。
  6. 銘柄仕様:Bid/Ask、契約サイズ、ティックサイズ、取引停止時間、ロール方法が検証対象と一致するか。
欠損 時刻 価格の飛び 悪いデータで良い検証結果は作れない
検証前に、欠損・時刻・異常値を確認してからデータを使います。

データの扱いで気をつけること

最後に、データそのものの注意を2つ。1つ目はライセンス・利用規約です。ダウンロードしたデータは、多くの場合個人の検証・学習の範囲で使うもので、再配布や商用利用は規約で制限されていることがあります。データを人に配ったり公開したりする前に、提供元の規約を確認してください。

2つ目は、「良いデータでも、検証の結論を保証はしない」ということです。品質の高いデータを使っても、第3回の過剰最適化や、そもそものルールの妥当性の問題は消えません。データは検証の出発点を正しくするものであって、結論の正しさは別に確かめる必要があります。次回からは、いよいよこのデータを使って3環境で実装していきます。

チェックリスト

次の記事に進む前に、以下が自分の言葉で説明できるか確認してください。

ミニテスト

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

Q1. 外部からデータを取ってくる必要が主にあるのは?

MT5は内蔵データ、TradingViewは自社のデータを自動で使います。データを持たないPythonだけ、自分でCSVを用意する必要があります。

Q2. USD/JPY や XAUUSD(ゴールド)の日足データの入手先として本文が挙げるのは?

FX通貨ペアとXAUUSD・XAGUSDは、Dukascopyが提供するJForexのヒストリカルデータが定番です。株価指数などはTradingViewエクスポートを使い分けます。

Q3. ダウンロードしたデータを使う前の確認として、本文が挙げていないのは?

データは検証の出発点を正しくするもので、勝てるかどうかを保証しません。確認すべきは期間・穴・時刻基準・列名と形式・重複と異常値・銘柄仕様の6点です。