[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 5. - sayfa 274

 
CYBOPOB :


Yani, orada insanca yazılmış olsaydı ... Yani herhangi bir girişimde, ilk başta her şey açık görünüyor ve biraz sonra çıldırmaya başlıyorsunuz ..))

TAMAM. Özel örnek:


TR hareketinin sonunda sipariş kapandı, ancak o zamandan beri SATIŞ sinyali iptal edilmedi, yeni bir emir açıldı, bu kabul edilemez.

720 saniye ölçüyorum, bundan sonra yeni bir sipariş açabilirsiniz. Peki bu durumda, bu saniyeler hangi sırayla ölçülecek, tarihte ilkten mi yoksa sondan mı?

Ve sonra: Ve eğer öyleyse, o zaman ne? Ben artı z olduğuna göre, baştan sayılacak mı? brrr :))


Çok teşekkürler!


Bu işlev, son konumun kapatılmasından bu yana geçen saniye sayısını döndürür
 

Dizinin uzunluğu değişir, onu görebiliriz

2013.04.08 19:06:05 2013.03.28 20:00 testavimas naktini fleta EURUSD,M15: ArraySize 21
Ancak dizide tüm elemanlar sıfır olarak yazılır.

2013.04.08 19:06:04 2013.03.28 16:00 testavimas naktini filosu EURUSD,M15: avgPriceC[19]=0.00000000
Dolayısıyla bu satırda dizi elemanına Close[ 1 ] değeri atanmamış

avgPriceC[i] = Close[ 1 ];
Kim nedenini açıklayabilir.
 

Yardım

Ara değişken üzerinden denendi, çalışmıyor. ArrayResize diziden sonra yerleştirilir. Sonuç aynı. dizideki sıfırlar

 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 );
   
     double h = High[ 1 ];    
     double l = Low[ 1 ];     
     double o = Open[ 1 ];   
     double c = NormalizeDouble (iClose( NULL , 0 , 1 ), Digits ); 
    
   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++; 
                    
            avgPriceH[i] = h;   
            avgPriceL[i] = l;     
            avgPriceO[i] = o;   
            avgPriceC[i] = c;
            j++; 
            
             ArrayResize (chPriceC,j); 
             ArrayResize (chTime,j);    
           } 
         ArrayResize (avgPriceH,i); 
         ArrayResize (avgPriceL,i);
         ArrayResize (avgPriceO,i); 
         ArrayResize (avgPriceC,i);  
         
           Print ( "ArraySize     " + ArraySize (avgPriceC));
         
         for ( int a= 0 ; a<=i; a++) Print ( "avgPriceC[" +a+ "]=" +avgPriceC[a]);
         for ( int b= 0 ; b<=j; b++) Print ( "chPriceC[" +b+ "]=" +chPriceC[b]);
         for (    b= 0 ; b<=j; b++) Print ( "chTime[" +b+ "]=" +chTime[b]);
        }        
     }
  }
    
   return ( 0 );
}
st.272'de başla
 
gince :

Yardım

Ara değişken üzerinden denendi, çalışmıyor. ArrayResize diziden sonra yerleştirilir. Sonuç aynı. dizideki sıfırlar

st.272'de başla


int i satırını ve dizin başlatmayı görmüyorum. Lütfen, stüdyoda.

Not Litvancayı kötü konuşuyorum, koddaki yorumlar biraz kafa karıştırıcı)))

 
alsu :

int i satırını ve dizin başlatmayı görmüyorum. Lütfen, stüdyoda.

Not Litvancayı kötü konuşuyorum, koddaki yorumlar biraz kafa karıştırıcı)))

//+------------------------------------------------------------------+
//|                                              naktinis fletas.mq4 |
//|                                        Ñåðãåé (urdala) Ðàøåâñêèé |
//|                                            gintaraitis@gmail.com |
//+------------------------------------------------------------------+
#property copyright "Ñåðãåé (urdala) Ðàøåâñêèé"
#property link       "gintaraitis@gmail.com"




