1,vnpy的订单类型
期货交易对应四种报单方式,对应到vnpy中就是buy(买开),sell(卖平),short(卖开),cover(买平)。而每种报单方式其实都可以对应不同的ordertype订单类型(限价,市价,停止单,FAK,FOK),但是vnpy的无ui例子中只能通过控制stop可选参数来下限价单或者本地stop单或服务器stop单。
2,目前我的策略中的需求是要持仓而不是价优,所以优先选择下市价单。搜索了一下论坛发现有些朋友也有相同的需求,版主也给答复了,但有些地方不是特别能理解:
第一个帖子“如何在策略里用程序委托一个市价单??(https://www.vnpy.com/forum/topic/1435-ru-he-zai-ce-lue-li-yong-cheng-xu-wei-tuo-yi-ge-shi-jie-dan)”里版主回复“CTA策略引擎并不支持市价单,硬要用的话可以自己强行修改send_limit_order函数,把其中的OrderType改为MARKET就行”。
疑问a,为什么不让cta策略引擎支持市价单呢?把ordertype改成market之后是否就可以下市价单了,那为啥还说“CTA策略引擎并不支持市价单”?是把ordertype改成market之后下的市价单会有问题吗?
第二个帖子“市价单如何处理?(https://www.vnpy.com/forum/topic/3098-shi-jie-dan-ru-he-chu-li)”里,“有两种方法可以实现市价单,第一种是将stop=True用本地停止单模拟就可以实现市价单的目的;第二种是下限价单时采取超价下单的方式就可以实现市价单的目的“ 。
疑问b,stop=true时,如果合约支持发送服务器停止单,则会调用send_server_stop_order方法,请问send_server_stop_order方法是否也能像send_local_stop_order方法一样,达到下市价单的目的?
疑问c,限价单超价下单和用stop=true时send_server_stop_order下市价单,哪种效果好一些?