python + Ta-lib(テクニカル分析ライブラリ)を使って、ビットコイン過去データの移動平均線を算出して、グラフ化してみる
参考URL:
https://qiita.com/mahoutsukaino-deshi/items/8907a34986804c58724a
Ta-libをgoogle colabにインストール(ソースをDLして、ビルドして、インストール)
1 2 |
curl -L http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz -O && tar xzvf ta-lib-0.4.0-src.tar.gz cd ta-lib && ./configure --prefix=/usr && make && make install && cd - && pip install ta-lib |
windowsなら、python –version でバージョンに合わせたlibファイルをダウンロードしてきて、pip install ダウンロードしたファイル名
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
import talib import numpy as np import pandas as pd import datetime import requests import json import matplotlib.pyplot as plt # ビットコインの過去データを取得 # response = json.loads(requests.get("https://api.cryptowat.ch/markets/bitflyer/btcjpy/ohlc?periods=86400&after=1514764800").text) response = json.loads(requests.get("https://api.cryptowat.ch/markets/bitflyer/btcjpy/ohlc?periods=86400&after=1641027688").text) # DataFlame型に変換 df = pd.DataFrame(response['result']['86400'], columns=['date','open','high','low','close','volume','quoto_volume']).dropna().drop(columns=['volume','quoto_volume']) # 単純移動平均線をデータフレーム追加 df['sma5'] = talib.SMA(df['close'],5) df['sma25'] = talib.SMA(df['close'],25) df['sma75'] = talib.SMA(df['close'],75) # unix時間をyyyy-mm-ddに変換 df['created_at'] = pd.to_datetime(df['date'].astype(int), unit='s') # グラフ出力 plt.plot(df['created_at'], df['sma5']) plt.plot(df['created_at'], df['sma25']) plt.plot(df['created_at'], df['sma75']) # plt.savefig('hoge.png') # 画像の保存 plt.show() |