Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1478

 
MakarFX:

Grazie per l'aiuto. Se non mi sbaglio, nonostante il fatto che void OnTick() gestisce ogni tick, se usiamoTimeSeconds() al suo interno, allora void OnTick() gestirà non ogni tick, ma solo l'inizio di ogni minuto di candela e quindi risparmierà il runtime dell'intero codice.

Dimmi, se invece di TimeSeconds(), scrivi nella condizione if(Minute() != x), e alla fine x= Minute(), avrà lo stesso effetto di TimeSeconds()?

Grazie

 
ANDREY:

Grazie per l'aiuto. Se non mi sbaglio, nonostante il fatto che void OnTick() gestisce ogni tick, se usiamoTimeSeconds() al suo interno, allora void OnTick() gestirà non ogni tick, ma solo l'inizio di ogni minuto di candela e quindi risparmierà il runtime dell'intero codice.

Dimmi, se invece di TimeSeconds(), scrivi nella condizione if(Minute() != x), e alla fine x= Minute(), avrà lo stesso effetto di TimeSeconds()?

Grazie

bool FlagNewBar=false,
     FlagBegin=true;

void OnTick()

FlagNewBar=false;
   if(BarTime!=Time[0])
     {
      BarTime=Time[0];
      FlagNewBar=true;
     }


   if(FlagNewBar || FlagBegin)
     {
      FlagBegin=false;
.......

)

È meglio, avrete un timer anche al di fuori delle sessioni. E solo su una nuova candela.

Ma perché ti serve in questo modo, visto che è più facile piazzare una griglia di ordini pendenti al primo estremo? È essenzialmente la stessa cosa con te. La prima condizione è l'identificazione dell'estremo e poi, se la tendenza scende, gli ordini saranno piazzati dopo 30 punti.

Il flagging è necessario per lavorare subito dopo essere stato lanciato sul grafico. Se non è necessario, allora rimuovete la segnaletica.

 
Valeriy Yastremskiy:

Meglio ancora, avrete il timer che esaurisce le sessioni. Ma solo su una nuova candela.

E perché lo faresti, perché è più facile piazzare una griglia di ordini pendenti dal primo estremo? È essenzialmente la stessa cosa con te. La prima condizione è l'identificazione dell'estremo e poi, se la tendenza scende, gli ordini saranno piazzati dopo 30 punti.

Il flagging è necessario per lavorare subito dopo essere stato lanciato sul grafico. Se non è necessario, allora rimuovete la segnaletica.

Il mio ordine apre 30 pips al rialzo dal minimo locale, cioè BID meno MINIMO >= 30 pips.
Grazie per la vostra partecipazione. Ora comincerò a scavare nei tuoi consigli ....

 
Valeriy Yastremskiy:

Meglio ancora, avrete il timer che esaurisce le sessioni. Ma solo su una nuova candela.

E perché lo faresti, perché è più facile piazzare una griglia di ordini pendenti dal primo estremo? È essenzialmente la stessa cosa con te. La prima condizione è l'identificazione dell'estremo e poi, se la tendenza scende, gli ordini saranno piazzati dopo 30 punti.

Il flagging è necessario per lavorare subito dopo essere stato lanciato sul grafico. Se non ne abbiamo bisogno, rimuoviamo la segnaletica.

C'era un minimo locale. E ho impostato 10 ordini pendenti alla distanza di 30,32,34...pip dal minimo locale. E poi il minimo locale è stato aggiornato prima che il prezzo raggiungesse il primo ordine pendente, e devo impostare di nuovo tutti gli ordini pendenti. Per come la vedo io, impostare e resettare gli ordini pendenti richiede molto tempo. E sto cercando di salvarlo.

 
Valeriy Yastremskiy:

Meglio ancora, avrete il timer che esaurisce le sessioni. Ma solo su una nuova candela.

E perché lo faresti, perché è più facile piazzare una griglia di ordini pendenti dal primo estremo? È essenzialmente la stessa cosa con te. La prima condizione è l'identificazione dell'estremo e poi, se la tendenza scende, gli ordini saranno piazzati dopo 30 punti.

Il flagging è necessario per lavorare subito dopo essere stato lanciato sul grafico. Se non è necessario, allora rimuovete la segnaletica.

Sarei contento se il timer fosse sventolato. Ma come si è scoperto nel tester MT4, il timer non funziona.

 
ANDREY:

Grazie per l'aiuto. Se non mi sbaglio, nonostante il fatto che void OnTick() gestisce ogni tick, se usiamoTimeSeconds() al suo interno, allora void OnTick() gestirà non ogni tick, ma solo l'inizio di ogni minuto di candela e quindi risparmierà il runtime dell'intero codice.

Dimmi, se invece di TimeSeconds(), scrivi nella condizione if(Minute() != x), e alla fine x= Minute(), avrà lo stesso effetto di TimeSeconds()?

Grazie

      if(TimeMinute(TimeCurrent())!=x)
         x=TimeMinute(TimeCurrent();
 
Valeriy Yastremskiy:

È meglio così,

Puoi dirmi perché abbiamo bisogno di una "FlagNewBar"?

Non è la stessa cosa?

   if(BarTime!=Time[0])
     {
      ........
      BarTime=Time[0];
     }
 

MakarFX:

if(TimeMinute(TimeCurrent())!=x)
         x=TimeMinute(TimeCurrent();


Non ho ancora capito se usare le funzioni TimeSeconds() o TimeMinute() in questo caso è fondamentale e obbligatorio? Dopo tutto, potete ottenere lo stesso risultato di queste funzioni usando una sola funzione - Minute( )

se(Minuto()!= x)
{

azione
x= Minuto();

}

Grazie.

 
ANDREY:

Non ho ancora capito se usare le funzioni TimeSeconds() o TimeMinute() in questo caso è fondamentale e obbligatorio? Dopo tutto, potete ottenere lo stesso risultato di queste funzioni usando una sola funzione - Minute( )

se(Minuto()!= x)
{

azione
x= Minuto();

}

Grazie.

Non è una questione di principio. Qualunque cosa ti si addica di più
 
MakarFX:

Puoi dirmi perché il "FlagNewBar" è necessario?

Non è la stessa cosa?

È un'abitudine del BASIC. È più facile usarlo) Si può fare anche senza). E se la condizione è inserita in più punti, il record è più corto.

Zy. Se la logica è ramificata e l'isteresi, non si può fare a meno delle bandiere. Ed è comodo stamparli)