文章 "“EA 交易”运行期间平衡曲线斜率的控制" - 页 4

 

solandr:

我进行了以下实验。我将计数器设置为触发每个货币对的减少手数。并在 M1 OHLC 上测试了所有测试组合。结果如下。

35 0 0 - 仅对第一货币对进行测试

0 36 0 - 仅对第二货币对进行测试

0 0 0 168 - 仅对第三对货币对进行测试。

36 35 0 0 - 仅对第一对和第二对进行测试

0 35 162 - 对第二对和第三对进行测试

35 35 166 - 对所有三对进行测试

虽然在所有三对上测试时,应为 35 36 168。

明天我将尝试在所有点数上运行 EA,以进行比较。

如果我理解正确的话,交易数量是不同的?那么交易手数对它有什么影响?

 
Dima_S:

如果我没理解错的话,交易数量是不同的?那么手数对其有何影响?

不,同时对 3 种货币对进行交易 的总数与单独运行的交易总数一致。

结果显示的是手数减少时的订单数量。

我仍在运行智能交易系统。我正试图了解它对总运行结果的影响。 我稍后会给您留言。

Документация по MQL5: Торговые функции / HistoryDealsTotal
Документация по MQL5: Торговые функции / HistoryDealsTotal
  • www.mql5.com
Торговые функции / HistoryDealsTotal - Документация по MQL5
 
solandr:

不,同时对 3 种货币对进行交易的总次数 相当于单独运行时的交易总和。

结果显示的是以减少的手数开立的订单数。

我仍在运行智能交易系统。我正试图弄明白是什么改变了总运行的结果。 我稍后会写一篇文章。

可能是由于一些条件的变化,交易的盈亏从运行到运行略有变化 - 因此,在平衡曲线的某些点,可能会(也可能不会)发生手数切换。

具体情况如下

 
Dima_S:

也许由于条件的变化,交易的盈亏在不同的运行期间会略有变化--因此,在平衡曲线的某些点上可能会(也可能不会)出现手数切换。

类似这样。

原则上,这个想法不错。在 MT4 下,我甚至使用一个专门的 Spread Changer 程序,它允许您任意设置测试价差,而且结果不会浮动。

我还没有发现 MT5 有这样的程序(也许是我没找好)。如果在未来版本的终端中,开发人员能在测试工具中为需要的用户提供这样的功能,那就太好了。

 
solandr:

原则上,这个想法是好的。在 MT4 下,我甚至使用了一个专门的 Spread Changer 程序,它允许您任意设置测试点差,而且结果不会浮动。

我还没有发现 MT5 有这样的程序(也许是我没找好)。如果终端开发人员能在未来的版本中为需要的用户在测试工具中加入这样的功能,那就太好了。

理想情况下,从 csv 文件简单导入 报价进行测试将非常有用。不过,这个理想还无法实现。)
 

我在所有刻度上运行了 EA。结果如下

禁用余额管理后,运行利润:

0 0 0 0 6702,44 第一对

0 0 0 0 5735.78 第二对

0 0 0 0 3461.48 第三对

0 0 0 15901.66 所有三对 - 本应是 15899.7。差值为 1.96。

启用批量管理后,运行利润:

35 0 0 = 6550,94

0 36 0 = 6956,95

0 0 184 = 3386.44

35 36 179 = 15991.56 - 本应为 16894.33。差额为 902.77

可以看出,在禁用自动平衡后,也会出现差异,但通常很小。当启用批量控制时,差值为 5.3%(由于减少的批量的触发次数不同)。如何优化这里的参数?有什么办法?

每次运行所有刻度线大约需要 20-30 分钟。

我准备做这样一个实验。使用一些简单的智能交易系统,在其中添加手数控制系统,看看运行时的差异。

 

顺便说一下,在编译文章中的 mqh 文件时,我收到了这些信息:

possible loss of data due to type conversion BalanceSlopeControl.mqh 117 25
possible loss of data due to type conversion BalanceSlopeControl.mqh 118 21
'current_slope' 的声明隐藏了第 682 行的成员声明 BalanceSlopeControl.mqh 909 9
0 个错误,3 个警告 1 4

我在一开始就纠正了这些错误。前两个 - 我指定了转换类型。我在第 909 行更正了 ccurrent_slope 的名称,并在 double TBalanceSlopeControl::CalcTradeLots( double _min_lots, double _max_lots ) 中作了相应更正,从而更正了第三条信息。

也许这就是埋狗的地方?无论如何,可以将作者本人修改过的文件贴出来,因为我的修改可能在意识形态上是错误的。

Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Основы языка / Типы данных / Приведение типов - Документация по MQL5
 
solandr:

我在所有刻度上运行了 EA。结果如下

...

如您所见,当自动平衡被禁用时,也会出现差异,但通常很小。

对任何符号进行测试时,在所有模式下都要获得相同的结果。

要做到这一点,可以通过所有符号的刻度 或计时器来实现。

天平不应偏离一分一毫。

Обработчик события "новый бар"
Обработчик события "новый бар"
  • 2010.10.04
  • Konstantin Gruzdev
  • www.mql5.com
Язык программирования MQL5 позволяет решать задачи на совершенно новом уровне. Даже те задачи, которые уже вроде имеют решения, благодаря объектно-ориентированному программированию могут подняться на качественно новый уровень. В данной статье специально взят простой пример проверки появления нового бара на графике, который был преобразован в достаточно мощный и универсальный инструмент. Какой? Читайте в статье.
 
solandr:

顺便说一下,在编译文章中的 mqh 文件时,我收到了这些信息:

possible loss of data due to type conversion BalanceSlopeControl.mqh 117 25
possible loss of data due to type conversion BalanceSlopeControl.mqh 118 21
'current_slope' 的声明隐藏了第 682 行的成员声明 BalanceSlopeControl.mqh 909 9
0 个错误,3 个警告 1 4

我在一开始就纠正了这些错误。前两个 - 我指定了转换类型。我在第 909 行更正了 ccurrent_slope 的名称,并在 double TBalanceSlopeControl::CalcTradeLots( double _min_lots, double _max_lots ) 中作了相应更正,从而更正了第三条信息。

也许这就是埋狗的地方?无论如何,可以将作者自己修改过的文件贴出来,因为我的修改可能在意识形态上是错误的。

这里不太可能。我记得一些规则,但具体是什么--我不记得了))这是我目前的文件。

附加的文件:
 
Dima_S:

我不这么认为。我记得有一些规则,但具体是什么,我不记得了。)这是我当前的文件。

感谢您提供新版本的文件!

将文件内容与文章中的文件进行比较后发现,新文件在第 37、115、116、907 和 966 行有一些不同之处。

让我们看看这些改动对智能交易系统的影响有多大