백테스트 과최적화 문제로 전에 글 썼는데
https://www.clien.net/service/board/cm_stock/19191999CLIEN
너무 감사한 조언들 해주시고 조금 개념이 잡혀서 더 파봤습니다
알고리즘 세계는 완전 문외한이라 다 이해하는건 불가능했지만
과최적화의 근원은 두가지로 귀결되는듯 합니다
1 데이터마이닝 여부 --> 즉 여러 매개변수들 중에서 제일 예쁜것을 체리피킹을 했냐?
2 look ahead 여부 --> 미래결과값을 알고 껴맞춘거 아니냐?
2번 이슈 관련해서,
직전 3개월 데이터로 학습하고, 다음 1개월에 적용하는 전진분석(Walk forward analysis) , 100% out of sample, 이라 look ahead 이슈는 제거됩니다
1번 이슈 관련해서는,
내가 과연 뭘 체리피킹 했나? 따져봤습니다
자수하자면, 체리피킹 한 것이 2개 있습니다
첫째, 매개변수를 체리피킹 했습니다
총 100+개의 매개변수가 있는데,
이것들의 과거 3개월 성과중에서 제일 좋은것을 선택했습니다
그런데 과최적화가 무서워서 아무것도 최적화 하지 않는다면
그냥 아무것도 하지 말란 말 아니냐? 라는 반항심이 생겼고
제미나이한테 따졌습니다
제미나이가 사람처럼 말하면서 저를 진정시키네요.
선택한 변수의 주변변수들의 성과는 어때? 제미나이가 물어봅니다
만약 50이라는 변수가 과거 3개월 성과가 제일 좋아 픽 하고, 그 다음 1개월에 적용한 결과와
주변 47, 48, 49, 51, 52, 53 의 결과들이 크게 다르지 않다면 체리피킹이 아니라고 합니다
즉 수익곡선이 50에서만 뾰족하게 peak이고, 주변 변수에서 쳐박는다면 명백한 과최적화 지만,
주변 변수의 성과가 비슷하게 나타나는 plateau 고원 형태이면 과최적화가 아니라고 합니다
다행히 제 로직의 선택변수와 주변변수의 성과차이가 크지 않습니다
AI 맹신하면 안되겠지만, 상식적으로 생각해도 제미나이 말이 맞습니다
두번째 체리피킹은,
"3개월" 학습을 선택한 것입니다.
2개월 이나 4개월 학습하면 성과가 낮아집니다
박살나지는 않지만 수익률이 현저하게 낮아집니다
시장의 regime shift는 일상다반사 일테니
3개월 학습이 최고였다가, 2개월 학습이 최고였다가, 다시 4개월 학습이 최고가 되고, 언젠가 또 5개월 학습이 최고가 되는 때 도 있을 것이고
이건 통제가능한 변수가 아닐 터이니 , 그냥 안고 가야 하는거 아닌가?
아래 전진분석 결과를 보시면, 손실나는 월 도 있습니다
손실나는 월은, 3개월 학습이 아니라, 2개월 또는 4개월 학습을 선택했다면 수익이었을 겁니다
2개월 이나 4개월을 선택하면, 3개월 적용해서 수익기록한 달의 손익도 또한 바뀌겠죠.
나스닥 선물 1계약 거래, 전진분석 결과 (직전 3개월 학습. 다음 1개월 적용) (단위:US$)

모든 월에 수익을 기록하겠다고 학습개월을 미세조정 하는것 또한 또다른 과최적화 아닌가?
그냥 손실나는 월은 그대로 안고 가기로 하는게 과최적화를 피하는 거 아닌가?
총 78개월 중에서, 63개월 수익, 15개월 손실 인데요
분명 15번 손실월에 대해서는 3개월이란 임의의 선택이 과최적화된 선택 이지만,
63번 수익월에 대해서는 과최적화된게 아니지 않나요?
세상 모든이에게 사랑받고 존경받는 인간은 존재할 수 없잔아요
내가 훌륭하다고 생각하고 존경하는 사람도 누군가는 미워하고 욕하잔아요
과최적화를 완벽하게 해소하겠다는건 아무것도 안하겠다는 것이고,
과최적화를 완벽하게 해소하는 과정 또한 또 다른 과최적화를 불러온다.
라는 생각입니다
과최적화를 완벽하게 제거 하겠다는건 마치, 원금보장 해주고 고수익 내줘. 같은 소리 같습니다
어느정도 "일부최적화"라는 리스크를 감수해야 수익이 발생한다. 라는 결론입니다.
** 전에 거래비용, 슬리피지 이슈도 언급해 주셨는데, 로직 특성 상 요놈들은 전혀 영향없는 변수들입니다.
예를 들어 어떤 파라미터 값으로 평균 수익률을 X% 끌어올렸는데 근미래에 그 효과가 얼마 가지 못하고 다른 파라미터로 설정한 것보다 못날 정도로 노이즈 속에 파묻혀버리면 그건 과최적화겠죠. 특정 regime에서만 초과성과를 내도 그건 그 regime에 과최적화한 거고요. 다만 그 regime을 예측하기가 어렵지 않거나, 또는 적어도 늦지 않게 전략을 거둘 수 있다면 의미가 아주 없진 않겠죠.
과최적화 여부를 요인 중 하나로 실제 현실의 반복된 경향에 근거했느냐는 점이 있어요. 3개월이라는 주기가 효과적인 건 그게 회계 실적 발표의 주기와 일치하기 때문일 수 있고요. 현실에서 3개월마다 이벤트가 갱신되고 있기 때문에 그 파라미터가 효과적으로 동작한다는 추정이죠. 물론 그런 인과를 제대로 밝히려면 면밀한 검토가 필요하겠지만요.