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

 
弗拉基米尔 我知道比较的规则。那么,没有任何附加条件就不能做吗?
 
Oleg Kolesov #:
弗拉基米尔,我知道比较的规则。那么,没有任何附加条件就不能做吗?

额外的内容是什么?


你能不能做得比这还好,没有对比。

      //---------------------------------------------+
      levelcol1[i]=1.0;
      if(level1[i]>level1[i+PeriodSh])
        {
         levelcol1[i]=0.0;
         continue;
        }
      /*if(CompareDoubles(level1[i],level1[i+PeriodSh]))
        {
         levelcol1[i]=1.0;
         continue;
        }*/
      if(level1[i]<level1[i+PeriodSh])
        {
         levelcol1[i]=2.0;
         continue;
        }
     }  //--- Возвращаемое значение prev_calculated для следующего вызова
 
谢谢你的帮助。
 
Vladimir Karputov #:

额外的内容是什么?


而且你可以做得更好,不需要比较。

如果你在平等的基础上进行比较而不进行归一化,也是如此。

 
主要问题仍未解决。如何用两种颜色给缓冲器上色。>=蓝色到<=红色。
 
Oleg Kolesov #:
主要问题仍未解决。如何用两种颜色给缓冲器上色。>=蓝色到<=红色。

而在平等的情况下,你怎么知道它是更多还是平等,还是更少还是平等?这就是挑战,不是吗?)

 
Oleg Kolesov #:
任务是什么? 循环?ArrayBsearch? ArraySort? 通过什么方式?

轻骑兵安静!

这就是启示录。

心灵必须得到治疗。

 
我先休息一下。谢谢你。
 

请帮助从主窗口 删除一个指标。

例如,放置了几个自定义MA指标,每个都被iCustom(handleMA,...,...)调用。

因此,图表上显示了十几条移动平均线

那么这些指标必须使用计时器重新计算。

顺序如下 - 计时器触发,旧指标被移除,计算和绘制新的移动平均线。

现在,非常的问题是:在每次新的迭代中,旧的线条仍然留在图表上。

我曾尝试用两种方法来清除它们。

Graph_MA[i] = iCustom(_Symbol,Timeframe,"MA", /*параметры индикатора*/);   
for(int i=0; i < kol_Lines; i++) 
     {
      res = IndicatorRelease(Graph_MA[i]);
     }

在这种情况下,res变量每次都等于True,但额外的指标并没有从图表中删除。

第二种方式。

name_MA[i]=StringFormat("MA_Line # %d", i);
IndicatorSetString(INDICATOR_SHORTNAME,name_MA[i]);
res = ChartIndicatorDelete(0, 0, name_MA[i]);

无济于事:Res总是假的。

 
qadexys #:

请帮助从主窗口 删除一个指标。

例如,放置了几个自定义MA指标,每个都被iCustom(handleMA,...,...)调用。

因此,图表上显示了十几条移动平均线

那么这些指标必须使用计时器重新计算。

顺序如下 - 计时器触发,旧指标被移除,计算和绘制新的移动平均线。

现在,非常的问题是:在每次新的迭代中,旧的线条仍然留在图表上。

我曾尝试用两种方法来清除它们。

在这种情况下,res变量每次都等于True,但额外的指标并没有从图表中删除。

第二种方式。

无济于事:Res总是假的。

这些是IndicatorRelease()的特点--它不是删除一个指标,而是通知终端不再需要这个指标了。此外,终端自己决定何时删除它。通常情况下,它在几秒钟后就会这样做。

也许有一些窍门--我不知道。也许可以尝试调换图表。