マーケティングの主張ではなく実測結果。詳細ベンチマークはv1.0リリースと共に公開されます。
コアバックテスト操作の直接比較。
| メトリクス | Python | StratForge | 改善度 |
|---|---|---|---|
| 単一インジケーター(バーあたり) | TBD | TBD | TBD |
| 戦略ステップ | TBD | TBD | TBD |
| フルバックテスト(100万バー) | TBD | TBD | TBD |
| スループット | TBD | TBD | TBD |
| メモリフットプリント | TBD | TBD | TBD |
StratForgeがバックテストパイプライン全体で最適化を積み重ねる方法。
バーはキャッシュフレンドリーなカラムナバッファに格納されます。インジケーター計算はポインターを追うのではなく、連続メモリをストリーミングします。
各インジケーターは内部状態を保持し、バーあたりO(1)で更新します。スライディングウィンドウの再計算は不要。
戦略のエントリー/エグジットロジックは、価格条件コードでのパイプラインストールを回避するため、可能な限りブランチレス演算に書き換えられます。
コンパイル時に既知のインジケーターパラメーターは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プール | ゼロヒープアロケーション |
| Catch2 | BDDスタイルのインジケーターユニットテスト | ビット単位の完全一致リグレッションスイート | 再現可能なCI |
3つのコマンドでクローンしてバックテストを開始。
git clone https://github.com/StratCraftsAI/StratForge.git
cd StratForge
./start.sh build