(Vantage, NAS100.r)
나스닥100 CFD 5분봉에서 종가가 VWAP 3시그마 밖으로 나가면 반대 방향으로 들어가는 평균회귀 EA입니다. 의뢰인이 트레이딩뷰에서 보던 VWAP과 값이 같아야 했고, 세션은 한국 시간 07:00에 시작해야 했습니다. 2026년 9월 초에 납품했고 데모 계좌에서 3일 동안 실매매로 검증했습니다. 첫날 신호가 두 번 떴는데 둘 다 진입이 안 됐습니다.
| 항목 | 규칙 |
|---|---|
| 진입 | M5 봉 마감 종가가 VWAP +3σ 이상이면 숏, −3σ 이하면 롱으로 시장가 진입합니다. 고가나 저가가 닿은 것만으로는 신호로 보지 않습니다 |
| 익절 | 진입가에서 1σ 선까지 거리의 90%, 또는 1σ와 2σ 사이의 90% 지점. 둘 중 하나를 설정에서 고릅니다 |
| 손절 | 익절 거리와 1:1 대칭 |
| 재진입 | 보유 중에 같은 신호가 또 나오면 기존 포지션을 청산하고 새로 진입합니다. 포지션은 항상 하나 |
| 쿨다운 | 손절 후 그 방향만 60분 동안 진입하지 않습니다. 반대 방향은 바로 가능 |
| VWAP | 세션 시작점부터 계산하는 VWAP과 거래량가중 표준편차. 트레이딩뷰 내장 VWAP과 같은 공식입니다 |
TP와 SL은 브로커 서버에 걸어 둡니다. 랏, TP 비율, 쿨다운, 스프레드 한도는 EA 설정창과 차트 위 패널 양쪽에서 바꿀 수 있습니다. 패널에서 바꾼 값은 저장되지만, 설정창에서 새로 바꾼 값이 있으면 그쪽을 우선합니다.
3σ 신호가 두 번 떴는데 텔레그램으로는 진입 실패 알림만 왔고 계좌에는 주문이 없었습니다. EA 로그를 열어 보니 16:35 숏 신호 바로 아래에 "스프레드 180pt > 한도 100pt, 진입 보류"라고 찍혀 있었습니다.
스프레드 한도 기본값을 100포인트로 잡았는데 그 계좌의 NAS100 평소 스프레드가 180포인트였습니다. 아시아 세션에는 1,000포인트까지 벌어지는 구간도 있었습니다. 외환 종목 감각으로 지수 CFD의 단위를 잡은 것이 원인입니다. NAS100에서는 지수 1.8포인트가 180포인트로 표시됩니다. 한도를 300으로 올리고 프리셋 파일도 맞췄습니다. 알림에는 스프레드가 한도보다 넓어 보류됐다는 사유를 붙였습니다. 진입을 막은 이유를 전부 로그에 남기게 만들어 둔 덕에 원인을 찾는 데 5분이 걸렸습니다.
이후 검증 사흘 동안 실제로 남은 로그 일부입니다. 손익 수치와 아이콘은 지웠습니다.
2026.09.03 06:20:00 [INFO] 숏 신호: 종가 29204.86, +3.0σ 29203.10 (VWAP 29152.56, σ 16.85, 64봉)
2026.09.03 06:20:00 [INFO] 진입 숏(매도) 1.00랏 @ 29204.11 | TP 29172.88, SL 29235.34 (모드0, 90%)
2026.09.03 08:01:44 [INFO] 익절 청산 숏 @ 29172.88
2026.09.03 16:45:00 [INFO] 숏 신호: 종가 29322.82, +3.0σ 29299.37 (VWAP 29163.30, σ 45.36, 189봉)
2026.09.03 16:45:00 [INFO] 재진입 신호, 기존 포지션 청산
2026.09.03 16:45:00 [WARN] 스프레드 1000pt > 한도 300pt, 진입 보류 (봉 내 재시도)
2026.09.03 16:45:02 [INFO] 진입 숏(매도) 1.00랏 @ 29318.57 | TP 29219.65, SL 29417.49
의뢰인은 한국 시간 07:00에 VWAP을 새로 시작하고 09:00부터 매매하길 원했습니다. 브로커 서버 시각은 보통 GMT+2나 GMT+3이고 서머타임에 따라 바뀝니다. 실거래에서는 서버 시각과 GMT의 차이를 실행 중에 재서 30분 단위로 맞추면 서머타임이 자동으로 반영됩니다. 백테스트(전략 테스터)에서는 이 차이를 잴 수 없어서, 겨울 기준 시차에 미국과 유럽의 서머타임 규칙을 더해 계산하는 방법을 따로 두었습니다. 한국은 서머타임이 없으니 모든 경계를 UTC로 바꿔 계산합니다. 한국 시간 07:00은 전날 UTC 22:00입니다. 백테스트에서도 세션이 정확히 한국 시간 07:00에 시작되는 것을 확인했습니다.
VWAP 값이 맞는지를 EA 혼자 확인하면 검증이라 할 수 없습니다. 같은 공식을 파이썬으로 따로 만들어 트레이딩뷰, EA 패널, 파이썬의 값을 대조했습니다. 신호가 난 봉의 VWAP, σ, −3σ, 종가가 소수 둘째 자리까지 일치했습니다.
납품 전에 독립된 리뷰어 셋이 각각 명세 일치 여부, API 사용 오류, 예외 상황을 따로 검토했고, 수정한 뒤 한 번 더 검토했습니다. 두 번째 검토에서는 첫 번째 수정이 새로 만든 문제가 나왔습니다.
사흘 동안 진입 16건, 청산 15건, TP 자동 청산 3건이 있었고 MT5 저널 오류는 0건이었습니다. 로그를 프로그램으로 검사해서 한국 시간 07~09시 진입 0건, 동시 2포지션 0건, 재진입 12쌍 정상, TP와 SL 거리 비율 1.000을 확인했습니다. 사흘은 전략을 평가하기에는 짧고, 프로그램이 명세대로 움직이는지 보는 기간입니다. 손익은 공개하지 않습니다.
트레이딩뷰에서 보던 지표를 MT5에서 같은 값으로 쓰고 싶다는 분이 많습니다. 저희는 그 값부터 맞춥니다.
쓰시는 브로커와 종목을 상담에서 알려 주세요.