매매 시스템 최적화 방법과 검증

 

매매 시스템 최적화 

매매 시스템 최적화 


- 최적화는 특정 시장에 적용된 시스템에서 최상의 성과를 낼 매개변수 조합을 찾아내는 과정이다. 최적화의 기본 전제는 과거에 좋은 성과를 냈던 매개변수 조합이 미래에도 최고의 성과를 낼 가능성이 크다는 것이다. 


예를들어, 투자자가 10년간의 가격 데이터로 교차이동평균 시스템을 검증한 결과 단기 및 장기 이동평균 일수를 각각 10과 40으로 했을 때 가장 좋은 성과를 냈다는 사실을 발견했다고 하자. 아마도 그는 이후 매매에서도 역시 좋은 성과를 낼거라는 기대를 가지고 

이 수치 조합으로 시스템 매매를 하려고 할 것이다. 


- 최적화와 관련해 기본적으로 고려해야 할 문제는 어떤 기준으로 '최고 성과'를 정의할 것이냐 하는 점이다. 최고 성과라고 하면 단순히 최대 수익을 냈을 때라도 해석하는 경향이 있다. 그러나 이는 불완전한 정의다. 

기본적으로 시스템 성과를 비교할 대는 다음의 네 가지 요소를 고려해야 한다. 


1. 수익률


- 투자에 대한 수익의 비율을 말한다. 두 시스템이 똑같이 연간 1만 달러의 수익을 낸다고 하자. 그런데 하나는 매매 자금으로 4만 달러가 필요하고 또 하나는 20만 달러가 필요하다면 이 둘을 똑같이 매력적인 시스템으로 보기는 어렵다. 

이 두 시스템의 수익률은 달라질 것이고, 따라서 시스템에 대한 평가도 달라질 수밖에 없다. 

2. 위험도 


- 수익률과 더불어서 자산 가치의 변동성(수익률의 변동성, 자산 가치의 하락)도 고려해야 한다. 연 수익이 각각 1만 달러고, 필요 자금은 4만 달러인 두 시스템이 있다고 하자. 그런데 두 시스템에 대한 과거 데이터 검증 결과, 

한 시스템은 자산 가치의 최대 하락폭이 2만 달러(50%)이고, 또 하나는 5,000달러(12.5%)다. 이런 상황에서는 전자로 매매해야 할 이유가 없다. 위험도를 고려하는 것은 변동성이 큰 시스템과 매개변수 조합을 피하려는 심리적 요인 외에도 

시장 진입 시점을 잘못 선택할 수 있기 때문이다. (언제 가격이 하락할지 그 시점을 정확히 알아낼 방법이 없다) 


예를 들어, 위험도가 50%인 시스템을 사용한 투자자가 안탑깝게도 투자 개시 후 몇 개월만에 자산 가치가 20만 달러나 하락하는 불운을 겪었다면 그는 크게 실망한 나머지 이 시스템을 통해 장기적인 투자는 하지 않으려고 할 것이다. 


3. 매개변수의 안정성


- 효율적인 매개변수 조합을 찾아내는 것만으로는 충분하지 않다. 즉 그 매개변수 조합이 우연히 좋은 성과를 낸 것이 아닌지 확인해야 한다. 즉 그 매개변수 조합이 우연히 좋은 성과를 낸 것이 아닌지 확인해야 한다. 

사실상 시스템 최적화의 목적은 최고 성과를 낸 매개변수 조합 하나를 알아내는 것이 아니라 좋은 성과를 내는 보다 광범위한 매개변수 조합을 찾아내는 것이다. 


예를 들어 단순 돌파 시스템 검증에서 매개변수 N=7이 위험 대비 최상의 수익을 나타냈지만 N<5 와 N>9에서 성과가 급격히 낮아졌고, N=25 와 N=54 사이의 N값이 비교적 좋은 성과를 낸다는 사실을 알게 됐다면 후자의 범위에 속하는 매개변수를 선택하는 것이 훨씬 합리적이다. 


그 이유는, N=7일 떄 최고의 성과를 냈던 것은 그야말로 예외적인 상황으로서, 과거의 그 데이터만이 갖고 있는 특성이므로 이런 상황이 되풀이될 가능성은 적기 때문이다. N=7일 때를 제외하고 N값이 7 부근에 있을 때는 저조한 성과를 낸 이상

 N=7일 때를 제외하고 N값이 7 부근에 있을 때는 저조한 성과를 낸 이상, N=7로 매매를 계속해야 할 근거가 부족하다. 즉, N=7이 바람직한 매개변수 값이라고 신뢰할 만한 근거가 없다. 

이와는 대조적으로 N=25부터 N=54까지, N값의 범위를 비교적 넓게 잡았을 때 안정적 성과를 나타낸 것으로 봐서 이 범위의 중간 지점에 해당하는 매개변수를 택하면 성공투자의 확률이 더 높아질 것이다. 


4. 시간적 안정성


