[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 273

 
Dikii:

解释如何找出10秒前的出价,最好用代码说明。

我不需要,所以我对如何做到这一点不感兴趣。搜索一下,也许你会发现什么!好运!
 
gince:

有一个部门。而CMM函数(虽然它是满的)说,在函数中产生的数组中没有足够的数据。我搞不清楚为什么。这就是为什么我得到了除以0的结果。
我已经在同一个地方坐了好几天了,却找不到错误的地方
 
gince:
我已经在同一个地方坐了好几天了,却找不到错误的地方


到底是哪一行,在哪里除以0? 在哪一个指数值上
 

这个函数ArrayChLR(C, y, max) 给出了一个错误 ---ArrayChLR(): 没有足够的行元素!n=0 ----.

void ArrayChLR(double& x[], double& y[], double& max) {
  double a, b, c, sx=0, sx2=0, sxy=0, sy=0;
  int    i, n=ArraySize(x);

  if (n>1) {
    for (i=0; i<n; i++) {
      sx+=i+1;
      sy+=x[i];
      sxy+=(i+1)*x[i];
      sx2+=(i+1)*(i+1);
    }
    a=sx*sy-n*sxy;
    c=sx*sx-n*sx2;
    if (c!=0) a=a/c; else a=0;
    b=(sy-a*sx)/n;
    ArrayResize(y, n);
    max = 0; 
    double dif[];
    ArrayResize(dif, n);
    for (i=0; i<n; i++) 
    {
      y[i]=a*(i+1)+b;
      dif[i] = MathAbs(Close[i] - y[i]);
      if(dif[i] > max) max = dif[i];      
    }
  } else Print("ArrayLR(): едостаточное количество элементов ряда n=", n);
}

所以s数组是空的,其元素也是空的。

2013.04.08 16:57:03 2013.03.29 20:45 汇率波动,M15:零除法
2013.04.08 16:57:03 2013.03.29 20:45 naktinis fletas EURUSD,M15: ArrayLR():数组中没有足够的元素!n=0

 

更多问题

什么是最好的或正确的时间过滤器?

像这样

extern int     startHourFlatMA        =  16;    
extern int     startMinFlatMA        =  00;

int start(){
if(Hour() >= startHourFlatMA && Minute() >= startMinFlatMA)
.
.
.
retorn
}

extern string  startstartFlatMA       = "16:00";
extern string  endstartFlatMA       = "00:00";

int start(){
if(TimeCurrent()>= StrToTime(startstartFlatMA) && TimeCurrent()<= StrToTime(endstartFlatMA)+24*60*60)
.
.
.
return
}
 
你能告诉我,在已关闭的订单中,OrderSelect() 从哪里开始检查,从最后还是从开始?好吧,还是从0开始还是什么...?
 
CYBOPOB:
你能告诉我,在已关闭的订单中,OrderSelect()从哪里开始检查,从最后还是从开始?好吧,还是从0开始还是什么...?

如果你设置了循环,这就是它的起点。请仔细阅读ME编辑器中F1中对该功能的描述。
 

日子过得不错。

你能告诉我mql4是否允许指标在另一个图表上画一条水平线(而不是在它盘旋的图表上)?

 
Roman.:

如果你设置了循环,这就是它的来源。在MU编辑器中通过F1仔细阅读这个f-fi的描述。


好吧,如果它是用人类的语言写的......所以在任何努力中,一开始似乎一切都很清楚,但稍后你就开始疯狂了......)

O.K. 一个具体的例子。


该订单在TP运动结束时被关闭,但由于卖出信号没有被取消,新的订单被打开,这是不可接受的。

我测量了720秒,之后我们可以打开一个新的订单。那么,在这种情况下,这些秒数将从哪个顺序测量,从历史上的第一个顺序还是从最后一个顺序?

然后:如果是这样,然后呢?既然我加了Z,那就从头算起吧?哼哼哼:))


非常感谢您!

 

发现了这个错误。

