Top > trade_rule

売買ルール

  • 売買ルールは「rule」ディレクトリの中に置きます。
  • 最低必要な関数は、sell()とbuy()
  • sell()
    • stock,trade,dtが引数
      • stock : 株のデータが入っている
      • trade : 売買のデータが入っている
      • dt : 日時のデータ
    • 希望価格と売買方法(成り、指値)を返す
  • buy()
    • stock,trade,dtが引数
      • stock : 株のデータが入っている
      • trade : 売買のデータが入っている
      • dt : 日時のデータ
    • 希望価格と売買方法(成り、指値)を返す

特殊な変数

  • trade.price
    • 一番新しい株価が入っている
  • trade.price_history
    • 株価の履歴(配列)
    • trade.price_history[-1] = trade.price
  • trade.vals(配列)
    • 売買ルールのための数値が入っている。
    • 設定ファイル(「プロジェクトファイル」などで設定)

例「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 #値を返す

リロード   差分   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: Tue, 31 Jan 2012 01:32:38 JST (4441d)