新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 990

 
Alexandr Sokolov:

***

在这里,我只是提醒了一下,只是乘以EMPTY_VALUE的结果是inf

***

О!非常好的例子!需要保存...

   double a=EMPTY_VALUE;
   Print("- - -");
   Print("EMPTY_VALUE / 2 = ",a/2.0);
   Print("EMPTY_VALUE * 2 = ",a*2.0);
   Print("EMPTY_VALUE - 2 = ",a-2.0);
   Print("EMPTY_VALUE + 2 = ",a+2.0);
   Print("EMPTY_VALUE = ",a);

和结果。

2019.11.02 07:50:48.131 INF (ATD.B.XTSE,H1)     - - -
2019.11.02 07:50:48.142 INF (ATD.B.XTSE,H1)     EMPTY_VALUE / 2 = 8.988465674311579 e+307
2019.11.02 07:50:48.142 INF (ATD.B.XTSE,H1)     EMPTY_VALUE * 2 = inf
2019.11.02 07:50:48.142 INF (ATD.B.XTSE,H1)     EMPTY_VALUE - 2 = 1.797693134862316 e+308
2019.11.02 07:50:48.142 INF (ATD.B.XTSE,H1)     EMPTY_VALUE + 2 = 1.797693134862316 e+308
2019.11.02 07:50:48.142 INF (ATD.B.XTSE,H1)     EMPTY_VALUE = 1.797693134862316 e+308
 

https://www.mql5.com/ru/docs/constants/namedconstants/otherconstants

EMPTY_VALUE  Пустое значение в индикаторном буфере DBL_MAX


inf是一种溢出
 
werter:

妙趣横生。

这就是BuySellVolume。总成交量不等于买入和卖出的总和,而只是略微多一些。

你详细地描述问题,从代码中删除不必要的东西...

我不想挖掘这种低劣的代码,即使它很小...

 
Vladimir Pastushak:

你详细地描述问题,从代码中删除不必要的东西...

我不想挖掘这种低劣的代码,即使它很小...

不需要了,谢谢,发现了这个错误。
 
LuckyTrader:

阵列超出范围

错误发生在添加严格的

编译器会告诉你将出现错误的行和光标位置,如果你不学习如何使用ME,继续这样做就没有意义了

 
LuckyTrader:
我已经向你展示了这条线。

这意味着循环中的变量i

for(int i=0; i<62; i++)

已经大于数组 的数量Fibo[]

寻找你描述数组的地方,或者改变这个数组的大小

你可以在循环的前面加上

Print("Размер массива numberFibo = " , ArraySize(numberFibo));
 

如何使这个信息可读?

Alert("Тестовое \r\nсообщение №1");
Alert("Тестовое \r\nсообщение №2");


重点是,警报窗口中靠近大钟的最后一条信息可以全文阅读,但之前的信息只能在专家日志中阅读(但这时你需要集中注意力,将它们相互分类)。


怎样才能使普通用户感到方便?想象一下,如果我,比如说,显示一个符号、时间框架、交易方向、开盘价、止损和利润,会发生什么?

 
LuckyTrader:

阵列超出范围

错误发生在添加严格的

   for(int i=0; i<62; i++)
     {
      numberFibo            [i]=0;
      numberPesavento       [i]=0;
      numberGartley         [i]=0;
      numberGilmorQuality   [i]=0;
      numberGilmorGeometric [i]=0;
      numberGilmorHarmonic  [i]=0;
      numberGilmorArithmetic[i]=0;
      numberGilmorGoldenMean[i]=0;
      numberSquare          [i]=0;
      numberCube            [i]=0;
      numberRectangle       [i]=0;
      numberExt             [i]=0;
     }

可以用

ZeroMemory(numberFibo);
ZeroMemory(numberPesavento);
ZeroMemory(numberGartley);
ZeroMemory(numberGilmorQuality);
ZeroMemory(numberGilmorGeometric);
ZeroMemory(numberGilmorHarmonic);
ZeroMemory(numberGilmorArithmetic);
ZeroMemory(numberGilmorGoldenMean);
ZeroMemory(numberSquare);
ZeroMemory(numberCube);
ZeroMemory(numberRectangle);
ZeroMemory(numberExt);

然后,由于某些原因,我没有看到阵列的大小调整。在填充之前,数组被分配的大小是多少?

 
Alexandr Sokolov:

如何使这个信息可读?


重点是,警报窗口中靠近大钟的最后一条信息可以全文阅读,但之前的信息只能在专家日志中阅读(但这时你需要集中注意力,将它们相互分类)。


怎样才能使普通用户感到方便?想象一下,如果我,比如说,显示一个符号、时间框架、交易方向、开盘价、止损和利润,会发生什么?

我希望开发人员在下一次更新中,在警报窗口中用户点击的大钟旁边显示一条信息

 
LuckyTrader:

你在循环工作时出现了错误

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

新手对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论

LuckyTrader, 2019.11.04 09:08

字符串显示(编译器没有显示,测试时指标出现错误,在日志中发现)。

      numberFibo            [i]=0;

而你展示了一个完全不同的例子。前一页上的那段潦草的文字应该没有错误。