问答交流

【策略构建】策略信号生成与执行时间的判断逻辑

由bqtj0vk2创建,最终由bqtj0vk2 被浏览 9 用户

在该日频策略中,逻辑是after_trading里面生成次日交易信号,handle_data里面进行交易执行,按照开盘价格成交。按照改逻辑2月5号收盘1600出信号,应该是在2月6号按照开盘撮合成交,2月6号收盘会有持仓。但是实际运行情况是2月5号出信号,2月6号打印成交并且after_trading1600出来position.current_qty为0。实际逻辑是否是:2月5号1600运行after_trading出的记录,2月6号1500收盘运行handle_data触发下单,2月7号开盘成交这些单子。是否应该将信号生成逻辑移入到handle_data里?

回测时策略打印的交易执行截图:

回测时策略打印的持仓详情截图

回测系统输出成交记录截图

handle_data代码逻辑

after_trading代码逻辑






\

评论
  • 回测引擎是基于K线数据驱动的,你在t根k线盘后生成交易信号,t+1根k线委托该交易信号,t+2根k线才成交,则持仓是在t+2根k线上。日频和分钟都是这个逻辑
  • 日频交易,after_trading里面生成信号,handle_data里面执行交易,就是在t根K线结束的时候生成交易信号,然后t+1根K线结束的时候执行委托,t+2根K线开盘的时候成交。如果是在handle_data里面生成信号+交易,那么就是在t根K线结束的的时候生成交易信号并执行委托,t+1根K线开盘的时候成交。 是这样理解吗 ?
{link}