//greitas MA
extern int      MA_Period1     =   8 ;
extern int      plius1         =   100 ;
extern int      MA_Shift1      =   0 ;
extern int      MA_Method1     =   0 ;                                                 
//Letas MA
extern int      MA_Period2     =   13 ;
extern int      plius2         =   100 ;
extern int      MA_Shift2      =   0 ;
extern int      MA_Method2     =   3 ;                                                 
//Fleto pradzia
//fleto ipradzios eskojimas pagal indikatoriu arba laika
extern bool   start       =   true ;     // true ->pagal indikatoriu, false->pagal laika
// pagal indikatoriu fleto pradzios pradesim ieskoti nuo sio laiko
extern int      startHourFlatMA        =   16 ;    
extern int      startMinFlatMA        =   00 ;
extern string   startstartFlatMA       = "16:00" ;
extern string   endstartFlatMA       = "00:00" ;
//suradus pagal indikatoriu dar lauksim kol uzsidarys BarEnd zvake
extern bool     zvakes_pabaiga = true ; //ar lauksim kol uzsidarys M240 zvake, ar priimsim kad fletas prasidejo nuo susikirtimo
extern int      BarEnd         =   240 ;
datetime        LastTime;
//datetime       startTime;
// pagal laika fleto pradzios pradesim ieskoti nuo sio laiko
extern int      startHourFlat        =   0 ;   //
extern int      startMinFlat         =   0 ;     //

//fleto pabaiga
//Fleto pabaiga jei indikatorius duoda signala siame laiko tarpe
//Laiko tarpo pradzia
extern int      startHourEnd        =   4 ;    
extern int      startMinEnd         =   45 ;
//laiko tarpo pabaiga arba fleto pabaiga
extern int      endHourEnd        =   7 ;    
extern int      endMinEnd         =   30 ;

//Ar naudosom Volumes filtra
extern bool volFiltr = true ;             //true -> naudosim,   false -> nanaudosim

//skirtumas tarp penktadienio uzdarymo ir pirmadienio atidarymo
extern int    gep = 300 ;  



//Naktinio-fletinio pipsavimo ijungimas
bool nightFlat = false ; //true -> ijungtas,   false -> neijungtas



bool            susikirtimas = false ;      
bool            flat; 
//masyvai
double chPriceH[], chPriceL[], chPriceO[], chPriceC[], chTime[];
double avgPriceH[], avgPriceL[], avgPriceO[], avgPriceC[]; 
int i = - 1 ; // masyvu indeksas -1, nes toliau pridesim 1, o masyvu indeksacija prasideda nuo 0
int j = - 1 ; // masyvu indeksas -1, nes toliau pridesim 1, o masyvu indeksacija prasideda nuo 0
int n = - 1 ;                           // kintamasis naujo masyvo indeksacijai
int iH, iL ,iO, iC, iT;
double C[], T[], y[];
double max;                               //max skirtumas tarp LR median ir Close
//*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*--*-*--*-*-*-*-*-*-*-*-*-*--*-*-*-*-*-*-*-*-* 

int init ()
{
ArrayResize (chPriceH, 0 );
ArrayResize (chPriceL, 0 );
ArrayResize (chPriceO, 0 );
ArrayResize (chPriceC, 0 );
ArrayResize (chTime, 0 );
ArrayResize (avgPriceH, 0 ); 
ArrayResize (avgPriceL, 0 ); 
ArrayResize (avgPriceO, 0 ); 
ArrayResize (avgPriceC, 0 ); 
ArrayResize (C, 0 ); 
ArrayResize (T, 0 );
ArrayResize (y, 0 );
}
//*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-**-*-*-*-*-*-*-*-*-*-
 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,i); 
             ArrayResize (chTime,i);    
           } 
         for ( int a= 0 ; a<=i; a++) Print ( "avgPriceC[" +a+ "]=" +avgPriceC[a]);
         for ( int b= 0 ; b<=j; b++) Print ( "chPriceC[" +b+ "]=" +chPriceC[b]);
         for ( int c= 0 ; c<=j; c++) Print ( "chTime[" +c+ "]=" +chTime[c]);
        }        
     }
  }
    
   return ( 0 );
}
//-----------------------------------------------------------------
 bool TF_F_NewBar()               
{   
   static datetime TimeLast;                                  
   if (TimeLast!=Time[ 0 ])   
   {
      TimeLast=Time[ 0 ];   
       return ( true );                              
   } 
   return ( false );
}
 
