MT5 EA 최적화를 위한 유전 알고리즘 입문
목차
MT5 EA 최적화를 위한 유전 알고리즘 입문
EA의 파라미터를 튜닝할 때, MT5 전략 테스터에는 두 가지 최적화 모드가 있습니다. 하나는 "전수 탐색(모든 파라미터 조합을 전부 시도)"이고, 다른 하나는 "유전 알고리즘(GA)"입니다.
방대한 조합을 현실적인 시간 안에 탐색하려면 유전 알고리즘을 사용하는 것이 표준적인 방법입니다. 이 글에서는 유전 알고리즘 최적화의 기본 개념과 실용적인 포인트를 정리합니다.
유전 알고리즘이란
유전 알고리즘(Genetic Algorithm: GA)은 생물의 진화를 모방한 최적화 기법입니다. 구체적으로는 다음과 같은 흐름으로 진행됩니다.
- 무작위 파라미터 집합(개체)을 여러 개 생성
- 각 개체로 백테스트를 실행하고, 평가 지표(PF, 복구 계수 등)로 점수를 매김
- 상위 개체를 "부모"로 선택하여 교차·돌연변이를 통해 다음 세대를 생성
- 이를 반복하여 세대를 거듭할수록 높은 평가를 받는 파라미터로 수렴
전수 탐색이 "모든 조합을 빠짐없이 시도"하는 것에 비해, GA는 "좋은 영역에 집중하여 탐색"하기 때문에 계산 시간이 압도적으로 짧아집니다.
전수 탐색과의 구분 사용
- 파라미터 수가 적고 조합이 수천 개 이하 → 전수 탐색으로 망라
- 파라미터 수가 많고 조합이 수만 개 이상 → 유전 알고리즘
예를 들어, 3개의 파라미터를 각각 10단계로 변경하면 1,000가지이므로 전수 탐색으로 충분합니다. 반면 5개의 파라미터를 20단계로 변경하면 320만 가지가 되어, 현실적으로는 유전 알고리즘이 필요합니다.
전략 테스터에서의 설정
최적화를 활성화하려면 전략 테스터 화면에서 다음을 설정합니다.
- 최적화: "유전 알고리즘 기반 고속"을 선택
- 결과: "최대 복리", "커스텀 최대값", "최대 복구 계수" 등 평가 지표를 선택
- 입력 파라미터 탭: 최적화할 파라미터에 체크 표시, 시작값·종료값·스텝을 설정
평가 지표 선택 방법
무엇을 "좋음"으로 정의하느냐에 따라 결과가 달라집니다. 대표적인 지표와 특징은 다음과 같습니다.
- 최대 복리(수익): 이익만을 최대화합니다. 리스크를 무시하므로 과최적화에 빠지기 쉽습니다.
- 복구 계수: 순이익 ÷ 최대 드로우다운. 균형을 중시합니다.
- 샤프 비율: 수익의 안정성을 고려합니다.
- 커스텀 최대값: EA 코드 내에서 자유롭게 정의 가능합니다(예: PF × 거래 수).
복구 계수 또는 샤프 비율을 사용하는 것이 과최적화를 피하면서 실용적인 파라미터를 찾기 좋은 방법입니다.
유전 알고리즘 최적화 실행
최적화를 시작하면 세대별로 평가값이 높은 파라미터가 "최적화 결과" 탭에 나열됩니다. MT5의 유전 알고리즘은 수백 세대를 자동으로 실행하며 상위 해에 수렴해 갑니다.
자주 있는 함정
- 수렴이 너무 빠름: 파라미터 탐색 범위가 너무 좁을 가능성
- 전혀 수렴하지 않음: 평가 지표가 부적절하거나 노이즈가 너무 많음
- 명확히 이상한 값으로 수렴: 거래 수가 너무 적은 결과를 제외하지 않았을 경우
"거래 수 50회 미만의 결과는 제외"와 같은 필터를 평가 함수에 포함시킴으로써 샘플 수가 적은 노이즈 해를 배제할 수 있습니다.
과최적화 방지
최적화를 반복할수록 "과거에는 완벽하지만 미래에는 작동하지 않는" 파라미터에 가까워집니다. 이를 방지하기 위한 실용적인 규칙을 소개합니다.
1. 기간을 분할한다
과거 10년 데이터를 사용하는 경우, 전반 7년으로 최적화하고 후반 3년으로 아웃오브샘플 검증을 실시합니다. 후반에서 결과가 무너진다면 전반에 과적합되었다고 판단할 수 있습니다.
2. 상위 10~20개를 비교한다
최고 점수 하나만을 채택하는 것은 위험합니다. 상위 해가 비슷한 영역에 모여 있는지 확인하고, 모여 있다면 그 중앙 부근의 파라미터를 채택합니다.
3. 파라미터 민감도를 확인한다
채택 후보 파라미터를 ±10~20% 변경하여 결과가 크게 무너지지 않는지 확인합니다. 무너진다면 해당 해는 "뾰족한 최적점"에 과적합된 것입니다.
4. 최적화하지 않는 파라미터도 남겨둔다
"최적화하지 않은, 로직상 자연스러운 고정값"을 반드시 남겨둠으로써 과최적화의 리스크를 줄일 수 있습니다. 예를 들어 EMA 기간을 최적화하더라도 ATR 배율은 고정으로 유지하는 방식입니다.
병렬 최적화 활용
MT5는 여러 CPU 코어를 사용한 병렬 최적화를 지원합니다. "테스터" → "설정"에서 사용 에이전트 수를 늘리면 계산 시간을 단축할 수 있습니다.
또한 MQL5 클라우드 네트워크를 사용하면 전 세계의 원격 에이전트를 이용하여 대규모 최적화를 실행할 수 있습니다. 단, 비용이 발생하므로 먼저 로컬에서 파라미터 범위를 좁혀 두는 것이 효율적입니다.
당사 배포 EA의 최적화 방침
GOLD_EMA_ATR_EA(XAUUSD H1)의 경우, 최적화 대상을 의도적으로 좁혔습니다.
- EMA 단기 기간
- EMA 장기 기간
- ATR 배율(손절용)
그 외의 파라미터는 "자연스러운 값"으로 고정하여 과최적화를 방지하는 설계입니다. 10년 백테스트에서 PF 1.30이라는 수치는 최적화를 더 돌리면 올라가겠지만, 미래 시장에서 작동하지 않을 가능성도 높아집니다. **"평범한 수치를 선택하고 오래 운용한다"**는 것이 실운용에서의 현실적인 답입니다.
무료 EA 다운로드
GOLD_EMA_ATR_EA는 최적화된 파라미터와 최적화 가이드를 포함하여 무료로 배포 중입니다.
추천 브로커
백테스트·최적화 결과가 실운용에서 재현되기 쉽도록, 당사 사이트에서는 체결 품질을 중시한 브로커를 추천하고 있습니다.
관련 기사
5일간 이메일 강좌 (무료)
FX 자동매매의 본질, 백테스트의 올바른 해석, 브로커 선택 요령을 매일 1통 전해드립니다.
※ 개인정보는 엄격히 보호. 언제든 구독 해지 가능.