먼저 이 글을 읽고 MQL5 코딩을 배우고 싶어서 코드를 복사했다는 점을 말씀드리고 싶습니다. 두 번째로 많은 것을 배웠다고 생각하며 현재 7개의 EA와 몇 가지 지표를 작성했습니다. 그래서 제 아이디어를 코딩할 수 있을 정도로 잘 배우고 있다고 생각합니다.
게다가. 전략 테스터에 대해 정말 궁금해졌습니다. 처음에는 너무 기본적이어서 절대 작동하지 않을 것이라고 생각했습니다. 그건 사실이 아니었어요. 작동할 수 있습니다. 하지만. 저는 인내심이 강한 사람에게만 효과가 있다고 생각했습니다. 그래서 저는 USDCAD, 일일 차트주기로 테스트했고 테이크프로핏, 스톱로스, ADX 기간을 최적화했습니다. 간단히 말해서 중간에 ADX를 넣으면 됩니다. 29 이상 60 미만. 괜찮을 것입니다. 테이크프로핏. 가능한 한 많이. 300에서 500 사이. 손절매. 확실히 훨씬 적습니다. 반복되는 숫자는 155 또는 30이었습니다. 그리고 큰 문제가 생겼습니다. 저는 2019년부터 2025년 초까지 테스트했습니다. 75 거래에서 가장 높은 ADX 설정의 경우 약 45 거래까지 제공했습니다. 이 테스트 중 5번의 그래프를 살펴봤습니다. 2024년까지 0 근처를 맴돌았습니다. 그리고 모든 이익은 작년에 나옵니다. 제가 살펴본 이익 계수는 1.77에서 2.61까지였습니다. 전체적으로 많은 문제가 있습니다. 모든 숏은 손실이었습니다. 롱 포지션의 86%가 수익을 냈습니다. 거래 기간이 긴 거래가 많았습니다. 일반적으로 10일 이상이 많았습니다. 최장 보유 기간은 3440시간이었던 것 같습니다. 평균은 846시간이었습니다. 수익률도 매우 높을 수 있다고 생각했지만 6년 후에 20회 미만의 거래로 제한되기를 원하는 사람이 있을까요?
저는 33000개의 조합을 모두 살펴보는 데 며칠을 보냈습니다. 이제 더 테스트하고 작업을 많이 줄일 것입니다. 55 이상의 ADX 값은 필요하지 않습니다. 30의 손절매는 너무 낮아서 수익성을 많이 보았음에도 불구하고 너무 낮습니다. 마지막으로 한 가지 더. LAN에 여러 대의 PC/노트북을 연결하여 속도를 높일 수 있다고 읽었습니다. 저는 이를 추천합니다.
해당 종목에 실제 틱 데이터가 있는지, 아니면 바(bar) 데이터만 있는지 월별로 보고합니다. 이를 통해 수익률 곡선을 신뢰하기 전에 백테스트의 어느 부분이 생성된 틱 데이터로 실행되었는지 파악할 수 있습니다. 전략 테스터는 테스트가 끝난 후 하나의 '히스토리 품질' 수치만 제공하며, 어떤 월에 문제가 있었는지는 절대 알려주지 않습니다. 이 스크립트는 먼저 그 정보를 확인합니다.
2단계는 특정 브로커-딜러의 과거 데이터 중 “실제 틱을 기반으로 한 모든 틱”을 사용하여 테스트하는 것입니다(아직 그렇게 하지 않고 계신 경우를 대비해서). PC 사양에 따라, 특히 구형 컴퓨터에서는 데이터를 여러 번에 나누어 테스트해야 할 수도 있습니다.
3단계에서는 이미 시작하신 테스터 보고서를 평가해야 합니다. 연속 손실의 평균 횟수와 최대 횟수에 각별히 주의를 기울이세요. 실시간 연속 손실 횟수가 평균 연속 손실 횟수를 초과하면 포지션 규모를 축소하는 것이 좋습니다(자세한 설명은 제 프로필 벽에 게시되어 있습니다). 또한 EA가 수익을 내는 시간대(시간, 일, 월)에도 주의를 기울이세요. 거래 진입 시간대는 기본적으로 지원되지 않으므로, 보조 보고서를 생성하는 유틸리티를 만들었습니다(https://www.mql5.com/en/blogs/post/774010). 거래 시간 필터를 적용해 보시는 것도 좋습니다(https://www.mql5.com/en/blogs/post/770147).
참고로, 수익을 내는 포지셔널(장기) 트레이더도 많이 있습니다. 개인적인 목표가 이러한 거래 스타일과 부합한다면, 거래 빈도에 대해 너무 걱정하지 않으셔도 됩니다. 제 생각에는 HFT나 MFT 전략보다 수익을 내는 LFT 전략을 만드는 것이 훨씬 쉽습니다.
As the MT5 Tester does not natively support reporting hourly profit and loss by deal-entry-in (only deal-entry-out), I created this MQL5 Service to to generate custom backtest reports limited to, and
먼저 이 글을 읽고 MQL5 코딩을 배우고 싶어서 코드를 복사했다는 점을 말씀드리고 싶습니다. 두 번째로 많은 것을 배웠다고 생각하며 현재 7개의 EA와 몇 가지 지표를 작성했습니다. 그래서 제 아이디어를 코딩할 수 있을 정도로 잘 배우고 있다고 생각합니다.
게다가. 전략 테스터에 대해 정말 궁금해졌습니다. 처음에는 너무 기본적이어서 절대 작동하지 않을 것이라고 생각했습니다. 그건 사실이 아니었어요. 작동할 수 있습니다. 하지만. 저는 인내심이 강한 사람에게만 효과가 있다고 생각했습니다. 그래서 저는 USDCAD, 일일 차트주기로 테스트했고 테이크프로핏, 스톱로스, ADX 기간을 최적화했습니다. 간단히 말해서 중간에 ADX를 넣으면 됩니다. 29 이상 60 미만. 괜찮을 것입니다. 테이크프로핏. 가능한 한 많이. 300에서 500 사이. 손절매. 확실히 훨씬 적습니다. 반복되는 숫자는 155 또는 30이었습니다. 그리고 큰 문제가 생겼습니다. 저는 2019년부터 2025년 초까지 테스트했습니다. 75 거래에서 가장 높은 ADX 설정의 경우 약 45 거래까지 제공했습니다. 이 테스트 중 5번의 그래프를 살펴봤습니다. 2024년까지 0 근처를 맴돌았습니다. 그리고 모든 이익은 작년에 나옵니다. 제가 살펴본 이익 계수는 1.77에서 2.61까지였습니다. 전체적으로 많은 문제가 있습니다. 모든 숏은 손실이었습니다. 롱 포지션의 86%가 수익을 냈습니다. 거래 기간이 긴 거래가 많았습니다. 일반적으로 10일 이상이 많았습니다. 최장 보유 기간은 3440시간이었던 것 같습니다. 평균은 846시간이었습니다. 수익률도 매우 높을 수 있다고 생각했지만 6년 후에 20회 미만의 거래로 제한되기를 원하는 사람이 있을까요?
저는 33000개의 조합을 모두 살펴보는 데 며칠을 보냈습니다. 이제 더 테스트하고 작업을 많이 줄일 것입니다. 55 이상의 ADX 값은 필요하지 않습니다. 30의 손절매는 너무 낮아서 수익성을 많이 보았음에도 불구하고 너무 낮습니다. 마지막으로 한 가지 더. LAN에 여러 대의 PC/노트북을 연결하여 속도를 높일 수 있다고 읽었습니다. 저는 이를 추천합니다.
검증 과정이 단순히 최상의 최적화 결과를 선정하는 데 그쳐서는 안 된다는 점에 동의합니다. 제가 추가로 우려하는 점은 검증 절차 자체가 과적합(overfit) 상태에 빠질 수 있다는 것입니다.
예를 들어, 결과를 확인한 후 워크포워드(walk-forward) 창, 몬테카를로 가정, 매개변수 변동 범위 또는 거래 비용 가정을 반복적으로 변경한다면, 결국 검증 과정 자체를 최적화하게 될 수도 있습니다.
더 확실한 접근 방식은 최종 OOS 결과를 확인하기 전에 검증 프로토콜을 정의한 다음, 단 한 번만 사용되는 최종 기간을 완전히 손대지 않은 상태로 유지하는 것이라고 생각합니다.
적응형 EA의 경우, 체제 감지 매개변수를 거래 매개변수와 별도로 검증해야 하는지도 궁금합니다. 이 접근법을 테스트해 본 분이 계신가요?
전략 테스터를 처음 사용해 본 경험을 아주 상세하게 정리해 주셨네요.
몇 가지 제안을 드려도 될까요?
1단계에서는 반드시 브로커-딜러의 틱 데이터 품질을 확인해야 합니다. 이 과정을 자동화해 주는 아주 훌륭한 스크립트가 다음 주소에 있습니다:
코드 베이스
틱 감사 - 실제 틱 내역 확인 및 월별 백테스트 품질 점검
Ayaz, 2026.09.05 06:13
해당 종목에 실제 틱 데이터가 있는지, 아니면 바(bar) 데이터만 있는지 월별로 보고합니다. 이를 통해 수익률 곡선을 신뢰하기 전에 백테스트의 어느 부분이 생성된 틱 데이터로 실행되었는지 파악할 수 있습니다. 전략 테스터는 테스트가 끝난 후 하나의 '히스토리 품질' 수치만 제공하며, 어떤 월에 문제가 있었는지는 절대 알려주지 않습니다. 이 스크립트는 먼저 그 정보를 확인합니다.2단계는 특정 브로커-딜러의 과거 데이터 중 “실제 틱을 기반으로 한 모든 틱”을 사용하여 테스트하는 것입니다(아직 그렇게 하지 않고 계신 경우를 대비해서). PC 사양에 따라, 특히 구형 컴퓨터에서는 데이터를 여러 번에 나누어 테스트해야 할 수도 있습니다.
3단계에서는 이미 시작하신 테스터 보고서를 평가해야 합니다. 연속 손실의 평균 횟수와 최대 횟수에 각별히 주의를 기울이세요. 실시간 연속 손실 횟수가 평균 연속 손실 횟수를 초과하면 포지션 규모를 축소하는 것이 좋습니다(자세한 설명은 제 프로필 벽에 게시되어 있습니다). 또한 EA가 수익을 내는 시간대(시간, 일, 월)에도 주의를 기울이세요. 거래 진입 시간대는 기본적으로 지원되지 않으므로, 보조 보고서를 생성하는 유틸리티를 만들었습니다(https://www.mql5.com/en/blogs/post/774010). 거래 시간 필터를 적용해 보시는 것도 좋습니다(https://www.mql5.com/en/blogs/post/770147).
참고로, 수익을 내는 포지셔널(장기) 트레이더도 많이 있습니다. 개인적인 목표가 이러한 거래 스타일과 부합한다면, 거래 빈도에 대해 너무 걱정하지 않으셔도 됩니다. 제 생각에는 HFT나 MFT 전략보다 수익을 내는 LFT 전략을 만드는 것이 훨씬 쉽습니다.