どうも、月見(@Suzuka14144156)です。
今回は、仮想通貨の対数利益率、対数収益率の計算方法を解説します。
- Pythonで、仮想通貨の対数利益率、対数収益率の計算方法がわからない
- グリグリインタラクティブに動かせるグラフを表示する方法がわからない
この記事のゴール
- こんなチャートをPythonで表示できるようにします!
これは、BTC-USDの対数収益率を表示しています。

対数収益率、利益率とは?
対数利益率は、以下の式で算出される割合を表します。
- Pt:t日の株価
- Pt-1:t-1日の株価

対数収益率、利益率の使い方
対数収益率を表示すると、暴落したときが、いつだったかがわかります。
例えば、以下の赤矢印で示したときは、2020年5月12日です。

そこで、「2020年5月12日 ビットコイン」と検索すると、以下がヒットします。

ということが原因で暴落したんだなということがわかります。
また、特定の暴落がどのくらいのインパクトだったかを定量的に示すことができます。
例:アラメダショックのインパクト

私が対数収益率を使って、分析した記事を紹介します。
以下を参照ください。
【仮想通貨暴落】アラメダリサーチ、FTX、FTTの影響について分析
これのグラフを描くのに使うライブラリが、「plotly」です。
plotlyとは?

インタラクティブなグラフを表示するのに使うライブラリがplotlyです。
こんな風に綺麗なグラフが、描けます。

環境の構築
今回は、Jupyte Labを用います。
Juptrer Labのインストール
インストール方法は以下2種類ある。

- どちらでもOKです
ただ、Anacondaをインストールする方が時間がかかるのでお急ぎの方は、「JupyterLabを直接インストール」がオススメ。
Anacondaをインストール
以下の記事を参考にしてください。
Python Anacondaとは?|インストール〜Jupyter Notebookの立ち上げ
JupyterLabを直接インストール
コマンドプロンプトから、以下のコードを入力ください。
pip install jupyterlab
JupyterLabの起動
コマンドプロンプトから、以下のコードを入力ください。
jupyter lab
以下赤枠のアイコンをクリック。

これで起動します。
ライブラリのインストール
- pandas:データ処理
- numpy:配列のデータ処理
- plotly:グラフの表示
- pandas_data:仮想通貨のデータ取得
- yfinance:Yahoo Financeからデータを取得
numpyのインストール
コマンドプロンプトから、以下のコードを入力ください。
pip install numpy
pandasのインストール
コマンドプロンプトから、以下のコードを入力ください。
pip install pandas
pandas_dataのインストール
コマンドプロンプトから、以下のコードを入力ください。
pip install pandas_datareader
yfinanceのインストール
コマンドプロンプトから、以下のコードを入力ください。
pip install yfinance
plotlyのインストール
コマンドプロンプトから、以下のコードを入力ください。
conda install -c plotly plotly
jupyter labでうまく表示されない場合は、以下の記事を参考にしてみてください。
【Python】Plotly と Jupyter Labでグラフが表示されない場合の解決方法
仮想通貨のチャートを取得
そのほかにもYahoo Financeにある銘柄なら取得可能ですので、各々で取得したい銘柄を入力ください。
import pandas as pd
from pandas_datareader import data as pdr
import datetime
import yfinance as yf
import numpy as np
import plotly.express as px
#BTCのチャートを取得
tickers = ['BTC-USD']
#取得開始日を入力
start = "2018-01-01"
#取得終了日を入力
end = datetime.date.today()
#Yahoofinanceから取得するように設定
yf.pdr_override()
#データの取得を実行
crypto_data = pdr.get_data_yahoo(tickers, start, end)
以下を実行すると取得したデータが表示されます。
crypto_data

仮想通貨の対数利益率、対数収益率の算出
以下の数式をPythonで記述します。
対数利益率は、以下の式で算出される割合を表します。
- Pt:t日の株価
- Pt-1:t-1日の株価

crypto_data['log_return'] = np.log(crypto_data['Adj Close'] / crypto_data['Adj Close'].shift(1))
crypto_data['log_return']

対数利益率が計算されました。これをグラフにプロットします。
fig = px.line(crypto_data_plot, x=crypto_data_plot.index, y='log_return')
fig.show()


- これで完了!
Pythonでファイナンスのデータ分析の勉強方法
本
私は、以下の本で勉強しました。
かなり詳しく書かれており、とてもオススメの本です。
Udemy
Udemyはオンライン口座です。
一度購入すれば、ずっと閲覧できるのでオススメです。

私の記事
私のブログでも解説していますので参考にしてみてください。
【Python x 仮想通貨】分析方法のまとめ(テクニカル分析など)
まとめ
今回は、仮想通貨の対数利益率、対数収益率の計算方法を解説しました。
私のブログではほかにも、仮想通貨の自動トレードの方法などを解説しているのでぜひ参考にしてみてください。
無料で閲覧可能で、コードをコピペして動かすことができます。
【Python|cctx】ビットコイン自動取引ツールの作成方法まとめ
コメント