CryptocurrencyPython

【Python】仮想通貨のRSI、MACD、ボリンジャーバンドをmplfinanceとTaLibで表示する方法

Cryptocurrency

どうも、月見(@Suzuka14144156)です。

今回は、仮想通貨のRSI、MACD、ボリンジャーバンドを表示する方法を解説します。

解決するお悩み
  • Pythonで、仮想通貨のローソク足と仮想通貨のRSI、MACD、ボリンジャーバンドを表示する方法を表示する方法がわからない
  • mplfinanceとTaLibの使い方が知りたい

この記事のゴール

  • こんなチャートをPythonで表示できるようにします!

これは、BTC-USDの日足チャートです。

ボリンジャーバンド

MACD

RSI

mplfinanceとTaLib

mplfinanceとTaLibは、Pythonのライブラリです。

mplfinance

  • ローソク足を表示するライブラリ

詳細は、以下の記事を参考にしてみてください。

TaLib

  • テクニカル指標を計算するためのライブラリ

環境の構築

今回は、Jupyte Labを用います。

Juptrer Labのインストール

インストール方法は以下2種類ある。

  1. Anacondaをインストール
  2. JupyterLabを直接インストール
月見
月見
  • どちらでもOKです

ただ、Anacondaをインストールする方が時間がかかるのでお急ぎの方は、「JupyterLabを直接インストール」がオススメ。

Anacondaをインストール

以下の記事を参考にしてください。

JupyterLabを直接インストール

コマンドプロンプトから、以下のコードを入力ください。

pip install jupyterlab

JupyterLabの起動

コマンドプロンプトから、以下のコードを入力ください。

jupyterlab

以下赤枠のアイコンをクリック。

これで起動します。

ライブラリのインストール

使用するライブラリ
  • pandas:データ処理
  • pandas_data:仮想通貨のデータ取得
  • yfinance:Yahoo Financeからデータを取得
  • mplfinance:ローソク足の表示
  • TaLib:テクニカル指標の取得

pandasのインストール

コマンドプロンプトから、以下のコードを入力ください。

pip install pandas

pandas_dataのインストール

コマンドプロンプトから、以下のコードを入力ください。

pip install pandas_datareader

yfinanceのインストール

コマンドプロンプトから、以下のコードを入力ください。

pip install yfinance

mplfinanceのインストール

コマンドプロンプトから、以下のコードを入力ください。

pip install mplfinance

TaLib

TaLibのインストール方法は、二つあります。

方法1:Anaconda経由でのインストール

方法2:公式サイトからインストール

オススメは、方法1:Anaconda経由でのインストールです。

