CryptocurrencyPython

【Python】仮想通貨のProphetによる価格予想・分析方法(時系列データ分析)

Cryptocurrency

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

今回は、仮想通貨のProphetによる価格予想・分析方法を解説します。

解決するお悩み
  • Pythonで、仮想通貨の未来の価格を予想したいがやり方がわからない
  • なるべく簡単な方法が知りたい

この記事のゴール

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

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

Prophetの価格予想使い方

  • 時系列データ分析的には、どういう予想になるのか?をざっくりと把握するのに使う
  • あまり予想を鵜呑みにしすぎず、あくまで参考とする

というのも仮想通貨は、時系列データ分析の予想通りにいかないときも結構あります。

なぜなら、仮想通貨は、経済や政治などのマクロ要因に影響受けることがほとんどだから。

月見
月見
  • ただ、数学的なアプローチとして、理論はしっかりとしているので参考にするのはよいと思います
  • 例えば、シーズナブルパターンがあるデータには有効

例:スキー場の売り上げなど

冬に売り上げが伸びるなどは、時系列データ分析で、予想がしやすいです。

環境の構築

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

Juptrer Labのインストール

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

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

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

Anacondaをインストール

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

JupyterLabを直接インストール

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

pip install jupyterlab

JupyterLabの起動

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

jupyterlab

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

これで起動します。

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

使用するライブラリ
  • Prophet:時系列データ分析
  • pandas:データ処理
  • pandas_data:仮想通貨のデータ取得
  • yfinance:Yahoo Financeからデータを取得

Prophetのインストール

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

python -m pip install prophet

pandasのインストール

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

pip install pandas

pandas_dataのインストール

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

pip install pandas_datareader

yfinanceのインストール

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

pip install yfinance

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

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

#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日前からデータ取得される

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

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

格帯別取引量のグラフ表示方法

#予想したい日付を入力
periods=60

# インスタンス化
model = Prophet()

# モデルフィット
df = pd.DataFrame({"ds":crypto_data['Adj Close'].index, "y":crypto_data['Adj Close']}).reset_index(drop=True)
model.fit(df)

# 未来予測用のデータフレーム
future = model.make_future_dataframe(periods=periods)

# 時系列を予測
forecast = model.predict(future)

#表示
fig = model.plot(forecast)
model.plot_components(forecast)

このコードを実行すると以下のグラフが得られます。

トレンド分析

fig = model.plot_components(forecast)

これを実行すると以下のデータ得られる。

長期トレンド、週のトレンド、年間のトレンドが得られます。

ビットコインは、水曜日に価格を上げやすいことや、11月に価格が上がりやすいことがわかります。

月見
月見
  • 未来の価格予想よりも、こういった周期的なパターンを把握しておく方が大切です

その他Prophetの使い方

公式サイトが以下になるので、以下を参考にしてみてください。

Prophet
Prophet is a forecasting procedure implemented in R and Python. It is fast and provides completely automated forecasts that can be tuned by hand by data scienti...

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

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

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

Udemy

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

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

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

私の記事

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

まとめ

今回は、仮想通貨のProphetによる価格予想・分析方法を解説しました。

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

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

コメント

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