ともだちはすくないです

30代既婚男子。子供2人。日経先物トレードとかプログラミングとか英語とか

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()

結果はこちら。

f:id:trade-and-develop:20170311144038p:plain






ちなみにグラフを反転させるときは、反転させたいプロットのところで以下の文を挿入するとOK。日経とVIXを比較するときなんかはVIXを反転させたほうが見やすいと思う。

plt.gca().invert_yaxis() 



こうやっていろいろ遊んでるけど、なかなかシステムトレードのロジックを作るのは難しいなあと感じている今日この頃です。