Pythonコード集

【Pythonコード集】『TA-Lib』を使ってボリンジャーバンドを描画してみよう!前編

【お知らせ】

2021年11月13日に今回の記事でご紹介したPythonコードの解説編をアップしました。

解説編
【Pythonコード集】『TA-Lib』を使ってボリンジャーバンドを描画してみよう!後編

続きを見る


【この記事は3分で読めます】

前々回と前回では、チャートライブラリ『Plotly』でボリンジャーバンドを描画しました。

未読の方は、以下のリンクからご覧ください。

前編
【Pythonコード集】ローソク足チャートにボリンジャーバンドを描画してみよう!前編

続きを見る

後編
【Pythonコード集】ローソク足チャートにボリンジャーバンドを描画してみよう!後編

続きを見る

 

プログラミングでは、違う道(コード)で同じゴールにたどり着くことができます。

プログラミングの”肝”とは、つまることろエラーの克服です。

なので、違う道(コード)を知っているだけでエラーが簡単に克服できます。

そこで今回は、別のライブラリ(道)でボリンジャーバンドを描画するコードをご紹介します。

どうしてもPlotlyでチャートが描画できない...という方は、今回の記事で紹介したコードで試してみてください。

 

次回の記事では、今回ご紹介したPythonコードの解説をします。


今回のサマリー

・Pythonでボリンジャーバンドを描画する方法

・『TA-Lib』で簡単にテクニカル指標を描画する方法

・Pythonを効率的に学ぶ方法についてのご紹介


・おすすめのテクニカル分析本

おすすめ度 

 

チャートやテクニカル分析を基本から学びたい方は、この一冊で十分でしょう。

ジェイをはじめ、周りの同僚も必ず一回は目に通しているテクニカル分析のバイブルです!


 

この記事の対象となる人

こんな人におすすめ

  • Pythonで株価の分析がしたい人
  • Pythonでテクニカルチャートを作りたい人
  • Pythonを学びたいと思っている人

 

この記事でわかること

わかること

  • Pythonでボリンジャーバンドを描画する方法
  • Pythonの効率的な学習方法

Pythonコードの紹介

まずは、いつも通りPythonコードを一気にご紹介します。

今回は、連日で史上最高値を更新しているS&P500を取り上げます。

また、ボリンジャーバンドの設定はー

今回の設定

  • データの期間:年初来
  • 中心線:21日移動平均線
  • 標準偏差:σ2

としました。

では、Pythonコードをみてみましょう!

 

Pythonコード

#ライブラリのインポート
import pandas as pd

import matplotlib.pyplot as plt
%matplotlib inline

import seaborn as sns
sns.set()

import yfinance

import talib as ta


#株価データの取得
df = yfinance.download('^gspc',
                       start='2021-01-01',
                       end='2021-12-31',
                       interval='1d',
                       auto_adjust=True)


#中心線(MA)の設定
span = 21


#ボリンジャーバンドの設定
df['Upper'],df['Middle'],df['Lower'] = ta.BBANDS(
                                                df['Close'],
                                                 timeperiod=span,
                                                 nbdevup=2,
                                                 nbdevdn=2,
                                                 matype=0)


#チャートの描画
plt.rcParams['figure.figsize']=15,10

plt.plot(df.index, df['Close'], label='S&P500', color='black')

plt.fill_between(df.index, 
                 y1=df['Upper'], 
                 y2=df['Lower'], 
                 color='grey', 
                 alpha=0.3)

plt.plot(df.index, df['Middle'], color='red');

 

今回のポイントー

今回のポイント

import talib as ta

というコードにあります。

詳しくは、次回の記事にて!

 

コードを実行

さて、上のコードを実行すると、以下のチャートが描画されます。

S&P500の日足チャート / ボリンジャーバンド

 

一段ずつスキルアップするために

 

これで終わっては、あまりにも味気ない記事になってしまいます。

”一段ずつ”プログラミングのスキルを高めるためにも、色々なコードを書くことが重要です。

そこで今回は、もうひとつのボリンジャーバンドを描画してみたいと思います。

上では、標準偏差をσ2(95%の確率である一定の範囲内でデータのバラつきがおさまる確率)としました。

そこで次は、標準偏差をσ3(99%の確率である一定の範囲内でデータのバラつきがおさまる確率)に変更して、σ2の水準とどのような違いがあるのか?をチャートで確認してみたいと思います!

 

まずは、ボリンジャーバンドσ3を設定するコードを書きます。

σr 3のコード

df['Upper2'],df['Middle'],df['Lower2'] = ta.BBANDS(
    df['Close'],
    timeperiod=span,
    nbdevup=3,
    nbdevdn=3,
    matype=0)

 

 

次に上で書いたコードをベースに、ボリンジャーバンドを描画するコードを書き足します。

コード13行目の『#σ3のボリンジャーバンド』が、それにあたります。

チャートを描画するコード

plt.rcParams['figure.figsize']=15,10

plt.plot(df.index, df['Close'], label='S&P500', color='black')

#σ2のボリンジャーバンド
plt.fill_between(df.index, 
                 y1=df['Upper'], 
                 y2=df['Lower'], 
                 color='grey', 
                 alpha=0.3)

#σ3のボリンジャーバンド
plt.fill_between(df.index, 
                 y1=df['Upper2'], 
                 y2=df['Lower2'], 
                 color='black',
                 alpha=0.05)

plt.plot(df.index, df['Middle'], color='red')
plt.title('S&P500 Chart', fontsize = 30)
plt.xlabel('Date', fontsize = 20)
plt.ylabel('Stock Price', fontsize = 20);

 

コードを実行

上のコードを実行すると、以下のチャートが描画されます。

S&P500の日足チャート / ボリンジャーバンド

グラデーションのように、2つのボリンジャーバンドを描画することができました。

また、今回はタイトルとX&Y軸のラベルも追記してみました。

最初のチャートと比べると、よりプロ感の漂うチャートが描画できました!

 

次回は、今回ご紹介したPythonコードの詳しい解説をいたします。

乞うご期待!

 

効率よくPythonを学ぶ方法

Pythonなら株価の分析が効率的にできるな!

私もPythonを学んでみたい!

 

今回の記事を読んでそう思われた方は、以下のリンク先をご覧ください。

本気でPythonを学びたいなら

Pythonを学ぼう

 

なぜPythonを学ぶ必要があるのか?その理由がわかります。

そして、『これがPythonを効率的に学ぶ方法だ!』と自信をもっておすすめする学習方法について解説しています。

この記事と出会ったのも何かの縁です。
ぜひチャレンジしてみてください!


注記事項

ジェイの米国株投資ブログ(以下当サイト)に掲載されている記事は、投資の助言を目的としたものではありません。当サイトに掲載されたコンテンツの正確性については、可能な限り注意を払っています。しかし、意図せず誤情報が紛れ込む可能性や情報そのものが古くなっている可能性があり、その正確性を完全に保証するものではありません。
当サイトのコンテンツを参考に投資を行い、その後発生したいかなる結果についても、当サイト並びにブログ運営者は一切責任を負いません。すべての投資行動は『自己責任の原則』のもとで行ってください

 

-Pythonコード集