分享

程序化交易中的蒙特卡洛算法应用

 havruta 2016-07-22

    蒙特·卡罗方法(Monte Carlo method),二十世纪四十年代中期,随着电子计算机的发明和科学技术的发展,而由法国布丰等数学家提出用来分析一些科学现象的仿真方法,一种以概率统计理论为指导的一类非常重要的数值计算方法,又称统计模拟法、随机抽样技术,是一种随机模拟方法,以概率和统计理论方法为基础的一种计算方法,是使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。


    程序化交易近年来发展日趋火爆,一直致力于各种成熟指标组合的传统程序化研究,如将均线指标与MACD结合起来,在各种期货合约品种上应用,寻求最佳的历史回测效果;还有利用自己对盘面独特了解的投资者,建立个人自定义的指标;造成模型同质化的根本原因是什么?目前来讲,随着程序化研究的深入,大家都是通过数学计算,从市场价格和成交持仓信息出发构建交易模型,出发点太过一致。对于程序化研究,市场目前主要从微观和宏观两个方面深入。


    笔者认为在微观方面,可以引入在物理数学中成熟的数学模型,升华传统的指标组合方法,将传统的程序化交易模型进行改进,如运用数值计算中的模拟退火算法和蚁群算法等,本文将介绍数值计算中的蒙特卡洛算法。


    充满了确定性和不确定性的金融市场,形成的数字化变量也具有确定性和随机性两种特征,蒙特卡洛算法利用尽可能多的模型采样,寻求近似最优解,可以理解为,在金融市场中尽可能的寻找市场的确定性方向,本身属于一类随机算法。


    双均线突破系统是市场上目前比较流行的一种方法,而双均线的参数无法有效确定与在市场噪音较大时,无法有效地给出买卖信号,是这种系统面临的两个问题,笔者基于这一现状,为改善传统双均线突破系统,尝试引入蒙特卡洛算法。


基于蒙特卡洛算法的双均线系统主要过程如下:


1.首先确定系统两个参数样本空间Q和P,初始化多头指标B=0,空头指标S=0;


2.从样本Q和P中从随机抽取参数m和n,其中m>n;


3.m周期均线值MA1,m周期均线值MA2,当MA1>MA2,S=S+1;当MA1


4.重复执行K次,统计多空指标S值和B值;


5.确认买卖信号,S>L时,系统发出卖信号,B>L时,系统发出买信号(其中L为系统参数,L(其中L为系统参数,L<>< p=''><>


在交易开拓者中实现基于蒙特卡洛算法改进双均线系统,测试螺纹钢指数期货30分钟合约,测试时间为:2009.03.27—2015.04.01,手续费设为每手5元,主要效果如图1和图2所示:

具体策略指标如图3所示


从策略指标来看,总体交易次数只有32次,可以认为这个系统是抓取大趋势的指标,同时整体收益不错,达到了66060,优于一般的日线指标。为了更好的说明改进效果,将基于蒙特卡洛双均线系统和传统双均线系统各项指标对比,其中传统爽均线系统选取均线参数为(10,20),如下表1所示:


    从表1中各项指标的对比可以看出,经过引入蒙特卡洛算法,提高了双均线系统的盈利能力,收益能力提高了近50%;减少了交易次数,从178次减少到32次;回撤效果也有一定的改善,显著提高了原程序化交易系统性能。

   

    下面我们来说说宏观方面,投资者可以基于更多的市场信息开发新型的交易模型,主要有以下三种模式:

 

    1.基于现货市场的走势,比如,对于建立在沪深300指数上的股指期货,可以利用指标股的走势建模,选择对指数影响大的权重股,构建领先指标进行交易;


    2.基本面数据建模。可以从CPI、PPI、货币发行量等宏观经济指标出发,建立择时交易系统,这种方法为多为机构应用。对于期货市场,每个品种都有供需方面的统计数据,投资者可以结合对这些数据的理解,使用数学方法分析数据,形成多空判断;


    3.利用数据挖掘技术分析新闻事件,在深入分析可能造成市场异常波动的事件基础上,把握交易时机,获得超额投资回报。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多