Start_python’s diary

ふたり暮らし

アラフィフ夫婦のフリーランスプラン

csvファイルのデータを読み込み計算する (python FXの予測プログラム)

13日目 python FXの予測プログラム

本日の課題と目標

  1. csvファイルを読み込む
  2. 抽出したデータを利用する
  3. 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 ) を変えることによって、見送る回数が増減し利益の精度が高まると予想しました。

f:id:Start_python:20191207212226p:plain



 

 

文責:Reyl

 

 

保存ファイル:

lesson15

lesson15.py