以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp) -- 高级功能研发区 (http://www.weistock.com/bbs/list.asp?boardid=5) ---- 在写Python 策略时候回测结果没有出来,可能是什么情况 (http://www.weistock.com/bbs/dispbbs.asp?boardid=5&id=169062) |
-- 作者:qq代人发帖 -- 发布时间:2019/3/29 9:51:21 -- 在写Python 策略时候回测结果没有出来,可能是什么情况 在写Python 策略时候回测结果没有出来,可能是什么情况 |
-- 作者:FireScript -- 发布时间:2019/3/29 9:58:27 -- 测试用的品种数据有补充过吗? |
-- 作者:lymql -- 发布时间:2019/3/29 10:13:15 -- FireScript你好,可以给下联系方式吗,问题比较多 |
-- 作者:yukizzc -- 发布时间:2019/3/29 13:18:58 -- 就在这边咨询就可以了,如果是python的基础问题这个需要您自己学习了 |
-- 作者:lymql -- 发布时间:2019/3/29 14:56:08 -- 首先我代码是这样的: # 可以自己import我们平台支持的第三方python模块,比如pandas、numpy等。 from PythonApi import * import talib as tb import datetime from dateutil.relativedelta import relativedelta # 参数定义区,这里定义的参数可以直接在context对象中获取。--(选择实现) #def parameter(): # input_par("myvalues1",5,1,20,1) # input_par("myvalues2",10,1,20,1) # 在这个方法中编写任何的初始化逻辑。context对象将会在你的算法策略的任何方法之间做传递。--(必须实现) def init(context): # 在context中保存全局变量 context.s1 = "SQAG00" # 平安银行股票 # 定义开盘时间(9:00) context.start_time = \'900\' # 定义开盘30分钟后的时间(9:30) context.out_time = \'930\' # 30条数据最高价和最低价 context.stage_high = 0 context.stage_low = 0 # print("策略启动") #调试打印输出 print(\'策略启动\') # before_trading此函数会在每天基准合约的策略交易开始前被调用,当天只会被调用一次。--(选择实现) def before_trading(context): # TOOD:获取30天内历史开盘数据 # 获取前期最高价和最低价SQAG00 bar_len = 30 hb_high = history_bars(context.s1, bar_len, \'1d\',\'high\') # 获取30条数据最高价 data_list = list(hb_high) context.stage_high = max(data_list) context.stage_low = min(data_list) # 你选择的品种的数据更新将会触发此段逻辑,例如日或分钟历史数据切片或者是实时数据切片更新。--(必须实现) def handle_bar(context): # 开始编写你的主要的算法逻辑。 #使用buy_open、sell_close等方法下单 #下单示例: #buy_open(context.s1, "Market", volume = 100) # 市价开多 #buy_open(context.s1, "Limit", 25.45, 100) # 限价开多 # 获取当前价格 nowPrice = get_dynainf(context.s1,7) print(nowPrice) # 如果大于前期最高价 if nowPrice > context.stage_high: # 买入 buy_open(context.s1, "Market",0 ,1000) elif nowPrice < context.stage_low: # 卖出 sell_close(context.s1, "Market",nowPrice ,1000) # after_trading函数会在每天交易结束后被调用,当天只会被调用一次。 --(选择实现) def after_trading(context): print(\'交易已经结束\') # order_status当委托下单,成交,撤单等与下单有关的动作时,该方法就会被调用。---(选择实现) #def order_status(context,order): # pass # order_action当查询交易接口信息时返回的通知---(选择实现) #def order_action(context,type, account, datas) # pass # exit函数会在测评结束或者停止策略运行时会被调用。---(选择实现) #def exit(context): # pass 运行的时候我是这样运行的: 测试时段:3-20-->3-29 1分钟 基准合约:SQG00 品种:白银连续 补充过数据 有调试结果,没有回测数据
|
-- 作者:yukizzc -- 发布时间:2019/4/1 9:22:55 -- 自己输出下你的条件,最高价等都是多少 python的策略需要客户有一定的调试能力,恕这边没绑法帮您一一输出调试
[此贴子已经被作者于2019/4/1 9:28:06编辑过]
|