この記事の内容
この記事を読むと…
- tick件数比率と分のカバー率の分母を区別する。
- 確定足の参照、費用、テスター時計の限界を確認する。
- 同じ海外時計表示でも異なるUTC/JSTの瞬間を保存する。
記事内で用語を調べる
バックテスト BidとAsk(売値と買値) スプレッド コミッション(売買手数料) ドローダウン 勝率利益が出たバックテストでも、データ、執行仮定、パラメーター選択が非現実的なら実運用と大きく異なります。MT4/MT5のモード、費用、未使用データの確認を通じ、差の原因を調べる手順です。
MT4とMT5のテスターで何が違うか
両方ともEAを履歴で実行します。MT5は複数銘柄と最適化パスのエージェント分散に対応しますが、一回のEAが全コアを使う意味ではありません。MT4にも遺伝的最適化がある一方、標準テスターは対象外銘柄で売買を実行しません。別々の報告を足しても共有資金のポートフォリオにはなりません。ビルド、コンパイル済EA、入力、銘柄仕様、口座仮定を保存します。MT4のHistory Centerから取得した履歴は業者サーバーの履歴と異なる場合があります。期間の長さや足名だけでは適否が決まりません。MT4の基礎とMT5の機能比較も確認してください。
多いtick数は、長い実tick時間を意味しない
品質の百分率を比べる前に、分母が時間区間か個別レコードかを特定します。
図全体を見るには横にスクロール →
横にスクロールすると図全体を確認できます。
仮定:同じ長さの架空三分間で各分に足があります。10・10・80件が模型の全件数で、第三は生成だけです。実際の配信やテストを評価する例ではありません。
三つの分足はすべて存在します。二つの分に実tick各10件、第三は分足があるのに実tickがなく、模型で生成80件を加えます。最終データは100件です。
独自の実tick分カバー率は2/3 ≈ 66.67%、実レコード比率は20/100=20%。一分内の件数が増えると後者の分母は変わりますが、履歴に別の一分が追加されるわけではありません。互換な百分率でも戦略の優位性でもありません。
MetaQuotesの実tick・生成tickの説明では、分足があり実tickがない区間の生成が扱われています。80という件数はこの教材で置いた仮定であり、レポート値ではありません。どちらの独自指標もModelling Quality欄の定義ではありません。
モードと履歴データの品質
MT4のOpen prices only、Control points、Every tickは、足履歴と生成経路を使います。Control pointsは粗い予備評価です。MT5には保存済の業者tickと1 minute OHLCもあります。日足シグナルでも足内ストップは影響し得る一方、始値動作に適合するルールは限界を確認して簡略化できる場合があります。MT5では分足があり実tickがない分に生成を補えます。実tickのスプレッドは分内で変化し得ますが、生成にはその分足に割り当てた気配差を使います。
対象商品と期間のデータ範囲を調べます。MT4への外部tick導入には互換な準備手順が必要で、生成テストファイルや追加ソフトが関わる場合があります。HST足だけで真正なtick検証は保証されません。MT5でも実tickの範囲と生成代替を確認します。
費用と執行設定を一件ずつ照合
商品・口座のスプレッド、手数料、資金調達費、遅延設定を確認します。標準MT4はBid履歴に指定スプレッドを加え、既定ではテスト開始時の気配差を使います。完全な履歴変動ではありません。架空の5桁EUR/USDで0.00001の12 pointsは、0.0001の1.2 pipです。MT5では口座設定か独自手数料を使え、入口・出口・両方の課金を一取引で照合します。pips損益モードは手数料・スワップ・証拠金管理を省きます。遅延模擬は条件比較であり、全ライブ流動性や約定の復元ではありません。
検証をゆがめる三つの偏り
先読みは判断時点で使えなかった情報の利用です。shift 0は進行中の現在足を指し、10:15には10:00開始H1のそこまでの高値は分かりますが最終高値は分かりません。確定足ルールなら待ちます。すべての0を1へ置き換えると、正当な新足検出や現在価格ルールまで変わります。時刻、コピー件数、配列の添字方向を入力ごとに確認します。
成功した架空のCopyRatesで、古い順から現在までの終値が100・101・102・103の四件とします。動的配列のas_series=falseならrates[1].closeは101、最後の確定終値はrates[2].close=102。as_series=trueならrates[1].closeが102です。「最後の確定終値>101.5」は真ですが、通常配列で誤ってrates[1]を読むと却下されます。古い足を取り違えた例で、未来情報の証拠ではありません。戻り件数が少ないのに四件あるとして参照しないでください。
過剰適合は、反復探索で都合のよいノイズを選ぶことで起こり得ます。高い勝率やprofit factor、低いドローダウンだけでは証明できません。生存バイアスは、過去に存在したが後に消えた商品や口座を対象から外す偏りです。当時利用可能だった集合を作ります。結果が必ず30–50%膨らむという普遍的な値は示していません。
報告とウォークフォワードを読む
純損益、取引数、下落、費用仮定を合わせて読みます。元の架空PLN口座は開始10,000、確定益500でbalance 10,500、含み損700なら他変化前のequityは9,800です。balanceだけでは見えないエクスポージャーがあります。profit factorやSharpeの閾値で戦略を認証せず、感応度と分離した評価データを調べ、レポートとログを保存します。
ウォークフォワードは、順次選んで凍結したパラメーターを後の期間で評価します。同じ基準で年率化し、時系列の未使用期間取引を確認します。WFEだけで頑健性や過剰適合は証明できず、IS収益がゼロ・負なら解釈も難しくなります。ウォークフォワードの手順を参照してください。
OOSは該当するパラメーター探索から除外したデータ上で、凍結規則を評価します。データ・約定仮定を持つシミュレーションであり、将来の実運用成績の確認ではありません。
MT4/MT5の限界と別手段の選択
テスターはコード化した規則を、そのデータ・執行模型で評価します。裁量も、基準とリプレイ手順を残せば比較でき、必ず検証不能なわけではありません。必要な入力や執行を表現できなければ別手段を選び、現行資料・データ条件を確認します。Forex Testerの比較は別のリプレイ手順、戦略検証の方法は製品に依存しない進め方を扱います。
テスターのTimeGMTでUTCフィルターを検証できるか
MT5テスターのTimeGMTは、模擬TimeTradeServerと同じです。二関数の一致だけで業者の過去UTCオフセットは復元できません。各時刻軸を特定し、明示した入力で換算を検証します。「常に2時間引く」だけではサーバー時刻の変化を記録できません。
同じ瞬間を、別の時刻表示で照合する
横にスクロールすると図全体を確認できます。
模型では12:00以上13:00未満UTCを許可します。12:00 UTCの判断は範囲内、仮定UTC+2なら表示14:00です。この14をUTCとして判定すると却下されます。+2はこの例だけの仮定です。終了境界、日付変化、実際に文書化されたオフセット変更を別々に試してください。
演習:テスターの二時計が等しければ、ライブでも同じUTC条件になりますか。
いいえ。二時計の一致はシミュレーション内だけの関係です。明示的なUTC、該当日の文書化されたオフセット、区間境界テストで換算を評価します。関数名だけでは業者の時刻帯は分かりません。
次の実行前にCSVを書き出して点検
列名timestamp,open,high,low,closeと明示的なオフセットを用意します。ローカルCSVカバー率チェッカーで予定開始・終了の足時刻と間隔を指定します。元の架空M1例08:00–08:11は12行でも、有効な異なる時刻は8個で、空き4枠、重複行2件、OHLC不一致グループ1件です。報告を保存し、商品の取引セッションと照合します。OHLCの完全性は実tickの完全性を証明せず、チェッカーは価格を補完したりテスターの執行を検証したりしません。
次に行うこと
- 対象商品・日付の文書化されたデータを選びます。MT4の足履歴・生成モード・外部FXT準備、MT5の実tick範囲・生成代替を点検し、提供元、時刻帯、欠損、設定を保存します。モード名だけで妥当とは判断しません。
- 口座に記載された費用、資金調達費、スプレッド、利用できる遅延設定を使い、不利な条件も試します。固定7 USDやpipペナルティをすべての業者へ当てはめないでください。
- 戦略に適切なら4年で選び、続く1年を凍結OOSへ分けます。同じ年率基準で比べますが、WFE<0.5だけで過剰適合と断定しません。標本数、市況、費用を検討し、最後の未使用評価を残します。
- 価格・指標が利用可能となる時点を確認します。確定足が必要な規則だけ、0から確定足参照へ変更します。シグナル時刻と取引を比べ、結果30%の差だけで先読みと判断しないでください。
日本で照合するCSV:同じ01:30でも別の瞬間
追加の架空レコード例です。2026年11月1日のニューヨークは夏時間終了により01:30が二度あります。01:30−04:00と01:30−05:00は、表示時計が同じでも異なる瞬間です。実際の取引時間や業者tickの存在を主張する例ではありません。
同じ時計文字列だけで重複を判定せず、元のオフセットを保存します。 小さな画面では横にスクロールするか、図を拡大できます。数値と要点は下のテキストにも記載しています。
JSTでは同日14:30と15:30になり、一時間違います。タイムゾーンを消した文字列で重複排除すると二時刻を一つへ潰し得ます。元のオフセットと時刻帯を保持し、UTCの瞬間へ変換してから照合してください。日本国内に夏時間がなくても、海外CSVの曖昧な時刻は消えません。
理解度を確認
練習の目安: 約2分.
答えと解説を見る
正解です。実tickを持つ別の分を追加していないので、時間区間の比率は変わりません。
よくある質問
MT4の品質99%と90%は何が違いますか。
MT5テスターをどう設定しますか。
MQL5の先読みをどう防ぎますか。
手作業とコード検証のどちらが有効ですか。
出典と検証
- www.metatrader5.com
内容の参考資料。記事に記載した範囲と前提を確認してください。
- www.metatrader5.com
内容の参考資料。記事に記載した範囲と前提を確認してください。
- www.metatrader4.com
内容の参考資料。記事に記載した範囲と前提を確認してください。
- docs.mql4.com
内容の参考資料。記事に記載した範囲と前提を確認してください。
- www.mql5.com
内容の参考資料。記事に記載した範囲と前提を確認してください。
- www.mql5.com
内容の参考資料。記事に記載した範囲と前提を確認してください。
- data.iana.org
内容の参考資料。記事に記載した範囲と前提を確認してください。
計算例には前提条件を明記しています。現在の市場データや提供会社の取引条件の代わりにはなりません。
