この記事の内容
この記事を読むと…
- API実行可否と履歴品質の問題を切り分ける。
- 判断時刻で使える版を選びnullと0を区別する。
- JSTからUTCへ変換し日付境界の未来情報を防ぐ。
記事内で用語を調べる
バックテスト エキスパートアドバイザー(EA) 経済カレンダーEAがデモでAPIデータを取得できても、テスターでは同じ応答を得られない場合があります。サーバー障害と決めず、まず実行環境で関数が使えるか確認します。今日の値を昔の判断へ割り当てると別の試験になります。ここでは版・修正・利用不可を明記した架空記録を再生し、外部APIへ接続しません。
WebRequestが動けばバックテストできる?
MQL5公式はStrategy TesterでWebRequestを実行できないと明記します。端末の許可URLへ追加しても制約は変わりません。関数非対応、ネットワーク障害、認証失敗、通常動作時の応答を区別します。
外部の経済観測が必要な規則でも失敗を0へ置換しません。0は正当な観測値かもしれず、未取得とは違います。ファイルへ替えるだけでも、当時未知だった修正値が含まれれば不適切。観測の定義、版、値、利用可能時刻と欠損方針を先に指定します。EAの基礎でデータ・判断・執行を分けて確認できます。
オンラインとオフラインを同じデータ契約に
オンライン側は提供者の応答、試験側は判断時点で利用可能な保存記録を選択します。判断ロジックへは有効値・明示的利用不可・エラーという同種の結果を渡します。これは独自の設計例で、完成ロボットや全API互換性ではありません。アダプターの変更で意味や欠損処理を黙って変えません。
生応答と試験用レコードを分け、出所・schema版・取得時刻・利用可能性の証拠を残します。観測の対象期間と初めて知り得た時刻は別。日付しか分からないvintageから秒単位公表時刻を捏造しません。
FREDのreal-time periodは今日分かる過去と過去時点で分かった情報を区別します。版管理データの例で万能FX APIではなく、日単位の範囲が正確なUTC公表時刻を提供するとは限りません。個別提供者の時系列を確認します。
FileOpenは決められたファイル領域を使い、試験中の相対パスは通常端末と同じ場所とは限りません。openとreadの成功を確認し、空表を完全履歴として扱わず、欠損を認識可能な状態へします。
過去の判断が使える版
三つの架空応答履歴
架空観測GDP-model、2026年10月1日、全時刻UTC。実際のGDP公表・API記録ではありません。availableAtはモデルのアクセス可能時刻で、注文の約定時刻ではありません。
| availableAt | revision | value |
|---|---|---|
| 2026-10-01T12:00:00Z | initial | "1.0" |
| 2026-10-01T13:00:00Z | revised | "1.4" |
| 2026-10-01T14:00:00Z | unavailable | null |
12:30は1.0、13:30は1.4、14:30は最新のnullにより利用不可。古い1.4へ戻らず、0にも置換しません。
当時利用できた版を再生する
横にスクロールすると図全体を確認できます。
値が1.2を超えたら条件成立という別の架空規則は12:30では不成立。後の1.4を代入すると価格履歴が同じでも判断を逆転させます。情報の利用可能性の検査であって収益の証明ではありません。ツール自体は版を選ぶだけでシグナル・リターンを計算しません。
最新値が利用不可でも前の値を保持する戦略なら、許容経過時間と欠損理由を先に定義した別方針にします。本モデルは明示nullで止めます。有利な結果を見てfallbackを追加し、同じ試験として提示しません。
JSTの「10月2日」という日付だけでは、その日のどの判断に使えたか分かりません。入力器はZ形式のみなので、+09:00や日本語日付をそのまま貼らず、同じ瞬間のUTCへ変換してから使います。
小さな画面では横にスクロールするか、図を拡大できます。数値と要点は下のテキストにも記載しています。
- 初回版の利用可能時刻
- 2026-10-01T14:50:00Z – JST10月1日23:50、value="150.00"。
- 判断時刻
- 2026-10-01T15:00:00Z – JST10月2日00:00。初回版150.00を選択。
- まだ使えない修正版
- 2026-10-01T15:10:00Z – JST10月2日00:10、value="150.20"。同じUTC日でも判断より後。
ローカル再生器で確認できること
数値のversion 1とevents配列を含むJSONを使います。各件はavailableAt、observation、value、revisionの四項目。availableAtはYYYY-MM-DDTHH:mm:ssZで小数秒や別オフセットは不可。observationとrevisionは文字列、valueは小数点数値の文字列またはnullで、Numberへ変換しません。1–200件・64 KiB、observation/value128文字、revision64文字までです。識別子やドット小数を翻訳しません。
判断時に利用できた情報を再生
ブラウザー内だけで動く教材です。口座・APIに接続せず、入力を送信・永続保存しません。パスワードや個人情報は入力しないでください。
decisionAtも同じUTC形式で別入力。利用可能時刻が判断時刻以下の各観測最新版を選び、初回より前は値なし。同一観測・同一時刻の二件を貼付順で決めず曖昧として拒否します。revisionは数値の時系列カウンターではありません。
貼付イベントのみを扱い、ダウンロードやAPI鍵を使いません。構文が正しいJSONでも真正な履歴とは限りません。後の修正版に初回の時刻を付けたら、正しい選択器でも誤った前提を再生します。実研究では出所と公表時刻を証明する資料を保存します。
テスター説明は各エージェントと端末のファイル領域を区別します。並列試験中に最新応答で上書きせず、固定データを使います。試行マニフェストにはendpoint名だけでなく保存データの版を残します。
Pythonバックテストで時刻結合、経済カレンダーで修正値を確認します。入力再生は約定再生ではありません。Bid/Ask、費用、数量、サーバー応答は別要素。注文なしで数判断の入力を比較してから差の原因を調べます。
EA成果を評価する前の三工程
- データ契約と二アダプターを分離し、生応答・観測定義・利用可能性の証拠を保存。欠けた過去版を制約として記し、今日の値を過去知識にしない。
- 初回前、初回と修正の間、明示利用不可後を追跡し、ちょうど境界時刻と同一時刻衝突も試す。
- 意図したファイルを実際に読み、欠損を認識できるか確認。データ版と報告を保存し、入力差の説明後にシグナル・執行・費用を別検査。正しい再生だけでは将来収益性を証明しない。
理解度を確認
練習の目安: 約3分.
答えと解説を見る
12:00の記録が該当し、その後の修正は当時の入力を書き換えません。
よくある質問
URLを許可すればテスターでWebRequestが動く?
今日取得した過去観測表で十分?
nullは0か以前の値?
再生が正しければバックテスト全部が正しい?
出典と検証
- www.mql5.com
内容の参考資料。記事に記載した範囲と前提を確認してください。
- www.mql5.com
内容の参考資料。記事に記載した範囲と前提を確認してください。
- fred.stlouisfed.org
内容の参考資料。記事に記載した範囲と前提を確認してください。
- www.metatrader5.com
内容の参考資料。記事に記載した範囲と前提を確認してください。
計算例には前提条件を明記しています。現在の市場データや提供会社の取引条件の代わりにはなりません。
