Risposta

Ordine eseguito a metà della barra e non all'inizio o alla fine della barra dopo il riavvio di MT4...

5 risposte

Karish

Customer, bbp_participant, community, sq-ultimate, 443 replies.

Visita il profilo

7 anni fa #115240

Salve, ho un problema...

 

L'EA funziona bene secondo le regole e apre e chiude gli ordini all'apertura/chiusura della barra,

ma quando diciamo che riavvio la mia piattaforma MT4 quando si riapre e le regole sono soddisfatte, aprirà un ordine immediatamente a metà della barra senza aspettare una nuova barra formattata...

 

come posso evitare che ciò accada, per favore? Voglio che l'EA attenda una nuova barra formattata e poi inserisca l'ordine (come dovrebbe) e non al primo tick quando si riavvia la piattaforma MT4 o giù di lì....

 

Grazie...

0

Karish

Customer, bbp_participant, community, sq-ultimate, 443 replies.

Visita il profilo

7 anni fa #137719

@Mark @Thomas ?..,

 

Questo mi succede quando uso i grafici offline..., forse qualcosa che ha a che fare con "sqIsBarOpen" sotto la funzione "drawStats()"?..., per favore aiutatemi il prima possibile..., perché quando riapro la piattaforma MT4 con un EA che lavora su grafici OFFLINE apre una nuova posizione non appena arriva il primo tick, e non aspetta che si apra la nuova barra....,

 

in attesa di un aiuto...!, grazie!....

0

Karish

Customer, bbp_participant, community, sq-ultimate, 443 replies.

Visita il profilo

7 anni fa #137740

Qualcuno.............?

0

tomas262

Amministratore, sq-ultimate, 2 risposte.

Visita il profilo

7 anni fa #137759

ciao,

 

mi sembra che l'evento di caricamento di EA/chart faccia sì che isBarOpen sia vero all'interno della funzione DrawStats. Questo è il motivo per cui l'azione viene attivata. Chiederò a Mark di verificarlo

0

Karish

Customer, bbp_participant, community, sq-ultimate, 443 replies.

Visita il profilo

7 anni fa #137775

ciao,

 

mi sembra che l'evento di caricamento di EA/chart faccia sì che isBarOpen sia vero all'interno della funzione DrawStats. Questo è il motivo per cui l'azione viene attivata. Chiederò a Mark di verificarlo

Grazie Tommaso, mi piacerebbe sapere come posso risolvere questo problema il prima possibile...!

Grazie ancora, aspetterò una risposta...!

0

Mark Fric

Amministratore, sq-ultimate, 2 risposte.

Visita il profilo

7 anni fa #137989

Karish, l'ho guardato e sì, è così che funziona. Quando si avvia l'EA nel mezzo della barra, può aprire l'ordine immediatamente, senza aspettare l'inizio di una nuova barra.

 

Il riconoscimento dell'apertura di una nuova barra verifica se si tratta di un primo tick della barra corrente, il che avviene quando si è appena avviato l'EA a metà della barra.

 

In realtà è piuttosto difficile farlo funzionare solo per le nuove barre aperte e non per la prima barra con cui si avvia l'EA.

 

Dovrebbe essere possibile modificando un po' il codice MQL: trovare una funzione drawStats() in cui sia impostata la variabile sqIsBarOpen.

 

Modificare la condizione in questo modo:

 

   if(tmp != Tempo[0] && Volume[0] < 5 ) {}
      tmp = Tempo[0];
      open = Open[0];
      sqIsBarOpen = true;
   } else {
      sqIsBarOpen = false;
   }
 
Questo controllerà che anche il volume del tick controllato sia inferiore a 5, in modo da filtrare i casi in cui viene controllato a metà della barra.
Testatelo prima di utilizzarlo.

Marchio
Architetto StrategyQuant

0

Stai visualizzando 5 risposte - da 1 a 5 (di 5 totali)