理系院生の日記

理系院生である僕が、日々気付いたことや知ったこと、考えたことを書いていきたいと思います。

PythonでヤフーファイナンスをスクレイピングしてATRを計算するスクリプトを書きました

ATR(アベレージ・トゥルー・レンジ)とはワイルダーが考案したボラティリティー(変動率)を計るテクニカル指標です。トゥルー・レンジを使うことでギャップ(窓)も考慮しています。

ATRが大きいほど株価の変動が激しくなるので、株式の売買判断をするときにリスクを定量化したり自分がとるポジションの大きさを判断する際に役に立ちます。

ATRの計算方法はまずTRを計算します。TRの計算方法は

  • 当日高値と当日安値の差
  • 当日高値と前日終値の差
  • 当日安値と前日終値の差

の3つの中から一番値幅が大きいのものをTRとします。

そしてそのn日間の平均をとったものがATRとなります。nは一般的に14が使われているようです。

以上の計算方法からもわかるように普通に自分で計算しようとすると非常に面倒くさいです。ネットで検索するとエクセルに終値や高値を入力して関数で計算する方法もありますがそれでも面倒くさいですよね。そこで銘柄コードを指定するだけでその銘柄の直近のATRを計算してくれるスクリプトを書きました。

必要なもの

  • Python2.7系
  • BeautifulSoup4

このスクリプトPythonで書かれているので自分のPCにPythonをインストールする必要があります。また、スクレイピングするための便利なライブラリであるBeautifulSoupを使っているのでこれもインストールします。インストール方法はググるなどして調べてください。

 

このスクリプトの使い方は、このスクリプトをダウンロードしてきてコンソールに入り、このファイルがあるフォルダまで移動します。そして、

$python get_atr.py

と入力します。すると銘柄コードを聞かれるので任意の銘柄コードを入力するとATRとATR x 2 の数値を計算してコンソールに出力してくれます。簡単ですね。

コードは GitHub - wdy06/trading_tool にあげておきます。

このスクリプトで快適な投資ライフを送りましょう!

 

注:ヤフーファイナンスのスクレイピングは基本的に禁止されているようです。

Yahoo!ファイナンスヘルプ - Yahoo!ファイナンス掲載情報の自動取得(スクレイピング)は禁止しています

このスクリプトを使ったスクレイピングは自己責任でお願いします。