pythonで2つの指標を比較してみる
こんにちは。転職活動もそろそろ佳境に入ってきた筆者です。おかげさまで転職活動は割りと順調に進んでいます。聞くところによると現在の求人数はリーマンショック前を上回るようです。そりゃ株価がこれだけ高ければ、やはり企業は調子がいいのでしょう。問題はこの好景気がどこまで続くかだけど、こればっかりは分からないね。俺とか転職エージェントの人とか企業の採用担当者みたいな経済の素人でさえも、「近いうちに不況になる」と思ってるから、そんなものはしばらく来ないのかもしれない。こればかりは分かりません。考えても無駄です。それが来た時にどうするかを考えましょう。
さて、本日は複数の指標を一つのグラフで比較してみました。日経とダウとか、日経と為替とか。日経とVIXとか。そんなときに便利ですが調べるのに時間かかったのでメモ。
まず2軸のグラフを作成するコードは以下のとおり。まず一つ目の軸をsubplotとして作り、その一つ目のグラフを「twinx()」することで2つ目の軸を作成する。
fig, ax1 = plt.subplots() ax1.plot(x1,y1) ax2 = ax1.twinx() ax2.plot(x2,y2)
ということで「yahoo finance」から取得した米金利と日経を同じグラフに載せてみました。1990年からの長期チャートです。コード全文は以下。
import pandas_datareader.data as web import matplotlib.pyplot as plt import datetime # 取得する日の範囲を指定する start = datetime.datetime(1990, 1, 1) end = datetime.datetime(2017, 3, 10) # 指標の名前を設定(タイトルとラベルで使用) a = "TNX" b = "NIKKEI" # Yahoo ファイナンスから、 米金利と日経のデータをとってくる。 f = web.DataReader('^TNX', 'yahoo', start, end) d = web.DataReader('^N225', 'yahoo', start, end) # データの日付 fs = f.index ds = d.index # 一つ目(米金利)のグラフ作成 fig, ax1 = plt.subplots(figsize=(20, 8)) ax1.plot(fs, f['Close'], color='g', label='${0}$'.format(a)) ax1.legend(loc='upper left') # 2つ目(日経)のグラフ作成 ax2 = ax1.twinx() ax2.plot(ds, d['Close'], color='r', label='${0}$'.format(b)) ax2.legend(loc='upper right') plt.title("{0} / {1}".format(a, b)) plt.show()
結果はこちら。
ちなみにグラフを反転させるときは、反転させたいプロットのところで以下の文を挿入するとOK。日経とVIXを比較するときなんかはVIXを反転させたほうが見やすいと思う。
plt.gca().invert_yaxis()
こうやっていろいろ遊んでるけど、なかなかシステムトレードのロジックを作るのは難しいなあと感じている今日この頃です。