どうも、月見(@Suzuka14144156)です。
今回は、仮想通貨のリターンとリスクの計算方法を解説します。
- 仮想通貨のリスクとリターンを算出する
- 投資すべき銘柄を抽出したい
この記事のゴール
- こんなチャートをPythonで表示できるようにします!
縦軸は、リスク。
横軸は、リターンのグラフです。
このグラフから投資すべき銘柄は、BNBとわかります。
- リスクは小さく、リターンは最大化する銘柄に投資すべき
環境の構築
今回は、Jupyte Labを用います。
Juptrer Labのインストール
インストール方法は以下2種類ある。
- どちらでもOKです
ただ、Anacondaをインストールする方が時間がかかるのでお急ぎの方は、「JupyterLabを直接インストール」がオススメ。
Anacondaをインストール
以下の記事を参考にしてください。
Python Anacondaとは?|インストール〜Jupyter Notebookの立ち上げ
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
ローソク足の表示に関しては、以下の記事で詳細に解説しているので参考にしてみてください。
【Python】仮想通貨のチャートを取得し、ローソク足を表示する方法
仮想通貨の対数収益率を計算
次に対数収益率を計算します。
計算方法の詳細は、以下の記事を参照ください。
【Python|plotly】仮想通貨の対数利益率、対数収益率の計算方法
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はオンライン口座です。
一度購入すれば、ずっと閲覧できるのでオススメです。
私の記事
私のブログでも解説していますので参考にしてみてください。
【Python x 仮想通貨】分析方法のまとめ(テクニカル分析など)
まとめ
今回は、仮想通貨のリターンとリスクの計算方法を解説します。
私のブログではほかにも、仮想通貨の自動トレードの方法などを解説しているのでぜひ参考にしてみてください。
無料で閲覧可能で、コードをコピペして動かすことができます。
【Python|cctx】ビットコイン自動取引ツールの作成方法まとめ
コメント