方法1:Anaconda経由でのインストール(オススメ

コマンドプロンプトから、以下のコードを入力ください。

conda install -c conda-forge ta-lib
月見
月見
  • たったこの一行だけで、完了です。
方法2:公式サイトからインストール
conda install -c conda-forge ta-lib
pythonのバージョンを調べる

コマンドプロンプトで以下を入力する。

python -V

PowerShellCopy

すると、インストールされているPythonの情報が表示されます。

Python 3.8.8

この場合は、バージョン3.8のPythonであることがわかります。

TA-Libのwhlファイルをダウンロード

次に,以下のダウンロードサイトからTA-Libのwhlファイルをダウンロードします.
https://www.lfd.uci.edu/~gohlke/pythonlibs/#ta-lib

ダウンロードするファイルは、以下のようになります。

  • Python 3.9,Windows 64bitの場合:「TA_Lib‑0.4.19‑cp39‑cp39‑win_amd64.whl」
  • Python 3.9,Windows 32bitの場合:「TA_Lib‑0.4.19‑cp39‑cp39‑win32.whl」
  • Python 3.8,Windows 64bitの場合:「TA_Lib‑0.4.19‑cp38‑cp38‑win_amd64.whl」
  • Python 3.8,Windows 32bitの場合:「TA_Lib‑0.4.19‑cp38‑cp38‑win32.whl」
TA-Libをインストール

ダウンロードしたwhlファイルを保存したディレクトリを開く。

アドレスを入力するところに「cmd」と入力し、エンターを押す。

開いたコマンドプロンプトにて、以下を入力。

pip install whlファイル名

PowerShellCopy

以下は、例です。

pip install TA_Lib‑0.4.19‑cp38‑cp38‑win64.whl
月見
月見
  • これで完了です。

仮想通貨のチャートを取得

import pandas as pd  
from pandas_datareader import data as pdr 
import datetime
import yfinance as yf
import mplfinance as mpf
import talib

#BTCのチャートを取得
tickers = ['BTC-USD']

#取得開始日を入力
start = "2021-01-02"

#取得終了日を入力
end = datetime.date.today()

#Yahoofinanceから取得するように設定
yf.pdr_override()

#データの取得を実行
crypto_data = pdr.get_data_yahoo(tickers, start, end)

以下を実行すると取得したデータが表示されます。

crypto_data

なぜか、入力した取得開始日より、1日前からデータ取得される

なので、取得したいデータの日付より一日進めた日付を入力開始日に設定しましょう。

ローソク足の表示に関しては、以下の記事で詳細に解説しているので参考にしてみてください。

仮想通貨チャートでテクニカル指標を表示

ボリンジャーバンド

#ボリンジャーバンド
crypto_data["u_1σ"], crypto_data["middle"], crypto_data["l_1σ"] = talib.BBANDS(crypto_data['Adj Close'], timeperiod=20, nbdevup=1, nbdevdn=1, matype=0)
crypto_data["u_2σ"], crypto_data["middle"], crypto_data["l_2σ"] = talib.BBANDS(crypto_data['Adj Close'], timeperiod=20, nbdevup=2, nbdevdn=2, matype=0)
crypto_data["u_3σ"], crypto_data["middle"], crypto_data["l_3σ"] = talib.BBANDS(crypto_data['Adj Close'], timeperiod=20, nbdevup=3, nbdevdn=3, matype=0)

apds = [ mpf.make_addplot(crypto_data['middle'],color='b'),
        mpf.make_addplot(crypto_data['u_1σ'],color='gray'),
        mpf.make_addplot(crypto_data['l_1σ'],color='gray'),
        mpf.make_addplot(crypto_data['u_2σ'],color='g'), 
        mpf.make_addplot(crypto_data['l_2σ'],color='g'),
        mpf.make_addplot(crypto_data['u_3σ'],color='r'),
        mpf.make_addplot(crypto_data['l_3σ'],color='r'),
       ]

mpf.plot(crypto_data, type='candle', figsize=(30,10), style='yahoo', volume=True, addplot=apds)

MACD

crypto_data['macd'], crypto_data['macdsignal'], crypto_data['macdhist'] =talib.MACD(crypto_data['Adj Close'], fastperiod=12, slowperiod=26, signalperiod=9)
apds = [mpf.make_addplot(crypto_data['macd'],color='r',panel=1),  
        mpf.make_addplot(crypto_data['macdsignal'],color='b',panel=1),
        mpf.make_addplot(crypto_data['macdhist'], type='bar', 
                         width=1.0, panel=1, color='gray', alpha=0.5, ylabel='MACD')
       ]

mpf.plot(crypto_data, type='candle', figsize=(30,15), style='yahoo', volume=False, addplot=apds, panel_ratios=(4,1))

RSI

crypto_data["RSI"] = talib.RSI(crypto_data["Close"], timeperiod=5)
line_80 = pd.Series([80]*len(crypto_data), index=crypto_data.index)
line_20 = pd.Series([20]*len(crypto_data), index=crypto_data.index)

apds = [mpf.make_addplot(crypto_data['RSI'],color='r',panel=1),
        mpf.make_addplot(line_80, linestyle='dotted', color='k', width=1, panel=1),
        mpf.make_addplot(line_20, linestyle='dotted', color='k', width=1, panel=1)]


mpf.plot(crypto_data, type='candle', figsize=(30,15), style='yahoo', volume=False, addplot=apds, panel_ratios=(4,1))

Pythonでファイナンスのデータ分析の勉強方法

私は、以下の本で勉強しました。

かなり詳しく書かれており、とてもオススメの本です。

Udemy

Udemyはオンライン口座です。

一度購入すれば、ずっと閲覧できるのでオススメです。

【世界で8万人が受講:Python for Finance】Pythonを使って学ぶ現代ファイナンス理論と実践
ポートフォリオ理論、コーポレートファイナンス、資本資産評価モデル(CAPM)、デリバティブの値決め、モンテカルロシミュレーションといった内容を中心に、Pwcなどで活躍した講師が理論と実践に基づき解説します。

私の記事

私のブログでも解説していますので参考にしてみてください。

まとめ

今回は、仮想通貨のRSI、MACD、ボリンジャーバンドを表示する方法を解説しました。

私のブログではほかにも、仮想通貨の自動トレードの方法などを解説しているのでぜひ参考にしてみてください。

無料で閲覧可能で、コードをコピペして動かすことができます。

コメント

タイトルとURLをコピーしました