Domande dai principianti MQL4 MT4 MetaTrader 4 - pagina 228

 

Ne ho cercato uno, ma non so come risolvere questo problema.

Penso di aver bisogno di un aggiornamento di MT4 e non ho trovato nulla.

 
darirunu1:

Ne ho cercato uno, ma non so come risolvere questo problema.

Voglio sapere perché forse qualcuno ha affrontato questo problema.

è più probabile che nessuno abbia incontrato problemi come il tuo, ecco perché non ci sono risposte.

 
Ciao a tutti, è possibile chiamare l'indicatore in una finestra separata nel tester mt4 quando si testa un EA?
 
Aleksandr Egorov:
Ciao a tutti, è possibile chiamare l'indicatore in una finestra separata nel tester mt4 quando si testa un EA?

 
Iurii Tokman:

Come?

 

Salva il modello con l'indicatore con il nome tester.tpl

E quando si avvia il tester nella visualizzazione si ottiene un grafico con l'indicatore.

 
Aleksei Stepanenko:

Salva il modello con l'indicatore con il nome tester.tpl

E quando si avvia il tester si ottiene un grafico con l'indicatore nella visualizzazione.

So che può essere chiamato da un EA?

 

Solo un modello preparato può essere richiamato.

bool  ChartApplyTemplate(
   long          chart_id,     // идентификатор графика
   const string  filename      // имя файла с шаблоном
   );

L'indicatore non lo è.


Oppure non so nulla di questa possibilità. Anche questa è un'opzione possibile, ma improbabile.

Con WinAPI, si potrebbe provare a cercare nella lista del Navigator, suppongo. Ma è molto divertente.
 

Per favore consigliate cosa c'è di sbagliato in questo codice, prima che questo slittamento non ci fosse tutto funzionava bene.

Ho specificato 2 sterline come profitto, non appena la variabile op supera le 2 sterline l'EA dovrebbe aspettare 10 secondi e poi chiudere. Voglio che l'EA aspetti più di 2 sterline e non chiuda immediatamente dopo aver visto 2 sterline.

double op = CalculateProfit();
if (op >= Profit)
{
Sleep(10000);
CloseAll();

}


Ora dopo la funzione slip, l'EA non si chiude.

 
input int Second=10;
ulong LastTime=ULONG_MAX;

void OnTick()
   {
   if(op>=Profit) LastTime=GetMicrosecondCount();
   if(GetMicrosecondCount()-LastTime>Second*1000000) {CloseAll(); LastTime=ULONG_MAX;}
   }