ファイナンス機械学習:人工データのバックテスト 問題設定と取引ルール

取引ルールのパラメータは通常ヒストリカルデータシミュレーションから決められ、常にオーバーフィッティングの危険性がある。よって、パラメータ調整は、確率課程から直接に導出した方が良い。
 ここでは、ポジションは既にとられており、それを解消する方法について扱う。

問題設定

 投資戦略Sは機会$${i=1,\dots,I}$$で、証券Xの$${m_i, \ m_i\in(-\infty, +\infty)}$$単位のポジションを取るとする。$${i}$$でエントリーした取引値を、$${i}$$での単位あたりの価格$${P_{i,0}}$$として、$${m_iP_{i,
0}}$$とし、$${t}$$取引(バー)後の投資機会$${i}$$の価値を、この時点で市場価格で精算された場合の価格として、$${m_iP_{i,t}}$$とすれば、この投資機会の損益は$${\pi_{i,t}=m_i(P_{i,t}-P_{i,0})}$$となる。
 エントリーしたポジション解消のルールを、以下の二つの条件の一つが確定したら解消すると決める。
$${\pi_{i,T_i} > \overline{\pi}}$$
$${\pi_{i,T_i}< \underline{\pi}}$$
$${ \overline{\pi}}$$は利益確定の閾値で、$${ \underline{\pi}}$$は損切りの閾値であり、トリプルバリアの水平バリアに相当する。当然ながら$${\underline{\pi} < \overline{\pi}}$$である。
$${T_i}$$時点で解消するとされると、最終的損益は$${\pi_{i,T_i}}$$と表される。各投資機会にエントリーした時に必要な評価は、ポジションを解消する時の予測価格を$${E_0[P_i,T_i]}$$として、期待損益$${E_0[\pi_{i,T_i}]=m_i(E_0[P_i,T_i]-P_{i,0})}$$である。
 ここで、取引ルール1として、以下の様に決める
ルール1:戦略Sの取引ルールは水平バリアの値の集合$${R:=\{\underline{\pi}, \overline{\pi}\}}$$をパラメータとして定義する。

このルールを使い、総当たりで取引ルールを調整する方法は以下の手順である。
$${R}$$の取り得る値の集合$${\Omega:=\{R\}}$$を決める
$${R\in \Omega}$$で戦略Sのパフォーマンスをヒストリカルデータを使ったバックテストにより測定し、最適な$${R^\ast}$$を、シャープレシオ$${SR_R=\displaystyle{\frac{E[\pi_{i,T_i}|R]}{\sigma[\pi_{i,T_i}|R]}}}$$を用いて、
$${R^\ast=argmax_{R \in \Omega} \{ SR_R\}}$$で決める。
 これは、代替取引ルール$${R}$$の空間上で$${I}$$個の投資機会に対する戦略$${S}$$の最大シャープレシオを求めていることになる。
 サイズ$${I}$$に対してパラメータは二つしかないので、オーバーフィッティングは非常に起こりやすく、このためオーバーフィッティングした取引ルールを、アウトオブサンプルでの評価を使い、以下の様に定義して取り除く。
ルール2:最適とされたパラメータ$${R^\ast}$$でのシャープレシオの平均値が、アウトサンプル$${j=I+1, \dots J}$$でのシャープレシオの中央値と比較して、
$${\displaystyle{E\left[ \frac{E[\pi_{i,T_i}|R^\ast]}{\sigma[\pi_{i,T_i}|R^\ast]}\right] < Me_{\Omega} \left[E\left[ \frac{E[\pi_{j,T_j}|R]}{\sigma[\pi_{j,T_j}|R]}\right]\right] }}$$
であった場合は、オーバーフィッティングしていると判定する。

 インサンプルでのバックテスト上で、ランダムノイズから生じた利益が、オーバーフィッティングの原因となり、$${R^\ast}$$をアウトサンプルでの評価に不利益なものとしている。また$${\Delta\pi_{i,T_i}}$$が系列依存性を持つ時にも、オーバーフィッティングによってアウトオブサンプルでの評価を下げてしまう。
 オーバーフィッティングの戦略を取り除くことは必須ではあるが、オーバーフィッティング自体を避けた方がはるかに都合が良い。よって、人工データによるバックテストを提案する。

この記事が気に入ったらサポートをしてみませんか?