pythonでNT倍率を表示してみる。
MySQLに保存した日経先物とTOPIX先物の日足データを使ってNT倍率をグラフ化してみました。
出力したグラフはこんな感じ。2008年10月のリーマンショック時に9.5をつけてから右肩上がり。
ソースコードはこれ。グラフの縦横比ってどうやって変更するんだろう。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