错误、漏洞、问题 - 页 2933

 
x572intraday:

终究还是抓到了错误,引自帮助。

刊登在《日报》上--知道了。

我现在该怎么做,我去哪里?我是个马虎的人还是......?

你确定这应该是一项任务吗?

ArraySize(Arr)=0

而不是比较?

ArraySize(Arr)==0
 
Vitaly Muzichenko:

当然,这应该是一项任务

而不是比较?

所以这不是程序代码,而是终端日志中打印的结果。这里是代码本身。

   int c=CopyTime(_Symbol,tf,0,1,Arr);
   if(c<1)
   {
      Print("ArraySize(Arr)=",ArraySize(Arr),
            "; copied=",c,
            "; TF=",EnumToString((ENUM_TIMEFRAMES)tf)
            //"; Arr[0]=",Arr[0]
           );
      Print("Error Code = ",GetLastError());
      ResetLastError();
      return;
   }
因此,不是我错过了阵列的范围,而是长期以来的历史不知为何总是不应该加载。我一直认为,历史记录是在左边加载的,在没有完全加载时可能会丢失。但是右边的历史记录不够多(新条)--这对我来说是无稽之谈!此外,我的ArraySetAsSeries=false,如果这一点很重要的话。
Документация по MQL5: Общие функции / Print
Документация по MQL5: Общие функции / Print
  • www.mql5.com
Print - Общие функции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
x572intraday:

所以这不是程序代码,而是终端日志中打印的结果。这里是代码本身。

因此,不是我错过了数组的范围,而是长期以来的历史,不知为何总是不应该被加载。我一直认为,历史记录是在左边加载的,在没有完全加载时可能不够用。但是右边的历史记录不够多(新条)--这对我来说是无稽之谈!此外,我有ArraySetAsSeries=false。

读取一个空的数组,里面什么都没有?

ArraySize(Arr)

试试这个

Print("ArraySize(Arr)=",Arr[0],
 
Vitaly Muzichenko:

读取一个空的数组,里面什么都没有?

试试这个

我把输出字符串Arr[0] 特别注释掉了(见上文),因为当我试图把它输出到期刊时,它没有进入4401的错误信息,而是最终输出了一个 "数组超出范围 "的错误。

...我将暂时抽出https://www.mql5.com/ru/docs/series/timeseries_access, 但用这种代码来膨胀我的代码是令人毛骨悚然的...
Документация по MQL5: Константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки компиляции
Документация по MQL5: Константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки компиляции
  • www.mql5.com
Ошибки компиляции - Коды ошибок и предупреждений - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
x572intraday:

我的输出字符串Arr[0] 被特别注释了(见上文),因为当我试图将其输出到Journal时,并没有得到错误信息 4401,而是以 "数组超出范围 "的错误结束。

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

虫子,虫子,问题

Vitaly Muzichenko, 2020.12.31 13:06

读取空数组,里面什么都没有?

ArraySize(Arr)

 
Vitaly Muzichenko:

是的,数组结果是空的,也就是说,没有新的条形 被复制到其中。

 
x572intraday:

是的,数组结果是空的,也就是说,没有新的条形 被复制到其中。

第一个查询就属于这种情况

 
Vitaly Muzichenko:

它发生在第一次请求时

它的疯狂之处在于,https://www.mql5.com/ru/docs/series/timeseries_access 在代码中关于加载历史的文章中提到了Sleep()。但Sleep()的帮助说:"Sleep()函数不能从自定义指标中调用,因为指标是在界面线程中执行的,它不应该拖累它"。事实证明,我需要在一个指标中加载历史数据。

Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
  • www.mql5.com
Организация доступа к данным - Доступ к таймсериям и индикаторам - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
x572intraday:

白痴的是,https://www.mql5.com/ru/docs/series/timeseries_access,在代码中关于加载历史的文章中提到了Sleep(),但Sleep()的帮助说:"Sleep()函数不能从自定义指标中调用,因为指标是在接口线程中执行的,它不能拖慢它的速度"。事实证明,我需要在指标中加载历史数据。

好吧,如果数据没有被复制,就做一个退出。

int c=CopyTime(_Symbol,tf,0,1,Arr);
if(c<1) return;

在下一次打勾时,一切都将被复制,代码将正确工作。

 

你好,我正在测试我的机器人,在完成测试 后,我看到日志中有很多字段有重新报价,这些信息堆是什么意思,我可以在代码中添加什么来防止它们出现?谢谢你,新年快乐!

附加的文件:
1.jpg  412 kb