首页 / 问答 / ctpbee的架构模型是咋样的

ctpbee的架构模型是咋样的

发布于 2019-8-30 19:44:50 作者 somewheve 来自 问答

emmmmmm 如题, 这个帖子是来帮助初学者快速入门ctpbee的架构的, 文字阐述较多。请耐心阅读哦


ctpbee是啥

首先区别于quantaxis和vnpy, 在我个人看来quantaxis更适合于企业用户,vnpy更适合于改造为自己想要的量化产品。而ctpbee定位为开发框架。请注意这个概念。开发框架意味着他应该是一个完整的量化开发框架,不具备产品能力(当然我们官方会放出一些比较小demo或者GUI界面, 请参考这里),但是你可以基于此框架来打造属于你的量化产品, 无论是从GUI还是说命令行程序。所以基于ctpbee的这种模式和考虑到你可能会遇到的问题, 你需要明白自己的能力点来确保你满足以下条件或者选择关闭这个页面右转

  1. Python开发能力
  2. 耐心
  3. 提问的智慧, 参见社区准则。
我会在论坛的python教程分享区进行 一些基础和进阶教程。没有开发能力的小伙伴的可以学习学习

如果你明白了上述的概念 那来开始我们这个帖子的主题-----架构模型


架构模型

emmmm 先来张图吧 .....




可以从上面可以清晰的看到App是ctpbee核心的对象,他由CtpBee类实例化而成,为了方便阐述,后面用App代替。

当然上述图可能存在一定的误区,比如数据从期货公司服务器传过来是一个怎么样的处理流程: 接口拿到数据通过事件引擎直接传回到数据模块。


工作流程

现在让我们来尝试解释这个图的工作流程,start标志着你从已经完成了App的配置模块导入已经完成,告知App开始开启处理线程,进行接口的登录等操作。数据从服务器传回到接口模块,接口模块通过调用事件引擎将数据传送到数据模块进行存储,然后调用信号模块收到数据,生成信号 调用操作模块来进行下单,同时基于你的代码,可能会调用风控层的代码。 操作模块收到下单信号后,调用接口模块来将单子发送到交易所。


模块解释

所以让我来告知你这些模块的作用

  1. 数据模块Recorder负责处理相应的事件并将数据传输至信号模块。
  2. 配置模块为App的全局配置模块,这个对于每个App的都是独一无二的
  3. 信号模块,在这个地方来处理你的策略,并发出信号,调用操作模块来进行下单
  4. 风控模块,根据你自己自定义添加的风控函数,通过before_** 和after_**函数来进行事前和事后风控
  5. 操作模块,这个地方你应该来封装buy_open, 等诸如此类的操作
  6. 接口模块,负责与期货公司或者证券交易所等连接


通过上述的阐述, 你有没有对ctpbee更加了解了一些呢 ~,尝试点击右上的文档以了解更多!


留言

当前暂无人留言!