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

 
MakarFX:

空白()

而在我的代码中,也就是我贴在这里的代码中,这个void() 应该插在哪里
谢谢你

 
ANDREY:

而在我发布的代码中,这个void() 应该插在哪里
谢谢

不要插入 - 创建

从OnTick()中删除

然后

//--- input parameters
input int      Points=30;
double LoU;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- create timer
   EventSetTimer(60); // таймер в секундах
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- destroy timer
   EventKillTimer();
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
  }
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
//---
   LoU=Bid;
   if(Low[0]<LoU) {LoU=Low[0];}
   SendOrder(); 
  }
//+------------------------------------------------------------------+
void SendOrder()
  {
   if ((Bid-Points*Point)>=LoU)
     {
      if(OrderSend(Symbol(),OP_SELL,0.1,Bid, 3,0,0,"300",0)) LoU=Low[0];
     }
  }
 
MakarFX:

不要插入 - 创建

从OnTick()中删除

然后...

我对这个很感兴趣.....这个void() 到底对我的代码和目的有 什么作用

我的理解是,OnTick()的计算结果被传递到其他函数。而在出现void() 的地方,它执行的是什么功能?
谢谢你

 
ANDREY:

我对这个很感兴趣.....这个void()对我的代码和我的目标 到底有什么作用
谢谢

用计时器工作。

 
MakarFX:

在计时器上工作

计时器是否告诉程序多久检查一次代码,是在每一次打勾 时,还是在每一分钟、一小时或一天的蜡烛时?
如果是这样,我是否应该将定时器设置为每分钟检查一次蜡烛,这样在测试期间执行代码的时间就会少很多?

 
ANDREY:

计时器是否告诉程序多久检查一次代码,是在每一次打勾 时,还是在每一分钟、一小时或一天的蜡烛时?

我签了字。

EventSetTimer(60); // таймер в секундах
 
MakarFX:

我签了字。

为什么不在几分钟内?

或者实际上是以分钟为单位?或者说,代码将在每一秒钟执行,而不是每一个刻度。滴答声比秒多,有时还多得多。
 
ANDREY:

为什么不在几分钟内?

安德烈,决定你想要什么,要么是每一个刻度,要么是以秒为单位,设置为86400秒......它将是每天一次

 
MakarFX:

不要插入 - 创建

从OnTick()中删除

然后

以下是你的代码

input int      Points=30;
double LoU,Pr;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- create timer
   EventSetTimer(60); // таймер в секундах
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- destroy timer
   EventKillTimer();
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
  }
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
//---
   LoU=Bid;
   if(Low[0]<LoU) {LoU=Low[0];}
   SendOrder(); 
  }
//+------------------------------------------------------------------+
void SendOrder()
  {
   if ((Bid-Points*Point)>=LoU)
     {
      if(OrderSend(Symbol(),OP_SELL,0.1,Bid, 3,0,0,"300",0)) LoU=Low[0];
     }
  }

但由于某种原因,它没有打开任何订单。

 
MakarFX:

安德烈,决定你想要什么,是每一个刻度 还是以秒为单位。 把86400秒......一天一次。

现在明白了。这正是我想听到的,你可以把它设置为任何间隔。
谢谢你。