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

SessionReopenEA - MetaTrader 5용 expert

Gianluca Gangemi
Gianluca Gangemi
MQL5 개발자로서 MetaTrader 5 자동화를 다룹니다: 전문가 자문(EA), 리스크 관리, 그리고 MT5에서 Python으로 이어지는 리서치 파이프라인.
제가 만드는 EA에는 서버 측 손절, 증거금 수준 보호, 노출 한도, 그리고 터미널이나 VPS 재시작 후의 상태 복구가 들어갑니다. 컴파일이 되는지가 아니라 시스템이 살아남는지를 결정하는 부분들입니다.
| Korean English Русский 中文 Español Deutsch 日本語 Português Français Italiano Türkçe
조회수:
13
평가:
(4)
게시됨:
MQL5 프리랜스 이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동


CME에서 금은 매일 유지보수 휴식 시간을 갖습니다. 휴식 시간이 끝난 후 첫 1시간 동안의 거래는 우연으로 설명할 수 있는 수준을 넘어 상승하는데, 이는 11년 간의 표본 기간 동안 모든 연도에서 나타나는 현상입니다. 반면,그날의 나머지 시간대에서는 변동이 거의 없습니다.

이 Expert Advisor는 거래 재개 시점에 매수하고, 변동성에 비례하여 설정된 서버 측 스탑을 적용해 일정 시간 동안 포지션을 유지하며, 그 외에는 아무런 조치도 취하지 않습니다. 세션당 한 번의 거래만 수행합니다. 평균화, 그리드, 마틴게일, 회복 전략은 사용하지 않습니다.

수치, 그리고 제 비용 모델이 잘못되었다는 사실을 알게 된 후의 수치

11년간의 시간별 데이터를 바탕으로, 시장 재개 시점에 진입하여 2시간 동안 보유했을 때 측정된 결과:

연구에서 산정한 비용을 기준으로 테스터가 측정한 원가로
거래당 +3.34 bps +1.60 bps
t-통계량 7.40 3.42
승률 59.3% 50.8%
수익률 1.63 1.30
흑자 연도 11년 중 11년 11개 중 10개

왼쪽 열은 대부분의 사람들이 그만두는 지점에서 제가 연구를 중단했다면 발표했을 내용입니다. 그런데 메타트레이더(MetaTrader)의 전략 테스터(Strategy Tester)에서 실제 티크(real-tick) 백테스트를 수행한 결과, 재개시 시의 실제 왕복 비용은제 연구에서 산출한 19 포인트가 아니라 약60 포인트인 것으로 나타났습니다. 이는 M1 바의스프레드 필드가 바(bar)별 요약값이기 때문에 재개시 스프레드를 대략 3배 정도 과소평가했기 때문입니다 .

이러한 수정 후에도 우위는 유지되지만, 원래 강도의 절반 미만으로 줄어들었고, 승률은 빈도보다는 유리한 수익률에 의해 좌우되는 동전 던지기 수준이 되었습니다. 오른쪽 열이 실제 결과이며, 이 EA는 바로 이 결과를 바탕으로 구축되었습니다.

이 EA가 아닌 것

이것은 생계를 유지할 수 있는 전략이 아니며, 소스 파일의 헤더에는 어떤 매개변수도 설명되기 전에 이 점이 명시되어 있습니다. 20% 드로다운을 감당할 수 있도록 설정된 자본 규모에서, 이 전략은 연간 약+3.3%의 수익률을 기록하며, 최대 드로다운은 4.6%, 샤프 지수는 1.23, 연간 거래 횟수는 약 200회입니다. 이는 또한9년 중 약1년은 마이너스 수익률을 기록한다는 것을 의미합니다. 0.01 랏 기준으로 연간 약 130 통화 단위이며, 이 수치는 전략 자체가 아닌포지션 규모를 나타냅니다.

이 전략의 2.5년 기간만을 따로 보면t = +1.12로, 통계적으로 유의미하지 않습니다. 이 전략에 대한 2년간의 수익성 있는 백테스트 결과만으로는 아무것도 증명할 수 없으며, 11년 간의 샘플 데이터가 그 성과를 뒷받침합니다.

제가 이 결과를 신뢰하기 전에 견뎌낸 것들

이 중 어느 하나라도 결과를 무산시킬 수 있었으며, 이를 나열한 이유는 아무도 검증하려 시도하지 않은 결과는 진정한 결과가 아니기 때문입니다:

  • 이는 갭이 아닙니다. 기록된 갭의 평균은 −0.011이며, 이러한 변동은 시장개장 시 발생합니다.
  • 이는 바(bar) 구성상의 인공적 현상이 아닙니다. 독립적으로 가져온 M1 바를 바탕으로 1시간 차트를 재구성해 본 결과, 중복되는 73일 모두에서 H1 시계열과 0.0000까지 일치합니다.
  • 이는 이상치가 아닙니다. 상위 1%를 제거한 평균은 전체 표본의 +0.75에 비해 +0.70이며, 중앙값은 +0.48입니다.
  • 이는 명백한 함정이 될 수 있는 스프레드 정규화 문제도 아닙니다. MT5 바는 매수 측 기준이며, 재개장 시 스프레드가 더 넓기 때문입니다. 스프레드는 한 시간 내내 일정하게 유지되므로, 이 효과의 0%만을 설명합니다.
  • 정확한 재개 티크가 필요하지 않습니다. 15분 늦게 진입해도 수익이 나고, 30분 늦어도 수익이 나며, 45분이 지나면 효과가 사라집니다.
  • 주간 재개는 이 전략의 일부가 아닙니다. 일요일의 경우 t = 0.88에서 +1.11 bps를 기록하는데, 이는 잡음과 구별되지 않는 수준인 반면, 일일 기준은 t = 8.32에서 +3.90 bps를 기록합니다. 이것이 바로InpSkipMonday가 존재하며 기본값이 true로 설정된 이유입니다.

