당사 팬 페이지에 가입하십시오
- 게시자:
-
Mykyta Samoiliuk
I make indicators and Expert Advisors for MetaTrader 5 and write the tools around them in Python. Everything I publish comes with a way to check that it works, so you do not have to take my word for it. I convert TradingView indicators to MQL5 so they show the same values as the original, and I - 조회수:
- 29
- 평가:
- 게시됨:
-
이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동
이것은 SuperTrend 포트폴리오의 Expert Advisor 부분입니다. 이 전략이 사용하는 지표는 ‘SuperTrend TV’라는 이름으로 별도로 공개되어 있으며, 그 목적은 TradingView의 지표를 그대로 재현하는 것이었습니다. 여기서 전략 자체는 의도적으로 단순하게 구성되었습니다. 선이 위로 반전되면 매수하고, 아래로 반전되면 매도하는 방식인데, 이는 지표를 EA로 구현할 때 흥미로운 부분은 결코 전략 자체가 아니기 때문입니다.
문제는 타이밍에 있습니다. 아직 형성 중인 봉에서 지표를 읽는 EA는 몇 초 동안만 존재하다가 봉이 마감되기 전에 사라지는 신호를 포착하게 됩니다. 차트상에서는 모든 것이 설득력 있게 보이고, 테스터 보고서도 낙관적으로 나오지만, 실제로 이루어지는 거래는 누구도 예상하지 못한 것들입니다. 이 EA는 마감된 봉만 읽으며, 이를 입증하는 감사 보고서가 함께 제공됩니다.

