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

 
Igor Zakharov:

我怎么会知道呢?提出问题的人使用了iLow(),所以他需要它。也许更简单,也许他打算通过一个输入变量引用另一个符号或时间段(不记得四维码中是否有版权?)

有的。

 
psyman:

我没有把代码贴在这里,而是写了一个最简单的代码来简化解析。

告诉我更多的问题,对最大速度不清楚。

弗拉基米尔-卡尔普托夫

这段代码是非常幸运的--因为在每一次打勾 时,都会在所有的条形图上进行传递。


第四次是IndicatorCounted(), 我不知道第五次有什么可能性,也没有地方可以读到它

这个方案好吗,或者可以简化吗?

int OnCalculate(....)
{
   int i, Counted_bars;
   
      Counted_bars=IndicatorCounted(); // Количество просчитанных баров 
      i=Bars-Counted_bars-1;           // Индекс первого непосчитанного

      while(i>=0)                      // Цикл по непосчитанным барам
      { 
        .....
        
       i--;                          
      }
}

int IndicatorCounted()
  {
   if(prev_calculated>0) return(prev_calculated-1);
   if(prev_calculated==0) return(0);
   return(0);
  }
 
psyman:


在Q4中有IndicatorCounted(), 我不知道在5中有什么可能性,也没有地方可以读到它

这个方案好吗,或者可以简化吗?

帮助、论坛、文章--在你看来,这就是 "无处可读 "吗?只要你有这个愿望。事实上,你写的是旧终端的主题,而你的问题是关于MQL5。你有一个差异。

我已经离开了这个话题。

 
psyman:


在Q4中有IndicatorCounted(), 我不知道在5中有什么可能性,也没有地方可以读到它

这个方案好吗,或者可以简化吗?

现在在mql4和mql5中,主指标函数都有你需要的一切

int OnCalculate (const int rates_total,      // размер входных таймсерий
                 const int prev_calculated,  // обработано баров на предыдущем вызове
                 const datetime& time[],     // Time
                 const double& open[],       // Open
                 const double& high[],       // High
                 const double& low[],        // Low
                 const double& close[],      // Close
                 const long& tick_volume[],  // Tick Volume
                 const long& volume[],       // Real Volume
                 const int& spread[]         // Spread
   );

prev_calculated是计算的条数。

 

你好。

如果价格在60秒内变化了30个点,我将标记该条线

 for(int i=limit; i>=0; i--)
     {
      datetime t_=TimeCurrent();
      if(t_>t_b+60)
        {
         t_b = TimeCurrent();
         pr_b=close[0];
        }
      if(MathAbs(close[0]-pr_b)>=30*Point && t_<t_b+60)
        {
         BufferUP[i]=low[i]-10*Point;
        }

     }

怎么了?

 
lil_lil:

你好。

如果价格在60秒内变化了30个点,我将标记该条线

怎么了?

为什么会这样

int limit=rates_total-prev_calculated-1;

而不是像这样?

int limit=rates_total-prev_calculated;

我在哪里设置限制?

   if(limit>1)
     {
      ArrayInitialize(BufferUP,EMPTY_VALUE);
      ArrayInitialize(BufferDN,EMPTY_VALUE);
     }
   if(limit>1)
     {
      limit=rates_total-1;
      ArrayInitialize(BufferUP,EMPTY_VALUE);
      ArrayInitialize(BufferDN,EMPTY_VALUE);
     }

没有再看下去了

 
Artyom Trishkin:

为什么会这样

而不是像这样?

极限设置在哪里?

我没有再看下去。

谢谢你,但这样也没有结果。请进一步看。

 
lil_lil:

谢谢你,但这样也没有结果。请进一步看。

那是什么?

datetime t_=TimeCurrent();

你在循环中采取什么时间?什么是TimeCurrent()?

 
你好!
在专家顾问中,有一个从链接中获取文本的功能,....,我用这个库得到了它。
https://github.com/sergeylukin/mql4-http
一切都很好,没有任何问题!
问题是这样的。
在这个链接中,文本被系统地更新,而终端并没有感知到它,甚至当你从图表中重置猫头鹰并把它放回原处时也是如此!只有在关闭 和打开终端时才有帮助!也许谁知道如何修复它?
 
lil_lil:

你好。

如果价格在60秒内变化了30个点,我将标记该条线

怎么了?

我最近遇到了一个有类似任务的自由职业者订单。这不就是你要做的工作吗?

原因: