FX向け高速マルチスレッドバックテストエンジン(C++17 + ONNX Runtime)
- vcpkg でインストール:
nlohmann-jsontomlplusplusgtestonnxruntime(オプション)
# vcpkg のセットアップ(未インストールの場合)
git clone https://github.com/microsoft/vcpkg.git
./vcpkg/bootstrap-vcpkg.sh
export VCPKG_ROOT=$(pwd)/vcpkg
# ビルド
cmake -B build -S . \
-DCMAKE_TOOLCHAIN_FILE=$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake \
-DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc)# 通常バックテスト
./build/backtest_engine --config config.example.toml
# ウォークフォワード検証
./build/backtest_engine --config config.example.toml --walk-forward
# グリッドサーチ最適化
./build/backtest_engine --config config.example.toml --optimizetimestamp,open,high,low,close,volume
2024-01-01T00:00:00Z,1.1000,1.1050,1.0980,1.1030,1000
または Unix ms タイムスタンプ形式も可。
timestamp,bid,ask,volume
2024-01-01T00:00:00Z,1.1000,1.1002,10
{
"run_id": "...",
"meta": { "symbol": "EURUSD", "timeframe": "H1", ... },
"stats": { "total_trades": 120, "win_rate": 0.55, ... },
"equity_curve": [{ "timestamp": 1704067200000, "equity": 10000.0 }],
"trades": [{ "id": 1, "symbol": "EURUSD", "side": "BUY", ... }],
"walk_forward": []
}cmake --build build --target backtest_tests
cd build && ctest --output-on-failurebacktest-engine/
├── include/ # ヘッダーファイル
│ ├── core/ # Bar, Tick, Order, Event
│ ├── data/ # CSV ローダー
│ ├── broker/ # ブローカーシミュレーター
│ ├── strategy/ # 戦略基底クラス
│ ├── ml/ # ONNX 推論
│ ├── engine/ # バックテストエンジン + スレッドプール
│ ├── report/ # 統計・レポート
│ └── validation/ # ウォークフォワード
├── src/ # 実装ファイル
├── strategies/ # 戦略実装
└── tests/ # GoogleTest テスト