int start()
 {
   double volMA11, volMA12, volMA21, volMA22;  
   double x[], y[]; 
   
   Print("******************STARTAS*****************************************");
   
   if(!TF_F_NewBar())return(0);
 
   volMA11 = iCustom(NULL, 15, "volumeMA",  2, 1);         
   volMA12 = iCustom(NULL, 15, "volumeMA",  2, 2);
   volMA21 = iCustom(NULL, 15, "volumeMA",  3, 1);
   volMA22 = iCustom(NULL, 15, "volumeMA",  3, 2);
    
   if(DayOfWeek()==1 || DayOfWeek()==2 || DayOfWeek()==3 || DayOfWeek()==4)                             //jei pirmadienis antradienis ar treciadienis, ar ketvirtadienis
   {         
      if(TimeCurrent()>= StrToTime(startstartFlatMA) && TimeCurrent()<= StrToTime(endstartFlatMA)+24*60*60)
      {
         //Print("fleto starto ieskojimo laikas prasidejo  "+TimeToStr(TimeCurrent())+" >= "+TimeToStr(StrToTime(startstartFlatMA))+
               //"  &&  "+TimeToStr(TimeCurrent())+" <= "+TimeToStr(StrToTime(endstartFlatMA)+24*60*60));
         bool laikas = true;
         Print("laikas = "+laikas);         
         if(volMA21 - volMA11 > 0 && volMA12 - volMA22 > 0)
         {                                                                                   //jei buvo susikirtimas
            susikirtimas = true;           
         }
         if(susikirtimas == true) 
         {
            if(zvakes_pabaiga)
            {
               if(iTime(NULL, BarEnd, 1)!= LastTime)
               {            
                  LastTime = iTime(NULL, BarEnd, 1);
                  flat = true;           
                  LastTime = iTime(NULL, BarEnd, 1);
              }
              else return(0);            
           }
           else flat = true;
           if(flat == true)
           {
               i++; 
             //Zinodami indekso eiles numeri galim keisti masyvo ilgi
            
            ArrayResize(avgPriceH,i); 
            ArrayResize(avgPriceL,i);
            ArrayResize(avgPriceO,i); 
            ArrayResize(avgPriceC,i);        
           Print("ArraySize     "+ArraySize(avgPriceC));
            //jei fletas prasidejo renkam duomenis i masyva zvakiu HL ir OC skaiciavimui
            
            avgPriceH[i] = High[1];    
            avgPriceL[i] = Low[1];     
            avgPriceO[i] = Open[1];   
            avgPriceC[i] = Close[1];
         
            j++; 
            
            ArrayResize(chPriceC,j); 
            ArrayResize(chTime,j);    
           } 
         for(int a=0; a<=i; a++)Print("avgPriceC["+a+"]="+avgPriceC[a]);
         
        }        
     }
  }
    
  return(0);
}

这些页面打印的是零。为什么?

2013.04.08 19:06:05 2013.03.28 20:00 testavimas naktini fleta EURUSD,M15: avgPriceC[21]=0.00000000
2013.04.08 19:06:05 2013.03.28 20:00 testavimas naktini fleta EURUSD,M15: avgPriceC[20]=0.00000000
2013.04.08 19:06:05 2013.03.28 20:00 testavimas naktini fleta EURUSD,M15: avgPriceC[19]=0.00000000
2013.04.08 19:06:05 2013.03.28 20:00 testavimas naktini fleta EURUSD,M15: avgPriceC[18]=0。00000000
2013.04.08 19:06:05 2013.03.28 20:00 汇率:欧元兑美元,M15:avgPriceC[17]=0.00000000

.

.

.
2013.04.08 19:06:05 2013.03.28 20:00 testavimas naktini fleta EURUSD,M15: avgPriceC[2]=0.00000000
2013.04.08 19:06:05 2013.03.28 20:00 testavimas naktini fleta EURUSD,M15: avgPriceC[1]=0。00000000
2013.04.08 19:06:05 2013.03.28 20:00 testavimas naktini fleta EURUSD,M15: avgPriceC[0]=0.00000000
2013.04.08 19:06:05 2013.03.28 20:00 testavimas naktini fleta EURUSD,M15:ArraySize 21