【 Python 】ビットコイン過去データでボリンジャーバンドを引く方法

ビットコイン過去データでボリンジャーバンドを引く方法 サムネイル

この記事ではPythonとビットコインの2014年分からの過去データを使ってボリンジャーバンドを引くための方法を解説します。

 

ボリンジャーバンドはご存知の人も少なくないと思いますが標準偏差(σ=シグマ)を加えた移動平均線のようなものです。

ボリンジャーバンドは移動平均線20日をベースに、+2σをレジスタンスラインに、-2σをサポートラインに見立てて線を引くことが多いです。

この記事では一般的な「移動平均線20日のライン」「+2σのライン」「-2σのライン」の3つを引いたチャートをPythonで引いてみることにします。

 

草猫店長
「+2σのライン」「-2σのライン」の内側は概ね95%のチャートの値動きを範囲にしているにゃあ。95%の値動きから外れることは珍しいからそのタイミングを買いか売りかの指標にしやすいんだにゃあ。

 

前回は移動平均線を【 Python 】ビットコインのテクニカル分析をプログラミングで行う方法という記事で引いてみました。この記事が難しそうな人はこちらから試してみることをお勧めします。

【 Python 】ビットコインのテクニカル分析をプログラミングで行う方法 サムネイル

【 Python 】ビットコインのテクニカル分析をプログラミングで行う方法

2019年8月16日

 

この記事での目標 ~Pythonを使ってボリンジャーバンドを描写する~

この記事での目標 ~Pythonを使ってボリンジャーバンドを描写する~ 全体図

下は拡大図この記事での目標 ~Pythonを使ってボリンジャーバンドを描写する~ 拡大図

このグラフを描写することを目標とします。使うエディターなどの指定はありませんが、上の図はVScodeエディターで実行して描写させています。

「 ブルーclose: 終値 」「 オレンジaverage20: 20日平均線 」「グリーンは+2σのライン」「レッドは-2σのライン」となっています。

 

やることを整理しましょう。

草猫店長
好きなエディタでいいにゃあ。この記事で使っているVSCodeはオススメだにゃあ。

VSCodeの使い方とダウンロードはこちらのページ(ビットコイン板情報(価格)をPythonで取得する方法)を参考にしてほしいにゃあ。

ボリンジャーバンドを引く手順

今回の完成コードはこちらです。

ボリンジャーバンドを引く手順

①. ビットコインの過去データを読み込む

②. データを整える

③. 計算式を使って必要なデータを変数に格納する

④. ボリンジャーバンドのデータを描写する

主に4つの過程を順番に説明していきます。

 

①. ビットコインの過去データを読み込む

まずは手持ちのビットコインデータを使ってみましょう。

終値データと日時データの2つだけ使います。(日足で解説しています)

 

ビットコインの過去データなんか持ってないよ」という人の方がおそらく多いと思います。

必要なデータとライブラリの準備のページにデータを貼っているので欲しい人はどうぞ。

こちらのデータを使って解説しています。

 

まずは必要なライブラリを読み込みます。

次にcsvデータを読み込みましょう。

「df = pd.read_csv(“./CoinbaseDayHistory.csv”, index_col=”DateTime”)」のオプションである「index_col=”DateTime”」は日付データのヘッダーの名前(列につけた名前)をデータの順番の基準(インデックス)にするオプションになります。

 

ちなみに元データはこのようになっています。

ボリンジャーバンドに扱うデータ

 

②. データを整える

必要なデータは「終値」「日付」だけです。不要な列は削除します。

delコマンドで読み込んだ元データの列である[‘Symbol’]、[‘Open’]、[‘High’]、[‘Low’]、[‘Volume BTC’]、[‘Volume USD’]を削除しました。

bolinger = pd.DateFrame()でボリンジャーバンド用のデータセットを作っていきましょう。

草猫店長
実際のところ、delで不要なデータを削除しなくても実行できるけど、どのデータを使わないのかが分かった方が他の読み手にも優しいにゃあ。

 

③. 計算式を使って必要なデータを変数に格納する

bolinger = pd.DateFrame()のbolingerに必要なデータを計算しつつ処理していきましょう。

bolinger[‘close’] = df[‘Close’]は元データの終値をbolingerに格納しています。

 

「rolling(window=20)」は20行分(20日分)の処理をしつつ「mean()」で平均値を算出しています。

「rolling(window=20)」の「std()」で標準偏差を算出します。

 

bolinger[‘+2σ’] = bolinger[‘average20’] + (bolinger[‘std’] * 2)

bolinger[‘-2σ’] = bolinger[‘average20’] – (bolinger[‘std’] * 2)

こちらは文字通り+2σと-2σの計算を行なって変数として格納しています。

 

④. ボリンジャーバンドのデータを描写する

 

データを描写する前に正しく計算できていそうなのか中身を確認してみましょう。

「print(bolinger[‘2019-02-01′:’2019-08-01’])」でインデックスにした日付の範囲を指定して出力します。

うまくいっていることを確認できたら描写しましょう。

 

「bolinger[[‘close’, ‘average20’, ‘+2σ’, ‘-2σ’]].plot()」では列を4つ指定して「plot()」(レンダリング)させています。

「plt.title(’20Days Bollingers Band’)」でタイトル指定

「plt.ylabel(‘BTC/USD’)」でy軸のラベル指定

「plt.show()」でここまでのplotの内容で実際に描写します。下のようなグラフが描写されれば完成です。

この記事での目標 ~Pythonを使ってボリンジャーバンドを描写する~ 全体図

 

ビットコイン過去データでボリンジャーバンドを引く方法 まとめ

ビットコイン過去データでボリンジャーバンドを引く方法 まとめ

「描写できたのはいいけれど、どうやって自動売買に活かせばいいのかわからない」

と悩む人も中にはいるかと。次はボリンジャーバンドを使って売買シミュレーションを行なってみたいと思います。

 

仮想通貨の自動売買でバックテストを行う方法( commin soon… )

 

ビットコイン過去データで移動平均線を引いてみる記事は【 Python 】ビットコインのテクニカル分析をプログラミングで行う方法という記事です。

この記事が難しかった人はこちらを実践してみると良いかと思います。

【 Python 】ビットコインのテクニカル分析をプログラミングで行う方法 サムネイル

【 Python 】ビットコインのテクニカル分析をプログラミングで行う方法

2019年8月16日