CryptocurrencyPython

【Python】仮想通貨のリターンとリスクの計算方法。投資すべき銘柄を分析。

Cryptocurrency

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

今回は、仮想通貨のリターンとリスクの計算方法を解説します。

解決するお悩み
  • 仮想通貨のリスクとリターンを算出する
  • 投資すべき銘柄を抽出したい

この記事のゴール

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

縦軸は、リスク。

横軸は、リターンのグラフです。

このグラフから投資すべき銘柄は、BNBとわかります。

月見
月見
  • リスクは小さく、リターンは最大化する銘柄に投資すべき

環境の構築

今回は、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からデータを取得
  • matplotlib:グラフで表示

pandasのインストール

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

pip install pandas

pandas_dataのインストール

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

pip install pandas_datareader

yfinanceのインストール

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

pip install yfinance

matplotlibのインストール

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

pip install matplotlib

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

import pandas as pd  
from pandas_datareader import data as pdr 
import datetime
import yfinance as yf
import mplfinance as mpl
import numpy as np
import matplotlib.pyplot as plt

#仮想通貨のチャートを取得
tickers = ['BTC-USD','ETH-USD','BNB-USD','XRP-USD','DOGE-USD']

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

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

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

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

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

crypto_data

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

仮想通貨の対数収益率を計算

次に対数収益率を計算します。

計算方法の詳細は、以下の記事を参照ください。

log_return = pd.DataFrame()
for ticker in tickers:
    log_return[ticker]= np.log(crypto_data['Adj Close'][ticker] / crypto_data['Adj Close'][ticker].shift(1))
log_return

仮想通貨の対数収益率を計算

  • Risk(リスク):対数収益率の平均値標準偏差(ばらつき)
  • Retuen(リターン):対数収益率の平均値
log_return =  log_return.dropna()

area = np.pi * 20

plt.figure(figsize=(10, 7))
plt.scatter(log_return.mean(),  log_return.std(), s=area)
plt.xlabel('Expected return')
plt.ylabel('Risk')

for ticker in tickers:
    print(ticker)
    plt.annotate(ticker, xy=(log_return[ticker].mean(), log_return[ticker].std()), xytext=(50, 50), textcoords='offset points', ha='right', va='bottom', 
                 arrowprops=dict(arrowstyle='-', color='#732C2C', connectionstyle='arc3,rad=-0.3'))

このコードを実行すると以下になります。

月見
月見
  • リスクは、小さく。リターンは、大きい方が良いので、グラフでは、右下の方にある銘柄がよい銘柄です!

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

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

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

Udemy

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

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

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

私の記事

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

まとめ

今回は、仮想通貨のリターンとリスクの計算方法を解説します。

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

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

コメント

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