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

 
Roman Sharanov:

没有历史数据 说明什么吗?

谢谢你的答复。

 
Igor Makanu:

测试员似乎告诉你,没有历史数据,按F2键,下载历史数据,然后重新加载终端

全部完成,非常感谢你,它正在工作。

 
大家好!再次需要您的帮助!你能告诉我如何从1开始做一个数字序列N()吗?
int N() {   int n;                      
       n=N();
       return(n+1);}
//+------------------------------------------------------------------+  
void OpenBS() { ....       
    if( ((OpenB-Ask)/ma+TimeB/60) > N() ) { 
        if( OrderSend(Symbol(),OP_BUY,0.01,Ask,3,0,0,NULL,123,0,1)>0 ) {N()} }}
如何改变int以使N()从void OpenBS()旋转?
 
Rustam Bikbulatov:
大家好!再次需要您的帮助!你能告诉我如何从1开始做一个数字序列N()吗? 如何改变int以使N()从void OpenBS()旋转?

也许像这样

int N()
  {
   static int n=0;                      
   n++;
   return n;
  }
 
Konstantin Nikitin:

这个怎么样

非常感谢!你能告诉我还能如何清零吗?例如,如果有订单,那么它就会被计算。如果没有订单,它就被清零。

int N()
  {  static int n;
        {if((fMarketOrdersBuy(OP_BUY)==0)) { 
        n=0;}}
        {if((fMarketOrdersBuy(OP_BUY)>=1)) {                       
        n++;}}
   return n;
  }
为什么这种方法不起作用?
 
Rustam Bikbulatov:

非常感谢!你能告诉我还能如何清零吗?例如,如果有订单,那么它就会被计算。如果没有订单,那么它将被清零

int N(const int r=0)
  {
   static int n=0;                      
   n = (r==0 ? n : r==1 ? n+1 : 0); // 0-просто возвращаем n, 1-прибавляем 1, в любом другом случае обнуляем
/*
   n = (r>0 ? n+1 : r<0 ? 0 : n); // 0-просто возвращаем n, больше 0 прибавляем 1, меньше 0 обнуляем
*/
   return n;
  }
 
Konstantin Nikitin:

根本就没有计算。它是零。谢谢。(笑)。我会研究的)。

 
Rustam Bikbulatov:

根本就没有计算。它是零。谢谢。(笑)。我会研究的)。

那么,你必须要求它。

N(1);  // прибавит 1, и вернет новый результат.
N(-1); // обнулит и вернет 0
N();   // вернет тот результат который есть без изменений
 
Konstantin Nikitin:

这就是你要求的方式

但你如何以?

        if((fMarketOrdersBuy(OP_BUY)==0)) { 
        ...}
        if((fMarketOrdersBuy(OP_BUY)>=1)) {                       
        ...}
 
Konstantin Nikitin:

这就是你所说的。

刚刚注意到,无论对这个函数的调用如何,int都会自己工作。是否有可能用无效类型 来取代它?