ホーム > ブログ > 確定足だけで判断するEAはなぜリペイントしないのか

MQL5EA設計バックテスト

確定足だけで判断するEAはなぜリペイントしないのか

公開日: 2026-11-01読了目安: 約6分
⏱ 本記事は公開日時点の情報です。EAの実績数値(PF・DD・年率)は運用や再検証で変動するため、最新値は各EAページでご確認ください。 最新のEA実績を見る →

結論から書くと、確定足だけで判断するEAのシグナルが変わりにくいのは、判断材料がその時点で動かなくなっているからです。形成中のバーは、終値も高値も安値も次のティックで変わる可能性があります。一方、閉じたバーの四本値は、通常は確定後に動きません。

ただし、確定足を読んでいれば安全とは言い切れません。インジケーターの計算や上位足の扱い次第で、確定足を使っているつもりでも未来の値が混ざることがあります。

なぜ形成中バーは危険なのか

MQL5では、シフト0が形成中のバー、シフト1が直近の確定足です。シフト0の終値は「いまの価格」にすぎません。これを判断に使うと、次の問題が起きます。

  • ティックごとに条件が成立したり消えたりし、一度エントリーした根拠があとから消える
  • 閉じたあとのチャートには残らない一瞬のシグナルで約定する
  • テスターではティックの生成方法によって結果が変わりやすく、バー内の値動きが実際と異なるとその差が成績に直結する
項目形成中バー(シフト0)確定足(シフト1以降)
判断材料の値確定まで変化する通常は変化しない
シグナルの再現性低い高い
エントリーの速さ速い確定を待つ分だけ遅い
テスターのティック方式の影響判断自体が変わりうる判断への影響は小さい(決済には残る)

形成中バーの利用が常に誤りというわけではありません。ブレイクアウトを即座に捉える設計もあります。その場合は「バー内の動きに依存している」と認めたうえで、実ティックでの検証を重視する必要があります。

おすすめブローカー比較 →

🎁 無料EAをダウンロード

📧 無料メール講座(全8通)+登録者限定 MT5 インジケーター13本パック

登録するとすぐに、サイトの MT5 インジケーター13本をコンパイル済みファイル(.ex5)・ソースコード・使い方ガイドにまとめた登録者限定パックのダウンロードリンクが届きます。続けて、FX自動売買の本質、バックテストの正しい見方、ブローカー選びのコツなどを全8通(最初の5日間は毎日1通、その後は登録7・14・30日後)でお届けします。MQL5 Market 版(ローンチ価格・販売数に応じて段階的に値上げ)の値上げ前のお知らせも届きます。当サイトのEAは提携ブローカーのリアル口座があれば無料です。

※ プライバシーは厳守。配信解除はいつでも可能です。

シグナル確定の設計

CopyRatesは開始位置と並び順を明示する

新しいバーの最初のティックで一度だけ、確定足を読みます。

datetime g_lastBar = 0;

void OnTick()
{
   datetime t = iTime(_Symbol, _Period, 0);
   if(t == 0 || t == g_lastBar) return;

   MqlRates r[];
   ArraySetAsSeries(r, true);
   if(CopyRates(_Symbol, _Period, 1, 2, r) != 2) return;

   g_lastBar = t;
   // r[0]が直近の確定足、r[1]がその一つ前
}

要点は3つです。開始位置を1にして形成中バーを取得範囲から外すこと、ArraySetAsSeries で並び順を決めること、取得に失敗したら g_lastBar を更新せず次のティックで再試行することです。並び順の指定を忘れると、配列の先頭は最も古いバーになります。

iBarShiftは上位足で落とし穴になる

上位足を参照する場合、iBarShift が返すのは「その時刻を含むバー」です。現在時刻を渡せば、通常は形成中の上位足が返ります。

int s = iBarShift(_Symbol, PERIOD_H1, TimeCurrent(), false);
if(s < 0) return;
double closedH1 = iClose(_Symbol, PERIOD_H1, s + 1);

確定した上位足が欲しいなら、このように1つ古いバーを指定します。

典型的なリペイントは、下位足チャートに上位足の値を描くインジケーターで起きます。過去の下位足それぞれに、同じ時刻を含む上位足の終値を割り当てると、その時点ではまだ存在しなかった最終値が過去に描かれます。チャート上では的中して見えても、リアルタイムでは同じ判断ができません。

