この記事はWindows10でAnaconda3を使ってプログラミングをする人向けに書いてあります
前回でコードを記述する準備ができたので、今回はbitcoinの価格を分析します。
前回の記事はこちらから
前回の記事
仮想通貨取引所のひとつ、bitbankのAPIを使って仮想通貨の購入、売却を自動で行ってくれるPythonのプログラムを作ります。 ここでは、私が作成した過程を紹介します。 bitbankの口座を開設 こちらか[…]
目次
numpy, matplotlib, ta-libライブラリのインストール
データを解析するためにこれらのライブラリをインストールします
まだ完全に準備できていませんでした。
numpy, matplotlibのインストール
前回のrequestsモジュールをインストールした手順と一緒です
- Anaconda Navigator を開いて、Environmentタブから前回作成した仮想環境を選択
- 右側のモジュール一覧からnumpyとmaplotlibを探してapply(インストールする)
ta-libライブラリのインストール
前回のbitbank API ライブラリをインストールした手順と同じです
- Anaconda Navigator を開き、Environmentタブから作成した仮想環境を選択
- 仮想環境一覧の右にある▶からOpen Terminalを選択し、ターミナルを開く
- 以下のコマンドを入力
pip install TA-Lib
原因はよくわかりませんが、この方法だと私はエラーが出たので他の方法を使います
以下のサイトから該当するパッケージをダウンロード
https://www.lfd.uci.edu/~gohlke/pythonlibs/#ta-lib
TA-Libの中でいろいろバージョンがありますので該当するものをダウンロードします
例: 仮想環境のバージョンがpython 3.7 で、あなたのパソコンのOSがWindowsの64bitなら
TA_Lib-0.4.17-cp37-cp37m-win_amd64.whlをダウンロード
ターミナルからダウンロードしたファイルをインストール
- Anaconda Navigator から作成した仮想環境のターミナルを開く
- 先程ダウンロードしたファイルがあるディレクトリまで移動
- 以下のコマンドを実行(pip install [ファイル名])
pip install TA_Lib‑0.4.17‑cp37‑cp37m‑win_amd64.whl
Jupyter Notebookでコードを実行
前回も紹介した様に、
作成した仮想環境のJupyter Notebookを開いてpython3のスクリプトを作成しコードを実装します。
モジュールのインポート
import python_bitbankcc as bb import matplotlib.pyplot as plt import talib import numpy as np from datetime import datetime
bitbanc APIのパブリックapiのインスタンスを作成
pub = bb.public()
1分足で当日のローソク足を取得
today = datetime.today()
time8 = str(today.year).zfill(4) + str(today.month).zfill(2) + str(today.day).zfill(2)
value = pub.get_candlestick('btc_jpy', '1min', time8)
終値、高値、安値をグラフに表示
ohlcv = value["candlestick"][0]["ohlcv"]
close_prices = [float(i[3]) for i in ohlcv]
high_prices = [float(i[1]) for i in ohlcv]
low_prices = [float(i[2]) for i in ohlcv]
ohlcv_time = [tmp[5] for tmp in ohlcv]
times = [datetime.fromtimestamp(i/1000) for i in ohlcv_time]
plt.figure(figsize=(25,15))
plt.plot(times,close_prices,label= 'close')
plt.plot(times,high_prices,label= 'high')
plt.plot(times,low_prices,label= 'low')
plt.xlabel('time')
plt.ylabel('price[enn]')
plt.legend()
plt.show()
TA-Libを使ったテクニカル分析
np_close = np.array(close_prices,dtype='f8')
SMA10 = talib.SMA(np_close, timeperiod = 10)
SMA20 = talib.SMA(np_close, timeperiod = 20)
RSI10 = talib.RSI(np_close, timeperiod = 10)
RSI20 = talib.RSI(np_close, timeperiod = 20)
plt.figure(figsize=(25,15))
plt.subplot(3,1,1)
plt.plot(times,close_prices,label='price')
plt.legend()
plt.subplot(3,1,2)
plt.plot(times,SMA10,label='SMA10')
plt.plot(times,SMA20,label='SMA20')
plt.legend()
plt.subplot(3,1,3)
plt.plot(times,RSI10,label='RSI10')
plt.plot(times,RSI20,label='RSI20')
plt.legend()
plt.show()