POM Education Series #1: 완벽한 EA라는 환상

POM Education Series #1: 완벽한 EA라는 환상

1 11월 2026, 19:21
Nauris Zukas
0
5
POM Education Series #1

Imperial Dominator

다른 언어로 읽기:
English | Русский | 中文 | Español | Português | 日本語 | Deutsch | Français | Italiano | Türkçe | العربية | Bahasa Indonesia | ไทย

우리의 커뮤니티: 한국어 MQL5 채널에 참여하기

Imperial Dominator는 MQL5 Market에서 적극적으로 홍보되는 특정 Expert Advisor의 거래 기법을 의도적으로 재현한 교육용 EA입니다. 인상적인 결과 뒤에 심각한 위험이 어떻게 숨겨질 수 있는지를 드러내기 위해 만들었습니다.

어떤 MQL5 Market 상위권 EA가 이러한 기법을 사용하는지 알고 싶으신가요? 저에게 비공개 메시지를 보내세요.

이 글에서 설명하는 모든 내용은 EA의 Market 데모 버전을 이용해 Strategy Tester에서 직접 검증할 수 있습니다.

Imperial Dominator equity curve

이 차트는 바로 이 글에서 다루는 Expert Advisor의 결과입니다.

낙폭은 극히 작고, 곡선은 꾸준히 상승합니다.

누군가 무언가를 판매하려 할 때 보여 주는 전형적인 차트입니다.

이 결과를 만든 것은 테스트 자체가 아닙니다. 사람입니다.

이 글에서 그 방법을 보여 드리겠습니다.

Expert Advisor를 이용할 수 있으며, 여러분도 모든 과정을 직접 재현할 수 있습니다. EA Input Parameters Explained

먼저, 이 EA는 도대체 무엇일까요?

Imperial Dominator는 단순한 Expert Advisor입니다.

하루 한 번 11:00(GMT 08:00)에 직전 8시간의 최고가와 최저가로 가격 범위를 만든 다음, 그 범위의 양 끝에 Buy Stop과 Sell Stop 주문을 배치합니다.

각 신호는 동일한 크기의 주문 7개로 나뉘며, 고정된 Stop Loss와 Take Profit이 설정됩니다.

열린 포지션에는 트레일링 Stop Loss가 적용되고, 새로운 거래에서 얻은 수익으로 이전의 손실 포지션을 강제 청산합니다.

그게 전부입니다.

이런 코드는 MQL5 Freelance에서 수십 달러 정도에 제작을 의뢰할 수 있습니다.

그러나 Market 판매 화면에서는 코드가 아니라 마케팅이 EA의 가격을 수십 달러에서 수백 달러로 끌어올립니다.

그런데 왜 이런 EA를 보여 줄까요?

이 글에서는 최종 결과만 살펴보려는 것이 아니기 때문입니다.

동일한 Expert Advisor 하나를 가지고 이 아름다운 결과가 어떻게 만들어지는지 단계별로 살펴보겠습니다.

MetaTrader 5 Strategy Tester에서 EA를 실행하고, 개별 거래를 조사하고, 설정을 바꾸며, 제 결론을 검증할 수 있습니다.

제 말을 그대로 믿을 필요는 없습니다.

모든 것을 직접 검증하세요.

첫 번째 층: 비율

먼저 설정을 살펴보세요.

Take Profit and Stop Loss settings

Take Profit은 600 p, Stop Loss는 2600 p입니다.

p = 가격 포인트입니다.

따라서 설정에 표시되는 비율은 약 1 대 4.3입니다.

다른 Expert Advisor에서는 숫자가 달라도 비슷한 비율이라면 마찬가지로 그럴듯해 보일 것입니다.

그러나 이것은 판매 화면에 보이는 모습일 뿐입니다.

이 시스템은 대부분의 거래를 600포인트 Take Profit에서 청산하지 않습니다.

진짜 비율은 실제 거래에서 드러납니다.

거래 하나를 살펴보세요

시각적 테스트를 실행하여 거래 하나를 시작부터 끝까지 관찰하세요.

One trade from open through trailing to close

포지션이 열립니다.

Take Profit은 설정에 적힌 그대로 600 p입니다.

가격이 유리한 방향으로 움직입니다.

트레일링 스톱이 Stop Loss를 이동시켜 약 55포인트의 이익을 확보합니다.

