Caratteristiche del linguaggio mql5, sottigliezze e tecniche - pagina 191

 
template <typename T>
void func(const T &IntOrArray) {} 

void OnStart()
{
  int a=0;
  char b[3]={};
  func(a);
  func(b);	//'b' - parameter conversion not allowed
}

È un bug o un chip che lancia questo errore?

Il C++ lo mangia abbastanza bene. E gli array in MQL hanno i loro array. Quindi anche qualche std::array potrebbe essere gestito da questo costrutto.

 
traveller00:

È un bug o un errore che lancia questo errore?

Non è un bug. Un sovraccarico di template non potrà che aiutare.

 

C'è un modo per scoprire rapidamente che non c'è storia per uno strumento (sia localmente che sul server)?

Qualsiasi richiesta di CopyXXX aspetta 30 secondi per recuperare i dati, e ci vuole un tempo irragionevolmente lungo per passare attraverso un gran numero di strumenti.

Per alcuni strumenti, aiuta a controllare se c'è un Bid (è vuoto), ma non per tutti gli strumenti.

Potete controllare su ICMarkets-MT5, strumentoWheat_U0

 
Andrey Khatimlianskii:

C'è un modo per scoprire rapidamente che non c'è storia per uno strumento (sia localmente che sul server)?

Qualsiasi richiesta di CopyXXX aspetta 30 secondi per recuperare i dati, e ci vuole un tempo irragionevolmente lungo per passare attraverso un gran numero di strumenti.

Per alcuni strumenti, aiuta a controllare se c'è un Bid (è vuoto), ma non per tutti gli strumenti.

Potete controllare su ICMarkets-MT5, strumentoWheat_U0.

È stato già scritto molte volte e qui c'è la prima cosa che ho trovato https://www.mql5.com/ru/forum/285631/page35#comment_9431199

In alternativa questi simboli hanno Ask e Bid == 0

Новая версия платформы MetaTrader 5 build 1930: Плавающие окна графиков и .Net библиотеки в MQL5
Новая версия платформы MetaTrader 5 build 1930: Плавающие окна графиков и .Net библиотеки в MQL5
  • 2018.11.20
  • www.mql5.com
26 октября 2018 года будет выпущена обновленная версия платформы MetaTrader 5...
 
Andrey Khatimlianskii:

C'è un modo per scoprire rapidamente che non c'è storia per uno strumento (sia localmente che sul server)?

Ogni richiesta di CopyXXX aspetta 30 secondi per recuperare i dati, e ci vuole un tempo irragionevolmente lungo per passare attraverso un gran numero di strumenti.

Per alcuni strumenti, aiuta a controllare se c'è un Bid (è vuoto), ma non per tutti gli strumenti.

Potete controllare su ICMarkets-MT5, strumentoWheat_U0

nell'indicatore non aspetterà il risultato di CopyXXX

come opzione nel timer nell'indicatore per elaborare CopyXXX e chiamare questo indicatore da EA

 
Vladimir Pastushak:

Questo è stato scritto più di una volta, e questo è il primo che ho trovato https://www.mql5.com/ru/forum/285631/page35#comment_9431199

Come variante di questi simboli Ask e Bid == 0

Circa zero Bid scritto in una volta, a volte non è zero.


Igor Makanu:

nell'indicatore non aspetterà il risultato di CopyXXX

un'opzione per elaborare CopyXXX nel timer nell'indicatore e chiamare questo indicatore da EA

Questa sì che è un'idea! Grazie, lo proverò.

 
fxsaber:

Il motivo per cui questo accade. Dopo il primo OrderSend, appare un ordine a mercato e se un nuovo tick arriva prima della sua esecuzione, non c'è ancora una posizione e viene effettuato il secondo OrderSend.

A causa di questo, un modello MT5 apparentemente normalenon funzionerà correttamente e, di conseguenza, la maggior parte degli Expert Advisors MT5 nel codebase. Allo stesso tempo il modello MT4 quasi identico continuerà a funzionare senza problemi.

L'idea apparentemente buona di PositionsTotal è in qualche modo oscurata dalla necessità in MT5 di analizzare anche OrdersTotal per gli ordini a mercato.

Fate attenzione!

Grazie per averlo sottolineato. Avevo questo in mente. Ma ora si è arrivati al punto di scrivere un EA, e mi sono chiesto se ha senso controllare le richieste inviate al server. Ipoteticamente, l'hai descritto correttamente, ma di fatto il server risponde rapidamente alle richieste, e una tale condizione non si verifica nella maggior parte dei casi (99%, credo). Ma la velocità dell'algoritmo ne soffrirà ogni volta. Quale pensi sia più importante?
 
Vasiliy_Saharov:
Grazie per averlo fatto notare. L'avevo in mente. Ma ora sono arrivato a scrivere un Expert Advisor e mi sono chiesto se ha senso controllare le richieste inviate a un server. Ipoteticamente, l'hai descritto correttamente, ma di fatto il server risponde rapidamente alle richieste, e una tale condizione non si verifica nella maggior parte dei casi (99%, credo). Ma la velocità dell'algoritmo ne soffrirà ogni volta. Quale pensi sia più importante?

Entrare nel mercato una volta con 2 lotti invece di 0,1, e la risposta è immediatamente ovvia )

 
Andrey Khatimlianskii:

Entrare nel mercato una volta con 2 lotti invece di 0,1, e la risposta è immediatamente ovvia )

Se avete un algoritmo per fare 0,1 lotti, allora c'è una probabilità di fare 0,1 due volte, e come penso che questa probabilità tende a zero, e tre volte, penso sia impossibile. Figuriamoci 20 volte. Dopotutto, stiamo parlando di roba di applicazione. Come regola generale, il server risponde probabilmente nel limite di 10minsec (è giusto? Non sono sicuro). Quanto è alta, secondo lei, la probabilità di ottenere una seconda transazione? Fai tu stesso questo controllo? Succede che il server può impiegare molto tempo per rispondere?
 
Vasiliy_Saharov:
Se avete un algoritmo per concludere 0,1 lotto, allora c'è una probabilità di farlo due volte per 0,1, e siccome penso che questa probabilità tende a zero, e tre volte, penso che sia impossibile. Figuriamoci 20 volte. Dopotutto, stiamo parlando di roba di applicazione. Come regola generale, il server risponde probabilmente nel limite di 10minsec (è giusto? Non sono sicuro). Quanto è alta, secondo lei, la probabilità di ottenere una seconda transazione? Fai tu stesso questo controllo? Succede che il server può impiegare molto tempo per rispondere?

Dalle statistiche: circa 200-300 scambi al giorno. Anche con controlli normali, ma senza controlli veramente difficili, in media 2-3 volte alla settimana ho beccato un'apertura di un doppio lotto. Calcola la probabilità e valuta se hai bisogno o sei pronto ad accettare tale probabilità. Personalmente, ho fatto i miei assegni al massimo.

Motivazione: