以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 高级功能研发区 (http://weistock.com/bbs/list.asp?boardid=5) ---- 版主我自己模仿写的python策略怎么回测无交易记入 (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=173356) |
-- 作者:股票小白 -- 发布时间:2019/12/2 15:23:15 -- 版主我自己模仿写的python策略怎么回测无交易记入 import time import os import csv import numpy import talib as ta def init(context): context.s1 = "SH600152" context.long_period = 20 context.short_period = 5 # before_trading此函数会在每天基准合约的策略交易开始前被调用,当天只会被调用一次。--(选择实现) def before_trading(context): pass # 你选择的品种的数据更新将会触发此段逻辑,例如日或分钟历史数据切片或者是实时数据切片更新。--(必须实现) def handle_bar(context): close = history_bars(context.s1,context.long_period,\'self\',\'close\',True) if len(close) < context.long_period+1: return ma5 = ta.SMA(close,context.short_period) ma20 = ta.SMA(close,context.long_period) if ma5[-1]>ma20[-1] and ma5[-2]<ma20[-2]: buy_open(context.s1, "market", volume=100) if ma5[-1]<ma20[-1] and ma5[-2]>ma20[-2]: portfolio = get_portfolio(context.s1,0) sell_close(context.s1,"market", volume=portfolio.buy_quantity) #buy_open(context.s1, "Market", volume = 100) # 市价开多 #buy_open(context.s1, "Limit", 25.45, 100) # 限价开多 # after_trading函数会在每天交易结束后被调用,当天只会被调用一次。 --(选择实现) def after_trading(context): pass
|
-- 作者:yukizzc -- 发布时间:2019/12/2 16:16:13 -- 回测周期选的对不对。,历史是否有数据 建议自己勤用print输出下信息
|