가격이 되돌아옵니다.

포지션은 약 55포인트의 이익으로 청산됩니다.

600 p Take Profit에는 도달하지 못했습니다.

대부분의 거래에서도 도달하지 못합니다.

즉, 설정에서는 이렇게 보입니다.

600 p 대 2600 p.

하지만 실제 거래에서는 다음과 같습니다.

약 55 p 대 2600 p.

이는 대략 1 대 47입니다.

2600포인트 손실 한 번을 55포인트 이익 거래로 만회하려면 약 47번의 승리가 필요합니다.

높은 승률은 바로 여기서 나옵니다.

수많은 작은 이익.

드물지만 큰 손실.

그래서 자산 곡선이 매우 매끄럽게 보일 수 있습니다.

자주 이긴다고 시스템이 더 좋아진 것은 아닙니다.

단지 손실이 드물 뿐이며, 손실이 발생하면 규모가 큽니다.

이 비율은 설정 창에서는 볼 수 없습니다.

Take Profit과 Stop Loss 값만 보고는 이해할 수 없습니다.

개별 거래를 살펴봐야 비로소 드러납니다.

저는 이런 시스템을 Loss-Delayed EA(손실 지연형 EA)라고 부르겠습니다.

손실을 방지하는 EA가 아닙니다. 손실을 가능한 한 오래 미루는 EA입니다.

직접 확인하세요: 거래

Expert Advisor를 시각적 모드로 실행하고 연속된 거래 10건을 관찰하세요.

몇 분 뒤 Stop Loss가 어디에 있는지, 포지션이 실제로 어떤 결과로 청산되는지 살펴보세요.

설정에 적힌 내용만 보지 마세요.

거래에 실제로 무슨 일이 일어나는지 보세요.

EA가 잘 팔리기 위해 수년 동안 안정적일 필요는 없습니다.

아주 좋아 보이는 기간만 있으면 됩니다.

Loss-Delayed EA는 설계 자체로 그런 기간을 만들 수 있습니다. 대부분의 거래가 작은 이익으로 끝나고 큰 손실은 뒤로 미뤄지기 때문입니다.

따라서 긴 연승 기록은 좋은 결과만을 뜻하지 않습니다.

마케팅의 기회가 될 수 있습니다.

MQL5 시그널을 위해 작은 랏으로 거래하는 소규모 계좌들을 계속 운영합니다. 손실이 나타나면 해당 계좌를 포기하고 새 계좌로 교체합니다.

그중 하나가 더 긴 무손실 행진을 보이기 시작하는 순간 적극적인 마케팅이 시작됩니다.

그 기간에는 가능한 한 많이 판매하려고 시그널을 최대한 오래 유지합니다. 손실이 너무 커지면 시그널을 삭제하고, 주목받을 차례를 기다리던 다음 시그널로 교체합니다.

두 번째 층: 분할 진입

이제 거래 내역에서 동일한 진입을 살펴보겠습니다.

Seven positions with the same open time and price

각 진입을 일곱 부분으로 나누었다는 사실을 기억하시나요?

내역에서는 동일한 시간과 가격을 가진 일곱 줄로 보입니다.

파이 하나를 사서 일곱 조각으로 자르는 것과 같습니다.

파이가 일곱 개 생기는 것은 아닙니다.

여전히 파이는 하나뿐입니다.

하지만 거래 내역에서는 별도의 거래 일곱 건처럼 보입니다.

직접 확인하세요: 분할 진입

Strategy Tester에서 Results를 열고 포지션의 진입 시간과 가격을 확인하세요.

여러 줄이 일치한다면 하나의 진입을 여러 포지션으로 나눈 것일 수 있습니다.

MQL5 시그널 페이지의 Trading History에서도 같은 내용을 확인할 수 있습니다.

Trading History: split entry on a signal page

왜 이것이 중요할까요?

이런 연승 기록은 마케팅에서 매우 좋아 보이기 때문입니다.

한 번의 진입으로 수익 포지션 일곱 개가 생기면 내역에는 승리 일곱 번으로 표시됩니다.

이익을 합산한 진입 한 건보다 훨씬 인상적으로 보입니다.

Marketing screenshot of a winning streak

Another marketing screenshot of a winning streak

이런 스크린샷을 본 적이 있을 겁니다.