입력값과 그 설정 이유

입력 의미
InpEntryHour 재개 시간의 서버 시간. 서버 시간을 사용하는 것은 의도적인 선택입니다. 이 브로커의 시계는 미국 일광 절약 시간제를 따르기 때문에, 재개 시간은 일 년 내내 고정된 서버 시간에 유지되는 반면, UTC 트리거를 사용하면 일 년에 두 번씩 1시간씩 어긋나게 됩니다.
InpEntryWindowMin 해당 시각으로부터 이 분 수 이내에만 진입합니다.
InpHoldHours 정시에 청산되기 전까지 보유할 시간(시간 단위).
InpSkipMonday 주간 재개 시기를 건너뜁니다. 위의 일요일 수치를 참조하십시오.
InpLots 고정 로트. 규모 조정은 절대 하지 않습니다.
InpStopAtrMult 스탑 = 이 값 × 시간당 평균 변동폭. 기본값은 2.0이며, 첫 번째 버전에서 사용된 1.5가 아닙니다 — 아래 참조.
InpRangeBars 평균 변동폭 단위로 표시된 H1 봉. 480은 약 20거래일에 해당합니다.
InpMaxSpreadPts 스프레드가 이 값보다 나쁘면 진입을 거부합니다.

스톱 배율에 관하여. 조정된 비용 기준으로 , 1.5배는 +1.60 bps(t 3.42)를, 2.0배는 +1.91(t 4.07)을 제공하며, 거래의 2.6%가 아닌 1.3%에서 발동됩니다. 스프레드가 더 넓어질수록 성과는 계속 개선됩니다. 그리고 스탑은 그대로 유지됩니다. “스탑을 제거하면 백테스트 결과가 좋아진다”는 논리는 마틴게일 전략이 수익성 있어 보이게 만드는 바로 그 논리이기 때문입니다. 스탑은 테일 이벤트를 제한하는 역할을 하고, 시간 기반 청산은 나머지 부분을 제한합니다.

위의 내용을 믿기 전에 직접 테스트해 보십시오

그리고실제 티크를 기반으로 모든 티크에 대해 테스트해 보십시오. 제가 작성한 다른 코드에서, 동일한 기간 동안 동일한 규칙을 적용했을 때 1분 봉 차트 모델링에서는 −15,627을, 실제 티크에서는 +79,000을 기록했습니다. 모델링 방식을 명시하지 않은 백테스트는 무엇을 측정했는지 알려주지 않는 것입니다.

MetaQuotes Ltd에서 영어로 번역함.
원본 코드: https://www.mql5.com/en/code/77060

Prop Daily Loss Meter Prop Daily Loss Meter

Shows how much of the daily loss limit of a prop firm account is already used, and how much is left. Read-only indicator.

Server Clock Check Server Clock Check

Measures how far your PC clock is from the trade server's clock, from the server time stamped on live ticks, and tells you how to fix it.

Trade Excursion Report: MFE and MAE of every closed trade, to CSV Trade Excursion Report: MFE and MAE of every closed trade, to CSV

청산된 거래 건당 한 줄의 CSV 파일을 내보내며, 여기에는 거래 내역서에는 포함되지 않는 수치들이 포함됩니다: 해당 거래에서 나타난 최대 미실현 이익(MFE), 견뎌낸 최대 미실현 손실(MAE), MFE 중 실제로 실현된 금액, 거래가 진행된 바(bar) 수, 그리고 보유 기간입니다. ‘Trade Excursion’ 지표와 동일한 측정 기준이지만, 차트에 표시하는 대신 파일로 출력됩니다. 이 데이터에 대해 물어볼 가치가 있는 질문들은 차트만으로는 답할 수 없기 때문입니다. 예를 들어, 포착 비율은 진입 시각에 따라 달라지는가? 조기 청산한 거래가 가장 오래 보유한 거래인가? 월요일에 발생한 손실 거래의 MAE는 금요일과 다른가? CSV 파일이 생성되면 피벗 테이블 하나로 이러한 질문에 대한 답을 얻을 수 있습니다. 출력 결과는 헤더 행이 포함된 세미콜론으로 구분된 형식으로, MQL5\Files 폴더에 저장되며 어떤 스프레드시트 프로그램에서도 열 수 있습니다. 측정 한계: 편차는 선택한 시간대의 봉 고점과 저점에서 산출되며, 봉 내부의 가격 변동 경로는 알 수 없습니다. ‘봉’ 열은 각 거래의 해상도를 나타내며, 요약 값은 단일 봉 거래를 평균화하지 않고 별도로 집계합니다.

CGoldSymbol - find the broker's gold and size the position correctly on it CGoldSymbol - find the broker's gold and size the position correctly on it

브로커가 어떤 명칭으로 부르든 상관없이 ‘골드’ 심볼을 감지하고, 계약 사양을 임의로 가정하지 않고 터미널에서 직접 읽어오며, 계좌 통화로 표시된 위험 금액을 해당 브로커에 맞는 정확한 랏 크기로 변환합니다.