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

 
MosheDayan:

Amici, ho bisogno di un consiglio... pls.

Sto tracciando una linea dall'ultima barra al livello "bianco" che voglio. Il livello "bianco" è posto dall'inizio di una sessione di trading(00:01) alla sua chiusura (23:59). Come posso forzare questa linea a non disegnare dritto verso il basso, ma alla fine del giorno (23:59), cioè alla fine della linea "bianca"? C'è un modo per sistemareBuffer1[1]... o sto pasticciando con i buffer per niente...

Grazie.


Per DRAW_LINE avete bisogno di valori di prezzo su ogni barra. Usa un diverso tipo di disegno a linee - troverai quello giusto per te, credo. Basta mettere il cursore su DRAW_LINE e premere F1.

 
buyanov:


prima dell'inizio del segmento

"somma echrested"

cosa significa?

cosa fare?


Questo potrebbe essere il problema.

 Alert(Delta,Digits()));
 
buyanov:


prima dell'inizio del segmento

"somma echrested"

cosa significa?

cosa fare?


Questo potrebbe essere il problema.

 Alert(Delta,Digits()));
 
buyanov:


Forse è questo il problema.


No, purtroppo ho sbagliato il frammento di testo, dovrebbe essere così

//---------------------------------------------------------------------------------------------------------------------------

void OnTick()

{

//*********************************

Alert("beg OnTick");

FastMA=NormalizeDouble(iMA(NULL,0,Period_FastMA,0,MODE_SMA,PRICE_CLOSE,1),Digits());//Period_FastMA=4

SlowMA=NormalizeDouble(iMA(NULL,0,Period_SlowMA,0,MODE_SMA,PRICE_CLOSE,1),Digits());//Period_SlowMA=8

GetNext(NextTick);

Alert(NextTick);

Alert("NextTick=",NextTick);

Delta=NormalizeDouble(FastMA-SlowMA,Digits());

Alert(Delta,Digits());

Alert("FastMA=",DoubleToStr(FastMA)),Digits(), "SlowMA=",DoubleToStr(SlowMA,Digits()), "Delta=",DoubleToStr(Delta,Digits());


//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<


//-----------------------------------------------------------------------------------------------------------------------

Alert("fine OnTick()");

}


 
buyanov:

No, mi dispiace, ho sbagliato a scrivere una parte del testo, dovrebbe essere così




Correggere l'errore su questa linea.

Alert("FastMA=",DoubleToStr(FastMA)),Digits(),"SlowMA=",DoubleToStr(SlowMA,Digits()),"Delta=",DoubleToStr(Delta,Digits());

Usa il pulsante SRC per inserire il codice

 
STARIJ:
Il messaggio contiene i numeri di linea e le posizioni in cui il compilatore pensa che una virgola debba essere messa. Molto probabilmente la linea sopra

più semplice - la staffa non è chiusa... :-)

 

Il terminale ha una funzione di clic destro chiamata "Refresh". Aggiorna i dati sul grafico.

Come posso eseguire un'azione simile dall'interno dell'EA?

[Eliminato]  
Dmitriy Voevodkin:

Il terminale ha una funzione di clic destro chiamata "Refresh". Aggiorna i dati sul grafico.

Come si può eseguire un'azione simile dall'interno di un EA?


ChartRedraw() try. Ma questa non è un'analogia completa.

 
Dmitriy Voevodkin:

Il terminale ha una funzione di clic destro chiamata "Refresh". Aggiorna i dati sul grafico.

Come si può eseguire un'azione simile dall'interno dell'EA?

Cosa vuoi aggiornare dall'EA?

 
Dmitriy Voevodkin:

Il terminale ha una funzione di clic destro chiamata "Refresh". Aggiorna i dati sul grafico.

Come posso eseguire un'azione simile dall'interno di un EA?

L'analogo più vicino è ChartRedraw - ridisegna il grafico.

Ma cos'altro succede quando "Refresh", questo è sconosciuto. Sicuramente il RefreshRates e la finestra dei dati è piuttosto rinfrescata e anche la WatchList. Cioè, ci sono ovviamente molte azioni.