こんにちは、ミナピピン(@python_mllover)です。今回はビットコインはいつ買っていつ売れば儲かるのか?ということでビットコインの月別価格変化率をPythonでまとめてみました。
<ソースコード>
import numpy as np
import pandas as pd
import time
import requests
import json
from datetime import datetime
def get_btcprice(ticker,max_):
"""
[coingeckoのAPIからビットコインの価格データを取得する]
引数
ticker{str}: ティッカー(例:bitcoin、ethereum、ripple)
max_{str}: 期間(例:max、14days)
Return
r2{json}:価格、出来高、市場全体の時価総額
"""
url = 'https://api.coingecko.com/api/v3/coins/' + ticker + '/market_chart?vs_currency=jpy&days=' + max_
r = requests.get(url)
r2 = json.loads(r.text)
return r2
def reshape_pricedata(r2):
"""
[jsonから価格データだけをPandasに変換して抽出する]
引数
r2{json}: get_btcprice()で取得したデータ
Return
data{dataframe}: データフレーム
"""
data = pd.DataFrame(r2['prices'])
data.columns = ['date','price']
date = []
for i in data['date']:
tsdate = int(i / 1000)
loc = datetime.utcfromtimestamp(tsdate)
date.append(loc)
data.index = date
del data['date']
return data
#ビットコインの全期間の価格データを取得する
r2 = get_btcprice('bitcoin', 'max')
btc = reshape_pricedata(r2)
# 変化率を計算する
btc['change'] = btc['price'].pct_change()
# ずれの修正、月単位の集計
btc['change2'] = btc['change'].shift(-1)
btc['date'] = btc.index
btc['month'] = btc['date'].dt.month
#2019年以降の価格だけに絞る
btc_ = btc[btc['date']>'2019-01-01']
print(btc_[btc_['month'] == 1]['change2'].mean())
print(btc_[btc_['month'] == 2]['change2'].mean())
print(btc_[btc_['month'] == 3]['change2'].mean())
print(btc_[btc_['month'] == 4]['change2'].mean())
print(btc_[btc_['month'] == 5]['change2'].mean())
print(btc_[btc_['month'] == 6]['change2'].mean())
print(btc_[btc_['month'] == 7]['change2'].mean())
print(btc_[btc_['month'] == 8]['change2'].mean())
print(btc_[btc_['month'] == 9]['change2'].mean())
print(btc_[btc_['month'] == 10]['change2'].mean())
print(btc_[btc_['month'] == 11]['change2'].mean())
print(btc_[btc_['month'] == 12]['change2'].mean())
| ビットコイン月別価格変化率データ | |
| 1月 | -0.1751 |
| 2月 | 0.129844 |
| 3月 | -0.34038 |
| 4月 | 0.494121 |
| 5月 | 0.690031 |
| 6月 | 0.045333 |
| 7月 | 0.250652 |
| 8月 | 0.139794 |
| 9月 | -0.13744 |
| 10月 | 0.681066 |
| 11月 | 1.073141 |
| 12月 | 0.267057 |

2019年以降の値動き
2018年初頭のバブル崩壊後は構造変化が起こっていると仮定して2019年以降の値動きを絞ってサイド集計してみました。
| 1月 | 0.278407 |
| 2月 | 0.107997 |
| 3月 | -0.13943 |
| 4月 | 0.982076 |
| 5月 | 0.978397 |
| 6月 | 0.430048 |
| 7月 | 0.264932 |
| 8月 | -0.02389 |
| 9月 | -0.34641 |
| 10月 | 0.397857 |
| 11月 | -0.55919 |
| 12月 | -0.15104 |

体感的にビットコインの値動きはダウに連動している気がしているのですが、体感通り夏までのパフォーマンスが良く、9月からのリターンはダウや日経平均と同じように悪い傾向になっています。


コメント