自动化交易的过程就是交易程序与交易所系统交互的过程:接收交易所发布的实时行情,并向交易所发出报撤单请求,同时接收订单实时状态。
组织证券交易
《证券交易所管理办法》第七条明确规定了交易所的职能,其中包括“组织和监督证券交易”。
组织证券交易是由交易系统完成。我们使用交易程序报出的买入卖出订单进入交易系统后,遵循价格优先、时间优先的原则排队成交。
把交易系统比作一台运行的计算机,把我们使用的交易程序比作外部设备,例如优盘,交易程序可能随时接入,也可能随时退出,就像优盘的热拔插。
交易程序接入交易系统后,就可以与交易系统进行交互。交互是双向的,既可以向交易系统发出报撤单请求,也可以接收到交易系统的通知。
我们的交易程序使用交易接口(TraderApi)接入交易系统。
实时公布即时行情
《证券交易所管理办法》第三十八条规定“交易所应当实时公布即时行情”。
虽说行情的源头是交易系统中的最新成交情况,但是行情发布系统与交易系统是独立的。在大部分的交易软件上,无需登录交易账户就可以查看实时行情。
相较于交易系统,行情系统的业务比较单一,只负责发布实时行情。
我们的交易程序使用行情接口(MdApi)接入行情系统。
异步与同步
本地端与服务端进行交互时,一个请求从本地发出,需要经过网络传输,服务端处理,服务端回复,网络传输,最后本地才能接收到结果信息。
同步模式下,程序发出请求后,需要等待服务端回复,期间不能继续运行。异步模式下,程序在发出请求后继续运行,通过回调函数获得结果信息。
不管交易接口(TraderApi)还是行情接口(MdApi)都是采用异步模式工作的。
如果这个概念不容易理解,我们可以做一个类比:
同步模式就像打电话,我问你一句,会等待你的回答,等待期间不能做其他事情。
异步模式就像寄信,我把信件从邮局寄出,接着就可以去做其他事情了,你回信之后,邮递员会通知到我,然后我再考虑如何处理收到的信息。
如果寄信采用同步模式会发生什么?我把信件从邮局寄出,然后就必须等待在那里,不能做其他任何事情,直到收到回信。
异步模式涉及到一个概念:回调。其实也很简单,回调就是邮递员的角色,当收到回复时,回调函数会自动执行,附带结果信息,我们只需要在回调函数中定义相关的处理逻辑就可以了。
量化交易基础架构
所以,一个量化交易程序至少由行情模块、策略模块和交易模块构成。
行情模块接收实时行情,输入到策略模块中,经过数据处理、逻辑判断,输出交易信号,然后调用交易模块发出报撤单的请求,交易模块通过异步模式通知订单实时状态。
我们在接收到订单状态的通知时进行判断:如果未成交是否需要撤单重报,如果成交则更新账户持仓数量、策略持仓数量,等。
行情数据源源不断,以上过程循环往复。
智能化与系统化
然而,量化交易是一项系统化的工程。可能涉及多市场、多品种、多账户、多业务。
一个更完善的设计,就需要考虑多行情源、多账户、风险控制及执行算法等模块。
当然,具体设计要视实际需求而定。
标签:异步,行情,交易系统,实时,模块,自动化,设计,交易 From: https://www.cnblogs.com/shclbear/p/17249899.html