AutoTrade是一款自动化交易框架. 注意, 是框架而不仅仅是一个券商交易接口(当然, 里面也包含了一个完整的券商接口,具体是哪个券商的,下面会介绍).
AutoTrade 是一个自动化交易框架, 类似于web设计里的MVC框架, AutoTrad也分为M(odel), T(rade), S(ocket) 三个部分.
Model 是指交易策略, 之所以叫model是因为AutoTrade采用模块化的思维管理策略, 也就是说, 在一个交易框架里允许多个策略同时运行, 每一个策略理论上可以做到互不干扰. Model 是一个交易系统生存的灵魂, 这也是需要用户发挥想象力的地方.
Socket 是指交易的接口. AutoTrade已经实现了广发证券web接口的部分功能, 包括 股票的买入和卖出, 基金的申购和赎回, 分级基金的拆分和合并等等. 随着开发的继续, 功能还会继续完善.
Trade 是指交易管理, 例如交易的处理, 交易状态的维护等等. Trade 是Socket(接口) 与 Model(策略)的桥梁, 对于Model来说, 不需要关心具体的下单细节, 只需要发出相应的买入卖出指令就可以了.
上面三个部分,需要用户开发的只有Model
. 换句话说, 用户只要专注于交易策略, Socket和Trade会把剩下的所有交易细节都帮你做好.
AutoTrade 的运行分为三个大的阶段
- 交易的准备
登录券商系统 初始化log系统 ...... 等
- 策略的准备
载入用户策略 将用户策略中关注的标的物加入关注表 ......等
- 策略的执行
获取关注表中标的物的报价信息 将这些信息返回给策略模块 执行策略模块的下单 已经下达订单的状态更新等维护操作
上面的三个阶段 第1和第2均阶段在交易系统启动时执行一遍, 第三个阶段会反复执行, 知道发生错误或满足和用户定义的退出条件.