欢迎光临散文网 会员登陆 & 注册

量化交易软件:多元回归分析策略生成程序和策略分析程序二合一

2023-07-28 15:58 作者:bili_45793681098  | 我要投稿

简介

我的一位熟人在参加 Forex 培训课时曾经接到开发一个交易系统的任务。被其困扰大约一个星期之后,他说,这项任务或许比写一篇论文还要困难。就在那时,我建议他使用多元回归分析。结果,他从头开始,一个晚上就开发出一个交易系统,成功获得了审查者的认可。

成功使用多元回归在于能够快速找到指标和价格之间的关系。发现的关系允许基于指标值,在一定的概率下预测价格。现代统计软件允许同时过滤数以千计的参数,试图找出这些关系。这可与工业化砂里淘金相比。

通过将指标数据加载到多元回归分析并相应地应用数据处理,开发一个即用型策略和策略生成程序。

本文说明使用多元回归分析创建交易策略的过程。


1. 开发交易机器人 - 小菜一碟!

前文中提及的通宵开发出来的交易系统的骨干是一个等式:

Reg=22.7+205.2(buf_DeMarker[1]-buf_DeMarker[2])-14619.5*buf_BearsPower[1]+22468.8*buf_BullsPower[1]-139.3*buf_DeMarker[1]-41686*(buf_AC[1]-buf_AC[2])

其中,如果 Reg >0,则我们买入,如果 Reg < 0,则我们卖出。

该等式是使用来自标准指标的数据样本进行多元回归分析的结果。依据该等式开发了一个 EA。负责交易决策的代码仅由 15 行构成。本文附带了含有完整源代码的 EA (R_check)。

  //--- checking the price change range   double price=(mrate[2].close-mrate[1].close)/_Point;   //--- if the range is big, do not take trades and close the current positions   if(price>250 || price<-250)     {      ClosePosition();      return;     }   //--- regression equation   double Reg=22.7+205.2*(buf_DeMarker[1]-buf_DeMarker[2])                 -14619.5*buf_BearsPower[1]+22468.8*buf_BullsPower[1]                 -139.3*buf_DeMarker[1]                 -41686*(buf_AC[1]-buf_AC[2]);   //--- checking for open positions   if(myposition.Select(_Symbol)==true) //--- open positions found     {      if(myposition.PositionType()==POSITION_TYPE_BUY)        {         Buy_opened=true;  // long position (Buy)        }      if(myposition.PositionType()==POSITION_TYPE_SELL)        {         Sell_opened=true; //--- short position (Sell)        }     }   //--- if an open position follows the trend as predicted by the equation, abstain from doing anything.   if(Reg>0  &&  Buy_opened==true) return;   if(Reg<=0 && Sell_opened==true) return;   //--- if an open position is against the trend as predicted, close the position.   if(Reg<=0 && Buy_opened==true) ClosePosition();   if(Reg>0 && Sell_opened==true) ClosePosition();   //--- opening a position in the direction predicted by the equation.   //--- using level 20 to filter the signal.   if(Reg>20) BuyOrder(1);   if(Reg<-20) SellOrder(1);

回归分析使用 EURUSD H1 从 2011 年 7 月 1 日至 2011 年 8 月 31 日的两个月的数据样本。

图 1 显示了 EA 在其开发数据期内的性能结果。非常罕见,没有在培训数据中观察到在测试程序中经常出现的超额利润。这肯定是缺少再优化的标记。



编辑切换为居中


图 1. 训练期内的 EA 性能


