vn.py量化社区
By Traders, For Traders.
Member
avatar
加入于:
帖子: 36
声望: 0

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

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

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

Member
avatar
加入于:
帖子: 36
声望: 0

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

Member
avatar
加入于:
帖子: 2102
声望: 139

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

Member
avatar
加入于:
帖子: 36
声望: 0

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

Member
avatar
加入于:
帖子: 2102
声望: 139

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

Member
avatar
加入于:
帖子: 36
声望: 0

xiaohe wrote:

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

Member
avatar
加入于:
帖子: 2102
声望: 139

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

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

沪公网安备 31011502017034号