オムライスの備忘録

数学・統計学・機械学習・プログラミングに関することを記す

【金融時系列解析】トリプルバリア法

Index

ボラティリティー / Volatility

時系列データを評価・ラベリング(ここでの目的は機械学習アルゴリズムで使用するためラベリング)をするときに 「ボラティリティー / Volatility」は非常に重要な考え.

ボラティリティー / Volatility とは、一般的に価格変動の度合いのこと.

ボラティリティーが大きい」という場合は、その金融商品の価格変動が大きいことを意味し、 「ボラティリティーが小さい」という場合は、その金融商品の価格変動が小さいことを意味する.

ボラティリティーを標準偏差で数値化し、その金融商品リスクとの度合いと考えるのが一般的.

トリプルバリア法

金融分野の機械学習の論文では、「固定時間ホライズン法」を用いて観測データにラベルを付けることが多い.
(「固定時間ホライズン法」については、割愛.)

しかし、いくつかの理由でこの方法でラベリングすることは望ましくないケースがある.

そこで、改良版の「トリプルバリア法」を考える.

このラベリング方法は、時系列データに 3 つライン(手法名としてはバリア)を用意し、それらに触れた時点でイベント発生と見なし、 何らかのラベルを付与する.

3 つのラインとは

  • 水平バリア1 : 利益確定 / 利食い / プロフィットテイク (profit take)
  • 水平バリア2 : 損切り / ストップロス (stop loss)
  • 垂直バリア : 有効期限



それぞれのイベントが発生したときに以下のようにラベリングする.

イベント名 ラベル
利益確定 1
損切り -1
有効期限 0 (or 1)

実装

データの取得

こちらの記事の「株価データ」と同様に取得する.

CUSUM フィルタを利用したイベントベースのサンプリング

こちらの記事で記した「CUSUM フィルタ」(get_t_event) を利用する.

日次ボラティリティー (標準偏差) の計算

時系列データの変化の大きさを計算する.

入力は株価データの終値、出力は日次ボラティリティー (標準偏差) .

指数平滑移動平均を計算してから、標準偏差を計算する.

関数 説明 参考
pandas.searchsorted ソートされた配列に順序を崩さずに挿入できるインデックスを取得する関数) searchsortedの使い方
pandas.ewm 指数平滑移動平均の計算
pandas.std 標準偏差の計算

参考

  • Classification-based financial markets prediction using deep neural network
    • Dixon et al. [2016]
    • 固定時間ホライゾン法を利用
    • arxiv.org

書籍