6장. 이벤트 기반 백테스팅을 위한 클래스 빌드하기
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
인생의 실제 비극은 선입견과는 아무런 관련이 없습니다. 어떤 경우에는 그 단순함, 디자인의 웅장함, 그리고 그 안에 내재되어 있는 기괴한 요소에 항상 당황하게 됩니다.
장 콕토
한편으로 NumPy 및 pandas 을 사용한 벡터화된 백테스팅은 간결한 코드로 인해 일반적으로 구현하기 편리하고 효율적이며 이러한 작업에 최적화된 패키지로 인해 실행 속도가 빠릅니다. 그러나 이 접근법은 모든 유형의 트레이딩 전략이나 트레이딩 현실에서 알고리즘 트레이더가 직면하는 모든 현상에 대응할 수는 없습니다. 벡터화된 백테스팅의 경우 이 접근법의 잠재적 단점은 다음과 같습니다:
- 전방 편향
-
벡터화된 백테스팅은 사용 가능한 전체 데이터 세트를 기반으로 하며, 새로운 데이터가 점진적으로 도착한다는 점을 고려하지 않습니다.
- 간소화
-
예를 들어, 고정 거래 비용은 주로 상대 수익률을 기반으로 하는 벡터화로는 모델링할 수 없습니다. 또한 거래당 고정 금액이나 단일 금융 상품(예: 주식 한 주)의 분할 불가성은 제대로 모델링할 수 없습니다.
- 비재귀성
-
트레이딩 전략을 구현하는 알고리즘은 특정 시점까지의 손익 또는 유사한 경로 의존적 통계와 같이 시간에 따른 상태 변수에 대해 재귀를 취할 수 있습니다. 벡터화는 이러한 기능을 처리할 수 없습니다.
반면 이벤트 기반 백테스팅을 사용하면 트레이딩 현실에 대한 보다 현실적인 접근 방식으로 이러한 문제를 해결할 수 있습니다. 기본적으로 이벤트는 새로운 데이터가 도착한다는 특징이 있습니다. 일말 데이터를 기반으로 Apple 주식에 대한 트레이딩 전략을 백테스트할 때 이벤트는 Apple 주식의 새로운 종가가 될 수 있습니다. 이자율의 변화 또는 손절매 수준에 도달하는 것일 수도 있습니다. 이벤트 기반 백테스팅 접근법의 장점은 일반적으로 다음과 같습니다:
- 점진적 접근 방식
-
트레이딩 현실에서와 마찬가지로 백테스팅은 새로운 데이터가 틱 단위로, 호가 단위로 점진적으로 도착한다는 전제하에 이루어집니다.
- 사실적인 모델링
-
새롭고 특정한 이벤트에 의해 트리거되는 프로세스를 완전히 자유롭게 모델링할 수 있습니다.
- 경로 종속성
-
조건부, 재귀적 또는 경로 의존적 통계(예: 지금까지 표시된 최대 또는 최소 가격)를 추적하고 이를 트레이딩 알고리즘에 포함시키는 것은 간단합니다.
- 재사용 가능성
-
다양한 유형의 트레이딩 전략을 백테스트하려면 객체 지향 프로그래밍을 통해 구현하고 통합할 수 있는 유사한 기본 기능이 필요합니다.
- 거래에 근접
-
이벤트 기반 백테스팅 시스템의 특정 요소는 트레이딩 전략의 자동 구현에도 사용할 수 있습니다.
아래에서 새 이벤트는 일반적으로 새로운 데이터의 한 단위를 나타내는 막대로 식별됩니다. 예를 들어 이벤트는 일중 트레이딩 전략의 경우 1분 막대, 일일 종가를 기준으로 하는 트레이딩 전략의 경우 1일 막대가