csvファイルのデータを読み込み計算する (python FXの予測プログラム)
13日目 python FXの予測プログラム
本日の課題と目標
- csvファイルを読み込む
- 抽出したデータを利用する
- FXの予測プログラムを作る
今回はこちらのサイトを参考にさせていただきました
pandasとは?
pandasはPythonでデータを読み込んで扱うためのライブラリ
pd.read_csv()
CSVファイルを、Pandasを利用してインポートする
data.iloc[行: 列]
dataの行、列を番号で指定する
print内で%を使う
format()と同じ
import numpy as np
import pandas as pd
import matplotlib.pylab as plt
import seaborn as sns
%matplotlib inline
# dataフォルダの場所を各自指定してください
data_dir = "./"
# FXデータの読み込み
data = pd.read_csv(data_dir + "USDJPY_1997_2017.csv")
# 2016年のデータを取り出します
data16 = data.iloc[4935:5193,:] # pythonは0番目からindexが始まります
# 2017年のデータを取り出します
data17 = data.iloc[5193:,:]
# 2016年の合計を計算する
# 前々日終値に比べて前日終値が高い場合は、買い、低い場合は売りで入ります
# ただしある程度の差額がない場合は見送ります
sum_2016 = 0
count = 0 # 取引回数
j = 0.5 # 前日との差額
# Profitをデータに追加します
data['Profit'] = 0
for i in range(2,len(data16)): # len()で要素数を取得しています
x = data16.iloc[i-1,4] - data16.iloc[i-2,4]
y = data16.iloc[i,4] - data16.iloc[i-1,4]
if x >= j:
sum_2016 += y
count += 1
data.iloc[[i+1],[5]] = sum_2016
elif x <= -j:
sum_2016 -= y
count += 1
data.iloc[[i+1],[5]] = sum_2016
else:
data.iloc[[i+1],[5]] = sum_2016
print("取引回数:%1.0lf" %count)
print("2016年の利益合計:%1.3lf" %sum_2016) # 2016年の利益合計
# 2016年のデータをプロットしてみます
plt.style.use('seaborn-darkgrid')
plt.plot(data["Profit"])
plt.ylim([-20,20])
前日との差額 ( j ) を変えることによって、見送る回数が増減し利益の精度が高まると予想しました。
文責:Reyl
保存ファイル:
lesson15
lesson15.py