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

 
Alexey Viktorov:
你确定指标是在while循环中重新计算的吗?
是的,我把评论 放在了屏幕上。 或者说,这还不能证明重新计算已经发生了?
 
007yurik:
是的,把评论 放在屏幕上。 或者它还不能证明重新计算已经完成?

我们需要在调试模式下查看Value[]值

在评论中可以在循环外改变。我没有遇到并检查过这种情况,但直觉告诉我它不会被重新计算,数值将保持不变。因此,你将永远无法摆脱这个圈子。

 
Alexey Viktorov:

在调试模式下,见Value[] values。

在评论中,可能会在循环之外发生变化。我没有遇到和检查过这种情况,但有些东西告诉我,它不会被重新计算,数值将保持不变。因此,你将永远不会脱离这个圈子。

这是很荒谬的事情。在调试中,数值是正确的,但无论条件是否满足,循环总是被执行一次。 我想我要放弃While了。
 
007yurik:
这并不符合逻辑。在调试中,Value[]值是正确的,但循环总是运行一次,不管条件是否满足。 我想我会放弃While。

那么你如何确定Value[] 数组中的值是正确的?你是如何填写的呢?

 
Vladimir Karputov:

那么你如何确定Value[] 数组中的值是正确的?你如何填充它?

如果我没有理解错的话,是用指标处理程序)。
 
007yurik:
如果我没有理解错的话,我会用指示器手柄来提醒你,我在这个问题上的熟练程度相当于一个笨蛋的水平)

我认为你应该按照相反的顺序来做:先填入 Value数组,然后再比较其中的内容。

 
007yurik:
真是一团糟。在调试中,Value是正确的,但循环总是运行一次,不管条件是否满足。 我可能会放弃While。

一切都和程序中写的一模一样

 bool pravda=false;

   if(pravda || Ind[0]<=-0.7)
   pravda=true;
   
   {   
      
      while(Value[2]<Value[1])
         {
         if(CopyBuffer(InpInd2_Handle,1,SignalBar,3,Value)<=0) {Recount=true; return;}                 
          }
          
         if(BuyPosOpen) BUY_Open=true;     
                                                  
         if(SellPosClose) SELL_Close=true;
         UpSignalTime=datetime(SeriesInfoInteger(Symbol(),InpInd_Timeframe,SERIES_LASTBAR_DATE))+TimeShiftSec;
         }

如果CopyBuffer 执行时出现错误,则将Recount设置为true并退出循环。

所以这不是......。循环。

 

请向一个傻瓜解释一下。
任务是在子窗口中画一条零线。一条简单的白色实心线。

我不做的事,就变成条纹了。我设置了水平和指示线,并且已经插入了一个图形对象--结果仍然是条纹。
原因很清楚--条纹网格线是从上面显示的。但奇怪的是:只有水平的零格线在上面,而垂直的格线则在指标的下面。

在这里,你如何在子窗口中画一个简单的白色实心零线?

 
还有 "如果你不回应,我们会写信给Sportlotto"!
 
User_mt5:

请向一个傻瓜解释一下。
任务是在子窗口中画一条零线。一条简单的白色实心线。

我不做的事,就变成条纹了。我设置了水平和指示线,并且已经插入了一个图形对象--结果仍然是条纹。
原因很清楚--条纹网格线是从上面显示的。但奇怪的是:只有水平的零格线在上面,而垂直的格线则在指标的下面。

在这里,你如何在子窗口中画一个简单的白色实心零线?

能否给我一张现在这样的截图?