같은 사용자들이 올린 화면에는 줄줄이 수익만 표시됩니다. 하지만 어떻게 허풍을 간파할 수 있을까요?

큰 랏 규모로 실제 거래했다는 증거를 요청하세요. 예를 들어 Market의 시그널 서비스나 기타 신뢰할 수 있는 시그널 서비스의 실계좌 거래 내역입니다. 검증할 수 있는 증거가 없다면 믿지 마세요.

이런 질문에 답하지 못할수록 EA가 실제로 어떻게 거래하는지에 관한 정보는 부족합니다.

보기 좋은 스크린샷은 누군가 보기 좋은 스크린샷을 만들었다는 증거일 뿐입니다. EA의 장기 성과를 증명하지는 못합니다.

하지만 이런 연승만 보고 시스템을 판단하기 전에 다음을 주의하세요.

실제로 독립된 진입은 몇 번이었을까요?

하나의 진입에서 나온 일곱 포지션은 서로 독립된 승리 일곱 번이 아닙니다.

예를 들어 40일 동안 손실이 전혀 없을 수도 있습니다.

인상적으로 들립니다.

그러나 그것만으로는 시스템에 대해 많은 것을 알 수 없습니다.

더 긴 거래 이력의 아주 작은 일부일 수도 있습니다.

왜 진입을 나눌까요?

이 분할에는 실질적인 목적도 있습니다.

Expert Advisor는 새로운 거래의 이익을 이용해 오래된 손실 포지션을 Stop Loss에 닿기 전에 청산합니다.

저는 이 메커니즘을 이렇게 부를 수도 있겠죠.

"정교하고 독보적인 Neural AI 기술"

그럴듯하게 들립니다.

실제로 원리는 간단합니다.

새 포지션이 이익을 내면 그 이익으로 이전 손실 포지션의 손실을 줄일 수 있습니다.

기간에 따라 결과를 개선하기도, 악화시키기도 합니다. 따라서 전략의 일부로서 별다른 가치는 없습니다.

테스터의 최적화 모드에서는 계수를 0으로 입력하여 이 메커니즘을 끌 수 있습니다(Batch Coefficient).

Batch Coefficient setting

두 결과를 비교해 보세요.

Test comparison with Batch Coefficient at 0 and without it

실질적인 차이는 작습니다.

하지만 초보자의 눈에는 몇몇 손실이 남아 있는 모습이 낙폭이 전혀 없는 곡선보다 오히려 더 믿음직하게 보입니다.

Batch close trade example

이 실험에는 또 하나 중요한 점이 있습니다.

Imperial Dominator 시그널에서는 제 Recovery Booster도 사용합니다.

이 도구는 이런 EA에만 필요한 것이 아닙니다. 다른 전략에도 사용할 수 있는 별도의 복구 도구입니다.

Imperial Dominator에서는 이 시스템을 더 오래 유지하고, 거래 이력을 분석하는 복구 메커니즘으로 얼마나 오래 버틸 수 있는지 시험하려고 의도적으로 사용했습니다.

이것이 시스템의 본질을 바꾸거나 위험을 없애지는 않습니다. 오히려 연속 손실이 발생하면 이런 메커니즘은 드로다운(DD)에 심각한 영향을 줄 수 있습니다(제 시그널에서도 분명히 보입니다).

세 번째 층: 기간

앞의 두 층은 곡선이 왜 매끄럽게 보일 수 있는지 설명합니다.

하지만 큰 하락이 전혀 없는 이유까지 설명하지는 못합니다.

이제 손실 기간 하나를 포함한 동일한 테스트 결과를 보겠습니다.

Backtest with one losing period

이것은 손실 기간 하나일 뿐입니다.

이번에는 Expert Advisor가 그 날짜에 거래하지 않으면 어떻게 되는지 보겠습니다.

Imperial Dominator에는 Skip Days라는 매개변수가 있습니다.

지정한 날짜에는 Expert Advisor가 새 주문을 열지 않도록 합니다.

Skip Days = 241002로 설정하세요.

Skip Days parameter setting

Expert Advisor가 거래하지 않을 날짜를 입력합니다.

테스트를 다시 실행합니다.

Backtest after excluding the losing day

하락이 사라졌습니다. 2024.10.02에는 더 이상 열린 포지션이 없습니다.

승률이 높아졌습니다.

