Con cosa sostituire OnTradeTransaction() in mql4? - pagina 2

 
Ihor Herasko:

E la disponibilità di luce e internet? Per non parlare della solita perdita di pacchetti di rete. Le Metaquotazioni sono diventate fighe - garantiscono tutto! ))

Igor, la soluzione a tutto questo è semplice o molto semplice. Se ci sono frequenti interruzioni di corrente, affittate un VPS. Se questi problemi si verificano anche sul VPS, cambiate il fornitore di servizi. Lo stesso vale per la perdita di Internet da parte dell'utente. È solo possibile aggiungere un'opzione per cambiare il provider di Internet. Se il problema si verifica al lato di DC... sapete come e dove mandarli...
 
Ihor Herasko:

E la disponibilità di luce e internet? Per non parlare della solita perdita di pacchetti di rete. Le Metaquotazioni sono diventate fighe - garantiscono tutto! ))

Forse neanche tu hai un computer?

 
Alexey Viktorov:
Igor, la soluzione a tutto questo è semplice o molto semplice. Se ci sono frequenti interruzioni di corrente, affittate un VPS. Se questi problemi si verificano anche sul VPS, cambiate il fornitore di servizi. Lo stesso vale per la perdita di Internet da parte dell'utente. È solo possibile aggiungere un'opzione per cambiare il provider di Internet. Se il problema si verifica al lato di DC... sapete come e dove mandarli...

E dire tutto questo agli utenti comuni che lavorano con gli esperti? Gli utenti non dovrebbero preoccuparsi di queste cose, altrimenti tale software è inutile.

 
prostotrader:

Forse neanche tu hai un computer?

Sì, su internet sono telepatico ))

 
Ihor Herasko:

Sì, su internet sono telepatico ))

Capisco, ma allora non fare affermazioni vaghe che potrebbero indurre in errore

i membri di questo forum confusi.

 
prostotrader:

Capisco, ma allora non fare affermazioni vaghe che potrebbero indurre in errore

membri di questo forum fuorvianti.

Questa affermazione è falsa

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

Come sostituire OnTradeTransaction() in mql4?

prostotrader, 2020.01.26 14:59

Sei irrimediabilmente fuori dal mondo!

Questi eventi sono garantiti da molto tempo!


Fare affidamento sull'assenza di un cliffhanger sul VPS quando si fa trading è un ulteriore rischio finanziario.

 
prostotrader:

Capisco, ma allora non fare affermazioni vaghe che potrebbero indurre in errore

i membri di questo forum confusi.

Non ci sono malintesi. Se state sviluppando un software, la prima cosa che vi viene richiesta è un funzionamento corretto e affidabile. Se il tuo Expert Advisor usa solo OnTrade e OnTradeTransaction per supportare le sue posizioni e i suoi ordini, il minimo fallimento nella ricezione delle informazioni da essi distorcerà il quadro generale (non sappiamo con certezza se un pacchetto viene perso dal server o meno). L'unico modo più o meno affidabile per raccogliere queste informazioni è quello di scorrere la lista delle posizioni/ordini. Anche allora, se si verifica una perdita di pacchetti, non può essere permanente. Alla fine (dopo due o tre interrogazioni) i dati saranno recuperati e il quadro generale sarà in pieno accordo con la realtà.

Detto questo, non sto sostenendo che usare OnTrade() e OnTradeTransaction() sia inutile. Possono essere usati come un canale alternativo per ottenere dati. Se l'informazione è arrivata attraverso questo canale, non abbiamo bisogno di controllare troppo le liste.

 

Sto scrivendo codice portatile. MT4/MT5 - grazie a MT4Orders.mqh del signor fxsaber. E tester/combattimento - grazie alla compilazione condizionale.

Per lo Strategy Tester, uso OnTradeTransaction e la memorizzazione dello stato dell'ambiente in variabili, che accelera notevolmente l'ottimizzazione. Per davvero - il polling del server, la velocità non conta qui.

 
Edgar Akhmadeev:

Uso OnTradeTransaction e la memorizzazione dello stato dell'ambiente in variabili per il tester, che accelera l'ottimizzazione.

Vi sarei grato se poteste fornire qualche esempio riproducibile (senza interrogare la storia del trading).

 

Se abbiamo bisogno di una soluzione rapida, allora metterei tutti i ticket inCArrayInt e confronterei i ticket degli ordini aperti con CArrayInt; il metodo Search() è lì; se non ci sono ticket, smettiamo di confrontare CArrayIntcon i contatori degli ordini aperti, resettare CArrayInt e scrivere di nuovo tutti i biglietti in CArrayInt e impostare globalmente il flag descritto MyOnTradeTransaction - il segno che l'elenco degli ordini è cambiato - il codice sarà abbastanza compatto