蒙特卡洛算法在程序化交易中简单应用
[p=30, 2, left] 近年来,程序化交易发展愈来愈火爆,传统的程序化研究一直致力于各种成熟指标的组合,如将MACD和均线指标结合起来,在各种[url=http://futures.hexun.com/]期货[/url]合约品种上应用,寻求最佳的历史回测效果;另外还有投资者利用自己对盘面的独特了解,建立个人自定义的指标;然而随着市场越来越多地程序化研究越来越深入,程序化交易方法基本是从市场价格和成交持仓信息出发,通过数学计算,构建交易模型,这也是造成模型同质化的根本原因,因为大家建模的出发点过于一致。目前市场对于程序化研究主要从宏观和微观两个方面深入。宏观方面,投资者可以基于更多的市场信息开发新型的交易模型,主要有以下几种模式:[/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] 蒙特卡洛(MonteCarlo)方法,也称统计模拟方法,或称计算机随机模拟方法,最早是由[url=http://news.hexun.com/france/index.html]法国[/url]布丰等数学家提出用来分析一些科学现象的仿真方法,它是一种以概率统计理论为指导的一类非常重要的数值计算方法,是指使用随机数(或更常见的伪随机数)来解决很多计算问题的一种方法。蒙特卡洛方法的基本思想是:为了求解数学、物理或工程技术等方面的问题,首先建立一个概率模型或随机过程,使其某个参数等于问题的解,然后通过对模型或过程的观察或抽样试验来计算所求参数的统计特征,最后给出所求解的近似值。[/p][p=30, 2, left] 金融市场充满了确定性和不确定性,因此形成的数字化变量也是具有确定性和随机性两种特征,而蒙特卡洛算法本身就属于一类随机算法,利用尽可能多的模型采样,寻求近似近似最优解,在金融市场中可以理解为尽可能的寻找市场的确定性方向。[/p][p=30, 2, left] 目前市场上比较流行的一种方法是双均线突破系统,然而这种系统面临的问题表现在两个方面:1.在市场噪音较大时,无法有效地给出买卖信号;2.双均线的参数无法有效确定,基于这一现状,笔者考虑引入蒙特卡洛算法,改善传统双均线突破系统。[/p][p=30, 2, left] 基于蒙特卡洛算法的双均线系统主要过程如下:[/p][p=30, 2, left] 1.首先确定系统两个参数样本空间Q和P,初始化多头指标B=0,空头指标S=0;[/p][p=30, 2, left] 2.从样本Q和P中从随机抽取参数m和n,其中m>n;[/p][p=30, 2, left] 3.m周期均线值MA1,m周期均线值MA2,当MA1>MA2,S=S+1;当MA1<ma2,b=b+1;</ma2,b=b+1;[/p][p=30, 2, left] 4.重复执行K次,统计多空指标S值和B值;[/p][p=30, 2, left] 5.确认买卖信号,S>L时,系统发出卖信号,B>L时,系统发出买信号(其中L为系统参数,[/p]页:
[1]