FTXのBTC MOVEで遊ぶためにデータ解析してみる
# 有料設定になってますが解析内容はほぼ全て無料で見れます。
# 参考になったならジュースおごるつもりでノート購入してもらうと励みになります🍹
------------------------------------------------------------------------------------
(2020/08/26 追記)MOVE contractデータの追加解析を行いました。なかなか有用な情報だと思うので、すみませんが購入者限定公開にさせていただきます。
(2020/08/30 追記)開始価格と、そこから満期時までどの程度上昇/下落するかについて解析しました。曜日アノマリーについても見ています。
(2020/09/27 追記)一部のプロットを2019年MOVE開始時~現在までのデータに更新しました(購入者限定部分)
------------------------------------------------------------------------------------
はじめに
こんにちは、Moondance (@moondancecrypto) といいます。仮想通貨Botとか作って遊んでいます。
最近FTXのBTC-MOVEの話をTwitter上とかでよく見かけます。とりあえず売っときゃいい!という話もみかけますが、本当にそうなのでしょうか。
チキンなので鵜呑みにして始めるのは怖いです。日本の仮想通貨コミュニティは比較的ノイズの少ない有用な情報が飛び交っていると思いますが、誰かのツイートを見て取引してみたら大やけど、なんてこともザラにあると思うので油断は禁物です。トレードでは誰も信用しないことが基本です。
ということで調べてみようと思ったので、その過程を共有してみたいと思います。
データ収集
まず何よりも重要なのはデータを集めることです。これにはFTX公式のAPIを使ってOHLCVデータをダウンロードするのがストレートな方法かと思います。公式のGithubにあるPythonのサンプルコードを参考にしてスクリプトを書いています。
注意点としてはBTC-MOVEに関しては、期日が来てしまったデータをダウンロードするには開始日時(start_time)と終了日時 (end_time) を指定しないといけません。
それに気をつけて作ったスクリプトはこちら
コードは長そうに見えますが、get_historical_klines()という関数を使い、FTXのREST APIから2020年1月2日から現在までの1分足OHLCVデータをダウンロードし、CSVに保存しているだけです。
ただ、この方法だと2019年のデータはダウンロードできません(BTC-MOVEのマーケット名に年が含まれていないため)。もしDL出来る方法をご存じの方がいれば是非教えて下さい。
データの注意点
さっそく頑張ってダウンロードしてみたデータを見てみると、あることに気づきます。
1.データの値が違う
ダウンロードしたデータに記載されているOHLCVのデータは、FTXの画面上で表示されているTrading Viewのデータとは違っているようです。
何故かはわかりませんが、大きく違っているということもなさそうですし、とりあえずよしとしましょう。
2.データが抜けてる
値が違うぐらいならまだいいのですが、値がちょいちょい飛んでいるのがあります。Trading Viewでは抜けてないのに。。。。
場合によっては8本ぐらい抜けているのもあったので、ここはFTXに改善してもらいたいところです。
データ解析
さて本番のデータ解析に移ります。とはいってもそんな複雑な解析はやってません。
まず、スタートの値を揃えるため、各contractの最初の足の終値を基準(ゼロ)として揃え、上で書いたデータの欠損については前後の値で補間したものをプロットしてみます。
生時系列データをグレーで、平均値(mean)と中央値(median)をそれぞれオレンジと青でプロットしています。各データは2日分(2880サンプル)あり、前半は殆ど動いていないものが多いですが、これは前日のcontractが動いているためでしょう。
一つ見て取れることは、中央値が最終的に-50~100ドルほどマイナスになっていることから、やはり基本的に売りで入るストラテジーは間違っていないんじゃないかと期待できます。
次は時間に沿ってデータをプロットしてみます。
全体の傾向としては基本的にマイナスで終わっている日が多く、時々上に飛んでる(大きく価格が動く)日があるように見えます。やはりこれを見ても売ったほうがいいというのは確認できます(同じデータなので当然ですが)。
もうちょっと分かりやすく可視化してみましょう。一番上のグラフから多くの日の値動きは±200ドル以内ですから、その範囲のヒストグラムを取ってみます。
(↑ちょっと解析が間違っていたので修正しました)
これを見ると、頻度としては-100~-150ドル程度で終わる場合がプラスで終わるときよりも多いようです。
検証
それではやはりとりあえず売っておくというストラテジーは正しいのでしょうか?じゃあいつ売るのが良いのか?少し検証してみます。
ここでやはり気になるのは上で引用したRIOさんのノートでもあった曜日ごとのアノマリー、つまり「どの曜日に売れば利益が出やすそうなのか?」です。
モノアイさんのデータでは平均値と中央値しか調べてられていませんが、もうちょっと詳しく見てみたいと思います。
ここではBinanceのBTCUSDTの日足のデータを対象とします。こちらのダウンロードのやり方は詳しく書きませんが、python-binanceライブラリを使っています。
MOVE contractで重要なのは実際に何ドル動くか、ということですが、1BTC5000ドルの時と1万ドルの時では違うと思うので騰落率((終値ー始値)/始値x100)で考えることにします。
Binanceが取引開始した2017年8月~現在までの騰落率が以下のプロットです。可視化のためここでは騰落率の絶対値を取っています。MTWTFSSで表される各行は曜日を表し、変化が大きいほど色が濃くなっています(濃紺で5%以上)。これだけ見てもパッとどの曜日に変化しやすいかという明らかな相関はわかりませんね。
それにしても2017~2018年のバブルの時はさすがにボラが激しいです。この時期は明らかにマーケットの挙動が違うと思うので、2019年から現在までを対象として検証することにします。
とりあえず曜日ごとにBox plotかけてみましたが、とんでもない外れ値がいます(2020/03/12のコロナショックの時)。このような値を含めて平均値をとってしまうと正確にどういう分布になっているのか把握できません。
というか一気に10%以上変わってしまうのならMOVE的には死を意味するので、10%以下の騰落率の割合を見ます。
このヒストグラムから、土曜日の分布は中心に寄っていて尖っていること、逆に月曜日は平べったい分布になっていること、などが見てとることができます。つまり、
1. 土曜日はほとんど動かない
2. 月曜日は動きやすい
傾向にあるということを表しています。
これはなんとなく理解できる結果ではないでしょうか。土曜日の値動きが少ないのは金曜日までで他のマーケットが閉じてしまい、市場の参加者が少ないからで、月曜は逆にマーケットが開くので、ボラが出てくる、と解釈できます。
定量的にこの分布を理解するため、分布の尖り具合を表す尖度(Kurtosis)を取ってみます。
Mon: -0.399974
Tue: 1.776269
Wed: -0.774951
Thu: 2.428863
Fri: 1.423340
Sat: 3.439840
Sun: 2.087782
意外に水曜日の値が一番低くなりましたが、尖度を基準にするなら、
水>月>金>火>日>木>土 の順でBTCは動きやすいということになります。
まとめ
いろいろと書きましたが、まとめると
● 売りで入るストラテジーはよさげ
● 期待できる値幅は-100ドル程度
● 動きやすさは 水>月>金>火>日>木>土 の順
ということがデータから読み取れるかと思います。
ここからいろんなストラテジーが考えられそうですね。
データ解析は以上になります。ここまでお読みくださってありがとうございました。この記事を見てFTXやMOVE contractに興味持った人は以下からどうぞ。
Twitterもフォローよかったらどうぞ。
有料部分については、お礼と、同じようなデータ解析をやってみたい人のために上の解析のために書いたPythonコード等を共有してます。
ここから先は
¥ 150
Amazonギフトカード5,000円分が当たる
この記事が気に入ったらチップで応援してみませんか?