龙听期货论坛's Archiver

龙听 发表于 2017-10-21 10:54

自适应算法在程序化研究中简单应用

[p=30, 2, left]  摘要:本文首先分析了一般程序化开发流程,指出目前市场中大多数模型都是基于指标组合,会不可避免的出现同质化现象,然后笔者提出了引入数学物理中模型改进程序化模型,研究了将自适应算法应用于区间突破模型,并给出了算法性能效果和绩效曲线,研究算法的参数敏感性,整体上模型具有不错的效果,在研究过程中同时可以发现数学之美。[/p]
[p=30, 2, left]  近年来,程序化交易发展愈来愈火爆,传统的程序化研究一直致力于各种指标的组合,如将MACD和布林指标结合起来,在各种[url=http://futures.hexun.com/]期货[/url]合约品种上应用,寻求最佳的共振效果;另外还有投资者利用自己对交易长期的熟悉和了解,建立个人自定义的指标;然而随着市场越来越多地程序化研究越来越深入,程序化交易方法基本是从市场K线价格和成交量持仓量信息出发,通过数学计算,构建程序化交易模型,这也是造成模型同质化的根本原因,因为大家建模的出发点过于一致。目前市场对于程序化研究主要从宏观和微观两个方面深入,宏观方面,投资者可以基于更多的市场信息开发新型的交易模型,主要有以下几种模式:[/p][p=30, 2, left]  第一,基本面数据建模。可以从CPI、PPI、货币发行量等宏观经济指标出发,建立择时交易系统,这种方法为多为机构应用。对于期货市场,每个品种都有供需方面的统计数据,投资者可以结合对这些数据的理解,使用数学方法分析数据,形成多空判断;[/p][p=30, 2, left]  第二,利用数据挖掘技术分析新闻事件,在深入分析可能造成市场异常波动的事件基础上,把握交易时机,获得超额投资回报;[/p][p=30, 2, left]  第三,基于[url=http://xianhuo.hexun.com/]现货[/url]市场的走势,比如,对于建立在沪深300指数上的[url=http://qizhi.hexun.com/]股指期货[/url],可以利用指标股的走势建模,选择对指数影响大的权重股,构建领先指标进行交易。[/p][p=30, 2, left]  微观方面,笔者认为,可以讲传统的指标组合方法进行升华,引入在物理数学中成熟的数学模型,改进传统的程序化交易模型,如运用数值计算中的蚁群算法和模拟退火算法等,本文介绍的是自适应算法。[/p][p=30, 2, left]  自适应(self-adaptive)方法, 是指处理和分析过程中,根据处理数据的数据特征自动调整处理方法、处理顺序、处理参数、边界条件或约束条件,使其与所处理数据的统计分布特征、结构特征相适应,以取得最佳的处理效果。[/p][p=30, 2, left]  自适应的概念来源于工业自动化控制领域,是指在运行环境发生改变情况下,适当地改变原系统的结构或参数以保持系统的良好运行特征。自适应系统由于具有自动学习和自动调整的功能,往往比固定的系统要更灵活。在股票和期货交易中,虽然价格长期波动是有序的,但是局部的波动往往由于市场的投机性显得比较随机无序,因此如果可以自适应地适应大部分行情,跟随市场的波动,那么应该会有不错的效果。[/p][p=30, 2, left]  目前市场上比较流行的一种方法是区间突破系统,然而这种系统面临的问题表现在两个方面:1.在市场波动比较小时,会造成多次无效信号;2.行情波动非常大时,造成大幅盈利回吐,基于这一现状,笔者考虑引入自适应算法,改善传统区间突破系统。[/p][p=30, 2, left]  基于自适应算法的区间突破统主要过程如下:[/p][p=30, 2, left]  1. 首先确定基准价格,以该品种上市第一天开盘价作为基准价S;[/p][p=30, 2, left]  2. 从最近的行情统计波动率,确定真实波动率TR;[/p][p=30, 2, left]  3. 确定突破区间为 ,区间上下幅度设置最小值限制;[/p][p=30, 2, left]  4. 突破上区间做多,突破下区间做空;[/p][p=30, 2, left]  5. 进场后基准价与每根K线开盘价比较,在做多时,S会不断变大,做空时,S会不断变小;[/p][p=30, 2, left]  6. 区间波动幅度也与最近波动率相关,窄幅震荡时,区间波幅会相应放大,宽幅震荡时,区间波幅会相应缩小。[/p][p=30, 2, left]  从算法流程中可以看出,自适应主要应用于两个方面:基准价并非一成不变的,而是跟随开盘价呈现有效变化;区间波动幅度会自适应修正。[/p][p=30, 2, left]  在交易开拓者中实现自适应区间突破系统系统,测试[url=http://futures.hexun.com/steel/]螺纹钢[/url]指数期货30分钟合约,测试时间为:2009.03.27—2015.07.26,手续费设为每手5元,主要效果如图1和图2所示:[/p][p=30, 2, center][img=550,0]http://i5.hexunimg.cn/2015-07-22/177747884.jpg[/img][/p]
[p=30, 2, center][img=550,251]http://i5.hexunimg.cn/2015-07-22/177747885.jpg[/img]
[size=12px][/size][/p][align=center][font=宋体][size=12px][/size][/font][/align]
[p=30, 2, left]  从测试效果来看,将自适应算法应用与改进原来的区间突破系统后,策略效果表现良好,总体绩效曲线呈现稳步向上的走势,从具体交易信号来看,每次进出场信号比较及时,能抓住几乎每一波大趋势,同时也过滤了市场中的噪音信号,总体交易次数比较少,具体策略指标如图3所示。[/p][p=30, 2, center][img=550,281]http://i5.hexunimg.cn/2015-07-22/177747886.jpg[/img]
[size=12px][/size][/p][p=30, 2, left]  从策略指标来看,盈利能力不错,总体盈利额达到八万多,交易次数适中,三百多次,因为采用的周期是30分钟,总体来说交易不算频繁,算法胜率不错,有50%的胜率,相当于每两次交易至少有一次是正确的信号,每手利润有256,因此即使在交易时出现滑点,仍然有不错的盈利效果。[/p][p=30, 2, left]  模型中有两个参数X和Y,分析两个参数对于系统性能影响,如图4和图5所示。[/p][p=30, 2, center][img]http://i7.hexunimg.cn/2015-07-22/177747887.jpg[/img][/p][p=30, 2, center][img]http://i4.hexunimg.cn/2015-07-22/177747888.jpg[/img]
[size=12px][/size][/p][p=30, 2, left]  从图4和图5中可以发现,参数在一定取值范围内均有较好的表现,必然是其吻合了品种价格波动的某些特性,因此笔者可以大胆认为在该取值范围内的参数可以使得模型优异的表现在未来具有可复制性,同时亦可以说明策略性能无过度拟合效果。[/p][p=30, 2, left]  从本文的实例看出,自适应算法可以应用于改进传统的区间突破模型,自适应方法主要是统计最近行情波动,不同行情下获取不同波动值,同时系统区间中值随着行情波动而波动,且只向有利方向波动,这样可以实现尽快止盈和止损效果,让整体利润和风险相应减少。[/p][p=30, 2, left]  程序化交易在中国起步较晚但是发展迅猛,尤其是过去两年,程序化交易在国内期货市场发展的速度,超乎了很多人的意料。而传统的程序化系统使用者越来越多,市场中策略不可避免会出现同质化现象,造成策略失效。在这种情况下,笔者认为通过引入数学物理中经典算法改进原有交易系统,可以在一定程度上达到更好的效果,而在其中过程中,我们也可以体会到数学之美。[/p]

页: [1]