實測結果,而非行銷話術。詳細基準將隨 v1.0 版本一同發佈。
核心回測操作的正面比較。
| 指標 | Python | StratForge | 改善幅度 |
|---|---|---|---|
| 單一指標(每根K線) | TBD | TBD | TBD |
| 策略步驟 | TBD | TBD | TBD |
| 完整回測(1M 根K線) | TBD | TBD | TBD |
| 吞吐量 | TBD | TBD | TBD |
| 記憶體佔用 | TBD | TBD | TBD |
StratForge 如何在回測管線中複合最佳化效果。
K線以快取友好的欄式緩衝區儲存。指標計算串流經過連續記憶體,而非追逐指標。
每個指標維護內部狀態,每根K線以 O(1) 更新。無滑動視窗重新計算。
策略的進場/出場邏輯在可能的情況下被改寫為無分支算術,以避免價格條件程式碼中的管線停滯。
編譯時已知的指標參數成為 consteval。特化模板消除了執行時期調度。
在熱路徑上執行回測。
| 操作 | Python 回測器 | StratForge |
|---|---|---|
| 堆積分配 | 大量(每根K線的 Python 物件) | 0 |
| K線儲存 | pandas DataFrame 複製 | 欄式緩衝區上的 std::span 視圖 |
| 指標狀態 | 每次呼叫的陣列分配 | 預分配的滾動狀態 |
| 記憶體佔用 | 動態、GC 驅動 | 靜態、預分配 |
| 確定性 | 跨執行的浮點漂移 | 位元精確可重現 |
複合為確定性、低延遲回測的設計決策。
| 技術 | Python 回測器 | StratForge |
|---|---|---|
| 記憶體佈局 | 列導向(DataFrame) | 欄導向(快取友好) |
| 指標更新 | 每次呼叫重新計算視窗 | 每根K線增量 O(1) |
| 迴圈調度 | 解譯式 Python 迴圈 | 內聯 C++ 模板迴圈 |
| 數值確定性 | 依賴 NumPy / pandas 版本 | 跨執行位元精確 |
| 策略組合 | 類別階層 + 動態調度 | Concepts + 靜態多型 |
| 錯誤處理 | 例外 | std::expected(無拋出) |
在 StratForge 設計過程中研究的業界領先函式庫與框架。
| 函式庫 | 我們學到的 | 我們建構的 | 成果 |
|---|---|---|---|
| TA-Lib | 權威的指標定義與邊界情況處理 | C++23 僅標頭指標庫 | 138 個指標 |
| vectorbt | 向量化回測 API 與參數掃描 | 編譯時的模板化參數擴展 | TBD |
| backtrader | 策略生命週期與事件掛鉤 | Concept 驅動的策略介面 | 型別安全生命週期 |
| QuantLib | 模組化定價與分析架構 | 可插拔的分析模組 | TBD |
| Eigen | 零開銷數學的表達式模板 | 延遲指標組合 | 無臨時緩衝區 |
| Arrow | 欄式記憶體佈局標準 | 原生欄式K線儲存 | 快取行友好 |
| Folly | 無鎖原語與 small_vector | 預分配的交易日誌 | TBD |
| Highway | 可攜式 SIMD 抽象 | SIMD 友好的指標內部迴圈 | TBD |
| fmt | 編譯時格式化字串 | 零成本報告格式化 | TBD |
| Boost.PMR | 用於 Arena 分配的單調緩衝區 | std::pmr::monotonic_buffer_resource 池 | 零堆積分配 |
| Catch2 | BDD 風格的指標單元測試 | 位元精確回歸測試套件 | 可重現的 CI |
三行命令即可複製並開始回測。
git clone https://github.com/StratCraftsAI/StratForge.git
cd StratForge
./start.sh build