こんにちは、ミナピピン(@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月からのリターンはダウや日経平均と同じように悪い傾向になっています。
コメント