プログラム(Python)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# -*- coding: utf-8 import numpy as np import matplotlib.pyplot as plt # 移動平均線の計算をする(データ, 日数) def move_average(data, day): return np.convolve(data, np.ones(day)/float(day), 'valid') # メイン関数 def main(): # CSVファイルを読み込む(2015年と2016年のデータ) data15 = np.genfromtxt("nikkei2015.csv", delimiter=",", skip_header=1, dtype='float') data16 = np.genfromtxt("nikkei2016.csv", delimiter=",", skip_header=1, dtype='float') # 5列目の終値だけを取り出す f15, f16 = data15[:,4], data16[:,4] # 日付古い順に並び替える f15, f16 = f15[::-1], f16[::-1] # 移動平均線(25日線)を計算する day = 25 # 日数 data = np.r_[f15[len(f15)-day+1:len(f15)], f16] ma_25d = move_average(data, day) # 移動平均線(75日線)を計算する day = 75 # 日数 data = np.r_[f15[len(f15)-day+1:len(f15)], f16] ma_75d = move_average(data, day) # グラフに表示する plt.plot(f16, label="f") plt.plot(ma_25d, "--", color="r", label="MA 25d") plt.plot(ma_75d, "--", color="g", label="MA 75d") plt.xlabel("Day") plt.ylabel("f") plt.legend(loc="4") plt.grid() plt.show() if __name__ == "__main__": main() |