CryptocurrencyPython

【Python|plotly】仮想通貨の対数利益率、対数収益率の計算方法

Cryptocurrency

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

今回は、仮想通貨の対数利益率、対数収益率の計算方法を解説します。

解決するお悩み
  • Pythonで、仮想通貨の対数利益率、対数収益率の計算方法がわからない
  • グリグリインタラクティブに動かせるグラフを表示する方法がわからない

この記事のゴール

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

これは、BTC-USDの対数収益率を表示しています。

対数収益率、利益率とは?

対数利益率は、以下の式で算出される割合を表します。

  • Pt:t日の株価
  • Pt-1:t-1日の株価
画像に alt 属性が指定されていません。ファイル名: image-222.png

対数収益率、利益率の使い方

対数収益率を表示すると、暴落したときが、いつだったかがわかります。

例えば、以下の赤矢印で示したときは、2020年5月12日です。

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

  • ステーブルコインのテラUSDの急落を引き金に幅広い仮想通貨が売られた。

ということが原因で暴落したんだなということがわかります。

また、特定の暴落がどのくらいのインパクトだったかを定量的に示すことができます。

例:アラメダショックのインパクト

私が対数収益率を使って、分析した記事を紹介します。

以下を参照ください。

これのグラフを描くのに使うライブラリが、「plotly」です。

plotlyとは?

インタラクティブなグラフを表示するのに使うライブラリがplotlyです。

こんな風に綺麗なグラフが、描けます。

環境の構築

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

Juptrer Labのインストール

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

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

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

Anacondaをインストール

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

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でうまく表示されない場合は、以下の記事を参考にしてみてください。

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

今回は、以下の銘柄を取得します。

tickers = [‘BTC-USD’]

そのほかにも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日の株価
画像に alt 属性が指定されていません。ファイル名: image-222.png
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はオンライン口座です。

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

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

私の記事

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

まとめ

今回は、仮想通貨の対数利益率、対数収益率の計算方法を解説しました。

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

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

コメント

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