通知を比較する前に、shift 0・1・2のどれを判定したかと、版ごとの抑止方法を整理します。
形成中に出た通知が、バー確定後の状態と違うのはなぜですか?
確定足OFFではshift 0のMAや高値・安値・終値相当値が更新されるためです。
確定足ONのshift 1・2とは判定対象が違うので、同じ記録として比べないでください。
同じ足で通知が一度だけなら、MT4とMT5は同じ仕組みですか?
両版とも同一バーをイベント別に抑えますが、MT5版には最小通知間隔もあります。
イベント種別、方向、対象MA、バー時刻を分けて残すと差を確認できます。
ここからは、各イベントの判定時点、通知状態、再現手順を順に確認します。
shift 0/1/2と判定対象
shiftは、現在から何本前のバーかを表します。
| shift |
状態 |
確定足ONでの役割 |
確定足OFFでの役割 |
| 0 |
形成中 |
判定に使わない |
現在側の判定バー |
| 1 |
直前の確定済み |
現在側の判定バー |
比較する一つ前のバー |
| 2 |
2本前の確定済み |
比較する一つ前のバー |
判定に使わない |
MT4版とMT5版は、確定足ONならcurrent=1とprevious=2、OFFならcurrent=0とprevious=1という同じ組み合わせです。確定足ONの通知は、バーが閉じた瞬間そのものではなく、新しいバーへ移って次の計算が行われたときに確認します。
検証記録では「現在足」「一つ前の足」だけでなく、shift番号、バー開始時刻、確定足設定を一緒に残してください。
クロスの成立と消滅
クロスはMA1とMA2だけを使い、前の判定バーから現在の判定バーへ上下関係が入れ替わったときに成立します。
- 上方向:前のバーでMA1がMA2以下、現在のバーでMA1がMA2より上
- 下方向:前のバーでMA1がMA2以上、現在のバーでMA1がMA2より下
確定足OFFではshift 0のMA値が価格更新ごとに計算されます。形成中に上下関係が入れ替わって通知された後、バーが閉じるまでに元の関係へ戻ることがあります。これは形成中バーを判定対象にした結果であり、確定足ONの記録とは分けて扱います。
確定足ONではshift 1と2を使うため、形成中バーで見えた一時的なクロスは対象外です。比較するときは同じMA期間、方式、適用価格、銘柄、時間足をそろえます。
タッチ判定の変化
タッチは、判定対象バーの安値から高値までの範囲へ、許容幅を加えたMA値が含まれるかを確認します。クロスと異なり、前のバーとの上下関係は使いません。
確定足OFFではshift 0の高値と安値が形成中に更新されます。一度広がった高値・安値の範囲は同じバーの中では保持されますが、MA値も更新されるため、画面上の距離は変わります。通知済みの同一イベントは版ごとの重複抑止に従います。
確定足ONではshift 1の確定済み高値・安値とMA値を使います。許容幅はポイント単位なので、銘柄の桁数も記録してください。
終値ブレイクが確定するタイミング
ブレイクは、前後2本について終値と対象MAの上下関係を比較します。高値または安値だけがMAをまたいでも、終値側の関係が入れ替わらなければ成立しません。
確定足OFFでは、shift 0のcloseは現在の価格更新を受けるため、形成中に成立した条件がバー確定時まで残るとは限りません。確定足ONでは、直前に閉じたshift 1の終値と一つ前のshift 2を使い、新しいバーの計算時に確認します。
ブレイク通知本体の初期値はOFFです。検証前に対象MAと通知本体の両方を確認してください。
同じ足で複数イベントが成立する場合
クロス、タッチ、ブレイクは別々のイベントです。同じ対象バーで、MA1とMA2のクロス、複数MAへのタッチ、選択したMAのブレイクがそれぞれ成立する場合があります。
通知数を比較するときは、単に「同じ足で何回」ではなく、次の単位で分けます。
- クロス:上方向と下方向
- タッチ:MA1、MA2、MA3
- ブレイク:上方向・下方向とMA1、MA2、MA3
異なるイベントが同じ足で通知されることと、同一イベントが同じ足で繰り返されることは別です。
MT4の同一バー重複抑止
MT4版は、最後に通知したバー時刻をイベント別に保持します。同じバー時刻では、次の単位で再通知を抑えます。
| イベント |
保持単位 |
| クロス |
上方向/下方向 |
| タッチ |
MA1/MA2/MA3 |
| ブレイク |
上方向/下方向 × MA1/MA2/MA3 |
MT4版には最小通知間隔バー数の入力はありません。また、タッチとブレイクの処理はクロス通知の処理内にあるため、検証時は「MAクロスアラートを有効化」もONにします。
MT5のイベント別状態と最小通知間隔
MT5版も最後に通知したバーをイベント別に保持し、同一バーの再通知を抑えます。加えて「同種アラートの最小間隔バー数」を使います。初期値は3です。
前回バーと今回バーの間隔が設定本数未満なら、同じイベント単位の次の通知を抑えます。0にすると追加のバー間隔制御は使いませんが、同一バーの抑止は残ります。
イベント状態はクロスの方向別、タッチの対象MA別、ブレイクの方向・対象MA別です。たとえばMA1のタッチ状態が、MA2のタッチや上方向クロスを一括して止める仕組みではありません。
再適用・再起動後の状態
再適用、時間足変更、端末再起動などで初期化が行われると、保持していた通知バー状態は新しくなります。ただし初回計算では過去条件をまとめて通知しません。
初回計算後の次の価格更新で対象条件が成立していれば、通知対象として評価される場合があります。再適用を通知間隔の調整手段として使わず、初期化前後を別の検証区間として記録してください。
MT5版は初期化解除時に専用の表示オブジェクトを整理します。表示の有無だけで通知履歴を判断せず、通知時刻とExperts・Journalを合わせて確認します。
初回読み込み時の過去通知
両版とも、初回計算では過去のイベントをまとめて通知しません。チャートへ適用した時点で過去にクロス地点や接触したバーが見えても、それだけでは新しい通知になりません。
検証開始点は、初回計算が終わった後にします。適用直後の画面を1枚残し、その後に新しい価格更新または新しいバーで何が評価されたかを記録すると、過去表示と新規通知を分けられます。
再計算とリペイントの違い
形成中バーでは、MA値、高値、安値、終値相当値が価格更新に応じて再計算されます。確定足OFFで条件の成立と不成立が変わることは、shift 0を使う設定から説明できます。
一方、確定済みバーの表示が変わった場合は、設定変更、時間足変更、履歴データ更新、初期化前後の表示差などを分けて確認します。「後から変わった」という結果だけで一つの原因へ決めず、どのshiftがいつ変わったかを記録してください。
一般的な用語整理はインジケーターのリペイントの見分け方で確認できます。本記事ではMA複合アラートの判定対象と通知状態に限定します。
履歴データ更新の影響
MetaTraderが不足していた履歴を取得したり、配信済みバーのデータが補われたりすると、MAの計算対象が更新される場合があります。とくに適用直後、時間足変更後、接続回復後は、必要なバー数がそろってから比較します。
履歴更新を確認したら、更新前後で次を分けて残します。
- 取得できているバー数と最古・最新の時刻
- MA期間、方式、適用価格
- shift 0、1、2の時刻とOHLC
- 3本のMA値
- 通知が出た時刻とイベント種別
brokerごとの配信履歴、銘柄表記、取引時間帯が同じとは限りません。4社で同じ画面になるという意味ではないため、環境ごとの記録として比較します。
デモ環境での検証方法
検証はデモ環境で、1チャート・1設定から始めます。
- MT4またはMT5、銘柄、時間足を固定する
- 正式配布中のファイルを適用し、初回計算の完了を待つ
- 通知方式はまずポップアップだけをONにする
- クロス、タッチ、ブレイクのうち一つだけを対象にする
- 確定足ONでshift 1と2を記録する
- 同じ条件で確定足OFFへ変え、shift 0と1を記録する
- MT5版で間隔の影響を見る場合だけ、最小通知間隔を一項目ずつ変える
- 結果を時刻順に並べる
MT4版でタッチまたはブレイクを検証するときは、クロス通知もONにします。設定を複数同時に変えると原因を分けにくいため、一回の検証では一項目だけ変更します。
スクリーンショット・ログの残し方
スクリーンショットには口座番号、氏名、サーバー識別情報などを含めないでください。必要な範囲だけを切り出し、次の条件を別のテキスト記録へ残します。
- 検証日時とタイムゾーン
- MT4またはMT5、Version、OS、build
- broker、銘柄、時間足
- EX4・MQ4・EX5・MQ5のどれを使ったか
- MA期間、方式、適用価格
- 確定足設定、対象イベント、対象MA、許容幅
- MT5版の最小通知間隔
- shift 0、1、2のバー開始時刻
- 通知時刻、イベント種別、Experts・Journalの該当箇所
画像とログは同じ検証IDで対応付け、形成中、確定直後、次の価格更新の3時点を分けると比較しやすくなります。
MT4・MT5比較
| 確認点 |
MT4版 |
MT5版 |
| 入力数 |
21 |
39 |
| 確定足ON |
shift 1と2 |
shift 1と2 |
| 確定足OFF |
shift 0と1 |
shift 0と1 |
| 初回の過去通知 |
まとめて通知しない |
まとめて通知しない |
| 同一バー抑止 |
イベント別 |
イベント別 |
| 最小通知間隔 |
入力なし |
初期値3、0以上 |
| タッチ・ブレイクの入口 |
クロス通知ONも必要 |
各機能を独立処理 |
| 表示設定 |
3本のMAを固定表示 |
MA、矢印、マーカーを個別設定 |
OS、build、broker、配布物の差はプラットフォーム差と別に記録します。MT5版が39入力の仕様正本で、MT4版は21入力の正式提供版です。両対応でも設定項目と通知抑止が完全に同じではありません。
注意事項
- 形成中バーの判定は、バーが閉じるまで変わる場合があります。
- 確定足ONでも、履歴データ更新や設定変更の前後は別条件として確認します。
- 通知時刻とバー開始時刻を混同しないでください。
- タッチ許容幅はポイント単位です。
- MT4版でタッチ・ブレイクを使うときはクロス通知もONにします。
- MT5版の最小通知間隔はイベント別に働きます。
- 4社検証は、各社による公認、推奨、共同開発を示すものではありません。
- 本記事は一般的な操作・検証情報であり、個別の投資判断を示すものではありません。
正式版の無料ダウンロード
MT4版とMT5版はVersion 1.000です。通常利用はMT4でEX4、MT5でEX5を使用します。内容を確認して再コンパイルする場合は、それぞれMQ4またはMQ5も取得できます。
MT4版は21入力、MT5版は39入力です。ダウンロード前に利用条件を確認し、プラットフォームと拡張子を合わせてください。
よくある質問
- 確定足ONではどのshiftを判定しますか?
- MT4版・MT5版とも、現在側にshift 1、その一つ前にshift 2を使います。新しいバーへ移った後の計算で直前の確定済みバーを確認します。
- 確定足OFFではどのshiftを判定しますか?
- 現在側に形成中のshift 0、その一つ前に確定済みのshift 1を使います。shift 0の値はバーが閉じるまで更新されます。
- 形成中に成立したクロスが確定時に残らないことはありますか?
- あります。確定足OFFではshift 0のMA値が更新されるため、形成中に入れ替わったMA1とMA2の上下関係がバー確定までに戻る場合があります。
- タッチとブレイクは同じ値を見ますか?
- 異なります。タッチは対象バーの高値・安値とMAを比較し、ブレイクは前後2本の終値とMAの上下関係を比較します。
- 同じバーで複数の通知が出ることはありますか?
- あります。クロス、対象MAごとのタッチ、方向・対象MAごとのブレイクは別イベントで、それぞれの条件と抑止状態に応じて評価されます。
- MT4版の重複抑止はどの単位ですか?
- クロスは方向別、タッチは対象MA別、ブレイクは方向・対象MA別に最後の通知バーを保持し、同じバー時刻での再通知を抑えます。
- MT5版の最小通知間隔を0にするとどうなりますか?
- 追加のバー間隔制御は使われません。ただし同じイベント単位で同一バーを繰り返し通知しない抑止は残ります。
- 再適用すると過去の条件がまとめて通知されますか?
- まとめて通知されません。初回計算では過去通知を行わず、その後の価格更新で対象条件が成立しているかを改めて評価します。