최대 드로다운은 줄고, 이익은 늘었으며, 곡선은 완벽해 보입니다.

그리고 테스트 요약에는 그날을 건너뛰었다는 흔적도 없습니다.

이제 얼마나 극단적으로 할 수 있는지 보세요

지금까지 손실 기간 하나만 제거했습니다.

이제 모든 손실 기간에 같은 방법을 적용하겠습니다.

16년의 테스트 기간과 동적 랏 크기를 사용하겠습니다.

Absurd-looking backtest after all losing days are excluded

결과는 터무니없어 보일 정도입니다.

수억 단위의 이익.

대단한 거래 전략을 발견했기 때문이 아닙니다.

동적 랏으로 역사상 결과가 마음에 드는 날에만 거래하게 하고, 마음에 들지 않는 날은 제거했을 뿐입니다.

이는 시스템이 손실을 내도 되는 날을 직접 골랐을 때 과거 데이터로 얼마나 많은 것을 만들어 낼 수 있는지 보여 주는 이야기입니다.

직접 만들어서 확인해 보세요!

이 EA에서는 나쁜 날이 코드에 숨겨져 있지 않습니다. Skip Days 필드에 들어 있습니다.

그러나 구매자가 볼 수 없도록 같은 원리를 코드에 넣을 수도 있습니다.

그러면 큰 손실이 발생한 후 Market 페이지에 새 버전이 등장하고, 업데이트의 What’s new 섹션에 예를 들어 다음과 같이 적힐 수 있습니다.

"성능 개선"

또는

"사소한 문제 수정".

거기에는 무슨 말이든 적을 수 있습니다. 중요한 것은 문구가 아니라 업데이트 자체입니다. 그 후 EA의 백테스트는 다시 완벽해 보입니다.

손실 날짜가 Expert Advisor 코드에 하드코딩되어 있다면 설정에서는 확인할 수도, 끌 수도 없습니다.

이런 백테스트를 기술적으로 얼마나 쉽게 만들 수 있는지는 이전 글에서 자세히 설명했습니다.

STOP! Backtests Lie. How to Make Any EA Look "Perfect" in 5 Seconds

https://www.mql5.com/en/blogs/post/769134

따라서 여러분이 보는 백테스트가 반드시 시스템의 전체 이력을 나타내는 것은 아닙니다.

시스템이 거래하도록 허용된 날짜의 기록에 불과할 수도 있습니다.

직접 확인하세요: 제외한 날짜

EA 백테스트에서 손실이 난 날짜를 찾으세요.

전체 기간에 대해 테스트를 실행하세요.

그 날짜를 제외하고 테스트를 다시 실행하세요.

결과를 비교하세요.

하루만 바꿔도 백테스트 전체의 모습이 크게 달라질 수 있습니다.

그렇다면 정직하게 사용할 수는 없을까요?

필터, 테스트, 검증을 포함한 정직한 과정에는 시간이 걸립니다.

하지만 이 시스템에는 도움이 되지 않습니다.

손실이 극히 드물다면 몇 개의 사례만으로 공통 원인을 판단할 수 없습니다.

몇 개의 개별 사례를 바탕으로 만든 필터는 진짜 패턴이 아니라 우연에 맞춰질 수 있습니다.

어떤 시스템이 1년에 단 세 번 손실을 냈고 그 세 날짜를 없앴다면, 우리는 로봇을 개선한 것이 아닙니다.

통계에서 마음에 들지 않는 부분만 제거한 것입니다.

다음 손실은 전혀 다른 날짜에, 전혀 다른 이유로 발생할 수 있습니다.

이를 Rare-Event Overfitting(희귀 사건 과적합), 즉 드문 사건에 대한 과적합이라고 합니다.

필터가 과거 손실을 정교하게 제거할수록 오히려 더 취약해질 수 있습니다.

지난 손실을 걸러 냈다는 이유만으로 미래 손실이 0이 될 가능성은 사실상 없습니다.

백테스트 과잉 최적화와 표본 외 기간의 성과에 미치는 영향에 관한 자료:

Bailey, D., Borwein, J., Lopez de Prado, M., & Zhu, Q. (2014). Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance. Notices of the American Mathematical Society, 61(5), 458–471.
SSRN — full text of the paper

실제 시그널의 수명을 늘리고 피할 수 없는 일을 미루는 또 다른 방법

