Discussione sull’articolo "Limitazioni e Verifiche sugli Expert Advisors"

 

Il nuovo articolo Limitazioni e Verifiche sugli Expert Advisors è stato pubblicato:

È consentito fare trading con questo simbolo lunedì? Ci sono abbastanza soldi per aprire una posizione? Quanto è grande la perdita se si attiva lo Stop Loss? Come limitare il numero di ordini in sospeso? L'operazione commerciale è stata eseguita nella barra corrente o in quella precedente? Se un robot di trading non può eseguire questo tipo di verifiche, qualsiasi strategia di trading può rivelarsi perdente. Questo articolo mostra gli esempi di verifiche utili su qualsiasi Expert Advisor.

Messaggi di CheckVolumeValue.mq5 che verificano la correttezza del volume.

Autore: MetaQuotes

 

articolo utile

 
Sono d'accordo, un sacco di cose utili... Per favore, non consideratelo difficile, spiegate il concetto di "Trading Session" e "Quotation Session".
 

Mi sembra di capire che una sessione di trading si differenzia da una sessione di quotazioni in quanto è già possibile piazzare ordini.

ma le quotazioni non sono ancora in corso, vale a dire che le negoziazioni non sono in corso, ma è possibile piazzare ordini.

Beh, è chiaro che le quotazioni sono in corso, il che significa che le negoziazioni su questo strumento sono in corso.


correggetemi se sbaglio

 
Nella sessione di trading è possibile operare, nella sessione di quotazione i prezzi vengono ricevuti come nella sessione di trading, ma non è possibile operare.
 
Rosh:
Nella sessione di trading si può operare, nella sessione di quotazione i prezzi arrivano come nella sessione di trading, ma non si può operare.

Grazie, questo ha senso.
 
A causa di una modifica del linguaggio MQL5, ora il volume cumulativo massimo consentito per un simbolo deve essere ottenuto in questo modo:
//--- ottenere il limite di caratteri sul volume
   double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_LIMIT);

Lavecchia variante era così e non dovrebbe più essere utilizzata:

//--- ottenere il limite di caratteri sul volume
   double max_volume=AccountInfoDouble(ACCOUNT_LIMIT_VOLUME);


L'articolo è stato corretto e il nuovo codice di Check_Order_And_Volume_Limits.mq5 Expert Advisor è stato allegato.

 

A causa delle modifiche apportate in MQL5, ora il volume complessivo massimo consentito per un simbolo può essere ottenuto come segue:

//--- ottenere la limitazione dei simboli per il volume
   double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_LIMIT);

Non utilizzate la vecchia variante! Era così:

//--- ottenere la limitazione dei simboli per il volume
   double max_volume=AccountInfoDouble(ACCOUNT_LIMIT_VOLUME);
L'articolo è stato corretto e il nuovo codice dell'esperto Check_Order_And_Volume_Limits.mq5 è stato allegato.
 

(build 306)

void OnStart()
{
double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_LIMIT);
}

errori di compilazione:

'SYMBOL_VOLUME_LIMIT' - identificatore non dichiarato test.mq5 4 46
'SymbolInfoDouble' - nessuno degli overload può essere applicato alla chiamata di funzione test.mq5 4 20

 

Citazione dall'articolo:"Per ottenere l'orario di apertura dell'ultima barra è possibile utilizzare la funzione SeriesInfoInteger(), alla quale è necessario fornire il nome del simbolo, il timeframe e la proprietà SERIES_LASTBAR_DATE".

In una versione precedente del libro di riferimento c'era un esempio di come ottenere l'ora di apertura dell'ultima barra utilizzando la funzione CopyTime, più o meno come questa:

datetime lastbar_time[1];

CopyTime(Symbol(),0,0,1,lastbar_time);

Domanda: quale di queste due opzioni per ottenere l'orario di apertura dell'ultima barra è preferibile in termini di velocità di recupero delle informazioni e di efficienza di utilizzo?

 
Yedelkin:

Citazione dall'articolo:"Per ottenere l'ora di apertura dell'ultima barra, è possibile utilizzare la funzione SeriesInfoInteger(), a cui è necessario fornire il nome del simbolo, il timeframe e la proprietà SERIES_LASTBAR_DATE".

In una versione precedente del Manuale di riferimento c'era un esempio di come ottenere l'orario di apertura dell'ultima barra usando la funzione CopyTime, come questo:

Domanda: quale delle due opzioni per ottenere l'orario di apertura dell'ultima barra è preferibile in termini di velocità di recupero delle informazioni e di efficienza di utilizzo?

Dovrebbero essere equivalenti in termini di tempo, ma l'opzione SERIES_LASTBAR_DATE con sembra migliore.