ビットコインohlcv時系列統計検定
仮想通貨の機械学習アルゴリズムトレードでbotterになろうと目論むも,
初手(機械学習の特徴量)で詰んだので時系列解析の基礎に立ち返ることにしました.
本記事では次の検証を行います.
bitbankのAPIから取得したohlcvの時系列データに対する,Ljung-Box検定,ADF検定.
使用したデータは,bitbankのAPIから取得した,2021年1月1日から2021年12月31日までの,15分足ohlcv時系列データです.
ADF検定は,時系列が定常かどうかを確かめる統計検定です.
帰無仮説:時系列が単位根過程に従う
Ljung-Box検定は,ある時系列の自己相関の有無についての統計検定です.
帰無仮説:時系列に自己相関関係はない
まず,ADF検定から行なっていきます.
ADF検定で定常性が確認できる時期に,平均への回帰を見込んでトレードを行えば,
利益が期待できます(ボリンジャーバンドなど).
次のサイトを参考にしました.
【Python】「ADF検定」で時系列データの定常性・単位根を確認する | ミナピピンの研究室
まず,終値に対して検定を行った結果がこちら.
p値が0.2程度なので棄却できませんでした.
しかし,時系列データをそのまま利用することは稀で,差分をとったり対数化したりして加工したデータを用いるらしいです.
とりあえず,月次で分割し,p値の推移を確認してみることにしました.
月次に分割して計算するとp値が上がりますね.
データ量が少なくなるからでしょうか.
では,次に5分足で再度検定を行ってみます.
若干下がった気がしますが形状はほぼ変わりませんね.
では2ヶ月毎に計算するとどうなるのでしょうか.
あまり参考になりませんね.
次に2年分の推移を見てみます.
今度はデイトレードを想定して,5分足日次のp値を求めてみます.
次に,1分足日次のp値を求めてみます.
5分足とほぼ同じであることがわかります.
とりあえず2年分算出しました.
周期性は...あるんですかね.
まあ,Ljung-Box検定でその辺りは検証できると思います.
とりあえずボリンジャーバンド逆張り戦略でバックテストした結果を示します.
1/4 GBP/JPY
現在、1月4日22時57分です。
GBP/JPYのチャートを見ていきます。
短期足、中期足は下降トレンド、長期足はレンジ相場です。
また、短期足の上のライン(140.4)が意識ラインになっているように見えます。
かつ、反発していた1時間足75SMAを下抜けたので、下降色は強いように思われます。
次に、GBP/USDを見ます。
短期足より下降トレンドであることが分かります。
障害となるのは1時間足75SMAでしょうか。
最後に、USD/JPYを確認します。
短期足は上昇トレンドですが、中期足より転換期であると見ることができます。
よって、レンジ相場と同等の扱いをします。
利益が見込めそうなGBP/JPYで売りを入れます。
損切りラインは、GBP/JPY1時間足75SMAを上抜け、もしくはGBP/USD1時間足75SMAで反発です。
利確ラインは、底値切り上げ、139.98到達、もしくはGBP/USD1時間足75SMAで反発です。
さて、現在1月4日(月)23時42分です。
GBP/USD1時間足75SMAで反発していますね。
次にGBP/JPYを確認します
チャートのスクショが遅れましたが、実際は反発する前にしっかり利確できています。
1/4 USD/JPY
現在1月4日(月)19時43分です。
今回はUSD/JPYをトレードしていきたいと思います。
注目するチャートはUSD/JPY、GBP/USD、GBP/JPYの3つです。
まずUSD/JPYチャートを見ていきます。
短期足、中期足、長期足すべて下降トレンドになっています。
長期足を見ても底値を切り下げているのでトレンドは継続すると思われます。
次にGBP/USDチャートを見ます。
中期足、長期足では上昇トレンド、短期足では上昇トレンド、短期足ではレンジ相場となっています。頭打ちになっている感があります。よって、今回はGBP=USDのトンレドと認識します。
最後に、GBP/JPYチャートを確認します。
短期足、中期足で、中期足75SMAに反発しているのが分かります。
しかし、中期足では12/24の最高値で頭打ちにあい、三尊形成の下降トレンドになっていますので、短期足もJPY>GBPの下降トレンドに沿うと考えられます。
すなわち、JPY>USDの下降トレンド色は強いので、USD/JPYで売り注文を入れます。
損切りラインは中期足の前回底値です。
さて、現在1月4日(月)22時32分です。
USD/JPYチャートを見てみましょう。
このまま底値を切り上げて逆三尊を形成するようであれば、ネックラインを上抜けた時点で買いを入れます。ネックラインを上抜けずにレンジ相場に入る場合は、エントリーを見送ります。