Expert Advisor가 거래할 수 있는 날을 단순히 줄일 수도 있습니다.

예를 들어 특정 요일에만 거래하도록 제한합니다.

뉴스 필터를 추가합니다.

특정 시간대에는 거래하지 못하게 합니다.

각 필터는 개별적으로 보면 완전히 합리적으로 보일 수 있습니다.

실제로 유용할 수도 있습니다.

하지만 마케팅의 관점에서도 살펴봐야 합니다.

Expert Advisor의 거래일이 줄어들수록 손실을 볼 기회도 줄어듭니다.

테스트에 남는 손실이 적을수록 손실 없는 긴 기간을 만들기 쉬워집니다.

이는 Loss-Delayed EA에서 특히 중요합니다. 큰 손실을 오래 미룰수록 이전의 연승이 더 인상적으로 보이기 때문입니다.

필터에 논리적 근거가 있나요? 아니면 마케팅에서 시스템이 얼마나 좋은지 더 오래 말할 수 있도록 거래일만 줄이는 것인가요?

예를 들어 금요일에 거래하지 않는다면 평일 다섯 날 중 나흘만 거래합니다.

즉, 거래일 수로는 똑같은 연승이 달력상으로는 약 25% 더 길게 이어집니다.

연승이 더 좋아진 것이 아닙니다. 단지 더 천천히 진행될 뿐입니다.

그렇다면 실제 시그널 페이지의 곡선도 왜 그렇게 매끄러워 보일까요?

지금까지 Expert Advisor 자체와 백테스트에서 할 수 있는 일을 살펴보았습니다.

하지만 MQL5 시그널에서는 실제 거래 계좌의 통계를 볼 수 있습니다.

따라서 당연한 질문이 생깁니다.

실계좌인데 어떻게 자산 곡선이 거의 완벽해 보일 수 있을까요?

이때 조작은 EA 코드가 아니라 계좌 통계를 표시하는 방식이라는 다른 차원에서 이루어집니다.

동일한 계좌를 두 가지 보기인 Growth와 Balance로 비교하겠습니다.

The same account in two statistics views

차이가 보이나요?

거래 결과 자체는 바뀌지 않았습니다.

Growth 보기에서는 같은 기간에 드로다운이 있었는데도 곡선이 매끄럽게 상승하는 것처럼 보입니다.

Balance 보기에서는 여러 차례의 입금과 출금이 보입니다.

이것은 전혀 다른 차원의 조작입니다.

입출금을 이용해 MQL5 시그널에서 통계상 더 아름다운 모습을 만드는 방법은 다음 POM Education Series 글에서 다루겠습니다.

하지만 아름다운 곡선만으로는 충분하지 않다는 사실을 이제 아실 겁니다.

그 곡선을 실제로 무엇이 만들었는지 살펴봐야 합니다.

이제 알게 된 것

이제 다음 사항을 알게 되었습니다.

  • 작은 이익과 큰 손실이 어떻게 매우 높은 승률을 만들 수 있는지;
  • 하나의 진입을 여러 포지션으로 나누면 어떻게 긴 연승처럼 보일 수 있는지;
  • 나쁜 기간을 제외하면 백테스트가 어떻게 더 좋아 보이는지;
  • 거래일을 줄이면 연승이 달력상 어떻게 더 오래 이어지는지;
  • 그리고 아름다운 곡선만으로는 왜 아무것도 증명할 수 없는지.

다음에 완벽한 EA 결과를 보게 된다면 곡선만 보지 마세요.

스스로 물어보세요. 이것은 Loss-Delayed EA가 아닐까요?

그 이면을 살펴보세요.

이것은 시작에 불과합니다

이 글은 POM Education Series의 첫 번째 교육용 글입니다.

앞으로도 이 시리즈를 이어가며 EA의 품질에 관해 잘못된 인상을 만들 수 있는 다른 방법들을 살펴볼 계획입니다.

다음 글을 놓치고 싶지 않다면 MQL5의 Pulse of Market 채널을 팔로우하세요.

이 글이 유익했다면 다른 사람들과도 공유해 주세요. 그렇지 않으면 이런 정보는 이미 찾아낸 사람들만 알고 있게 됩니다.

Pulse of Market 채널: https://www.mql5.com/en/channels/01a02c54cf2bdd01