文章 "利用余额图进行策略优化并将结果与 "余额 + 最大锋锐比率" 标准进行比较"

 

新文章 利用余额图进行策略优化并将结果与 "余额 + 最大锋锐比率" 标准进行比较已发布:

在本文中, 我们研究另一种基于分析余额图来优化自定义交易策略的准则。线性回归使用 ALGLIB 函数库中的函数进行计算。

MACD Sample balance regression.mq5, EURUSD, H4, 未启用前瞻测试

选择以下参数用于优化:

插图19. 测试器, 输入选卡

插图19. 测试器, 输入选卡

我将针对 MACD Sample balance regression EA 进行同样的三次测试:

  • 测试 1: 优化标准 "余额 + 最大锋锐比率" 参数
  • 测试 2: 优化 "自定义最大" 自定义参数, 而已交易量优化参数是 'false'
  • 测试 3: 优化 "自定义最大" 自定义参数, 而已交易量优化参数是 'true'

作者:Vladimir Karputov

 

这篇文章作为使用标准库来 实现目标的例子非常有趣。我在 MT4 上使用平衡均方根分析已经有两年多时间了--这对于使用头寸平均法的智能交易系统(Expert Advisors)来说是一种非常有用的方法。

就个人而言,文章缺乏有关创建自定义报告的信息,即把优化结果写入文件,尤其是在通过代理进行优化时。

 

最近有一篇文章(懒得找了)也使用了"线性回归"。我对此做了详细的评论,我再重复一遍。

两位作者犯了相同的错误:他们混淆了 "线性回归 "和 "线性近似 "这两个性质不同的概念。前者指的是随机变量,后者指的是确定变量。它们的方程因随机变量(即误差)而异。我不知道 Alglib 是如何计算误差的,但在任何普通统计软件包中,误差的计算都会导致对回归系数的评估,因为它们都存在误差,误差可能是计算系数标称值的倍数,这就导致了一个可悲的结果:系数的值是计算出来的,我们看到了它,但实际上它并不存在,我们无法使用我们所看到的。


如果我们将 "线性回归 "改为 "线性近似",这将符合文章的本质,即把天平视为一组确定而非随机的值,那么这篇文章就会相当有趣和有用。

 

由于某些原因,我的文件不包含平衡回归。有什么办法可以解决这个问题吗?我把它保存在我的文件中,在 include 下。


 
Scott David Maclean :

由于某些原因,我的文件不包含平衡回归。有什么办法可以解决这个问题吗?我把它保存在我的文件中,在 include 下。


1.阅读错误描述并检查 路径。

2.如果您有任何错误,请提供可重现的结果:至少您需要完整的代码,至少您需要证明指定文件夹中存在文件。

 

有一个一般性问题:为什么我们在填充交易结果数组时,只考虑对余额有正影响的交易

余额曲线上的凹点(即交易损失的结果)不是也会影响 LR 线,从而影响GetProfitStability 吗?

 

我在尝试编译 BalanceRegression.mph 时遇到了一些错误:


注释掉的两行产生了以下错误--在四处查找后,我发现 alglib 库被更新了。

更新后的行可以编译并运行代码,但我以前从未使用过 CMatrixDouble,所以我不能百分百确定修正是否正确。


operator[] constant variable cannot be passed as reference


 CMatrixDouble xy(arr_size,2);
   for(int i=0;i<arr_size;i++)
     {
      //xy[i].Set(0,i+1);
      //xy[i].Set(1, arr_profits[i]);
      
      xy.Set(i, 0, i+1);
      xy.Set(i, 1, arr_profits[i]);


另外,在同一个文件中,注释掉的那行返回了未定义变量--我想这也是算法库更新造成的:

//double:TrendMSE=linear_report.m_rmserror;

double TrendMSE=linear_report.m_RMSError;