私たちのファンページに参加してください
CME Gap Tracker for Gold and Bitcoin: Open Gaps, Fill Rate and a Fade-Trade Test - MetaTrader 5のためのインディケータ
- ビュー:
- 25
- 評価:
- パブリッシュ済み:
-
このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動
金とビットコインのCMEギャップトラッカー:オープンギャップ、埋まり率、およびフェードトレードの検証
金および24時間365日稼働のビットコインチャート上で、週末のCMEギャップを検出し、価格がギャップに戻るまで未埋めのギャップをチャート上に表示し続けます。また、ギャップが埋まった頻度、埋まるまでの速度、価格が最初にどれだけ動いたか、そしてフェードトレードを行った場合にどのような利益が得られたかを示します。リペイントなし、エキスパートアドバイザー用のバッファ付き。
コンセプト
「CMEのギャップは必ず埋まる」というのは、あらゆるビットコインのチャットや、多くの金関連のチャンネルでも耳にする言葉です。CME先物は、シカゴ時間の金曜16:00に取引を停止し、日曜17:00に再開します。 その間の市場の動きは先物チャート上でギャップとして現れ、価格はギャップを埋めるために戻ってくるという通説があります。
私はこれを信じる前に、2つの答えが欲しかった。実際にギャップが埋まる頻度はどれくらいか?そして、もし埋まるとしても、その方向を狙って取引すれば利益を出せるのか、それとも価格がまず反対方向に動いてストップロスに引っかかるのか?このインジケーターは、あなたのチャート上でその両方の疑問に答えてくれます。
機能の説明
- CMEの金曜日の終値と日曜日の始値を、シカゴの米国夏時間規則およびお使いのサーバー時計の規則に基づいて、お使いのブローカーのサーバー時間に換算します。
- その2つの時点におけるチャートの価格を取得します。その差がギャップとなります。InpMinGapPct(デフォルトは0.30%)未満のギャップは無視されます。
- 各ギャップをボックスとして描画し、その大きさをラベルで表示します。未埋めのギャップは、金曜日の終値まで取引が戻るまで、右側に延長された状態でチャート上に残ります。その後、ボックスは灰色に変わり、ラベルには埋まるまでに要した時間が表示されます。
- CMEの始値位置にあるバーに矢印を表示します。ギャップダウン時は上向き、ギャップアップ時は下向きで、埋まり方向を示します。
- 直近の InpWeeksBack 週間(デフォルトは 104 週間)のスコアカードパネルを表示します。
週末も取引が行われるビットコインのチャートでは、金曜日の最後のバーと月曜日の最初のバーの間に目に見えるギャップがないため、通常の週末ギャップツールでは何も検出されません。CMEギャップは、CMEの2つの時点における価格を確認したときにのみ現れますが、このインジケーターはまさにその機能を提供します。 金の場合、スポット市場も週末は休場となるため、CMEギャップとブローカーの週末ギャップはほぼ同じものとなります。
明確にしておくべき点として、このインジケーターは先物価格ではなく、表示されているチャートの価格を使用しています。スポットやCFDのチャートでは、CMEの週末にわたるスポット価格の変動が表示されます。先物チャート上のギャップは、先物がスポット価格に対してプレミアムまたはディスカウントで取引されるため、若干異なる場合があります。
パネルに表示される内容
- ギャップの件数(上昇・下降別)と、最小サイズを下回った週末の件数。
- 埋まったギャップの数、および24時間以内と7日以内に埋まったギャップの割合。
- 埋まるまでの中央値の時間、および埋まるのに最も時間がかかった下位10%のギャップが要した時間。
- 埋まるまでの「ヒート」:価格が埋まり水準からどれだけ離れてから戻ってきたかを、ギャップサイズの倍数で表したもの。1%のギャップでヒートが2.0倍の場合、価格はまず逆方向にさらに2%動いたことを意味します。
- フェードトレードのテスト:CMEの寄り付きから金曜日の引けにかけてエントリーし、反対側のギャップ幅にInpStopGapMultを乗じた水準でストップを設定し、いずれの水準にも到達しなかった場合はInpMaxHoldDays日後にエグジットする。エントリーバーのスプレッドはコストとして計上される。ストップとターゲットがともに1バー内に収まる場合、ストップがカウントされる。
- スコアリング対象期間内のオープンギャップの数、および現在の価格の上下にある最も近いオープン約定価格(これら2つは、読み込まれた履歴内のすべてのギャップを対象とする)。
金(XAUUSD)での分析結果
XAUUSD H1、MetaQuotes-Demoデータ、特記のない限りデフォルト設定。2つのウィンドウは2025年12月末に数日間重なっている。
| 2026年、9月18日までの38週間 | 2026年、9月18日までの38週間 | 2025年、12月31日までの52週間 | 2025年、12月31日までの52週間 | |
|---|---|---|---|---|
| 最小間隔 | 0.30% | 0.10% | 0.30% | 0.10% |
| ギャップ(上昇/下降) | 24(10/14) | 33(13/20) | 6(2/4) | 19(9/10) |
| 埋まった | 23 (96%) | 32 (97%) | 5 (83%) | 18 (95%) |
| 24時間以内に採用決定 | 58% | 67% | 50% | 68% |
| 7日以内に埋まったもの | 83% | 85% | 50% | 74% |
| 採用までの中央値時間 | 7時間 | 3時間 | 3時間 | 3時間 |
| 充填前の加熱時間の中央値 | 2.18倍のギャップ | 2.31倍のギャップ | 2.16倍のギャップ | 1.70倍のギャップ |
| フェードトレード、1倍のギャップでストップ | 24 | 33 | 6 | 19 |
| フェードの勝率 | 29.2% | 27.3% | 16.7% | 26.3% |
| フェードの利益率 | 0.41 | 0.37 | 0.20 | 0.35 |
| フェード総額 | -10.1R | -15.1R | -4.0R | -9.1R |
つまり、この格言は金市場において概ね当てはまります。ギャップの83%から97%が埋まりました。問題はトレードの段階です。埋まったギャップのうち、中央値のギャップは最初にそのサイズの約2倍の幅で逆方向に動いたため、ギャップ1つ分のストップロスを設定したフェードトレードのほとんどが損失を出しました。
そこで、ストップ幅を0.30%以上と広げて試してみました。ストップ幅を広げると勝率は上がりますが、1回の損失額も大きくなり、両年とも総利益はマイナスのままでした:
| ストップ | 2026年の勝率 | 2026年の総損益 | 2026年のPF | 2025年の勝率 | 2025年の合計 | 2025年 PF |
|---|---|---|---|---|---|---|
| 1倍の差 | 29.2% | -10.1R | 0.41 | 16.7% | -4.0R | 0.20 |
| 2倍のギャップ | 45.8% | -7.0R | 0.44 | 33.3% | -3.0R | 0.25 |
| 3倍のギャップ | 66.7% | -2.0R | 0.72 | 50.0% | -2.0R | 0.33 |
2025年は0.30%以上のギャップがわずか6回しかなかったため、その列はサンプル数が少ないものとみなしてください。私がそこから読み取ることは単純です。金市場において、ギャップは価格が到達すると予想される良いポイントですが、固定ストップを付けて寄り付きでその動きに逆張りしても、どちらの年でも利益にはつながりませんでした。
ギャップの中には、長い間埋まらないものもあります。2026年9月18日時点で、2025年の金価格のギャップのうち1つは依然として未埋めのままであり、埋まり水準は3201.00と、現在の価格を大幅に下回っています。
図1. XAUUSD 1時間足、2026年1月下旬:+0.43%のギャップは106時間で埋まり、-2.47%のギャップは32時間で埋まった
図2. 表中の4回のシミュレーション結果を示すスコアカードパネル
ビットコインについて
ビットコインではテストできませんでした。私が使用しているテスト用ブローカー「MetaQuotes-Demo」には、24時間365日取引可能なBTCUSDがなく、ナスダックの取引時間中にのみ取引されるビットコインETFしかありません。24時間365日のチャート用のコードパスは、金で実行されるものと同じです。つまり、金曜日の引け時点と日曜日の寄り付き時点の価格を使用します。 BTCでこれを利用する前に、CME先物チャートと照らし合わせて最初の数回のギャップを確認し、お使いのブローカーに合わせてサーバーオフセットの入力値を設定してください。
入力パラメータ
| 入力 | デフォルト | 機能 |
|---|---|---|
| InpGMTWinter | 2 | 冬季のサーバーGMTオフセット(時間) |
| InpGMTSummer | 3 | 夏期のサーバーのGMTオフセット(時間) |
| InpServerDST | ヨーロッパ | サーバー時計の夏時間ルール(固定、ヨーロッパ、または米国) |
| InpMinGapPct | 0.30 | 最小ギャップサイズ(価格の%) |
| InpWeeksBack | 104 | スコアカードに含まれる過去データ期間(週) |
| InpDrawWeeks | 26 | 描画された埋まったギャップの週数(開いたギャップは常に描画される) |
| InpStopGapMult | 1.0 | フェードテスト:ギャップの倍数で停止する |
| InpMaxHoldDays | 5 | フェードテスト:この日数経過後に終了する |
| InpShowPanel | true | スコアカードパネルを表示する |
| InpPanelCorner | 左上 | パネルの角 |
| InpOpenGapColor | 薄いオレンジ | 塗りつぶされていない隙間の色 |
| InpFilledGapColor | ゲインズボロ | 塗りつぶされたギャップの色 |
| InpAlertNewGap | true | 新しいギャップが発生した際にアラートを表示する |
| InpAlertFill | true | 開いていたギャップが埋まったときにアラートを表示する |
| InpAlertPush | false | プッシュ通知も送信する |
デフォルト設定(冬はGMT+2、夏はGMT+3、欧州ルール)は、MetaQuotes-Demoや他の多くのMetaTraderブローカーと一致しています。ご利用のブローカーのサーバーが年間を通じてUTCで稼働している場合は、両方のオフセットを0に設定し、ルールを「固定」に設定してください。H1またはそれより短い時間足を使用してください。 H4以上の時間軸では、CMEの時間が1本のバーの中に収まってしまい、価格の精度が低下します。
エキスパートアドバイザーからの使用方法
ギャップは、CMEの始値が記録されたバーの開始と同時にそのバーに書き込まれるため、EAはシフト0でそれを読み取ります。金曜日の終値とそのバーの始値のみを使用するため、その後変更されることはありません。 発生したすべてのギャップを記録するテスト用EAでこれを検証し、実行終了時にそのリストをインジケーターのバッファと比較しました。2026年の金相場において、24件のギャップすべてが一致しました。
| バッファ | 内容 |
|---|---|
| 0 | ギャップダウン(フェード買い)、値はエントリー価格、それ以外はEMPTY_VALUE |
| 1 | ギャップアップ(フェード売り)、形式は同じ |
| 2 | ギャップバーの約定価格(金曜日の終値) |
| 3 | ギャップバーでのフェード・テストストップ |
| 4, 5 | 各終値バーの上下にある、最も近い始値の約定水準 |
| 6~9 | 直近のクローズ済みバーに関するスコアカード:クローズ済みフェード取引、勝ちトレード、総R、負けトレードのRの合計 |
int handle; datetime lastBar = 0; int OnInit() { handle = iCustom(_Symbol, PERIOD_H1, "CMEGapTracker"); return(handle == INVALID_HANDLE ? INIT_FAILED : INIT_SUCCEEDED); } void OnTick() { //--- CMEの始値バーが開いた直後に、そのバーにギャップが記録される datetime bar = iTime(_Symbol, PERIOD_H1, 0); if(bar == lastBar) return; lastBar = bar; double up[1], down[1], target[1], stop[1]; if(CopyBuffer(handle, 1, 0, 1, up) < 1 || CopyBuffer(handle, 0, 0, 1, down) < 1 || CopyBuffer(handle, 2, 0, 1, target) < 1 || CopyBuffer(handle, 3, 0, 1, stop) < 1) return; if(up[0] != EMPTY_VALUE) Print("Gap up, fill level ", target[0], ", fade stop ", stop[0]); if(down[0] != EMPTY_VALUE) Print("Gap down, fill level ", target[0], ", fade stop ", stop[0]); }
バッファ4と5は、別の種類のEA(他の理由でエントリーする際に、オープンギャップをトレードのターゲットとして利用するEA)に便利です。このインジケーターには意図的に入力グループが設定されていません。MQL5では各「入力グループ」がiCustom()のパラメータとしてカウントされ、その後に続くすべての値が1つずつずれてしまうためです。
制限事項
バーデータに基づいて動作するため、1つのバー内のイベントの順序を判別することはできません。先物価格ではなく、CMEの時刻におけるチャートの価格を使用します。CMEの取引週を短縮する米国の祝日は、個別に処理されません。 フェードテストでは、エントリーバーのスプレッドは考慮されますが、手数料やスリッページは考慮されていません。また、週末の寄り付きは、まさにスリッページが最も悪化するタイミングです。上記の数値はすべて、あるブローカーのデータに基づく過去のギャップを反映したものです。
アリ・ラージプート
MetaQuotes Ltdによって英語から翻訳されました。
元のコード: https://www.mql5.com/en/code/77686
Gold Breakout EA for XAUUSD H4 +90 Percent in a 2020 to 2026 Backtest
金向けのタートル・スタイルのブレイクアウトEAです。上昇トレンドにおいて、H4のローソク足が20本分の高値を上回って引けた際に買いエントリーを行い、ストップロスは2ATR、利益目標は2Rに設定されています。 2020年1月から2026年9月までのXAUUSDでバックテストを実施:元本10,000、リスク1%で+9,029.72、プロフィットファクター1.77、最大ドローダウン11.38%、7年間のうち6年間で利益を計上。
NeonDesk - Neon Manual Trading Panel with Multi-Timeframe Bias
チャート上でドラッグ可能な手動取引パネル。マルチタイムフレームのバイアス、ATRに基づくSL/TPのヒント、トレーリングストップ、ワンクリックでの「買い」「売り」「すべて決済」機能を搭載。
RSIの過熱・反転 - EURUSD
MetaTrader 5のストラテジーテスター向けオープンソースのEURUSDエキスパートアドバイザー。RSIの枯渇シグナル、ATRに基づく決済、およびボラティリティ調整済みスプレッドフィルタリングに基づいています。
EMA Cross Demo EA with ATR Stops
小規模なデモ用エキスパートアドバイザー:EMAの高速・低速クロスによるエントリー(クローズ済みバーのみを評価対象とし、リペイントなし)、ATRに基づくストップロスおよびテイクプロフィット、スプレッドフィルター、ヘッジ口座とネット口座の両方で機能するポジション管理機能を搭載。互換性テスト用のPythonリファレンス実装が含まれています。 これは参考例であり、取引の推奨ではありません。添付のエクイティカーブは合成データに基づくものであり、手法を示すものであって、優位性を示すものではありません。