거래 로봇을 무료로 다운로드 하는 법을 시청해보세요
당사를 Twitter에서 찾아주십시오!
당사 팬 페이지에 가입하십시오
스크립트가 흥미로우신가요?
그렇다면 링크 to it -
하셔서 다른 이들이 평가할 수 있도록 해보세요
스크립트가 마음에 드시나요? MetaTrader 5 터미널에서 시도해보십시오
지표

CME Gap Tracker for Gold and Bitcoin: Open Gaps, Fill Rate and a Fade-Trade Test - MetaTrader 5용 지표

Ali Akbar
Ali Akbar
  • MQL5 Developer & Algorithmic Trading Specialist 에  Freelance
  • 파키스탄
  • 2423
Hi, I'm Ali. 24 years old, trading for around 5 years, and developing MQL5/MQL4 tools. I mainly work on automating manual strategies, fixing broken EA logic, and building clean indicators. I care more about clean architecture and proper risk management than over-complicated code. Always down to talk
| Korean English Русский 中文 Español Deutsch 日本語 Português Français Italiano Türkçe
조회수:
20
평가:
(1)
게시됨:
MQL5 프리랜스 이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동

금과 비트코인을 위한 CME 갭 트래커: 개장 갭, 메움률 및 페이드 트레이드 테스트

금 및 24/7 비트코인 차트에서 주말 CME 갭을 탐지하고, 가격이 해당 갭으로 되돌아올 때까지 모든 미충족 갭을 차트에 유지하며, 갭이 채워진 빈도, 속도, 가격이 처음에 얼마나 멀리 움직였는지, 그리고 갭을 활용한 페이드 트레이드를 했다면 어떤 수익이 발생했을지를 보여줍니다. 리페인팅이 없으며, Expert Advisor용 버퍼가 포함되어 있습니다.

개념

"CME 갭은 항상 메워진다"는 말은 모든 비트코인 채팅방은 물론 많은 금 관련 채널에서도 흔히 들을 수 있는 말입니다. CME 선물 거래는 금요일 시카고 시간 기준 16:00에 종료되고 일요일 17:00에 재개됩니다. 그 사이 시장의 움직임은 선물 차트에 갭으로 나타나며, 가격은 결국 그 갭을 메우기 위해 되돌아온다는 믿음이 있습니다.

저는 이를 믿기 전에 두 가지 답을 원했습니다. 갭은 실제로 얼마나 자주 메워지는가? 그리고 만약 메워진다면, 그 방향으로 거래하여 수익을 낼 수 있는가, 아니면 가격이 먼저 반대 방향으로 움직여 손절매에 걸리게 되는가? 이 지표는 여러분의 차트에서 이 두 가지 질문에 모두 답해줍니다.

기능 설명

  • CME의 금요일 종가와 일요일 시가를 귀하의 브로커 서버 시간으로 변환하며, 시카고의 미국 일광 절약 시간제 규칙과 귀하의 서버 시계 규칙을 적용합니다.
  • 해당 두 시점의 차트 가격을 측정합니다. 그 차이가 갭입니다. InpMinGapPct(기본값 0.30%)보다 작은 갭은 무시됩니다.
  • 각 갭을 상자로 표시하고 그 크기를 라벨로 표기합니다. 메워지지 않은 갭은 금요일 종가 수준으로 거래가 회복될 때까지 차트 상에 남아 오른쪽으로 연장됩니다. 그러면 상자가 회색으로 바뀌고, 라벨에는 갭이 메워지는 데 걸린 시간이 표시됩니다.
  • CME 시가가 형성된 봉에 화살표를 표시합니다. 갭 다운의 경우 위쪽, 갭 업의 경우 아래쪽을 향하며, 메움 방향으로 표시됩니다.
  • 지난 InpWeeksBack 주(기본값 104주)에 대한 스코어카드 패널을 표시합니다.

주말 내내 거래가 이루어지는 비트코인 차트에서는 금요일 마지막 막대와 월요일 첫 번째 막대 사이에 눈에 띄는 갭이 없기 때문에, 일반적인 주말 갭 도구는 아무것도 감지하지 못합니다. CME 갭은 두 CME 시점의 가격을 비교할 때만 나타나며, 이 지표는 바로 그 기능을 수행합니다. 금의 경우 현물 시장도 주말 동안 휴장하므로, CME 갭과 브로커의 주말 갭은 거의 동일한 개념입니다.

한 가지 명확히 할 점은, 이 지표는 선물 가격이 아닌 해당 차트의 실거래 가격을 사용한다는 것입니다. 현물 또는 CFD 차트에서는 CME 주말 동안의 현물 가격 변동을 확인할 수 있습니다. 실제 선물 차트의 갭은 선물이 현물 대비 프리미엄이나 디스카운트로 거래되기 때문에 약간 다를 수 있습니다.

