← All Collections
4 parts

High-Performance Backtest Engines

How to build a backtest engine that runs hundreds of times faster without changing a single PnL number — data layout, caching, adaptive resolution, and architecture, from first speedups to production internals.

  1. 01
    バックテストエンジンの速度の梯子:ラップトップCPUで298倍、最後の1トレードまで同一のPnL
    Jul 1, 2026 #algotrading

    バックテストエンジンの速度の梯子:ラップトップCPUで298倍、最後の1トレードまで同一のPnL

    同一の80コンボ・パラメータスイープを5通りに実装し、すべてが同一のPnLを生成することを検証:pandas rolling.applyは69.9秒、numpyは3.1秒、numbaは2.0秒、並列numbaは0.23秒 — Apple M2 Maxでハードウェアを一切変えずに測定された298倍の高速化、そして有能なベクトル化ベースラインと比べても約13倍。各段が何をもたらすか、なぜGPUが欠けているピースではないのか、そして大量パラメータ探索における本当のボトルネックがどこにあるのか。

  2. 02
    集約Parquetキャッシュ:マルチタイムフレーム・バックテストを数百倍高速化する方法
    Mar 16, 2026 #algotrading

    集約Parquetキャッシュ:マルチタイムフレーム・バックテストを数百倍高速化する方法

    分足から時間足や指標を事前計算し、parquetに保存し、冗長な再計算なしで大量の戦略テストに活用する方法。

  3. 03
    アダプティブ・ドリルダウン:分足から生ティックまでの可変粒度バックテスト
    Mar 17, 2026 #algotrading

    アダプティブ・ドリルダウン:分足から生ティックまでの可変粒度バックテスト

    アダプティブなデータ粒度がバックテストを高速化しストレージを節約する仕組み:価格が大きく動いた箇所やボリュームが急増した箇所のみ1mから1s、100ms、生ティックへドリルダウンし、全履歴を高粒度にする必要はありません。

  4. 04
    IPC税:バックテストエンジンをソケットの向こうに置くと13%失う——そのほとんどはソケットのせいではない
    Jul 2, 2026 #algotrading

    IPC税:バックテストエンジンをソケットの向こうに置くと13%失う——そのほとんどはソケットのせいではない

    numbaのバックテストカーネルを一行一行Rustに移植し、4通りの方法でプロセス境界越しに呼び出した。等価性ゲートは最後のトレードまでPnLが完全一致することを確認する。1.2 MBの価格系列全体をUnixソケット経由で送るコストは約2 ms——ジョブ全体の約0.1%。同じペイロードをJSONでエンコードすると生バイトの1348倍のコストがかかり、コンボごとのチャッティな呼び出しはデータを80回再送し、バーごとの呼び出しパターンは2.0秒のジョブに対して2.1秒もの純粋なIPCコストを支払うことになる。境界そのものは安い——税金はどう越えるかにある。