
7 層・5 プロセスから 4 層・2 プロセスへ。量的リサーチ速度のための専用実行エンジン。
3 世代の改善:各層のオーバーヘッドを排除。
7+ の抽象化層、5 つの独立プロセス、IPC シリアライゼーションオーバーヘッド。Python のみの実行で高いアーキテクチャ複雑性。
プロセス数を削減、C++ コンポーネントを導入。組み込み実行コンセプトを実証する過渡的アーキテクチャ。
4 層、2 プロセス、1 プロトコル。pybind11 組み込み Python を持つ C++ エクゼキューター。ゼロコピー Apache Arrow から NumPy へのデータフロー。
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.48x | ≥ 2x |
| ロックフリースループット | 15.73 M ops/s | > 10 M ops/s |
| Python との全体比較 | 500-1000x | > 100x |
市場データから戦略実行まで、メモリコピーゼロ。
列指向圧縮の Apache Parquet 形式で市場データを格納。直接メモリマップドファイルアクセスでデシリアライゼーションオーバーヘッドを排除。
Apache Arrow が言語非依存の列指向メモリレイアウトを提供。C++ と Python が同じメモリをコピーなし・変換なしで共有。
pybind11 が同じメモリ空間の Arrow バッファを NumPy 配列として公開。戦略 Python コードが C++ 所有データをアロケーションゼロで読み取る。
アーキテクチャからナノ秒まで:パフォーマンスへの体系的なアプローチ。
V3 シングルプロセスエクゼキューターが IPC シリアライゼーション、プロセス生成、クロスプロセスデータマーシャリングを排除。最大の向上はアーキテクチャの簡素化から来た。
CPU アフィニティピン留めによる RDTSC タイミング。12 のベンチマークプログラムで P50/P90/P99/P999 パーセンタイル追跡。再現可能な計測インフラを確立。
LTO、-march=native、xsimd SIMD 抽象化、mimalloc アロケーター、Quill 低遅延ロギング、Abseil コンテナ。コンパイラとライブラリレベルの最適化。
PMR インフラ、キャッシュアライメントアロケーター、ホットパスアロケーションゼロ。L1 キャッシュミス < 5%、TLB ミス < 0.5% を目標。
数分でクローン、ビルド、最初のバックテストを実行。エンジンは無料版に含まれています。
git clone https://github.com/StratCraft/StratCraft.git\ncd StratCraft\npnpm install && pnpm dev:desktop