패널이 보여주는 내용

  • 갭의 수(상승 및 하락으로 구분)와 최소 크기 미만이었던 주말의 수.
  • 메워진 갭의 수와, 24시간 이내 및 7일 이내에 메워진 갭의 비율.
  • 메디언 메우기 소요 시간, 그리고 가장 느린 10%의 갭이 메워지는 데 걸린 시간.
  • 메우기 전 변동 폭: 가격이 메워진 수준으로 되돌아오기 전, 갭 크기의 배수로 환산했을 때 가격이 얼마나 멀리 벗어났는지 나타냅니다. 1% 갭에서 2.0배의 변동 폭은 가격이 먼저 반대 방향으로 2% 더 움직였음을 의미합니다.
  • 페이드 트레이드 테스트: CME 개장 시점에 진입하여 금요일 종가를 향해 이동하고, 반대쪽 갭 크기의 InpStopGapMult 배에 해당하는 지점에서 스탑을 설정하며, 두 수준 중 어느 것도 도달하지 않을 경우 InpMaxHoldDays 일 후에 청산합니다. 진입 바의 스프레드가 부과됩니다. 스탑과 목표가가 모두 하나의 바 내에 있을 경우, 스탑이 집계됩니다.
  • 점수 산정 대상 기간 내의 오픈 갭 수, 그리고 현재 가격 위와 아래에서 가장 가까운 오픈 체결 가격(이 두 가지는 로드된 시계열 내의 모든 갭을 검토합니다).

금(Gold)에서 확인된 결과

XAUUSD H1, MetaQuotes-Demo 데이터, 별도 표기된 경우를 제외하고 기본 입력값 적용. 두 창은 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%가 메워졌습니다. 문제는 매매에서 발생합니다. 메워진 갭 중 중앙값에 해당하는 갭은 처음에 그 크기의 약 두 배만큼 반대 방향으로 움직였기 때문에, 갭 한 개 크기를 스탑으로 설정한 대부분의 페이드 매매는 손실을 기록했습니다.

최소 0.30%로 스탑을 더 넓게 설정해 보았습니다. 스탑을 넓게 설정하면 승률은 높아지지만, 손실 규모도 커져 두 해 모두 총 수익은 마이너스를 기록했습니다:

손절 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년에 발생한 금 갭 중 하나가 여전히 열려 있었으며, 메워질 수준은 3201.00으로 현재 가격보다 훨씬 낮았습니다.

그림 1. XAUUSD 1시간 차트, 2026년 1월 말: +0.43% 갭은 106시간 만에, -2.47% 갭은 32시간 만에 메워짐

그림 2. 표에 제시된 4가지 시나리오에 대한 스코어카드 패널

비트코인에 관하여

비트코인에서는 테스트할 수 없었습니다. 제가 사용한 테스트 브로커인 MetaQuotes-Demo에는 24시간 연중무휴로 거래되는 BTCUSD가 없고, 나스닥 거래 시간에만 거래되는 비트코인 ETF만 있습니다. 24시간 연중무휴 차트를 위한 코드 경로는 금 차트에서 실행되는 것과 동일합니다. 즉, 금요일 종가 시점과 일요일 시가 시점의 가격을 사용합니다. 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 시간이 한 바(bar) 내에 포함되므로 가격의 정확도가 떨어집니다.

Expert Advisor에서 사용하는 방법

갭은 CME가 개장한 바에 해당 바가 개장하는 즉시 기록되므로, EA는 시프트 0에서 이를 읽습니다. 이 지표는 금요일 종가와 해당 바의 시가만을 사용하므로, 이후에는 절대 변경되지 않습니다. 저는 갭이 발생할 때마다 기록하는 테스트 EA로 이를 확인한 후, 실행이 끝날 때 해당 목록을 지표의 버퍼와 비교했습니다: 2026년 금 시장에서 24개의 갭 중 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에 유용합니다. 이 지표에는 의도적으로 입력 그룹이 없습니다. MQL5는 각 "입력 그룹"을 iCustom()의 매개변수로 간주하며, 그 뒤의 모든 값이 하나씩 밀려나기 때문입니다.

제한 사항

이 지표는 바 데이터를 기반으로 작동하므로, 한 바 내부의 이벤트 순서를 파악할 수 없습니다. 이 지표는 선물 가격이 아닌 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 Gold Breakout EA for XAUUSD H4 +90 Percent in a 2020 to 2026 Backtest

금(Gold)을 대상으로 한 터틀(Turtle) 스타일의 브레이크아웃 EA입니다. 상승 추세에서 H4 봉이 20봉 고점 위로 마감될 때 매수하며, 스톱은 2 ATR, 목표 수익은 2R로 설정됩니다. 2020년 1월부터 2026년 9월까지 XAUUSD를 대상으로 백테스트한 결과: 1% 리스크로 10,000을 투자했을 때 +9,029.72의 수익을 기록했으며, 수익 계수는 1.77, 최대 손실률은 11.38%, 7년 중 6년 동안 수익을 냈습니다.

Smart Money Concepts BOS CHoCH Smart Money Concepts BOS CHoCH

Market structure indicator for Gold (XAUUSD), EURUSD and any symbol: swing highs and lows with HH HL LH LL labels, BOS and CHoCH drawn on closed candles, alerts and 4 buffers for EAs. Open source code.

Heikin Ashi Candles Heikin Ashi Candles

A clean Heikin Ashi indicator that draws on the main chart window. It also adds one horizontal line at the average price, (Open + High + Low + Close) / 4, of the last closed candle of a chosen timeframe. By default this is H1, and the line uses the normal candles, not Heikin Ashi.

Broker Time - server, UTC, New York, London, Sydney, Tokyo with the right summer time (class + session lines) Broker Time - server, UTC, New York, London, Sydney, Tokyo with the right summer time (class + session lines)

CBrokerTime converts server time, UTC, New York, London, Sydney and Tokyo with the real summer time of every year and finds your broker's clock from the history (also in the tester). The indicator draws session lines and a clock panel.