初学者的问题 MQL5 MT5 MetaTrader 5 - 页 1493

 

除了前面的评论之外--如果我指定:

EventSetTimer(3600); // 3600 秒 = 60 分钟

,这意味着下一次检查终端变量值将在 60 分钟后进行。
但在带有可视化功能的测试器中,60 分钟将在几秒钟内运行,而指标将在 60 分钟后检查值。
或者,测试器中的智能交易系统和单独窗口中的指标是否应该在时间上以某种方式 "同步"?- 例如,如果 Expert Advisor 在几秒钟内向终端变量发送一个值,那么指示器也将在几秒钟内调用检查终端变量的值。
有人遇到过类似情况吗,如何解决?

 
grezky EventSetTimer(3600); // 3600 秒 = 60 分钟

,这意味着下一次检查终端变量值将在 60 分钟后进行。
但在带有可视化功能的测试器中,60 分钟将在几秒钟内运行,而指标将在 60 分钟后检查值。
或者,测试器中的智能交易系统和单独窗口中的指标是否应该在时间上以某种方式 "同步"?- 例如,如果 Expert Advisor 在几秒钟内向终端变量发送一个值,那么指示器也将在几秒钟内调用检查终端变量的值。
有人遇到过类似情况吗,如何解决?

测试器中有分钟模型。是什么阻止了你检查它?很简单。

 
Artyom Trishkin #:

测试仪中模拟了测试人员的一分钟。是什么阻碍了你进行测试?很简单。

指标将在一个单独的窗口中运行,它怎么会知道有必要在 3600 秒后检查终端变量的值,而不是在几秒后,根据测试器的工作?
 
grezky #:
该指标将在一个单独的窗口中运行,它如何知道不是在 3600 秒后,而是在几秒后,根据测试人员的工作来检查终端变量的值?

问题不清楚。

 
Artyom Trishkin #:

问题不明确。


在可视化模式下,测试器将运行 Expert Advisor 交易模拟器(已制作),模拟 M5 上的价格走势,进行手动交易。
为了进行分析,我们还需要 H1 图表--它将在单独窗口中打开,为了不影响测试器在 H1 窗口中当前 M5 条形图右侧的未来走势,指标将绘制一个黑色矩形。

如果我每小时从测试器中发送一次新的 H1 栏打开时间值,在测试器中实际需要 1-2-3 秒,但指标将每 3600 秒检查一次终端变量的值。
我想--我可能不会在 3600 秒后,而是在 2-3 秒后在指标中进行检查。

PS Metatrader 与互联网断开连接后,指标不会收到 ticks。

- - -

我编写了一个用于测试的指标,但出现了错误(我使用了 init、deinit、start,但没有遇到 OnCalculate() 等),这是什么错误?

OnCalculate function declared with wrong type or/and parameters CHECK___TESTER_TermVariable.mq4 33      5
OnCalculate function not found in custom indicator              1       1
1 errors, 1 warnings            2       2


#property indicator_chart_window

datetime   MTF_Time_0            = 0;




void OnInit() {
//   EventSetTimer(3600);   // 3600 секунд = 60 минут
   EventSetTimer(3);        // 3 секунды - периодичность запуска функции OnTimer()
   return;
}



void OnDeinit(const int reason) {
   EventKillTimer();
}




void OnTimer() {
   if(GlobalVariableGet("_AA__MTF_Time_0")>MTF_Time_0 ) {
      MTF_Time_0                 = GlobalVariableGet("_AA__MTF_Time_0");
      GlobalVariableSet("_AA__MTF_Time_0", 0);
   } // if(GlobalVariableGet("_AA___Time_Control_Check")>=Time[0] ) {
} // void OnTimer() {




int OnCalculate(int Time_tmp) {
   if(MTF_Time_0>0) {
      ObjectDelete(       "VLINE_Name_1");
      FUNCTION_DRAW_VLINE("VLINE_Name_1", clrPink, 1, MTF_Time_0, true, TimeToStr(MTF_Time_0, TIME_DATE|TIME_MINUTES), 0);
   }
   Time_tmp                      = MTF_Time_0;

   return(Time_tmp);
} // void OnCalculate() {


 
grezky #:

在可视化模式下,测试器将运行 Expert Advisor 交易模拟器(已制作),模拟 M5 上的价格走势,进行手动交易。 为了进行分析,我们还需要 H1 图表 - 该图表将在单独窗口中打开,为了不影响测试器在 H1 窗口中当前 M5 条形图右侧的未来走势,指标将绘制一个黑色矩形。 如果我每小时从测试器中发送一次新的 H1 栏打开时间值,在测试器中实际需要 1-2-3 秒,但指标将每 3600 秒检查一次终端变量的值。我想--我可能不会在 3600 秒后,而是在 2-3 秒后在指标中进行检查。 PS Metatrader 与互联网断开连接后,指标不会收到 ticks。 - - - 我编写了一个用于测试的指标,但出现了错误(我使用了 init、deinit、start,但没有遇到 OnCalculate() 等),这是什么错误? 。















同样,我不明白为什么所有这些黑方块和不同的图表都如此复杂,但我要重复一遍:测试仪中的时间是模拟的。一小时的测试时间不等于一小时的实际时间。它等于一小时的模拟测试时间。

当打开一个新的小时条形图时,是谁阻止了 Expert Advisor(出于某种原因)用黑幕遮盖图表?....

 
Artyom Trishkin #:
当打开一个新的每小时条形图时,是谁阻止了 EA 用黑幕覆盖图表(出于某种原因)?....。

M5 图表在测试器中打开,但我需要 H1(至少)来分析市场情况。
(交易在测试器中的 M5 上打开,但是手动的,H1 上的分析也是 "手动 "进行的)。
H1 将在另一个窗口中打开,而不是在测试器中,关闭右侧的指标将在那里运行。
该指标将从测试器中获取时间,但它=指标将通过实际时间进行检查,即通过实际小时,而不是测试器中的时间。

请检查上一条信息中给出的代码中的错误所在。
也许我对 3 秒后检查会感到满意,然后问题就会得到解决。
MT4 的 PS 代码。

 
grezky #:

M5 图表在测试器中打开,但我需要 H1(至少)来分析市场情况。
(交易在测试器中的 M5 上打开,但是手动的,H1 上的分析也是 "手动 "完成的)。
H1 将在另一个窗口中打开,而不是在测试器中,那里将运行一个关闭右侧部分的指标。
该指标将从测试器中获取时间,但它= 指标将根据实际时间进行检查,即通过实际小时,而不是测试器。

请检查上一条信息中给出的代码中的错误所在。
也许我对 3 秒后的检查感到满意,然后问题就解决了。
MT4 的 PS 代码。

有关 MT4 的问题,请写到相应的主题。这里 - 有关 MQL5 和 MetaTrader 5 终端的问题。

 
Artyom Trishkin #:

我再次重申:测试仪中的时间是模拟的。一小时的测试时间不等于一小时的实际时间。它等于一小时的模拟测试时间。

当打开一个新的小时条形图时,是谁阻止了 Expert Advisor(出于某种原因)用黑幕遮盖图表?....

时间仿真通常不是每个人都清楚的。)))))

越详细越好,这只是意味着测试仪将在一秒钟或更快的时间内完成一小时内的所有事件。)))))

 

下午好。

您能告诉我如何安排重新运行已收到的优化参数吗?

我在 Excel 中记录了过去半年对一种货币对的优化参数。我选择了去年的时间段,并希望运行这些参数。我如何将它们放回测试器或优化器。
检查哪些会通过,哪些不会通过,并将其写入 Excel。也许这样我就可以运行过去两年的数据。