Caratteristiche del linguaggio mql5, sottigliezze e tecniche - pagina 194

 

Ciao, aiuto dagli esperti!

Dalla documentazione

Variabili globali

"L'inizializzazione delle variabili globali viene eseguita una volta dopo che il programma è stato caricato nella memoria del terminale client e prima che venga gestito il primo evento Init. Per le variabili globali, che sono oggetti di classi, durante l'inizializzazione vengono chiamati i costruttori appropriati".

Ma in effetti, quando cambio il periodo del grafico, viene chiamato il costruttore della classe dell'oggetto globale nell'indicatore.

Come fare in modo che il costruttore sia chiamato una volta dopo l'avvio dell'indicatore?

 
Gudgeon:

Ma in effetti, quando cambio il periodo del grafico, viene chiamato il costruttore della classe dell'oggetto nell'indicatore.

Come fare in modo che il costruttore sia chiamato una volta dopo l'avvio dell'indicatore?

Cambio di TF per l'indicatore - inizio di una nuova copia del programma.

 
fxsaber:

Cambiare il TF per l'indicatore - eseguire una nuova copia del programma.

Grazie!

Inaspettatamente, non capisco dalla documentazione.

Tutto è a posto in Expert Advisors.

 
Potete scoprire quanto tempo ci vuole per compilare il vostro programma come segue.
LastModifyEX5() - __DATETIME__
 
fxsaber:
Potete scoprire quanto tempo ci vuole per compilare il vostro programma come segue.
Cos'è LastModifyEX5()? Non riesco a trovarlo sul sito web.
 
Alexey Viktorov:
E questo LastModifyEX5() cosa? Non riesco a trovarlo sul sito web.

Dovete scriverlo voi stessi attraverso la WinAPI. L'implementazione è secondaria qui.

 

Amici miei, colleghi hobbisti!

Come posso impostare programmaticamente la visibilità di un indicatore specifico su un TF specifico,

Considerando che ci possono essere altri 5 indicatori per altri TF.

Ho cercato nella descrizione, e molto semplicemente, la ricerca nell'aiuto, ma la ricerca della descrizione non dà alcun risultato sul meccanismo per risolverlo.


So come impostare la visibilità degli oggetti.

 
Il limitatore può cambiare il suoORDER_TIME_SETUP_MSC - in caso di esecuzione parziale questa proprietà diventa uguale al tempo della prima (eventualmente penultima) esecuzione parziale.
 
Nel Tester questa condizione sarà sempre attivata.
int OnInit()
{
  MqlTick Tick;
  
  return(SymbolInfoTick(_Symbol, Tick) && (TimeCurrent() != Tick.time));
}
È difficile dire se questo è un bug nel tester o una caratteristica.
 

Una volta è statoproposto un modo per determinare l'offset GMT dell'ora del server. Non sempre funziona con precisione.

Qui sotto sembra essere una versione accurata.

// Аналог по серверному времени - https://www.mql5.com/ru/docs/dateandtime/timegmtoffset
int TimeServerGMTOffset( void )
{
  MqlCalendarValue Value[1];
  
  CalendarValueHistoryByEvent(840030016, Value, D'2020.12.03', D'2020.12.06');
  
  return((13 - ((Value[0].time / 3600) % 24)) * 3600);
}

// Аналог по серверному времени - https://www.mql5.com/ru/docs/dateandtime/timegmt
datetime TimeServerGMT( void )
{
  return(TimeTradeServer() + TimeServerGMTOffset());
}


Forum sul trading, sistemi di trading automatico e test di strategie di trading

Caratteristiche del linguaggio mql4, complessità e trucchi

fxsaber, 2018.03.29 14:32

Applicazioni

#define  PRINT(A) Print(#A + " = " + (string)(A))

void OnStart()
{  
  PRINT(TimeGMT());
  PRINT(TimeServerGMT());  
}
Motivazione: