30代で東京→名古屋にUターン転職しました。

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

pythonでNT倍率を表示してみる。

MySQLに保存した日経先物TOPIX先物の日足データを使ってNT倍率をグラフ化してみました。

出力したグラフはこんな感じ。2008年10月のリーマンショック時に9.5をつけてから右肩上がり。
f:id:trade-and-develop:20170223155534p:plain



ソースコードはこれ。グラフの縦横比ってどうやって変更するんだろう。plt.figure(figsize=(x, y)) でも変更されなかったんだよな。。

%matplotlib inline
import pandas as pd
import numpy as np
import mysql.connector
import pandas_datareader.data as pdr
import matplotlib.pyplot as plt
import datetime
import seaborn as sns

day_array  = []
nk_array = []
tp_array = []
nt_array = []

#データベース「nikkei」の「nk225days」テーブルから日時順に並び替えて、「年月日、時刻、終値」のデータを取り出す。
conn = mysql.connector.connect(user='root', password='xxxxxx', host='localhost', database='nikkei')

#日経先物、TOPIX先物の日中終値を取得
cur_nk = conn.cursor(buffered=True)
cur_nk.execute("SELECT date,time,end FROM nk225days WHERE time='09:00:00' order by date asc,time asc ;")
cur_tp = conn.cursor(buffered=True)
cur_tp.execute("SELECT date,time,end FROM tpdays WHERE time='09:00:00' order by date asc,time asc;")

#終値がゼロ(取引がない)ときを除いて、データを配列に格納する。
for row in cur_nk.fetchall():            
    if not row[2]  == 0:
            day_array.append(row[0]) 
            nk_array.append(row[2])
            
#終値がゼロ(取引がない)ときを除いて、データを配列に格納する。(日経先物のデータがある取引日のみ)
for row in cur_tp.fetchall():
    for day in day_array:
        if row[0]  == day:
               if not row[2]  == 0:
                    tp_array.append(row[2])

#NT倍率を格納
for i in range(len(day_array)):
    nt_array.append(nk_array[i]/tp_array[i])

# #NT倍率を表示
# for i in range(len(day_array)):
#     print (day_array[i],nt_array[i])
    
#NT倍率のグラフを表示
plt.plot(day_array,  nt_array,color='red') 
plt.grid(which='major', color='k',linestyle=':')
plt.title("NIKKEI / TOPIX ratio")
plt.tick_params(labelsize=12)
plt.figure(figsize=(3, 1))
plt.show()

cur.close
conn.close