バックテストプラットフォームの選択が重要な理由
バックテストとは、一連の取引ルールを過去データに適用し、何が起こったかを測定することである。そのテストを実行するプラットフォームは、データの保存と整合性の取り方、注文と約定のシミュレーション方法、そして基盤となるロジックの読みやすさと検証のしやすさという3点を形作る。このトピックに関する学習ノートでは、実用的な選択肢を4つのファミリーに分類している。Excelのようなスプレッドシート、MATLABのような汎用数値計算環境、TradeStationのようなブローカー統合型リテールプラットフォーム、そしてハイエンドな機関投資家向けスイートである。 これらのファミリーを分ける基準はいくつかある。第一にデータソースである。一部のプラットフォームは履歴データを同梱しているが、他のプラットフォームではユーザーが外部からファイルをインポートする必要がある。第二にタイムスタンプの整合性である。バックテストは、各シグナルがその時点で実際に利用可能だった情報を用いて計算されている場合にのみ意味を持つ。異なるソースの価格系列がわずかに異なる日付で結合されると、意図しない先読みバイアスが生じることがある。第三に、プラットフォームが扱えるモデルの複雑さのレベルであり、単一銘柄のルールセットから数百銘柄のポートフォリオまで幅がある。第四に、統計モジュールや数学モジュールの利用可能性であり、アルゴリズムがカスタムコードではなく確立された数値手法に依存する場合に重要となる。第五にコスト、そして第六に、同じ環境でライブ注文をルーティングできるか、別途執行システムを構築する必要があるかである。 ノートは、これらすべてのトレードオフに静かに影響を与える一つの観察を述べている。単純な戦略がしばしば最良の戦略であるということだ。この見方を受け入れるなら、極めて複雑なモデルを実行する能力の重要性は下がり、より安価で透明性の高いツールが多くのトレーダーにとって実行可能な選択肢であり続ける。これはトレードオフをなくすものではないが、それぞれがどれだけの重みを持つべきかを変える。
Excel:最も基本的で最も広く使われているプラットフォーム
Excelはノートで最も基本的かつ最も広く使われているバックテストツールとして説明されており、リテールトレーダーも機関投資家トレーダーも同様に使用している。VBAマクロを使えば機能は大幅に拡張されるが、マクロは必須ではない。基本的なワークフローには数式とデータテーブルだけで十分である。 中心的な利点は、ノートがWYSIWYGと呼ぶものである。データとプログラムが同じ画面にあり、隠れたロジックは存在しない。典型的なレイアウトでは、日付を1列に、生の価格を次の列に、インジケーターの数式をその隣に、それらのインジケーターから導出されるポジションまたはシグナルの列を、期間ごとのリターン列を、そして最後にチャートに反映される累積エクイティ列を配置する。すべてのステップが可視化されている。シートを確認する人は誰でもセルをクリックし、どの入力がどの出力を生成したかを正確に確認できる。 この透明性には第二の利点がある。マクロを使用しない限り、Excelでは先読みバイアスがほとんど存在しない。その理由は理論的というより実用的である。2つのデータ系列を結合する必要がある場合、それらを整列した列に配置し、日付をセル単位で照合するのは容易であり、計算に使用される値はその時点に存在した値となる。将来の情報を密かに含む可能性のある別個のデータオブジェクトは存在しない。しかし、VBAマクロが計算を担うようになると、その可視性は失われ、同じリスクが戻ってくる。 第三の利点は、バックテストとライブ取引を同じスプレッドシートで実行できるため、戦略を二度書く必要がないことである。過去の行を評価する同じ数式を最新の行に向ければ、現在のシグナルを生成できる。 主な欠点は、比較的単純なモデルしかバックテストできないことである。Excelは大量のポートフォリオシミュレーション、重い最適化、大規模なデータ処理には向いていない。ノートは、単純な戦略がしばしば最良の戦略であるため、この制限は多くのトレーダーにとって致命的ではないと述べている。ルールが数個の列で表現できるトレーダーは、スプレッドシートにとどまることでほとんど損をしない。
MATLAB:機関投資家グレードの数値バックテスト
MATLABは、大規模機関のクオンツリサーチャーやトレーダーがバックテストに最もよく使用するプラットフォームの一つとして説明されている。特に、多数の銘柄を含むポートフォリオ戦略のテストに適しており、計算を多くの銘柄と多くの日付にわたって繰り返す必要がある場合に力を発揮する。 その価値は統合性から来る。MATLABは高度な統計モジュールと数学モジュールをバンドルしているため、取引アルゴリズムが複雑だが標準的な数学的概念に依存する場合、関数がすでに存在し、ゼロから書く必要がない。また、オンラインで入手できる無料のサードパーティ製アドインの大規模なライブラリも提供しており、その多くはクオンツ取引に直接役立つ。データ処理もサポートされている。MATLABはインターネットから金融情報を取得し、有用な形式に変換できる。 ノートは、基本的な機能は本当に習得しやすいと強調している。完全なバックテストプログラムをかなり迅速に書くことができ、これがこのプラットフォームが専門のプログラミングチームを超えて一般的な研究用途に広がった理由の一つである。 2つの欠点が指摘されている。第一はコストである。1コピーあたりかなりの価格がかかる。市場にはMATLABと非常に似たコードを持つ代替品が多数あり、数百ドルで提供されたり、無料でさえ提供されている。ノートは有用な詳細を加えている。代替品が高価になるほどMATLABコードとの互換性が高まるということであり、これは価格と書き換えの必要性の間に段階的な関係があることを示唆している。 第二の欠点はアーキテクチャに関するものである。MATLABはバックテストには適しているが、ライブ執行プラットフォームとしては適していない。戦略がテストされた後、通常は本番要件により適した別のプログラミング言語で別途執行システムを構築する必要がある。これは研究環境と取引環境が同一ではなく、戦略を再実装しなければならないことを意味する。ノートは、これがMATLABのクオンツ取引での広範な使用を妨げていないと述べている。



