katonobo’s blog

仮想通貨✖プログラミング

PoloniexのAPIから、ボリンジャーバンドを出してみた

前回の記事で、PoloniexのAPIでデータの取得と、グラフを出してみました。

 

www.katonobo.com

 さて、今回は、この続きで、ボリンジャーバンドを表示させてみました。

ボリンジャーバンドってなに?ってかた。イメージしてください。

「バンド」でピンときませんか。

 

…そうです。髪の長いサッカー選手がよく頭につけてるあのバンドです。

 

 

 

嘘です。違います。

 

ボリンジャーバンドとは、株式投資などでよく用いられるテクニカル分析の一つです。

統計の技術を使ってまして、この分析で、株価の位置どころをみたりします。

ボリンジャーバンドについて、もっと知りたい方がいたら、検索してみてください。すぐ出てきます(投げやり)。

 

さて、前回までに、PoloniexのAPIからデータを取得し、グラフを出すところまでやりました。今回は、そこから、移動平均を出し、ボリンジャーバンドを表示させるところまでやります。

参考にさせていただいた記事は以下になります。

 

qiita.com

 

www.stockdog.work

 

まずは、移動平均を出します。

仮想通貨取引所のPoloniexからAPI経由でデータ取得し、ディープラーニング(Chainer)で翌日の価格予測をしよう - Qiita

を参考に、前回のjupyter notebookに必要なデータを入力。

今回は5日移動平均を使います。

data_l = pd.rolling_mean(df['close'], 12 * 24 * 5)

と入力し、出力します。ところが、

FutureWarning: pd.rolling_mean is deprecated for Series and will be removed in a future version, replace with 
	Series.rolling(window=1440,center=False).mean()

 

 なんかエラーが出ました。

replace with 
	Series.rolling(window=1440,center=False).mean()
こちらに変えろということでしょう。変更したのがこちら

data_l = df['close'].rolling(window=1440,center=False).mean()

 

 これでうまく行きました。

 

続いて、ボリンジャーバンドです。今回はシグマは2にします(2標準偏差)。

ボリンジャーバンドをpythonで描く 〜python〜 - 株も歩けば犬に当たる

こちらを思いっきり真似させていただきました。

 

deviation = 2
std = df['close'].rolling(window=1440).std()
sigma = pd.Series.rolling(data_l, window=1440).std(ddof=0) #σの計算
upper_siguma = data_l + sigma
upper2_siguma = data_l + sigma * deviation
lower_siguma = data_l - sigma
lower2_siguma = data_l - sigma * deviation

 

これでバッチリです。stdは、標準偏差を出します。

 

# 描画を綺麗に表示する
from matplotlib.pylab import rcParams
import seaborn as sns
rcParams['figure.figsize'] = 15, 6

plt.plot(df['close'], color='#7f8c8d')
plt.plot(data_l, color='#2980b9') # 長期線
#plt.plot(upper_siguma, color='blue')
plt.plot(upper2_siguma, color='red')
#plt.plot(lower_siguma, color='blue')
plt.plot(lower2_siguma, color='red')


plt.show()

 これで出力してみます。ちなみに、1シグマは今回は出さないようにコメントアウトしています。

 

f:id:katonobo:20170805234055p:plain

出力できました。
うーん。これだけ見ると、ボリンジャーバンドは仮想通貨の動きにはあんまりうまく機能しないのかもしれないですね。億万長者への道は長い…!
とにかく、今回はボリンジャーバンドをやってみました。