VeighNa量化社区
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 63
声望: 1

如题,比如海龟策略,也是K线走完后发出买入指令,但是如果K线走完刚好也收盘了,这时发出去的单子应该会被退回来吧。还是可以直接等到下次开盘再发?如何实现在K线没走完的最后1分钟去操作呢?估计整个K线合成都得改了吧?

Administrator
avatar
加入于:
帖子: 4500
声望: 320
  1. 对的
  2. 日线级别海龟策略,是每天收盘后通过策略生成信号,第二天盘中通过条件算法来执行,而不是像常规CTA策略的信号和执行合并在一起的方式
Member
avatar
加入于:
帖子: 63
声望: 1

比如1小时K线,我按照am.close[-1]来判断信号是否生成,下午15:00结束后的那根K线推到on_hour_bar,信号是生成了的,但是已经休市了,发出去的单子应该会被退回。夜盘21:00开盘,系统检测到没有委托单,但是am.close[-1]的条件仍然满足,但是这会儿因为新的1小时K线还没生成,所以不会去调用on_hour_bar,所以没办法发出委托,对么?

Member
avatar
加入于:
帖子: 63
声望: 1

是否可以在开盘时先分析,是否有状态为“REJECTED”的order,然后再次执行?

Member
avatar
加入于:
帖子: 4618
声望: 284

可以自己模拟试试看。
若在非交易时间发单,服务器收到这个委托会推送一个拒单的委托回报。
但是请注意,在策略层,如on_bar()函数里面第一个逻辑如果是self.cancel_all(),就会清空未成交的委托(包括本地停止单,限价单),保证当前时间点委托状态是唯一的。

Member
avatar
加入于:
帖子: 63
声望: 1

恩,初步想法是在on_bar或者on_tick函数里面,在开盘时加上一个判断,是否有状态为“REJECTED”的,时间是收盘后发出的委托单,如果有,就再次发出。可以直接修改orderdata的status为SUBMITTING么?状态改了可以直接推到交易所么。还是必须重新用buy,sell,short,cover去下单?

Member
avatar
加入于:
帖子: 4618
声望: 284

不是这么用的,要交易请求类函数(buy/sell/short/cover/cancel_order)下单,接口send_order函数发单,交易所才会收到的

Member
avatar
加入于:
帖子: 63
声望: 1

xiaohe wrote:

不是这么用的,要交易请求类函数(buy/sell/short/cover/cancel_order)下单,接口send_order函数发单,交易所才会收到的
现在的问题是,在.vntrader目录下的json文件里面,没有找到哪个是记录order信息的,如果收盘后先关闭了vntrader,开盘前再打开,之前的被REJECTED的order还能查到么?

Member
avatar
加入于:
帖子: 4618
声望: 284

委托信息不会进行缓存,会在登录的时候去接口查询,但是只能查到下出去的单,如果订单状态是提交中这一类还在本地状态中的订单的话,是查不到的

© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】