教程入门:建立一个完全自动化的交易系统

  本文是针对初学者讲解如何建立一个基于事件驱动的全自动化交易系统。

  首先对于量化交易的初学者,建议读读 Ernie P. Chan的书籍:Quantitative Trading: How to build your own algorithmic trading business,这本书是基础。

  量化交易系统可以分为半自动化交易和完全自动化交易两种,半自动化系统适合一个星期有几笔交易,推荐使用 Matlab, R语言, 甚至是Excel,具体建议如下:

  • 可以忽略Matlab, 它会带来很多金钱上的成本,并没有许多训练材料如博客或书籍教会你如何使用Matlab编码交易策略。
  • R语言有不少资源可以用来学习如何构建交易策略,推荐阅读:QuantStratTradeR  run by Ilya Kipnis.
  • 如果你没有编程经验,可以使用Microsoft Excel,能够使用Excel进行半自动化交易,但是不能帮助你建立一个完整的交易技术体系。

  下图是半自动化交易框架:

trading

  对于完全自动化交易系统,适合你实时下单,可以使用C#语言,QuantConnect也是使用C#,QuantStart 和Quantopian 使用的是Python,HFT更喜欢使用C++,当然Java也很流行。

自动化交易系统

 

系统架构

  在课程Executive Program in Algorithmic Trading 中,会告诉你一个全自动化交易系统的架构以及其中每个组件的特点,见下图:

全自动化交易系统的架构

  整个架构分三个部分,Application Server和Exchange,核心是复杂的事件处理引擎,市场数据输入到事件处理引擎,由引擎向交易所发出买卖交易。

  下图是来自于 “Algorithmic Trading System Architecture” By: Stuart Gordon Reid:

系统架构

  在系统的界面层使用的是MVC模式和观察者模式,业务层分为数据源层 数据预处理层和智能层以及订单处理层,最后是报表分析层。在数据预处理层,可以使用过滤器等模式进行数据的预先处理,业务核心是CEP事件驱动引擎。

 

开源系统

  下面介绍几个开源的交易系统:

  (1)Quantopian:使用易于学习的Python,能够自由访问很多数据集,有大量社区支持,它是这个领域的市场领导者,它的开源项目是Zipline,这是一个开源的引擎,能够引发在IDE中的backtester,其Github仓库按此。有 Google group讨论组支持。

  (2) QuantConnect:它提供开源的算法交易引擎,链接见此:link 

 

使用Python matplotlib绘制股票走势图