Vectorised Backtestとは?
ヒストリカル・データでストラテジーをバックテストする方法はいくつかあります。
その一つがベクトル化バックテストです。
ベクトル化バックテストには大きな落とし穴があります。
ヒストリカルデータをバックテストする最も簡単で単純な方法は、ループを作成し、価格情報を1つずつ意思決定エンジンに送り、価格に基づいて購入、売却、または何もしないかどうかを決定することです。
イベント・ドリブン型のバックテストと呼ばれます。
これはバックテストを行う最も正確な方法ですが、Pythonのようなスクリプト言語のループは非常に遅いです。
異なるパラメータで何百、何千ものループを実行する場合には、向いていません。
そこで、ベクトル化の出番です。
バックテストの前に取引シグナルを作成します。
それを価格データと掛け合わせます。
行列計算になります。行列計算は計算機が最も得意とする計算です。
超高速で計算が終わります。
ただ、欠点があります。
戦略の複雑さに限界があります。
理論的には、どのようなストラテジーでもベクトル化することができますが、実際には、中程度の複雑なストラテジーであっても、すぐに多次元の配列を生成してしまうため、実装が非常に困難になります。
シグナルを事前に計算しているため、ストラテジーは損益やドローダウンのような投資家のお財布の状態に対応できません。あくまでも機械的に計算がされます。
例えば、ドローダウンが酷ければ、ポジションをクローズして当面市場に参加しないといった戦略を実装することは極めて難しいです。
コメント