성능 벤치마크

마케팅 주장이 아닌 측정된 결과. 상세 벤치마크는 v1.0 출시와 함께 공개됩니다.

StratForge vs Python 백테스터

핵심 백테스트 연산에 대한 직접 비교.

메트릭PythonStratForge개선
단일 지표 (바당)TBDTBDTBD
전략 스텝TBDTBDTBD
전체 백테스트 (100만 바)TBDTBDTBD
처리량TBDTBDTBD
메모리 사용량TBDTBDTBD

최적화 여정

StratForge가 백테스트 파이프라인 전반에 걸쳐 최적화를 복합적으로 적용하는 방법.

1단계: 컬럼형 바 스토리지TBD

바가 캐시 친화적 컬럼형 버퍼에 저장됩니다. 지표 계산이 포인터를 추적하는 대신 연속 메모리를 통해 스트리밍됩니다.

2단계: 증분 지표TBD

각 지표가 내부 상태를 유지하고 바당 O(1)로 업데이트합니다. 슬라이딩 윈도우 재계산 없음.

3단계: 분기 없는 결정 경로TBD

전략 진입/청산 로직이 가능한 경우 분기 없는 산술로 재작성되어 가격 조건 코드의 파이프라인 지연을 방지합니다.

4단계: 컴파일 타임 특화TBD

컴파일 타임에 알려진 지표 파라미터가 consteval이 됩니다. 특화된 템플릿이 런타임 디스패치를 제거합니다.

제로 할당 증명

핫 패스에서 백테스트 패스 실행.

연산Python 백테스터StratForge
힙 할당다수 (바별 Python 객체)0
바 스토리지pandas DataFrame 복사컬럼형 버퍼에 대한 std::span 뷰
지표 상태호출별 배열 할당사전 할당된 롤링 상태
메모리 사용량동적, GC 기반정적, 사전 할당
결정론실행 간 부동소수점 드리프트비트 단위 정확한 재현

기법 비교

결정론적 저지연 백테스팅을 위해 복합적으로 작용하는 설계 결정.

기법Python 백테스터StratForge
메모리 레이아웃행 지향 (DataFrame)컬럼형 (캐시 친화적)
지표 업데이트호출마다 윈도우 재계산바당 증분 O(1)
루프 디스패치인터프리터 Python 루프인라인 C++ 템플릿 루프
수치 결정론NumPy / pandas 버전 의존실행 간 비트 정확
전략 조합클래스 계층 + 동적 디스패치Concepts + 정적 다형성
오류 처리예외std::expected (예외 없음)

아키텍처 영향

StratForge 설계 과정에서 연구한 업계 선도 라이브러리와 프레임워크.

라이브러리우리가 배운 것우리가 구축한 것결과
TA-Lib표준 지표 정의 및 경계 사례 처리C++23 헤더 전용 지표 라이브러리138개 지표
vectorbt벡터화 백테스트 API 및 파라미터 스윕컴파일 타임 템플릿 파라미터 확장TBD
backtrader전략 생명주기 및 이벤트 훅Concept 기반 전략 인터페이스타입 안전 생명주기
QuantLib모듈형 가격 및 분석 아키텍처플러그형 분석 모듈TBD
Eigen제로 오버헤드 수학을 위한 표현식 템플릿지연 지표 조합임시 버퍼 없음
Arrow컬럼형 메모리 레이아웃 표준네이티브 컬럼형 바 스토리지캐시 라인 친화적
Folly락프리 프리미티브 및 small_vector사전 할당된 거래 저널TBD
Highway이식 가능한 SIMD 추상화SIMD 친화적 지표 내부 루프TBD
fmt컴파일 타임 형식 문자열제로 비용 보고서 포맷팅TBD
Boost.PMR아레나 할당을 위한 단조 버퍼std::pmr::monotonic_buffer_resource 풀제로 힙 할당
Catch2BDD 스타일 지표 단위 테스트비트 정확 회귀 스위트재현 가능한 CI

StratForge를 사용해 보시겠습니까?

세 명령으로 클론하고 백테스팅을 시작하세요.

git clone https://github.com/StratCraftsAI/StratForge.git cd StratForge ./start.sh build