본문 바로가기

Quant

퀀트 전략 업데이트 (11) : Validate output data

자전거 타고 양재천을 출퇴근하는데 10~15분 정도 걸린다.

요즘처럼 벚꽃이 피거나 가을에 단풍이 이쁠 때는 출퇴근 길이 양재천이라 좋다.

서울 직장인 중에 가장 행복하게 출퇴근 하는 사람이 아닐까 싶다.

 


투자 전략 수익 극대화보다 이를 위한 백테스팅 안정화 로직이 우선이다.

현재 시스템이 안정적인이 체크 후에 수익 극대화 전략 창출 -> Trading bot 실행으로 간다.

 

 

1. 전체 백테스팅 결과와 하루치 백테스팅 결과 대조

통합 백테스팅 결과와 하루치 백테스팅 결과를 대조했을 때,

일부 일자에서 5분 단위(1 row)로 매수 타이밍이 안 맞는 경우는 있지만 그 외의 경우는 데이터가 정확하다.

 

backtrader 동작 원리를 더 자세하게 뜯어보는 것도 좋지만,

5분봉 기준 백테스팅도 1분 단위로 실행하는 실제 트레이딩 봇과 근소한 괴리가 생기니 넘어가기로 한다.

무시할만한 오차이고 1인 개발자라 그 시간에 다른 임팩트 포인트에 집중한다.

 

 

2. Backtrader 코드 리팩토링

돌아가는 코드로 구현했던 전략을 이제 다시

유지보수가 용이한 보기 좋은 코드로 리팩토링한다.

 

4개의 함수로 구성된 class가 12개로 구성된다.

backtesting 핵심 역할을 하는 next() 함수에는 비즈니스 로직의 순서를 다루는 역할만 주고,

상세한 코드는 잘게 쪼갠다. common function 외에 가독성을 해치는 코드도 함수로 짜갠다.

 


 

최근 AI 엔지니어링을 회사 업무로 하면서도 성능 측정 시스템 설계를 고민 중인데, 어쩌다보니 사이드 프로젝트와 고민하는 부분이 맞닿아 있다.

 

이제 성능 측정 시스템의 정확성 / 안정성 / 속도 / 유지보수성을 확보했으니 전략 업데이트를 할 수 있다.

확실한 전략 발굴을 위한 백테스팅 시스템의 완성도가 퀀트의 핵심인걸 체감했다.

 

 

728x90