- 지극히 짧은 기간에 극단적으로 월등한 성과를 내는 것보다는 특정 기간 내내 꾸준한 성과를 내는 것이 중요하다. 이렇게 오래도록 꾸준한 성과를 낸 기간이 전체 매매 기간에 대해서도 대표성을 갖는다. 



- 일반적으로 수익성이 높은 매개변수 조합은 자산 가치의 하락 폭도 작은편이다. 결과적으로 '단일' 시스템을 최적화할 때 기본적인 수익-위험(수익 대비 위험) 지표 혹은 이보다 더 단순한 수익률 지표를 사용하면, 

수많은 성과 지표를 포함하는 복잡한 성과 평가와 크게 다르지 않은 결과를 얻을 수 있다. 그러나 완전히 다른 시스템 간의 매개변수 조합들을 비교할 때는 위험도, 매개변수의 안정성 , 시간적 안정성 등의 요소를 고려하는 것이 중요하다. 


매매 시스템 설계 및 검증 단계 


1. 검증에 필요한 모든 데이터를 확보한다. 

2. 시스템 개념을 규정한다. 

3. 이 개념에 부합하는 매매 규칙을 프로그래밍 한다. 

4. 주식 혹은 선물 시장의 범주와 매매 기간 범주를 선택한다. 

5. 선택 범주별로 특정 매개변수 조합에 해당하는 매매 신호를 규정한다. 



6. 선택 범주별로 가격 차트를 만들고 차트의 사본을 몇 부 만든다. (선물 투자자는 연속형 선물 사용)

7. 작성한 차트에 매매 신호를 표시한다 (시스템 검증에 관한 차트를 만들 때고 같은 가격 데이터를 사용했는지 확인) 이는 매우 중요한 단계다. 데이터 출력물을 사용하는 것보다 이처럼 차트에 표시된 매매 신호가 시각적으로 검토하기 편리하므로,

시스템의 오류를 찾아내 제거하기가 훨씬 수월하다. 

8. 해당 시스템이 원래 의도했던 대로 작동하는지 확인한다. 세심하게 살펴보면 아래의 이유(두 가지 전부 혹은 둘 중 한 가지) 때문에 몇 가지 모순을 발견하게 될 것이다. 

1) 프로그램에 오류가 존재한다 
2) 프로그램 규칙이 일부 상황을 예측하지 못하거나 예상치 못한 문제를 초래한다. 


2)에 속하는 사례 몇 가지를 들면 다음과 같다. 신호를 내야 정상인 상황에서 매매 신호를 내지 못하는 경우, 신호가 나오지 않을 시점에서 신호를 내는 경우, 시스템 규칙이 새로운 신호가 나올 수 없는 상황을 만들거나 기존 포지션을 무한정 보유하도록 만드는 경우 등 


이런 점들은 잘 포착되지 않는 미묘한 문제에서 비롯되는 경우가 대부분이다. 프로그램 오류와 예상치 못한 문제를 교정하기 위해서는 시스템 규칙을 수정할 필요가 있다. 예상치 못한 문제 교정은 시스템이 애초 의도했던 개념에 잘 부함해 작동하는지에 초점을 맞춰야 한다. 

그리고 교정 작업은 시스템 개발 단계에서 사용한 표본(선택된 범주)의 투자 성과를 증진하는지 아니면 약화 시키는지 하는 부분과는 아무런 상관이 없어야 한다. 


9. 필요한 교정 작업을 마치고 나서 7단계와 8단계를 다시 반복한다. 다음의 두 가지 사항을 염두에 두고, 주어진 신호와 이전 신호의 변화 부분에 특히 주목해야 한다. 


1) 프로그램의 변화로 바람직한 수정이 이뤄졌는가?
2) 그런 변화가 의도치 않은 결과를 낳지 않았는가?


10. 일단 시스템이 처음 의도했던 대로 작동하고 모든 규칙과 만일의 사태까지 완전히 결정되면, 가격 데이터 전체에 걸쳐 완벽하게 정의된 매개변수 조합 목록을 기반으로 시스템을 검증한다. (검증 시도 전에 우선 처음 목적했던 매매 포트폴리오를 제대로 규정했는지 확인)




11. 모든 매개변수 조합의 평균 성과 혹은 블라인드 시뮬레이션 절차를 기준으로 성과를 평가한다. 

12. 이렇게 나온 결과를 포트폴리오 구성 내용과 검증 기간이 같은 일반적 시스템(예:돌파, 교차이동평균)과 비교한다. 해당 시스템이 진정한 가치를 지니려면 위험 대비 수익 수준이 일반적 시스템보다 조금이라도 낫거나 적어도 동등한 수준은 되야 하고, 다각화 수준도 더 높아야 한다. 


※ 대다수 시스템이 12단계에 이르러 실패하는 경우가 많다. 정말로 월등한 성과를 내는 좋은 시스템을 설계하는 일은 일반 사람들이 생각하는 것보다 훨씬 어렵다. 






댓글 쓰기