최적화의 힘은 가장 수익성이 높은 매개변수 설정을 찾기 위해 수백 가지의 가능한 매개변수 설정을 테스트할 수 있다는 것입니다. 그러나 모든 강력한 기능과 마찬가지로 남용될 수도 있습니다. 레버리지와 마찬가지로 최적화도 엄격하게 통제되면 전략을 강화하고 상당한 이익을 보상할 수 있습니다. 그렇지 않으면 전략과 계정이 파괴될 수 있습니다.
최적의 매개변수를 찾는 과정에서 데이터를 이력에 맞추기 쉬우며, 이로 인해 오직 유효한 '엄청난 이익'이라는 환상을 얻게 된다. 역사를 위해. 이것을 과잉 최적화라고 하며, 너무 쉬워서 거의 불가피합니다. 이 기사에서 MT4 Expert Advisor(EA)를 과도하게 최적화할 때 발생할 수 있는 위험과 과도한 최적화로 인한 위험한 속임수를 피하는 방법에 대해 알아보세요.
과도하게 최적화하는 자기기만은 위험할 수 있습니다. 이는 실제 계정에서 "유토피아적인" EA를 시도하려는 우리 내부의 탐욕을 조장하는 잘못된 EA 수익성을 만들어냅니다. 따라서 우리 계정을 실제로 태워버릴 수 있는 정말 끔찍한 시스템의 불길에 빠뜨리게 됩니다.
< p>잠재적으로 수익성이 높은 전략에 가장 적합한 매개변수 설정을 찾을 수 있는 기회를 놓치고 잘못된 매개변수 설정에 갇힐 수 있으므로 최적화를 포기하는 것은 어리석은 일입니다. 그러나 선을 넘어 과도한 최적화와 그에 따른 위험한 결과를 초래하는 것은 매우 쉽습니다. 황금률을 어떻게 찾을 수 있나요?
최적화 중에 잠재적으로 더러운 것을 발견했다고 해서 아기를 목욕물과 함께 버려야 한다는 의미는 아닙니다. 과도한 최적화의 위험을 줄이기 위한 조치를 취하는 한 최적화는 추구할 가치가 있습니다.
과잉 최적화를 최소화하기 위해 취할 수 있는 5가지 단계:
1단계 : 가능한 한 적은 수의 매개변수를 최적화합니다.
불필요한 규칙 조합(지표, 신호, 이탈 및 필터). 전략에 규칙을 추가할 때마다 전략 곡선을 과거 데이터에 맞출 가능성이 높아집니다.
2단계: 탐지를 위한 최적의 매개변수도 수익성이 있어야 합니다.
수익성이 있는 매개변수를 찾기 위해 매개변수를 최적화할 때마다 주변 매개변수도 수익성이 있는지 확인하세요. 지표의 최적 길이가 18인 경우 아래(15, 16,17) 및 위(19, 20, 21) 주변 매개변수도 수익성이 있는지 확인하세요. 최적 값의 어느 쪽이든 수익성이 없는 매개변수가 있는 경우 이는 위험 신호가 되어야 합니다.
3단계: 대규모 데이터 세트(과거, 막대 및 거래)를 최적화합니다.
최적화하는 기록이 작을수록 곡선 피팅이 더 쉬워집니다. 또한 최적화하려는 더 큰 시간 범위에 맞게 곡선을 맞추는 것이 훨씬 쉽습니다. 일반적으로, 시간 범위가 클수록 신뢰할 수 있는 열 샘플 크기를 얻으려면 더 많은 기록이 필요하므로 최적화해야 하는 기록이 더 많아집니다. 기간이 작을수록 막대가 많아지므로 처리해야 하는 내역이 줄어듭니다. 그러나 역사는 시장에서 다양한 행동을 보여주기 때문에 여전히 일부 역사를 알아야 합니다.
4단계: 표본 외부(앞으로) 데이터에 최적의 매개변수를 적용해야 합니다.
샘플 외부 데이터, 즉 겹치지 않는 다른 기간의 데이터에 최적의 매개변수가 적용됩니까?
기록 데이터에 대해 시스템을 테스트할 때 다른 테스트 목적에 사용될 특정 기간의 기록 데이터를 "저장"하는 것은 항상 유용합니다. 일반적으로 데이터에는 표본 내 데이터와 표본 외부 데이터라는 두 가지 유형이 있습니다. 표본 내 데이터는 테스트 및 최적화를 위해 초기에 사용된 데이터이고, 표본 외 데이터는 저장된 데이터입니다. 추가 테스트를 위해 데이터를 저장하는 것은 평가 프로세스에 중요합니다.
따라서 이전에 최적화 모델에서 사용되지 않은 데이터를 스스로 제공합니다. 따라서 샘플 외부 데이터는 시스템에 영향을 미치지 않으며 거래 시스템의 실제 성과를 이해할 수 있습니다. 즉, 실제 거래에서 시스템이 어떻게 작동하는지 확인할 수 있습니다.
최적화나 백테스트를 시작하기 전에 샘플 외부 테스트에 사용할 일부 기록 데이터를 저장해야 합니다. 예를 들어 기록 데이터를 세 부분으로 분할하고 한 부분은 샘플 외부 테스트용으로 남겨둘 수 있습니다.
이전 데이터의 나머지 두 부분(샘플 내 데이터)만 초기 테스트 및 최적화에 사용해야 합니다. 그림 1에서 볼 수 있듯이 타임라인의 과거 데이터 중 1/3은 out-of-sample 테스트를 위해 예약되어 있으며 나머지 두 부분은 초기 테스트를 위한 in-sample 데이터로 사용됩니다.
예를 들어 2000~2008년의 데이터(대조군 샘플 기록)로 시스템을 테스트한 다음 최상의 매개변수를 찾으면 2008년부터 2010년까지의 "앞으로" 역사적 세트에서 테스트할 수 있습니다. 최적의 매개변수가 표본 외부 데이터에서 제대로 작동하지 않는다면 이는 과도하게 최적화되었음을 의미합니다.
데이터가 줄에 배치되는 순서는 그다지 일반적이지 않습니다. 일반적으로 샘플 외부 데이터는 줄의 시작 부분에 없습니다. 테스트하지만 앞으로의 성능 전에.
표본 내 데이터에 대해 시스템을 테스트한 후에는 프로세스를 계속 진행하여 표본 외 데이터에 시스템을 적용할 수 있습니다. 이는 샘플 내 데이터와 샘플 외부 데이터에 대한 시스템 성능 결과를 비교할 수 있는 기회를 제공하기 위해 수행됩니다.
상관관계는 표본 내 데이터와 표본 외부 데이터의 추세와 동작 간의 유사점을 찾는 프로세스입니다. 거의 모든 거래 플랫폼에서는 시스템 성능 테스트 중에 생성된 보고서를 비교할 수 있습니다. 데이터 세트 간의 상관 관계가 높으면 전략이 성공할 가능성이 높으며 선도 성과 테스트와 실시간 거래 모두에서 좋은 결과를 보여줄 수 있습니다.
왼쪽 그림과 같이 두 데이터 세트 간의 상관관계가 명확하지 않으면 실시간 거래에서 시스템이 실패할 가능성이 높습니다. 과도한 최적화로 인해 정상 작동됩니다. 상관 관계가 강한 경우(오른쪽 이미지) 앞으로 성능 테스트라는 추가 테스트를 수행할 수 있습니다.
5단계: 향후 성과 데이터에 최적의 매개변수를 적용해야 합니다.
순방향 성능 테스트는 시스템 성능을 테스트하기 위한 또 다른 도구입니다. 이러한 샘플 외부 데이터 세트는 모든 작업이 "가상"으로 수행되기 때문에 종종 종이 거래라고 합니다. 순방향 성능 테스트 중에 실시간 시장에서 발생할 수 있는 상황이 시뮬레이션되고 시스템은 실시간 거래와 마찬가지로 해당 매개변수 및 논리에 따라 작동합니다. 이는 이익, 손실, 진입 및 퇴출을 기록하지만 실제 작업을 수행하지 않음을 의미합니다.
기억하세요: 시스템 로직을 최대한 정확하게 따르는 것이 중요합니다. 그렇지 않으면 앞으로의 성능 테스트 결과를 평가할 수 없습니다. 어떠한 예외나 설명 없이 모든 거래 진입과 청산을 정직하게 명시해야 합니다. 이 경우에만 시스템을 올바르게 평가할 수 있습니다.
많은 중개업체에는 가상 거래 계좌를 개설할 수 있는 옵션이 있으며 이를 통해 거래 개설, 손익 계산 등을 연습할 수 있습니다. 이 계정을 사용하면 실제 돈을 잃을 위험 없이 시스템을 테스트할 수 있습니다.
모든 데이터 세트 사이에 좋은 상관관계가 있는 경우 시스템은 이를 실용적인 거래.