売買ルール
特殊な変数
例「simple.py」単純な売買ルール。前の日より安くなったら買い、買った値段より高くなったら売る方式 #!/usr/bin/python
# coding: UTF-8
#ライブラリのインポート
from string import *
import os
import sys
import datetime
import time
import locale
import re
import numpy as np
sys.path.append('../lib/')
import data_process as dp
#買いルーチン
def buy(stock,trade,dt):
data_num = 3
r = dp.get_data_by_day_num(stock,dt,data_num) #過去data_num個の株価をとってくる。
trade.price = r.close[-1] #最後の株価=最新の株価
last_price = int(r.close[-2]) #最後から2番目の株価
last_last_price = int(r.close[-3]) #最後から3番目の株価
buy_rate = float(trade.vals[0]) #比率、値は設定ファイルで設定
if(int(last_price) < int(last_last_price * buy_rate)): #ある比率より安くなっていたら買う
price = int(last_price) * buy_rate #買値の設定
if(int(r.open[-1]) < price): #今の値の方が安かったら、その値段に設定
price = int(r.open[-1])
buy_type = 0 #指値で買う
return price,buy_type
return 0,0 #ある比率より安くなかったら買わない
#売りルーチン
def sell(stock,trade,dt):
data_num = 3
sell_type = 0
r = dp.get_data_by_day_num(stock,dt,data_num) #過去data_num個の株価をとってくる。
trade.price = r.close[-1] #最後の株価=最新の株価
sell_rate = float(trade.vals[1]) #比率、値は設定ファイルで設定
now_rate = float(r.open[-1]) / float(trade.buy_price) #損切り用の比率
wish_sell_price = int(trade.buy_price)*sell_rate #希望価格の設定。買った値段のsell_rate倍
if(int(r.open[-1]) > wish_sell_price): #希望価格より高かったら
sell_type = 0 #指値で売る
wish_sell_price = int(r.open[-1]) #希望価格は最新価格
elif(now_rate < float(trade.vals[2])): #ある比率より安くなっていたら損切り
sell_type = 1 #成り売り
wish_sell_price = int(r.open[-1]) #成りなので意味がないが一応
return wish_sell_price,sell_type #値を返す
|