MetaTrader 5策略测试器:缺陷,缺陷,改进建议 - 页 44

 
traveller00:
是的,我从参数中复制了,看到了它期望看到的形式。但处理这类数值并不十分方便。 这就是为什么我问是否有可能在那里引入日期格式支持,就像在源代码中一样。

这个人是否在编辑套装文件?


如果数据时间输入被显示(set-files, CTRL+C tester, tpl-files和可能的其他东西)为字符串而不是数字,那么解析这些数据的所有便利都将崩溃。

现在只有三种输入数据:double、long和string。前两个总是数字。这个不仅包括日期时间,还包括颜色、枚举和除字符串以外的一切。这真是超级方便!


多创建一个实体,从而使大量的代码无法使用,这不是很明智的做法。有评论。下面是一个自动生成的集合的例子。

关于交易、自动交易系统和策略测试的论坛

图书馆:TesterCache

fxsaber, 2019.11.11 04:45

; saved on 2019.11.13 19:40:01
; Experts\Examples\MACD\MACD Sample LImitTP.ex5
; EURUSD
; 2019.09.01 - 2019.11.13
; 479, 10, Max, 47.92, -253.60
;
InpLots=0.1
InpTakeProfit=200||10||5||500||Y
InpTrailingStop=290||30||10||300||Y
InpMACDOpenLevel=5||5||5||200||Y
InpMACDCloseLevel=180||5||5||200||Y
InpMATrendPeriod=8||1||1||200||Y
;
; Pass = 1838
; initial_deposit = 10000.0
; withdrawal = 0.0
; profit = 479.15
; grossprofit = 479.15
; grossloss = 0.0
; maxprofit = 99.8
; minprofit = 0.0
; conprofitmax = 479.15
; maxconprofit = 479.15
; conlossmax = 0.0
; maxconloss = 0.0
; balance_min = 10000.0
; maxdrawdown = 0.0
; drawdownpercent = 0.0
; reldrawdown = 0.0
; reldrawdownpercent = 0.0
; equity_min = 9997.700000000001
; maxdrawdown_e = 253.6000000000004
; drawdownpercent_e = 2.457388152985982
; reldrawdown_e = 253.6000000000004
; reldrawdownpercnt_e = 2.457388152985982
; expected_payoff = 47.91500000000001
; profit_factor = 1.797693134862316 e+308
; recovery_factor = 1.889392744479493
; sharpe_ratio = 1.069726339729858
; margin_level = 1.797693134862316 e+308
; custom_fitness = 0.0
; deals = 15
; trades = 10
; profittrades = 10
; losstrades = 0
; shorttrades = 6
; longtrades = 4
; winshorttrades = 6
; winlongtrades = 4
; conprofitmax_trades = 10
; maxconprofit_trades = 10
; conlossmax_trades = 0
; maxconloss_trades = 0
; avgconwinners = 10
; avgconloosers = 0
; 
; version = 515
; copyright = Copyright 2000-2019, MetaQuotes Software Corp.
; name = TesterOptCache
; header_size = 2526
; record_size = 328
; expert_name = MACD Sample LImitTP
; expert_path = Experts\Examples\MACD\MACD Sample LImitTP.ex5
; server = MetaQuotes-Beta
; symbol = EURUSD
; (ENUM_TIMEFRAMES)period = PERIOD_M1
; date_from = 2019.09.01 00:00:00
; date_to = 2019.11.13 00:00:00
; date_forward = 1970.01.01 00:00:00
; opt_mode = 1
; ticks_mode = 4
; last_criterion = 0
; msc_min = 501
; msc_max = 2342
; msc_avg = 801
; group = demo (netting)
; trade_currency = USD
; trade_deposit = 10000
; trade_condition = 0
; trade_leverage = 100
; trade_hedging = 1
; trade_currency_digits = 2
; trade_pips = 0
; parameters_size = 28
; parameters_total = 6
; opt_params_size = 40
; opt_params_total = 5
; dwords_cnt = 0
; snapshot_size = 0
; passes_total = 0
; passes_passed = 2510

我不知道其他人的情况,但我发现当集合文件包含所有的信息时很方便。要弄清楚它是什么,它来自哪里,有多少,非常快。


这还不够吗?


ZZY 应该记住,日期时间和优化,你可以设置开始、步骤、停止。当然,即使在GUI中,步骤也是以秒为单位设置的。

 
我的意思是通过CTRL+C复制到缓冲区,让数字保持原样。但是通过CTRL+V粘贴应该扩展到同时理解旧的格式(基本上是ulong)和新的字符串 格式。这应该不会破坏任何东西,但对于那些想指定一个字符串而不是数字的人来说,它将会扩大。
 
traveller00:
我的意思是通过CTRL+C复制到缓冲区,让数字保持原样。但要通过CTRL+V扩展粘贴,以理解旧格式(基本上是ulong)和新的字符串 格式。这应该不会破坏任何东西,但对于那些想指定一个字符串而不是数字的人来说,它将会扩大。

澄清得好。它真的不会破坏任何东西。真的,我不知道有谁用CTRL+V来设置日期。

 
fxsaber:

然而,我不知道有人用CTRL+V来设置日期。

