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

 
我是这样试的。
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="button1")
      ObjectSetInteger(0,"button1",OBJPROP_STATE,false);

但当你点击时,按钮只是在视觉上似乎没有点击,这很合理。

 
Nerd Trader #:
我是这样试的。

但当你点击时,按钮只是在视觉上似乎没有点击,这很合理。

if(sparam=="button1")
      Sleep(100);
      ObjectSetInteger(0,"button1",OBJPROP_STATE,false);
 
MakarFX #:
这就够了,谢谢你。
 
MakarFX #:

整个方案被推迟了。不太好...当然,对于一个简单的变体来说,这很好。但对于正常情况--你需要在毫秒计时器中轮询被按下的按钮的值,如果在按下按钮后,所需的延迟时间已经过去--设置一个标志。

 
Nerd Trader #:
这就够了,谢谢你。

在一个封闭的市场中,要惊讶于这样的一个按钮是如何发挥作用的

 
MakarFX #:

试试这个。

或者更好地开出处方。

如果没有未平仓的卖出订单,删除卖出线...

类似的还有 "白"。

谢谢你的提示,但它没有帮助

 
Artyom Trishkin #:

整个方案被推迟了。不太好...当然,对于一个简单的变体来说,这很好。但对于正常情况--你需要在毫秒计时器中轮询被按下的按钮的值,如果在按下按钮后,所需的延迟时间已经过去--设置一个标志。

是的,这不是好事。可以吗?

     if(id==CHARTEVENT_OBJECT_CLICK && sparam=="button1"){
       ulong ms=GetMicrosecondCount();
       for(;;){
         if(GetMicrosecondCount()-ms>100000){
           ObjectSetInteger(0,"button1",OBJPROP_STATE,false);
           break;
         }
       }
     }
这不是相当于Sleep(100)吗?毕竟,程序会在循环中挂起,直到break被执行。
 
请为跨越两张幻灯片的指标提出建议,并发出警报?
 
免费...
 
Nerd Trader #:

是的,这不是好事。这样可以吗?

这不是相当于Sleep(100)吗?毕竟,程序会在循环中挂起,直到break被执行。
而如果 "ms "被定为全球
ulong ms=0;
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
      if(id==CHARTEVENT_OBJECT_CLICK && sparam=="button1")
         {ms=GetMicrosecondCount();}
  }
//+------------------------------------------------------------------+
void OnTimer()
  {
   if(GetMicrosecondCount()-ms>100000)
     {
      ObjectSetInteger(0,"button1",OBJPROP_STATE,false);
      ms=0;
     }
  }
//+------------------------------------------------------------------+
原因: