前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >spreadTrading模块事件触发机制

spreadTrading模块事件触发机制

作者头像
用Python的交易员
发布2018-07-26 11:59:45
2.5K0
发布2018-07-26 11:59:45
举报
文章被收录于专栏:维恩的派VNPIE

本文主要介绍了价差交易模块的事件触发机制。感谢‘次第花开’和‘用户名呀’在维恩的派论坛里的分享!

spreadTrading状态机

上图为价差交易的事件触发流。

  • stDataEngine: 包括了对各个leg的price,volume的计算;
  • ctaEngine在processTickEvent方法中直接调用cta策略中的对应function;
  • stEngine中首先在stDataEngine中用processTickEvent,processTradeEvent,processPosEvent三个方法处理eventEnging推送的3个EVENT事件,然后再通过4个EVENT_SPREADTRAND事件通知stAlgoEngine的对应process方法,最后再由stAlgoEngine调用st策略中对应的function(3个update方法);
  • stAlgoEngine中的processTimerEvent处理从eventEngine中收到的EVENT_TIMER事件,周期为1秒,以此来作为自动撤单的计时器。

注意

  • spread的仓位(longPos,shortPos,netPos) 是指价差做多、做空的,而不是单合约的持仓情况。maxOrderSize, maxPosSize也是同样指spread的。
  • trade Mode: MODE_LONGONLY: 只能做多价差,需要buyPrice < sellPrice; MODE_SHORTONLY: 只能做空价差,需要shortPrice > coverPrice; MODE_LONGSHORT: 允许做多或做空价差,则需要同向做多,做空的价位进行区分。例如如果先做多了价差,那么当价格上升到一定价位,应该是要先sell,然后再上升的话就short。
  • spread中的四个legAdjusted** 这四个legAdjusted**是根据leg.ratio进行的一个折算,完成了从leg合约到spread的映射。里面有个min( )操作,是为了确保让一个spread中多条leg都能成交。

其他问题

如何在spreadtrading模块中调用实时的五档行情数据?

请参考帖子:

http://www.vnpie.com/forum.php?mod=viewthread&tid=2268&highlight=spreadtrading

基于python的开源交易平台开发框架。截止目前,vn.py项目在Github上的Star已经达到5787,量化交易类开源项目第1,量化类项目第3(1、2依旧分别是Zipline和TuShare)。

项目官网:http://www.vnpy.org

论坛地址:www.vnpie.com

知乎专栏:https://zhuanlan.zhihu.com/vn-py

Developed by Traders,

for Traders

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-06-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 维恩的派VNPIE 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档