数学建模论文 高频交易算法
2012年东华大学数学建模竞赛论文
赛题编号(
高频交易算法设计
参赛队号:
参赛队员:
2012年5月21日
摘要
高频交易算法利用计算机在上千个股票,上万个期权,每时每刻的交易数据中,筛选出合适的交易对象,立即交易,短时间后有利可图即卖出。如反向,也可即时止损。
本文以稳定盈利为目标,以移动平均值函数为基础,运用matlab设计程序算法,并调用相关的函数扫描算法,设计一个高频交易算法,利用扫描程序与变化图像获取最大利润值以及此时的最优交易方式。通过所提供数据中的一部分作为模拟,另一部分作为验证,由此获得最为一般性的最大盈利方式,选择最优的量化投资策略。实现高频交易获得的累加利润。
一. 问题分析
高频交易算法是利用计算机实现短期的量化投资策略,通常用于股票,期货,和一些电子交易,需要设计一个适应性很强的交易算法。由算法的技术指标要求,首先想到moving average的一系列函数,由本例算法要求可知,应选用moving(finance)函数,设计基本的函数模型,再由所提供的数据通过最优化模型扫描得出最优参数,由此实现高频交易算法的设计与实际一般性的运用。
二 .符号变量说明与函数定义
Lead:提前指标
lag:滞后指标
Movavg: 移动平均指标
Frequency:交易频率
Sharpe ratio:是用以衡量每单位风险所能换得的平均报酬率
Final return:最终结算率
三. 模型的建立与求解
1. 基本模型假设:将所提供的数据分为两部分,80%作为建模
数据,20%作为验证数据。利用移动平均指标,先设定lead为5,lag
为20,做最原始的测试,得到如下图形:
由图可知:当lead线高于lag线时,收盘价close处于上升阶段,反之则下降。由此可设定盈利信号s:1则买入,-1则卖出,r为每次的盈亏值(大于0盈利,小于0亏损),求和即为总利润。
由上述策略,当由1变-1时能够带来利润
当lead与lag分别取5,20;1,20时,sharper ratio分别为1.1与1.28,如下图所示:
2. 参数扫描确定:
依次确定提前指标与滞后指标。(1)先设定提前指标为1,将滞后指标设为m,从1——200取值,利用for循环
当lead与lag分别取5,20;1,20时,sharper ratio分别为1.1与1.28,
如下图所示:
2. 参数扫描确定:
依次确定提前指标与滞后指标。(1)先设定提前指标为1,将滞后指
标设为m,从1——200取值,利用for循环
获得最大sharper ratio。如下图:
可知,当lead为1,lag为2是可得最大sharper ratio为3.13,最后结
算final return为6.48(比率与所用数据量有关)。(2).利用穷举法对lead
与lag同时进行扫描,将结果可视化得下图:
横轴为lead,纵轴为lag,高度即为sharper ratio,可直观的得出各种组
合的效果。再用数据分析取最大值方法求取最优组合即为1和2。
3.模型一般性测试:
将所建立的模型去测试另一部分数据,结果如下:
可见,sharper ratio和final return依然保持较高数值,模型具有很好的一般性。
4.模型完善:
(1).对于市场交易的高频率与大数量而言,交易的成本(买进卖出的差值)是一个非常重要的不可忽视的因素。在以上模型基础上再加上对成本cost的定义与计算(利用leadlagfun函数对数据进行更系统的扫描)结果如下:
与先前模型的结果一致,也同样证明了模型良好的一般性。
(2).对于高频交易,由于其高频特性,应以每一分钟的数据进行扫描
统计(同样以80%数据建模,20%数据检测),由此再引入频率这一参数,则在扫
描中应有3个变量(lead,lag,频率f),扫描范围应适当增加,所得结果如下:
建模数据结果
检测结果
则可得交易频率为27min,,sharper ratio依旧保持较高数值。
综上模型的建立,最终策略为:提前指标取1,滞后指标取2,交易频率取27min。
四. 模型的优化与改进
对于模型中所涉及的计算时间问题,由于高频交易在很短的时间(可以微秒
计算)完成,对算法的计算时间应有很苛刻的计算速度要求。因此可引入matlab
中并行计算的方法,即运用后台开启多个matlab同时运行,并列同时计算相同
的程序代码,可成倍的缩短计算时间,但对计算机的硬件要求较高(多核计算机
或计算机集群)。
参考文献
【1】 【美】艾琳·奥尔德里奇 著 王仰琪 等 译 高频交易 机械工业
出版社 2011
【2】 魏奋 运用MATLAB开发高频交易算法 http://www.mathworks.cn
2012/5/18
【3】 王晓东 算法设计与分析 清华大学出版社 2003