Scarab Diagnostic Field Test #031
QuantConnect Lean은 연속 선물 롤오버(continuous futures rolls)에 대해 더 정교한 제어가 필요했습니다.
사용자들은 두 가지 주요 문제에 직면했습니다:
- 만기 전에 롤오버 타이밍을 설정할 수 없었습니다.
- 특정 계약 월 주기(contract-month cycles)를 선택할 수 없었습니다.
이것은 단순한 버그가 아닙니다. 매핑 정책(mapping policy)의 문제입니다.
새로운 롤 캘린더를 생성하여 이를 수정하려 하면 엔진이 망가집니다. 매핑 데이터를 복제하면 오류가 발생합니다. 잘못된 패치는 전략이 의도한 바와 엔진이 수행하는 동작 사이의 괴리(drift)를 초래할 수 있습니다.
목표는 정밀한 수리 경로(surgical repair lane)를 찾는 것이었습니다.
해결책은 기존 매핑 경계 내에 머무릅니다. 선물 엔진을 다시 작성하지 않습니다. 대신 Lean이 연속 선물 매핑을 처리하는 방식을 확장합니다.
PR에서 변경된 사항:
TradingDaysBeforeExpiry매핑 모드를 추가했습니다.- 이를 통해 사용자는 롤오버 타이밍을 거래 가능일 오프셋(tradeable-day offset)으로 설정할 수 있습니다.
- 이제 롤 오프셋은 subscription, history, universe 및 mapping-event 경로를 통해 전달됩니다.
- 선택적인 contract-month-cycle walking 기능을 추가했습니다.
- 이는 일반적인 시퀀스 대신 특정 보유 주기(holding cycles)를 지원합니다.
- 데이터 소스를 단일하고 정확하게 유지하기 위해 기존
LastTradingDay맵 행을 재사용했습니다.
수리 범위를 매핑 정책 내로 제한함으로써, 모든 엔진 구성 요소가 어떤 계약이 활성 상태인지 일치하도록 보장합니다.
결과: 새로운 시스템을 고안하지 않고도 새로운 기능을 추가하는, 범위가 제한된 수리입니다. 로컬 빌드 검증을 오류 없이 통과했습니다. 이제 PR은 업스트림 리뷰를 받을 준비가 되었습니다.
선택적 학습 커뮤니티: https://t.me/GyaanSetuAi