StratCraft

C++23 백테스트 엔진

7계층 5프로세스에서 4계층 2프로세스로. 퀀트 연구 속도를 위해 특별히 구축된 실행 엔진.

아키텍처 진화

세 세대의 개선: 모든 계층에서 오버헤드 제거.

V1

V1: 멀티 프로세스

7개 이상의 추상화 계층, 5개의 개별 프로세스, IPC 직렬화 오버헤드. 높은 아키텍처 복잡성의 Python 전용 실행.

7계층, 5프로세스
V2

V2: 통합

프로세스 수 감소, C++ 컴포넌트 도입. 임베디드 실행 개념을 증명하는 전환 아키텍처.

5계층, 3프로세스
V3

V3: 임베디드 엔진

4계층, 2프로세스, 1프로토콜. pybind11 임베디드 Python을 사용한 C++ 실행기. 제로 카피 Apache Arrow에서 NumPy 데이터 플로우.

4계층, 2프로세스

성능 벤치마크

RDTSC 타이밍, CPU 어피니티 고정, P50/P90/P99/P999 퍼센타일 추적으로 측정.

지표측정값목표
봉당 지연2.15 ns< 1 µs
GIL 획득 시간26.62 ns< 10 µs
GIL 보유 시간203.30 ns< 100 µs
SIMD 가속 (AVX2)2.48배≥ 2배
락프리 처리량1,573만 ops/초> 1,000만 ops/초
Python 대비 전체500-1000배> 100배

제로 카피 데이터 파이프라인

시장 데이터에서 전략 실행까지 메모리 복사 없음.

1

Parquet 수집

컬럼식 압축을 사용한 Apache Parquet 형식의 시장 데이터. 직접 메모리 맵 파일 접근으로 역직렬화 오버헤드 제거.

2

Arrow 인메모리 형식

Apache Arrow가 언어에 독립적인 컬럼식 메모리 레이아웃을 제공합니다. C++와 Python이 복사나 변환 없이 동일한 메모리를 공유합니다.

3

NumPy 제로 카피 접근

pybind11이 Arrow 버퍼를 동일한 메모리 공간에서 NumPy 배열로 노출합니다. 전략 Python 코드가 할당 없이 C++ 소유 데이터를 읽습니다.

최적화 여정

아키텍처에서 나노초까지: 성능에 대한 체계적 접근.

0단계: 아키텍처500-1000배

V3 단일 프로세스 실행기가 IPC 직렬화, 프로세스 생성, 크로스 프로세스 데이터 마샬링을 제거했습니다. 가장 큰 이득은 아키텍처 단순화에서 왔습니다.

1단계: 벤치마크 프레임워크기준선

CPU 어피니티 고정으로 RDTSC 타이밍. 12개 벤치마크 프로그램에서 P50/P90/P99/P999 퍼센타일 추적. 재현 가능한 측정 인프라 구축.

2단계: 현대 C++5-10%

LTO, -march=native, xsimd SIMD 추상화, mimalloc 할당기, Quill 저지연 로깅, Abseil 컨테이너. 컴파일러 및 라이브러리 수준 최적화.

3단계: 메모리 주권1.05배

PMR 인프라, 캐시 정렬 할당기, 핫 패스 할당 제로. L1 캐시 미스 < 5%, TLB 미스 < 0.5% 목표.

속도를 직접 경험하세요

복제, 빌드, 첫 번째 백테스트 실행을 몇 분 안에. 엔진은 무료 티어에 포함됩니다.

git clone https://github.com/StratCraft/StratCraft.git\ncd StratCraft\npnpm install && pnpm dev:desktop