// Возвращает true только в случае, если выбран (в тестере) режим по реальным тикам// Перед использованием должен быть хотя бы один OnTick вызван тестеромbool IsRealTicks( void )
{
MqlTick Tick;
return(SymbolInfoTick(_Symbol, Tick) && (Tick.volume || !(Tick.flags & TICK_FLAG_LAST)));
}
使用实例
// Советник будет тестироваться только в режиме по реальным тикамvoidOnTick()
{
staticbool IsRemove = true;
if (IsRemove)
{
IsRemove = MQLInfoInteger(MQL_TESTER) && !IsRealTicks();
if (IsRemove)
{
Print("Real ticks mode is needed!");
ExpertRemove();
return;
}
}
//........
}
我不知道你说的是什么GUI,但在测试器窗口的参数标签中,你可以设置开始和停止字段。而测试者正确地确定了参数值的数量。
现场步骤。
现场步骤。
步骤领域。
可能的原因是枚举字段可以被赋予特征值,而这些特征值可能不是任何步骤的倍数。
原因可能是枚举字段可以被赋予特征值,它可能不是任何步骤的倍数。
是的,这不是一个错误,这就是为什么我们开始在这个主题中讨论它。如果我们想要一个优化步骤,可以通过MQL对枚举进行设置。
关于交易、自动交易系统和策略测试的论坛
图书馆:TesterBenchmark
fxsaber, 2017.11.22 16:54
在MT5的每个变体中只插入一行内容
全面加速了67%,手工业加速了108%!
但这不是主要的问题。我们成功地用一条线加速了我们的EA!而这是在优化器中,评论并没有发挥任何作用。
使用实例
如何在OnInit(没有OnTick)中做到这一点--不知道。关于上述主题 的对话的一个片段
你能用一个例子解释一下这两个字符串在优化模式下有什么不同吗?
在第一种情况下进行优化时,将在打印前计算一个字符串表达式。打印本身将被调用,但它不会工作。
在第二种情况下,Print将被调用,但它不会起作用。而i+d的字符串转换也不会工作
在一个简单的测试中,第一次和第二次调用的结果在时间和收到的输出上都将是一样的。
也就是说,为优化模式使用带逗号的打印,比为它形成一个字符串的单一输入参数要便宜得多。
另一方面,如果它在Print里面把所有东西都形成一个单一的字符串,就很容易在优化模式下通过以下方式禁止其形成
但如果使用了逗号,这样的结构就无法工作。此外,这样的结构在优化模式下也会使其失效。
因此(还有其他原因),最好不要在Print里面调用真正重要的函数。因此,如果你在优化模式下照顾到性能,你仍然需要做这样的事情
关于上述主题 的对话中的一个片段
也就是说,为优化模式使用带逗号的打印,要比为它形成一个单一的输入参数的字符串便宜得多。
另一方面,如果你把所有的东西都在打印里面形成一条线,就很容易在优化模式下通过以下方式禁止其形成
但如果使用了逗号,这样的结构就无法工作。此外,这样的结构在优化模式下也会使其失效。
因此(还有其他原因),最好不要在Print里面调用真正重要的函数。因此,如果你关心优化模式下的性能,你仍然需要做这样的事情
对不起,也许我不明白,为什么我需要在打印中调用重要的函数?
这不是被禁止的。
这不是被禁止的。
我同意。
只是想知道这有什么意义?
我现在遇到了一个问题,历史上有超过1000个交易,当我调用 历史处理函数 时,比如说计算历史的利润。+ 我不知道我为什么要为这个问题而烦恼。也就是说,报价是有延迟的。