这更像是一个问题,不是设置日期,而是设置一般的参数,包括日期的位置。首先,为了使其一致,因为mql本身保持着日期格式,其次,为了使其清晰,而不是为了增加注释。对于我的测试来说,它生成的输入参数,应该用眼睛来评估,然后我可以添加它们。

斯拉瓦
也许。我们将。

我们能否同时支持插入(通过CTRL+V)专家顾问的输入参数?为了测试,它被完美地插入了参数中。然而,当它不是测试而是简单地将EA添加到图表中时,输入参数选项卡似乎不支持粘贴,我不得不手动填写相同的参数。谢谢你。

 
traveller00:

我们能否也支持插入(通过CTRL+V)EA的输入参数?它被完美地插入参数中进行测试。然而,当它不是测试而是简单地将EA添加到图表中时,输入参数选项卡似乎不支持粘贴,我不得不手动填写相同的参数。谢谢你。

和CTRL+C。

 

开发者们,你们好!

由于某些原因,在运行EA时,OnTimer中的这个检查在策略测试器 中并不总是有效(我不知道这与它有什么关系)。

    if (MQLInfoInteger(MQL_PROFILER) == 0 && MQLInfoInteger(MQL_TESTER) == 0) {
        Print("You can't use this version of EA in trade mode!");
        return;
    }

OnInit似乎总是能正常工作。

PS。同时,交易并不总是有效。我将添加测试模式的日志,以说明为什么不允许交易。某种形式的浮动故障。
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 

我面临的事实是,在可视化模式下,MT5测试器中的图形对象没有按照我的预期进行渲染。我已经把测试的专家顾问简化到了极限,它应该在第50和第45条的基础上通过坐标建立一个矩形。代码在附件中,但所有的逻辑都在一行中。

if (!IsNewBar()) return;
RectangleCreate(0, "5BarZone", 0, iTime(NULL,0,50), iHigh(NULL,0,50), iTime(NULL,0,0), iLow(NULL,0,45), clrGreen, STYLE_SOLID, 1, true, true);
ChartRedraw(0);

EA应该在当前TF的每个新条形上重新绘制这样一个通道。图片应该看起来像这样。


在现实中,矩形在长度和宽度上都混乱地延伸,图片看起来是这样的。


工作中的EA的代码包含了更多的对象,每一个对象都被扭曲得更厉害,造成了混乱。

此外,如果我们以低速 运行测试EA 的视觉测试,渲染几乎总是正确的。然而,当我以最大 速度或接近最大速度运行测试专家顾问,或以最小速度运行有大量对象的真实EA时, 我得到上述的扭曲。

请告知问题是什么,是否可以解决。试图搜索答案,但没有成功。

非常感谢任何方式的帮助。

附加的文件:
 
Andrey Pogoreltsev:

开发者们,你们好!

由于某些原因,在运行EA时,策略测试器 中的OnTimer检查并不总是有效(我不知道这与它有什么关系)。

OnInit似乎总是能正常工作。

PS。同时,交易并不总是有效。我将添加测试模式的日志,为什么不允许交易。某种意义上的浮动故障。
用||替换&&。
 
Grigori.S.B:

我面临的事实是,在可视化模式下,MT5测试器中的图形对象没有按照我想象的方式绘制。我已经把测试的专家顾问简化到了极限,它应该根据第50条和第45条的坐标来建立一个矩形。代码在附件中,但所有的逻辑都在一行中。

EA应该在当前TF的每个新条形上重新绘制这样一个通道。图片应该看起来像这样。


在现实中,矩形在长度和宽度上都混乱地延伸,图片看起来是这样的。


工作中的EA的代码包含了更多的对象,每一个对象都被扭曲得更厉害,造成了混乱。

此外,如果我们以低速 运行测试EA 的视觉测试,渲染几乎总是正确的。然而,当我以最大 速度或接近最大速度运行测试专家顾问,或以最小速度运行有大量对象的真实EA时, 我得到上述的扭曲。

请告知问题是什么,是否可以解决。试图搜索答案,但没有成功。

非常感谢任何方式的帮助。

试着简单地改变一个曾经创建的对象的 坐标
 
Grigori.S.B:

我面临的事实是,在可视化模式下,MT5测试器中的图形对象没有按照我的预期进行渲染。我已经把测试的专家顾问简化到了极限,它应该在第50和第45条的基础上通过坐标建立一个矩形。代码在附件中,但所有的逻辑都在一行中。

EA应该在当前TF的每个新条形上重新绘制这样一个通道。图片应该看起来像这样。


在现实中,矩形在长度和宽度上都混乱地延伸,图片看起来是这样的。


工作中的EA的代码包含了更多的对象,每一个对象都被扭曲得更厉害,造成了混乱。

此外,如果我们以低速 运行测试EA 的视觉测试,渲染几乎总是正确的。当我以最大 速度或接近最大速度运行测试专家顾问,或以最小速度运行有很多对象的真实EA时, 我得到上述的扭曲。

请告知问题是什么,是否可以解决。试图搜索答案,但没有成功。

非常感谢任何方式的帮助。

检查代码是否有错误,很可能是ERR_OBJECT_ALREADY_EXISTS。

你必须在重新创建对象之前删除它,或

斯拉瓦
试着在创建一个物体 后简单地改变其坐标