第4引数の exact を false にすると、該当バーがないときに近いバーが返ります。データ欠損に気づきにくくなるため、取得したバーの時刻も確認すると安全です。別銘柄や別時間足のデータは更新が遅れることもあるので、期待した時刻のバーかどうかを照合してから判断します。

再起動時の二重判定を防ぐ

上のコードの g_lastBar は、EAの再起動で初期値に戻ります。同じ確定足で再度判定されて二重にエントリーしないよう、保有ポジションや直近の約定時刻も確認する設計が必要です。

利用者ができる確認手順

ソースコードが読めなくても、次の方法である程度は確かめられます。

  1. ビジュアルモードで見る: テスターのビジュアルモードで、エントリーの時刻がバーの始まり付近に揃うかを確認する。バーの途中で頻繁に約定するなら、形成中バーを使っている可能性がある(決済は別)。
  2. モデリングを変えて比較する: 同じ期間・同じ設定で、始値のみ、全ティック、実ティックに基づく全ティックを試す。エントリーの回数や時刻が大きくずれるなら、バー内の動きへの依存を疑う。
  3. インジケーターの矢印を記録する: 矢印が出た時刻をスクリーンショットなどで残し、数本後のバーと見比べる。位置が変わったり消えたりするならリペイントしている。
  4. 配布元に確認する: 確定足で判断しているか、上位足をどう扱っているかを問い合わせる。

どれも状況証拠であり、これだけで「リペイントなし」と証明はできません。インジケーターを試すなら、無料インジケーターで手順を練習し、EAの導入はEA設定方法を参考にしてください。

限界と注意

確定足での判断には、都合の悪い面もあります。

  • エントリーが遅れる: 確定を待つ間に価格が進み、不利な位置で入ることがあります。急騰急落の局面では、その差が大きくなりえます。
  • バーの始まりのコスト: 新しいバーの最初のティックに注文が集まる設計では、スプレッドが広い時間帯や窓開けの影響を受けることがあります。
  • 未来を参照するインジケーターは防げない: ZigZagのように後から形が変わるものや、確定に後続のバーが必要なものは、読む位置によっては確定足でも値が変わります。
  • 確定足も業者ごとに違う: サーバー時刻や配信レートが違えば四本値も変わるので、同じEAでも業者が変われば判断が変わることがあります。ヒストリーがあとから修正される可能性も否定できません。
  • 決済はバー内で起きる: エントリーの判断が確定足でも、ストップロスや利確はバーの途中で約定します。この部分は引き続きティックの質に左右されます。

そして最も重要なのは、リペイントしないことと儲かることは別だという点です。私たちのEAにも、過去データでの検証は良好でありながら、デモ口座でのフォワードテストではマイナスになっているものがあります。確定足かどうかは検証結果を信頼するための前提の一つで、将来の成績を示すものではありません。また、確定足を使うかどうかはEAの設計ごとに異なるので、EAを選ぶ際は個別に確認し、実測ランキングの数字とあわせて判断してください。関連する検証の考え方はEA・MT5ノウハウにまとめています。

まとめ

  • 形成中バーの値は確定まで動くため、シグナルが消えたり変わったりする
  • 確定足で判断すれば判断材料は固定され、ティック生成方式の影響も受けにくくなる
  • CopyRates は開始位置と並び順を明示し、取得失敗時は再試行する
  • iBarShift は形成中の上位足を返しやすいので、確定足を読むならシフトをずらす
  • 上位足の描画と、未来を参照するインジケーターはリペイントの典型例
  • 確定足には遅れとコストの問題があり、利益を約束するものではない

📧 無料メール講座(全8通)+登録者限定 MT5 インジケーター13本パック

登録するとすぐに、サイトの MT5 インジケーター13本をコンパイル済みファイル(.ex5)・ソースコード・使い方ガイドにまとめた登録者限定パックのダウンロードリンクが届きます。続けて、FX自動売買の本質、バックテストの正しい見方、ブローカー選びのコツなどを全8通(最初の5日間は毎日1通、その後は登録7・14・30日後)でお届けします。MQL5 Market 版(ローンチ価格・販売数に応じて段階的に値上げ)の値上げ前のお知らせも届きます。当サイトのEAは提携ブローカーのリアル口座があれば無料です。

※ プライバシーは厳守。配信解除はいつでも可能です。

EAやFXについて質問はありますか?

Nattzyのトレード掲示板に質問を投稿できます(無料登録)。この記事の内容に限らず、EAの設定やブローカー選びの相談も歓迎です。

Nattzyで質問する ↗

コメント・質問