Bug grafici Multi Time Frame

Sezione dedicata a metatrader (ed altre piattaforme) ed al suo linguaggio di programmazione per il trading automatico
fly76
Messaggi: 21
Iscritto il: 19/01/2016, 18:36

Bug grafici Multi Time Frame

Messaggio da fly76 » 20/12/2017, 11:14

Ciao a tutti, ho creato un indicatore che carico su grafico su l'M30 e il mio codice in sequenza "leggerà" delle condizioni in D1 poi H4 e in fine in M30, cose molto semplici però capita che appena l'indicatore viene caricato sul grafico i dati calcolati non sono corretti ma appena faccio un cambio Time Frame, (es da M30 ad M1), ricompilando di fatto l'intero codice, tutto si resetta e i dati eseguiti dall'Indicatore sono corretti.

Per ovviare a questo problema, in fondo al codice ho inserito un cambio Time Frame ogni minuto in modo da avere sempre tutti i dati correttamente caricati sul grafico ma non credo sia la strada corretta.

Ci sono accorgimenti da tener presente per richiamare dati da altri Time Frame?!?

Grazie a tutti.
10.jpg
10.jpg

Codice: Seleziona tutto

void DTrend(int j, string Asset){

   UP[1]=false; DW[1]=false; OK=false; A1[1]=0; A2[1]=0; uptrend[1]=false; dwtrend[1]=false; 
   ObjectDelete("LivelloText"); ObjectDelete("LivelloText");

   //-- Trend UP Coppia Bar Verdi 1 e 2
   if(iOpen(Asset,PERIOD_D1,2) < iClose(Asset,PERIOD_D1,2)
   && iOpen(Asset,PERIOD_D1,1) < iClose(Asset,PERIOD_D1,1) ){
   
      
      uptrend[j]=true; Nome[j]= "UpTrend"; UP[j]=true; 
      
      ObjectSetString(0,"B2",OBJPROP_TEXT,0,"D1: "+ Nome[j]);
      //Print("Candela 1 e 2 Verdi");
      //Bar1 [j]= iClose(Asset,PERIOD_D1,1) - iOpen(Asset,PERIOD_D1,1);
      //Perc1[j]= (Bar1[j]/2); 
     }
     
      //-- Trend Down Coppia Bar Rosse 1 e 2
      else if(iOpen(Asset,PERIOD_D1,2) > iClose(Asset,PERIOD_D1,2)
           && iOpen(Asset,PERIOD_D1,1) > iClose(Asset,PERIOD_D1,1) ){
      
              dwtrend[j]=true; Nome[j]= "DownTrend"; DW[j]=true;
              ObjectSetString(0,"B2",OBJPROP_TEXT,0,"D1: "+ Nome[j]);
               //Print("Candela 1 e 2 Rosse");
              //Bar2 [j]= iOpen(Asset,PERIOD_D1,1) - iClose(Asset,PERIOD_D1,1);
              //Perc2[j]= Bar2[j]/2; 
             }
              
               else{ 
                    ObjectDelete("Linea"); ObjectDelete("LineaMedia");  Nome2[j]="----"; Nome[j]= "NoTrend";
                    CountH1[j]=0; CountH4[j]=0; CountM30[j]=0; LivH4[j]=0; Bordo[j]=LightSeaGreen; A2[j]=0;
                    Bottom("LivelloText","NoLevel: Assenza di Trend, Bar 1 e 2 Diverse",12,450,50,200,25,Black,LightSeaGreen);
                    ObjectSetString(0,"LivelloText",OBJPROP_TEXT,0,"NoLevel: Assenza di Trend,Bar 1 e 2 Diverse"); 
                    ObjectSetString(0,"B2",OBJPROP_TEXT,0,"No Trend");  
                   }
                   
                   Print("UP: "+IntegerToString(UP[1])); Print("DW: "+IntegerToString(DW[1]));
                   
                   Print("#######---- D1 ----#######");
                   Print("OPEN_1 D1: " +DoubleToString(iOpen (Symbol(),PERIOD_D1,1),N));
                   Print("CLOSE_1 D1: "+DoubleToString(iClose(Symbol(),PERIOD_D1,1),N));
                   
                   Print("OPEN_1 D2: " +DoubleToString(iOpen (Symbol(),PERIOD_D1,2),N));
                   Print("CLOSE_1 D2: "+DoubleToString(iClose(Symbol(),PERIOD_D1,2),N));
}
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.

Chi c’è in linea

Visitano il forum: anime971, CC [Bot] e 0 ospiti