图 2 说明了使用测试数据(来自 2011 年 9 月 1 日至 2011 年 11 月 1 日的 EA 性能结果。看来两个月的数据足以让 EA 在另两个月内保持盈利。也就是说,EA 在测试期内的盈利与在训练期内的盈利是相同的。



编辑切换为居中


图 2. 测试期内的 EA 性能


这样,基于多元回归分析,开发出了一个盈利超过训练数据的相当简单的 EA。因此,在建立交易系统时,可以成功应用回归分析。

然而,不应过高估计回归分析的资源。以下将进一步指出其优点和缺点。



2. 多元回归分析

多元回归分析的一般目的在于分析几个独立变量和一个依存变量之间的关系。量化交易的案例中,它分析指标值和价格运动之间的关系。

以最简单的形式,这个等式可如下所表示:

价格变化 = a * RSI + b * MACD + с

只有在若干个独立变量和一个依存变量之间存在相关性时才能生成回归等式。指标值相关是一项原则,如果在分析中添加指标或从分析中去除指标,则按指标进行预测所做出的贡献可能会有很大不同。请注意,回归等式仅仅说明数字依存关系,并不说明因果关系。系数 (a, b) 表示每个独立变量对其与一个依存变量的关系做出的贡献。

回归等式表示变量之间的理想依存关系。然而,在 Forex 中这是不可能的,预测始终与实际不同。预测值与观察值之间的差异称为残差。残差分析尤其用于识别指标和价格之间的非线性依存关系。在我们的案例中,量化交易假定在指标和价格之间仅有非线性依存关系。幸运地是,回归分析不受与线性的微小偏差的影响。

它只能用于分析定量参数。没有过渡值的定量参数不适合此分析。

回归分析能处理任意数量的参数这一事实或许诱使尽可能多的参数被包含在分析中。但是,如果独立参数的数量大于它们与一个依存参数的互动的观察结果的数量,则有极大的可能获得具有良好预测结果的等式,然而这种预测结果以随机波动为基础。

观察结果的数量应比独立参数的数量大 10-20 倍。

在我们的案例中,数据样本中包含的指标数量应比我们的样本中的交易数量大 10-20 倍。生成的等式将被视为可靠。据其开发出第 1 节所述的交易机器人的样本包含 33 个参数和 836 个观察结果。因此,观察结果的数量比参数的数量大 25 倍。此要求是统计学中的一个基本原则。它还适用于量化交易策略测试程序优化程序。

此外,优化程序中指标的每一个指定值事实上都是一个单独的参数。换言之,在测试 10 个指标值时,量化交易处理为了避免再优化而要考虑的 10 个独立参数。优化程序的报告或许应包含另一个参数:交易的平均数量/所有优化参数的值的数量。如果指标值小于 10,则需要再优化。

要考虑的另外一样东西是异常值。罕见且反应强烈的事件(比如本例中的价格尖峰)可能向等式添加虚假的依存关系。比如说,继意外消息后,市场会以持续数小时的大幅波动为响应。这种情况下的技术指标值对于预测而言几乎没有作用,但在回归分析中它们仍然被认为非常重要,就是因为存在一个显著的价格变动。因此,过滤样本数据或检查是否有可能的异常值是明智的。


3. 创建您自己的策略

量化交易已经接近关键部分,在这个部分,我们将查看如何依据您自己的数据生成一个回归等式。回归分析的实施类似于以前介绍的判别分析的实施。回归分析包括:

  1. 准备用于分析的数据;

  2. 从准备数据中选择最佳变量;

  3. 获得回归等式。

多元回归分析是大量用于统计数据分析的高级软件产品的一部分。最流行的软件是 Statistica(StatSoft 公司出品)和 SPSS(IBM 公司出品)。量化交易将使用 Statistica 8.0 进一步研究回归分析的应用。



3.1. 准备用于分析的数据

量化交易即将生成一个回归等式,可以依据当前柱上的指标值预测下一柱上的价格行为。

使用用于准备判别分析数据的同一 EA 来收集数据。量化交易将通过添加一个用于存储具有其它周期的指标值的函数来扩展其功能。将依据相同指标,但具有不同周期的分析,使用扩展的参数组合来进行策略优化。

要将数据载入到 Statistica,应该具备含有以下结构的 CSV 文件。变量应按列排列,每列对应一个特定的指标。行中应包含连续测量值(情况),即特定柱指标的值。换而言之,水平表头包含指标,垂直表头则包含连续柱。


量化交易软件:多元回归分析策略生成程序和策略分析程序二合一的评论 (共 条)

分享到微博请遵守国家法律