XAUUSD M15 차트의 SuperTrend TV. 이 EA는 선이 반전될 때마다 진입하며, 한 번에 하나의 포지션만 유지합니다.
작동 방식
iCustom을 통해 SuperTrend TV의 방향 버퍼를 읽어들이며, 완성된 바 하나당 한 번씩 작동하고 단일 포지션만 유지합니다. 모든 주문에는 매직 넘버가 부여되므로, 이 EA는 수동으로 개설된 포지션에는 절대 간섭하지 않습니다. 스탑은 SuperTrend 선 자체에 설정되며, 포인트 단위의 선택적 버퍼를 적용할 수 있고, 선의 방향이 반전되면 포지션이 청산되고 반대 방향으로 전환됩니다.
한 가지 사례는 언급할 가치가 있는데, 이는 단순한 버전의 EA가 서버가 거부할 수밖에 없는 주문을 제출하는 경우이기 때문입니다. 라인은 완성된 바의 종가를 기준으로 계산되지만 진입은 다음 가용 가격에서 이루어지기 때문에, 주문이 전송될 때쯤에는 가격이 이미 라인을 지나간 상태일 수 있습니다. 이 경우 스탑은 진입 지점과 반대편에 위치하게 됩니다. 스탑을 약간 이동시키면 스탑아웃까지 단 1포인트 남은 상태에서 포지션이 개설될 수 있으므로, 대신 신호를 취소하고 로그에 기록합니다. 8개월 동안의 EURUSD H1 차트에서 117개의 신호 중 한 번 이런 상황이 발생했습니다.
이 지표는 리소스로서 익스퍼트에 컴파일되므로, 일단 구축되면 자체적으로 실행되며 터미널에 지표가 별도로 표시되어 있을 필요가 없습니다. 즉, 빌드 시점에 리소스가 .ex5 파일에서 가져오기 때문에 지표를 먼저 컴파일해야 합니다.
거래 확인 방식
EA는 포지션 전환 시뿐만 아니라 모든 마감된 바(bar)에 대한 지표 값을 로그에 기록합니다. 그런 다음 파이썬 스크립트가 해당 로그를 읽어와 거래 내역을 시계열 데이터와 대조하여 확인합니다. 따라서 이 주장은 EA가 차트상에서 올바르게 보인다는 것이 아니라, 모든 포지션 전환 시 정확한 방향의 주문이 정확히 하나 생성되었으며, 포지션 전환 없이 주문이 발생한 경우는 없었다는 것입니다.
| 봉 수: 6616 (2026.07.31 .. 2026.09.03) 플립: 185 진입: 185 거래 없는 신호 : 0 신호 없는 거래 : 0 한 바에 두 번의 거래 : 0 반대 방향 거래 : 0 결과: 플립당 한 번의 거래 |
로그가 모든 바를 기록하는 이유
초기 버전의 감사에서는 실거래 터미널에서 내보낸 지표 파일과 거래를 비교했는데, 신호가 없는 거래가 93건 보고되었습니다. EA에는 문제가 없었습니다. 실거래 터미널에는 테스터가 분 단위 데이터로 생성한 M5 바 중 3,500개가 누락되어 있었기 때문에, 신호의 절반은 대조할 바가 없었던 것입니다.
서로 다른 데이터로 계산된 두 가지를 비교하는 것은 정상적으로 작동하는 코드에 대한 버그 보고서를 생성하는 가장 쉬운 방법이며, 의도적으로 찾아보더라도 이런 일이 발생한다는 점을 알아두는 것이 좋습니다. 실행 내부의 시계열을 기록하면 이 문제를 완전히 해결할 수 있습니다. 감사 기능은 여전히 선택적인 제2의 의견으로 외부 내보내기 데이터를 허용하며, 두 소스가 공유하는 바에 대해서는 매번 방향이 일치하는 것으로 나타났습니다.
입력값
- ATR 기간 및 계수: 지표로 직접 전달됨
- 로트 크기, 고정
- 스톱 라인을 초과하는 추가 포인트, 기본값은 0
- 매직 넘버 및 슬리피지
- 결정 로그 켜기/끄기 및 파일 이름
계정에 미치는 영향
공개된 모든 전문가 전략에 대해 가장 먼저 드는 질문은 ‘수익을 내는지’ 여부일 것입니다. 따라서 주관적인 의견 대신 실제 수치를 제시합니다. 두 번의 테스트 모두 1만 단위로 시작했으며, 기본 입력값과 고정된 0.1 랏을 사용했고, 실제 시세 데이터를 기반으로 한 전략 테스터에서 추출한 결과입니다. 이 수치는 포지션 수를 나타내며, 보고서의 ‘총 거래(Total Trades)’ 항목과 일치합니다. 반면 ‘총 거래 건수(Total Deals)’ 항목은 모든 진입과 청산을 별도로 집계하므로 대략 두 배 정도 더 많은 수치를 보여줍니다.
| 시뮬레이션 | 기간 | 총 거래 횟수 | 최종 잔고 |
|---|---|---|---|
| XAUUSD M5 | 1개월 | 185 | 10,662 |
| EURUSD H1 | 8개월 | 116 | 9 736 |
이번 달은 금 시세가 추세를 보인 달이었으며, 그 결과는 시스템보다는 추세에 기인한 것입니다. 유로화 거래에서 발생한 손실은 반전 자체로 인한 비용과 거의 비슷합니다. 전문가 시스템은 항상 시장에 진입해 있으며, 추세가 반전될 때마다 스프레드를 두 번 지불하기 때문입니다. 필터가 적용되지 않은 단순한 추세 반전에서는 그 후 남은 수익이 거의 없는데, 이는 정상적인 결과일 뿐 포트폴리오의 결함이 아닙니다.
이것이 솔직한 현실이며, 바로 이 때문에 본 게시물은 전략이 아닌 신호 처리 방법에 관한 것입니다. 여기서 확인할 수 있는 점은 포트폴리오가 원본과 일치하고, 거래 내역이 신호와 일치한다는 사실입니다. 수익을 보장하지 않으며, 이를 기대하는 사람은 위 표를 산출한 것과 동일한 산술 계산에 실망하게 될 것입니다.
이 자료에 포함되지 않은 내용
자금 관리 전략은 포함되어 있지 않습니다. 로트는 고정되어 있으며, 위험 비율, 일일 손실 한도, 드로우다운 시 거래 중단 등의 요소는 없습니다. 이 자료는 신호 처리에 관한 것이기 때문에, 이러한 요소들을 추가하면 자료가 보여주는 본질을 흐릴 수 있기 때문입니다. 이를 출발점으로 삼는 분은 실계좌에 적용하기 전에 반드시 이러한 요소들을 추가해야 합니다.
한 가지 더 분명히 밝힐 점이 있습니다. 매직 넘버는 헤징 계좌에서 EA가 수동 거래와 겹치지 않도록 방지합니다. 네팅 계좌의 경우, 터미널은 설계상 특정 심볼에 대한 모든 포지션을 하나의 포지션으로 통합합니다. 따라서 EA가 실행 중일 때 동일한 심볼을 수동으로 거래하면 포지션을 분리할 수 없게 되는데, 이는 이 코드의 특성이 아니라 네팅 방식의 특성입니다.
MetaQuotes Ltd에서 영어로 번역함.
원본 코드: https://www.mql5.com/en/code/77009
ATS Trade Management Library - break-even, trailing stop and partial closes for any EA
Look after open positions in an Expert Advisor: break-even, trailing stop, two partial closes, and a stop and target for positions that have none. It never opens a trade.
Session Reality Auditor
Checks the broker's session table against the M1 history. For every minute of the week it counts on how many of the last N days the symbol really has a bar, and sets that next to SymbolInfoSessionQuote and SymbolInfoSessionTrade: declared minutes that are usually empty (rollover holes), bars in minutes the table calls closed, trade and quote tables that disagree, and one-off outages such as an early holiday close. Prints the real sessions per weekday, writes every finding to CSV and prints its own arithmetic. Read only: no trade function, no DLL, no network.
Any Indicator Alert - alerts, push notifications and multi-timeframe for any custom indicator, no source code needed
차트에 적용하고 원하는 사용자 지정 지표의 이름을 입력하기만 하면, 해당 지표의 버퍼에 따라 팝업, 소리, 휴대폰 푸시 알림 또는 이메일로 알림을 받을 수 있습니다. 이 도구는 iCustom을 통해 지표를 읽기 때문에 소스 코드가 필요하지 않으며, 다운로드한 컴파일된 .ex5 파일만 있으면 충분합니다. 또한 더 높은 시간대의 차트에서 해당 지표를 읽어올 수 있으며, 마감된 바를 재확인하여 지표가 재그리기(repaint)되는지 아니면 단순히 지연(lag)되는지 알려줍니다. 이 도구는 EXPLORE 모드로 열리며, 지표가 가진 모든 버퍼와 각 버퍼의 내용을 나열해 줍니다. “어떤 버퍼에 신호가 들어 있는지”를 파악하는 것이 바로 대부분의 사용자가 iCustom 사용을 아예 포기하게 만드는 주된 이유이기 때문입니다.
CajasTF – Integrated Multi-Timeframe Side Panel for MT5
Real-time multi-timeframe side panel mini-chart with smart color matching, independent price scale, and candle countdown timer.