gince :



y[] diziniz iki kez bildirilir: global olarak ve başlatma işlevinde.
 
tara :

y[] diziniz iki kez bildirilir: global olarak ve başlatma işlevinde.


KIM örneğinde ayrıca

 #define r 30
void start() {
   double x[r], y[];
   for ( int i= 0 ; i<r; i++) x[i]=Close[i+ 1 ];
  ArrayLR(x, y);
   for (i= 0 ; i<r; i++)
    SetArrow( 170 , Red, "arr" +i, Time[i+ 1 ], y[i]);
}

//+----------------------------------------------------------------------------+
//|  Àâòîð    : Êèì Èãîðü Â. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Âåðñèÿ   : 20.05.2008                                                     |
//|  Îïèñàíèå : Ôîðìèðóåò ìàññèâ çíà÷åíèé ëèíåéíîé ðåãðåññèè.                  |
//+----------------------------------------------------------------------------+
//|  Ïàðàìåòðû:                                                                |
//|    x - ìàññèâ çíà÷åíèé ÷èñëîâîãî ðÿäà                                      |
//|    y - ìàññèâ çíà÷åíèé ëèíåéíîé ðåãðåññèè                                  |
//+----------------------------------------------------------------------------+
void ArrayLR( double & x[], double & y[]) {
   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);
     for (i= 0 ; i<n; i++) y[i]=a*(i+ 1 )+b;
  } else Print ( "ArrayLR(): Íåäîñòàòî÷íîå êîëè÷åñòâî ýëåìåíòîâ ðÿäà! n=" , n);
}

//+----------------------------------------------------------------------------+
//|  Àâòîð    : Êèì Èãîðü Â. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Âåðñèÿ   : 12.10.2007                                                     |
//|  Îïèñàíèå : Óñòàíîâêà çíà÷êà íà ãðàôèêå                                    |
//+----------------------------------------------------------------------------+
//|  Ïàðàìåòðû:                                                                |
//|    cd - êîä çíà÷êà                                                         |
//|    cl - öâåò çíà÷êà                                                        |
//|    nm - íàèìåíîâàíèå               ("" - âðåìÿ îòêðûòèÿ òåêóùåãî áàðà)     |
//|    t1 - âðåìÿ îòêðûòèÿ áàðà        (0  - òåêóùèé áàð)                      |
//|    p1 - öåíîâîé óðîâåíü            (0  - Bid)                              |
//|    sz - ðàçìåð çíà÷êà              (0  - ïî óìîë÷àíèþ)                     |
//+----------------------------------------------------------------------------+
void SetArrow( int cd, color cl,
               string nm= "" , datetime t1= 0 , double p1= 0 , int sz= 0 ) {
   if (nm== "" ) nm=DoubleToStr(Time[ 0 ], 0 );
   if (t1<= 0 ) t1=Time[ 0 ];
   if (p1<= 0 ) p1=Bid;
   if ( ObjectFind (nm)< 0 ) ObjectCreate (nm, OBJ_ARROW , 0 , 0 , 0 );
  ObjectSet(nm, OBJPROP_TIME1    , t1);
  ObjectSet(nm, OBJPROP_PRICE1   , p1);
  ObjectSet(nm, OBJPROP_ARROWCODE , cd);
  ObjectSet(nm, OBJPROP_COLOR     , cl);
  ObjectSet(nm, OBJPROP_WIDTH     , sz);
}
//+----------------------------------------------------------------------------+
 
gince :


KIM örneğinde ayrıca


Taksi mi istersin, yoksa gitmek mi?
 
Tam olarak aynı değil, tamamen farklı. Küresel ve yerel verileri okuyun.