EMA 변수를 매년 다시 고르면 과최적화를 피할 수 있을까?
과거 데이터에서 가장 좋아 보이는 변수를 찾은 뒤 남겨둔 구간에서 한 번 검증하면 과최적화 문제는 끝난 것처럼 보입니다. 하지만 한 번의 성공은 특정 시장 환경이 잘 맞았던 결과일 수 있습니다.
과거 데이터에서 가장 좋아 보이는 변수를 찾은 뒤 남겨둔 구간에서 한 번 검증하면 과최적화 문제는 끝난 것처럼 보입니다. 하지만 한 번의 성공은 특정 시장 환경이 잘 맞았던 결과일 수 있습니다.
백테스트 프로그램에 빠른 이동평균과 느린 이동평균의 범위를 넣으면 수십 개 결과가 한꺼번에 나옵니다. 그중 누적수익률 1위만 골라 실전에 적용하면 될 것처럼 보입니다.
매수 신호가 같으면 전략 결과도 비슷할 것이라고 생각하기 쉽습니다. 하지만 언제 매도할지를 바꾸면 거래 수, 승률, 손익비와 자산곡선이 전혀 다른 모습으로 바뀝니다.
CCI가 -100 아래로 내려가면 가격이 평균에서 크게 벗어난 과매도 구간으로 해석합니다. 이때 가격이 싸 보인다는 이유로 바로 매수하면 하락 중인 종목을 계속 받아내는 거래가 되기 쉽습니다.
ROC가 0선 위로 올라오면 가격의 상승 속도가 양수로 바뀌었다는 뜻입니다. 하지만 횡보장에서도 ROC는 기준선을 자주 오갑니다. 신호가 나올 때마다 매수하면 짧은 손실이 반복되기 쉽습니다.
20일·100일 EMA 교차와 20일·50일·100일 3중 EMA 확인 전략을 비교해 거래 수, 20거래일 이내 손실, 진입 지연, MDD와 누적수익률의 변화를 Python으로 검증합니다.
20일·100일 EMA 교차 전략을 국내 주식 30종목과 세 구간에 적용해 수익 종목 비율, 매수보유 초과수익, MDD와 종목별 일관성을 Python으로 검증합니다.
같은 종목·진입 규칙에서 20일선과 40일선 청산 전략을 비교해 누적수익률은 비슷하지만 MDD, Calmar, Profit Factor, 손익비, 거래 수와 노출 비중이 어떻게 달라지는지 Python으로 계산합니다.
국내 주식 30종목에 같은 눌림목 전략을 적용하고 20일 중앙 거래대금과 ATR 비율로 진입 대상을 걸러 백테스트 성과, 시가 괴리와 주문 참여율이 어떻게 달라지는지 Python과 yfinance로 비교합니다.