モメンタムが一時的に弱まっても、それまでの値動きが終わったとは限りません。この学習用の継続モデルでは、変化率を百分率で表すROCが短時間リセットされた後、方向性が回復し、終値で価格ブレイクが成立する流れを探します。リセット、期限、最初の有効な発動候補は、エントリーの気配値を見る前に定めます。
ここでいう「継続」は、直前の短いモメンタム局面の再開を指します。上位時間足のトレンドを証明するものでも、さらなる上昇を予測するものでもありません。RSIフェイラースイング戦略は別の反転仮説を扱います。どちらも、ルールを再現できるだけで収益上の優位性が示されたことにはなりません。
1. 基本仕様と適用範囲を固定する
EURUSD、H1、Bid足を使用し、CloseでROC(4)を計算します。判断には確定足だけを使います。短い期間、直前の3本の局面、4本の回復待ち期限、以下の制限は、説明のために明示した設定です。最適化済みの値でも、実運用の推奨値でもありません。
ポジションがないときに限り、銘柄ごとに一つの監視サイクルを動かします。ポジション保有中の新しいパターンは無視します。無効化、期限切れ、候補の消費が起きた足で、別のサイクルを開始してはいけません。後の足で新たなリセットが成立するまで待ちます。新しいサイクルも、直前の局面に関する条件をすべて満たす必要があります。
必要なOHLCデータや指標値が欠けた場合、進行中のサイクルを無効にします。ゼロで代用したり、欠けた足を飛ばしたり、後のチャートからリセットを作り直したりしません。基本仕様には、移動平均、ダイバージェンス、取引時間帯、経済カレンダーのフィルターを加えません。追加するなら別の仕様として検証します。
2. ROCのゼロとMT4 Momentumの100を区別する
ROC(n) = 100 × (Close(t) / Close(t−n) − 1)と定義します。参照期間を隔てた終値同士の変化率を百分率で表します。MT4標準のMomentumは100 × Close(t) / Close(t−n)を使うため、期間と適用価格Closeが同じならROC = Momentum − 100です。
したがって、ROCのゼロラインはMomentumの100ラインに対応します。正の値は、最新の終値が比較対象の終値を上回ったことを示すだけです。買いの出来高を測るものでも、トレンドの持続を保証するものでもありません。計算前に、無効な価格や正でない価格を除外します。表示上の丸め値ではなく、元の精度で比較してください。
過去の高い比較価格が参照窓から外れることで、最新の終値が下がっていてもROCが正になる場合があります。後述の固定価格ブレイクは観測可能な条件を追加しますが、どちらも価格から算出されるため、独立した証拠ではありません。測定の意味はモメンタム指標ガイドで説明しています。
3. 最初の有効なリセットでBUYの監視を開始する
確定足Aで、直前の3個のROC値がすべて厳密に正、現在値が≤ 0であることを要求します。ちょうどゼロも有効です。これで測定上の正の局面が終了し、BUYの監視サイクルが始まります。この時点では発注しません。
Aの確定時に、Bid高値High(A)と無効化の下限F = Low(A) − 1 pipを固定します。その後の足に合わせてどちらも動かしません。監視はAの確定後に始まるため、A自身の安値で新たに定めた下限が無効になることはありません。
次の4本のH1確定足だけを調べます。四本目も含みます。待機中に、その後のBid安値が≤ Fとなれば無効です。同じ足が最後に強く上昇して引けても変わりません。発動条件より先にこの無効化を判定します。ROCがさらに非正の値を示しても、期限を数え直しません。
4. 最初の正方向への再クロスを一度だけ使う
その後最初にROC > 0となった確定足が、唯一の候補Tです。下限を確認したうえで、同じ足にClose(T) > High(A)を要求します。同値では不十分です。ROCがちょうどゼロなら待機を続け、BUYは発動しません。
最初の正の値で価格ブレイクが成立しなければ、そのサイクルは完全に無効です。後のブレイクで復活させてはいけません。四本目の対象足が確定しても正の値がなければ期限切れです。四本目でも全条件を満たせば発動できますが、すべての足で無効化の判定を優先します。
固定高値への待機注文は置かず、足の途中の指標値でも入りません。候補はTの確定時に初めて分かります。次の足では、Tのシフトは1、形成中の足のシフトは0です。分析上の確定と、市場で約定可能な気配値を区別してください。
5. 気配値を見る前にBUYの決済価格を固定する
BUYの予定SLは、すでに固定したBid下限Fです。Tの確定時にTP = Close(T) + 2 × (Close(T) − F)を設定します。気配値の評価中も両価格を動かしません。遅れたエントリーを正当化するために目標を計算し直すと、別のモデルになります。
SLかTPが先に執行された時点で全量を決済します。どちらも起きなければ、Tの後のH1足が8本確定した後、最初の利用可能な気配値で成行決済を要求します。トレーリングストップ、部分決済、ナンピン、後のROC再クロスによる決済は行いません。
目標は幾何学的なルールであり、予測ではありません。窓開け、気配値の欠如、スリッページにより、予定したストップより不利に決済される場合があります。近くの価格障壁でこの仕様が魅力を失うなら見送るか、別のフィルターを定義して検証します。基本仕様を黙って変えてはいけません。
6. SELLはBidとAskの役割を明示する
- 直前の
3個のROC値が厳密に負で、現在値が≥ 0ならAを設定します。Low(A)とBidの無効化上限U = High(A) + 1 pipを固定します。ちょうどゼロもリセットとして認めます。 - 次の
4本の確定足では、発動条件の前に、Bid高値≥ Uで無効にします。最初のROC < 0で、同時にClose(T) < Low(A)が必要です。同値や最初の価格ブレイク不成立は、そのサイクルの終了を意味し、後で復活させません。期限と同じ足の再利用禁止も共通です。 - SELLの決済判定はAskです。
SL = High(A) + 3 pipsとします。内訳は構造上の余裕1pipと、スプレッド用の余裕2pipsです。Tの確定時に、Askの目標をTP = Close(T) − 2 × (SL − Close(T))で固定します。全量決済と時間決済は同じです。
Bidの無効化上限とAskのSLは、異なる段階の判定です。スプレッド用の余裕は過去のAsk高値を再現するものではありません。その後スプレッドが広がれば、SELLのSLが早く発動することがあります。両者を同一視せず、適切なBid/Askデータで検証してください。
7. 執行条件とポートフォリオのリスクを確認する
Tの確定後、データの準備が整った最初の新鮮な気配値を、その確定から60秒以内に評価します。BUYはAsk、SELLはBidで入ります。価格が正でAsk ≥ Bid、スプレッドが≤ 2pipsであることを要求します。BUYにはSL < BidとAsk < TP、SELLにはTP < BidとAsk < SLが必要です。時間内の気配値がなければ見送ります。
見込純利益を予定ストップ損失で割った比率が≥ 1.5であることを要求します。実際のBid/Ask、往復手数料、エントリー時1pipと決済時1pipの不利な執行余裕を、両方の推計に入れます。スプレッドはBid/Askに織り込まれているため、二重計上しません。最初の気配値が不適格なら、そのサイクルを消費して終了します。
新規取引の予算は現在の有効証拠金の最大0.5%、ポートフォリオ全体の予定ストップリスクは合計最大1%です。口座通貨建ての一ロット当たり損失を求め、業者の刻みに合わせて数量を切り捨てます。最小数量、必要証拠金、取引許可、ストップ距離を満たせなければ見送ります。相関のあるポジションも同じ合計予算に含めます。
これらは計画上の制限であり、実損失の上限保証ではありません。銘柄のティックサイズ、ティック価値、契約仕様を確認してください。pipと業者のpointを区別します。EURUSDの5桁小数表示では、1pipは10pointsです。数量計算全体はリスク管理ガイドで説明しています。
8. 架空の系列で手順を再現する
以下の架空Bid足は、一つの仮定上のサーバー時刻を使い、足の確定時刻で表示します。最初のOpenはそのCloseと等しく、その後のOpenは前のCloseです。HighはOpenとCloseの大きい方に0.00020を加え、Lowは小さい方から0.00020を引きます。計算の説明例であり、実際の過去データやバックテストではありません。
| H1確定時刻 | Bid終値 | ROC(4), % | MT4のMomentum(4) |
|---|---|---|---|
00:00 | 1.10000 | — | — |
01:00 | 1.10050 | — | — |
02:00 | 1.10100 | — | — |
03:00 | 1.10150 | — | — |
04:00 | 1.10200 | 0.181818 | 100.181818 |
05:00 | 1.10250 | 0.181736 | 100.181736 |
06:00 | 1.10300 | 0.181653 | 100.181653 |
07:00 | 1.10120 | -0.027236 | 99.972764 |
08:00 | 1.10180 | -0.018149 | 99.981851 |
09:00 | 1.10340 | 0.081633 | 100.081633 |
04:00、05:00、06:00の値は正です。Aの07:00にROCは−0.027236%になります。High(A) = 1.10320、Low(A) = 1.10100、F = 1.10090を固定します。08:00の安値はFを上回っており、ROCは引き続き非正です。
Tの09:00では、ROCは0.081633%、Bid終値は1.10340で、固定高値を厳密に上回ります。途中の安値はFに触れていません。したがって、期限内の最初の正方向への再クロスが価格条件も満たします。指標値は小数点以下6桁で表示していますが、判定には丸め前の値を使います。
BUYのSLは1.10090、TPは1.10840です。09:00に終わる足が確定してから気配値を評価します。約定し、価格による決済がなければ、時間決済の期限は17:00です。その後の価格系列、約定確認、決済結果は示していません。
9. 数量を決める前にコストを計算する
USD口座、有効証拠金$10,000、一ロット100,000EUR、1pipを0.0001、一ロット当たりのpip価値を$10、数量刻みを0.01と仮定します。09:00:10の最初の評価可能な気配値はBid 1.10340 / Ask 1.10352で、スプレッドは1.2pipsです。一ロットの往復手数料は$7、この例の資金調達費用はなしとし、指定した不利な執行余裕を使います。
| 確認項目 | 計算 | 結果 |
|---|---|---|
| リスク予算 | 10,000 × 0.005 | $50 |
| コスト込みの一ロット当たり予定損失 | (26.2 + 1 + 1) × 10 + 7 | $289 |
| コスト控除後の一ロット当たり見込利益 | (48.8 − 1 − 1) × 10 − 7 | $461 |
| 見込純利益/予定損失 | 461 / 289 | 1.595156 |
| 数量刻みに合わせて切り捨てたロット数 | floor((50 / 289) / 0.01) × 0.01 | 0.17 |
| その数量での予定ストップ損失 | 0.17 × 289 | $49.13 |
例の気配値は比率条件を満たします。一方、仮にAskが1.10380なら、一ロット当たり損失は$317、見込利益は$433となり、433 / 317 = 1.365931で1.5を下回ります。見送ってください。同じサイクルで目標を遠ざけたり、より良い気配値を待ったりしてはいけません。
0.17ロットの計算には、十分なポートフォリオ残余リスク予算と有効な業者条件を仮定しています。余裕幅は不利な執行の推計であり、損失上限や表示価格での約定を保証しません。口座通貨や契約仕様が異なれば、一ロット当たり損失を計算し直します。
10. 不成立と見送りも記録に残す
- 直前に正の値が三つない非正のリセット:BUYの監視を始めません。
- 最初の正方向への再クロスで同じ足の価格ブレイクがない:完全に無効です。
- 無効化水準への接触、観測値の欠落、待機期限切れ:入りません。
- 遅い気配値、過大なスプレッド、不十分な純利益比率、リスク条件不成立:候補を消費して見送ります。
方向感の乏しい市場では、リセットやだましのブレイクが繰り返されることがあります。短い参照期間では比較対象の終値も速く切り替わります。予定・突発の重要ニュース、ロールオーバー、窓開けは、例のスプレッドやスリッページの仮定を大きく超える場合があります。結果を見て損失を削除せず、そうした局面も記録します。
基本仕様には取引時間帯やニュースの除外がありません。追加する場合は、見送られた取引数と検証を備えた別仕様にします。オシレーターとリセット高値を超える終値は、どちらも関連する価格変換です。条件が増えただけで期待値が改善したとはいえません。この依存関係はモメンタム指標の組み合わせガイドで扱います。
11. EAと検証で時間の順序を保つ
銘柄、時間足、ルール版、Aの開始時刻をサイクル識別子として保存します。固定水準、期限、消費済みの状態を永続化し、各確定足を一度だけ処理します。分析上の発動、発注要求、確認済みポジションを区別してください。本記事はモデルの仕様であり、動作検証済みのEAソースコードではありません。
発注結果が不明な場合や再起動後は、別の要求を送る前に未決済注文と履歴を照合します。タイムアウトは注文が存在しない証拠ではありません。拒否が確定したサイクルでも再試行しません。想定超過のスリッページと実際のエクスポージャーを記録し、執行上の逸脱を隠すためにSLを広げたり数量を増やしたりしないでください。
まず時系列ログで、ROC/Momentum変換、厳密な比較、ゼロでの等号、期限、無効化の優先順位を確かめます。SELLはAsk決済で個別に検証します。その後、業者に合った気配値、手数料、資金調達費用、不利な約定を用いて仮説全体を評価します。同一OHLC足で両決済水準に達した場合はティック順序を使い、分からなければ曖昧さを明示して、保守的にSLが先とする仮定を報告します。
開発用と後の評価用の期間を分け、試した全仕様を残します。純収益とともにドローダウン、エクスポージャー、取引数、不確実性を示してください。フォワード検証は新たに届くデータを使いますが、実運用の結果を保証しません。全体の手順はMT4バックテストガイドで説明しています。ここでは勝率や収益率を示していません。
12. ROC継続戦略についての質問
ROCのゼロラインはMT4 Momentumのゼロラインと同じですか?
違います。適用価格Closeと期間が同じなら、ROCはMomentumから100を引いた値です。したがってROCのゼロはMomentumの100に対応します。MT4の元の値をゼロと比較すると、戦略がまったく変わります。
ちょうどゼロになった場合もリセットとして認めますか?
はい。BUYは厳密に正の値が3個続いた後、ROCが≤ 0になると監視を開始します。SELLは符号を反転させます。BUYの発動にはROC > 0、SELLにはROC < 0が必要です。どちらも等号では発動しません。
最初の再クロスで不成立でも価格を待てますか?
待てません。候補は最初の再クロスだけです。その確定足で固定価格を厳密にブレイクしなければ、サイクルは無効です。後のブレイクは新しい観測であり、前の候補を復活させる許可ではありません。
リセット高値を超える終値は独立した確認ですか?
追加の価格条件であり、独立情報ではありません。ROCもブレイクも同じ市場価格から得られます。組み合わせの有効性は、ルール選択に使っていないデータで、コスト控除後に測る必要があります。
期間とリスク制限は推奨設定ですか?
違います。学習例を明確で再現可能にするための設定です。業者、市場局面、実口座に対する最適化や検証は行っていません。予定リスクや執行余裕は、あらゆる実損失に上限を設けるものではありません。
この例は利益の出た取引を示していますか?
いいえ。系列は分析上の発動時点で終わります。最初の気配値は取引可否の計算例であり、約定確認ではありません。その後の価格、実現収益、利益での決済結果は示していません。
13. 技術資料と仕様の範囲
公式のMetaTrader 4 Momentum解説は、価格比に基づく指標を説明しています。ゼロ中心のROC式は、同じ入力を使ったその代数変換です。直前の局面、期限付きリセット、価格条件、決済、コスト制限は本記事の学習用仕様であり、開発元が推奨する取引設定ではありません。
FXとレバレッジ取引には大きなリスクがあります。この戦略は学習目的であり、投資助言ではありません。過去またはシミュレーションの結果は、将来の成果を保証しません。