ビットコインohlcv時系列統計検定

仮想通貨の機械学習アルゴリズムトレードでbotterになろうと目論むも,

初手(機械学習の特徴量)で詰んだので時系列解析の基礎に立ち返ることにしました.

 

本記事では次の検証を行います.

 

bitbankのAPIから取得したohlcvの時系列データに対する,Ljung-Box検定,ADF検定.

 

使用したデータは,bitbankのAPIから取得した,2021年1月1日から2021年12月31日までの,15分足ohlcv時系列データです.

 

ADF検定は,時系列が定常かどうかを確かめる統計検定です.

帰無仮説:時系列が単位根過程に従う

 

Ljung-Box検定は,ある時系列の自己相関の有無についての統計検定です.

帰無仮説:時系列に自己相関関係はない

 

まず,ADF検定から行なっていきます.

ADF検定で定常性が確認できる時期に,平均への回帰を見込んでトレードを行えば,

利益が期待できます(ボリンジャーバンドなど).

拡張ディッキー–フラー検定 - Wikipedia

次のサイトを参考にしました.

【Python】「ADF検定」で時系列データの定常性・単位根を確認する | ミナピピンの研究室

 

まず,終値に対して検定を行った結果がこちら.

f:id:kumosakiT:20220331142048p:plain

20220331-1

p値が0.2程度なので棄却できませんでした.

しかし,時系列データをそのまま利用することは稀で,差分をとったり対数化したりして加工したデータを用いるらしいです.

とりあえず,月次で分割し,p値の推移を確認してみることにしました.

 

f:id:kumosakiT:20220331151940p:plain

月次のp値

月次に分割して計算するとp値が上がりますね.

データ量が少なくなるからでしょうか.

では,次に5分足で再度検定を行ってみます.

f:id:kumosakiT:20220331152310p:plain

若干下がった気がしますが形状はほぼ変わりませんね.

では2ヶ月毎に計算するとどうなるのでしょうか.

f:id:kumosakiT:20220331152552p:plain

 

あまり参考になりませんね.

次に2年分の推移を見てみます.

f:id:kumosakiT:20220331153613p:plain

今度はデイトレードを想定して,5分足日次のp値を求めてみます.

f:id:kumosakiT:20220331154413p:plain

 

次に,1分足日次のp値を求めてみます.

 

f:id:kumosakiT:20220331160826p:plain

5分足とほぼ同じであることがわかります.

f:id:kumosakiT:20220401165157p:plain

とりあえず2年分算出しました.

周期性は...あるんですかね.

まあ,Ljung-Box検定でその辺りは検証できると思います.

とりあえずボリンジャーバンド逆張り戦略でバックテストした結果を示します.

f:id:kumosakiT:20220402160057p:plain