Errori, bug, domande - pagina 2186

 
fxsaber:

Domanda sulla MT4.

L'ho già incontrato una volta e mi sono imbattuto di nuovo in questo bug in un test HFT.

Ho impostato il BuyLimit, il prezzo lo rompe e rimane giù per molti minuti. Allo stesso tempo BuyLimit è illuminato di giallo ma "non eseguito".


I tentativi di modificarlo danno

2018.04.09 19:15:41.242 '89015117': modification of invalid order #108362456

Quando l'ho visto, mi sono ricordato di questa situazione di tanto tempo fa. La ricetta di allora e di adesso è sempre la stessa: riconnettersi. Dopo il contatto si scopre che BuyLimit è stato a lungo (dal momento dell'incrocio) una posizione Buy.

Allo stesso tempo prima della riconnessione abbiamo potuto scambiare altri ordini e tutto era a posto con loro, solo il BuyLimit era in bilico.


Risulta che non c'è alcuna notifica nel terminale MT4 che BuyLimit è diventato una posizione Buy. E, di conseguenza, è una seccatura fino a quando non si fa un re-login.

Devo ricordare come ho risolto questa situazione. Ma sono sicuro al 99% che in caso di errori o stranezze sono stato semplicemente costretto a rifare il login attraverso WinAPI.

Ha senso scrivere a SD a questo proposito, visto che dopo tutto si tratta di MT4? Non ho notato nulla di simile in 5.


Sembra provenire dalla stessa idea:

Ciao! In MT4, quando si cancella un ordine Limit posto all'interno dello spread, si verifica spesso una situazione di errore - l'ordine da cancellare si blocca, che può essere risolto solo ricaricando il terminale. Per quanto ho capito il meccanismo , avviene nel modo seguente:

1 ) Impostiamo un limite all'interno dello spread, vicino al prezzo Ask (per gli ordini Buy Limit) o Bid (per gli ordiniSell Limit) e dopo qualche tempo proviamo a cancellarlo.

2 ) Inviamo un comando OrderDelete(), mentre questo comando va al server, l'ordine può essere già eseguito sul server (è dentro lo spread, molto vicino al prezzo di attivazione). Sembra che quando il comando raggiunge il server, venga applicato all'ordine di mercato e otteniamo un errore nel terminale e un ordine congelato. In questo caso, l'ordine nel terminale rimane un ordine limite (definito anche come un ordine limite dalla funzione OrderType()) e apparirà come un ordine a mercato solo dopo un riavvio del terminale. Se continui a cancellarlo come limite uno , vedrai un errore nel log di Expert Advisor con il codice: 3, e nel log del terminale:[Invalid parameters]. In realtà, non sono possibili azioni con un tale ordine sospeso - è un ordine limite nel terminale del cliente e un ordine a mercato sul server . L'ordine non può nemmeno essere cancellato manualmente.

Allego un EA semplificato (solo per Buy Limit), per la riproduzione dell'errore e un profilo con 8 EA installati in parallelo (l'errore appare più velocemente, che se l'errore è catturato da un solo EA - anche se si verifica anche con un EA installato). L'ordine di acquisto Limit è impostato a 1 punto a cinque cifre sotto il prezzo Ask e viene rimosso dopo 1 secondo dopo essere stato impostato. Se impostate un ordine anche 5 punti sotto il prezzo Ask e lo cancellate dopo un qualsiasi numero di secondi/minuti/ore, l'errore si verificherà ancora di tanto in tanto, solo meno frequentemente perché il meccanismo della sua comparsa non cambia.

È necessario avviare il terminale e aspettare che l'ordine in sospeso appaia. Di solito non si dovrebbe aspettare più di un'ora, a seconda dell'attività del mercato.


Applicazione aperta, Iniziato: 2017.06.06.12:37, #1766459


Nell'ottobre 2017, mi è stato scritto da servicedesk che erano riusciti a riprodurre questa situazione e che stavano lavorando a una soluzione del problema. E da allora c'è stato silenzio...

 
Pavel Kolchin:

il prodotto non può essere scaricato dal marketplace, cosa posso fare?


Prova di nuovo.

 
zenz:


Questo è della stessa linea, come sembra:

In MT4, quando si cancella un ordine limite situato all'interno di uno spread, si verifica spesso una situazione di errore - l'ordine cancellato si blocca, che può essere curata solo riavviando il terminale. Per quanto ho capito il meccanismo , avviene nel modo seguente:

1 ) Impostiamo un limite all'interno dello spread, vicino al prezzo Ask (per ordini Buy Limit) o Bid (per ordiniSell Limit) e dopo un po' di tempo cerchiamo di cancellarlo.

2 ) Inviamo un comando OrderDelete(), mentre questo comando va al server, l'ordine può essere già eseguito sul server (è dentro lo spread, molto vicino al prezzo di attivazione). Sembra che quando il comando raggiunge il server, sarà applicato all'ordine di mercato e otterremo un errore nel terminale e un ordine congelato. In questo caso, l'ordine nel terminale rimane un ordine limite (definito anche come un ordine limite dalla funzione OrderType()) e apparirà come un ordine a mercato solo dopo un riavvio del terminale. Se continui a cancellarlo come limite uno , vedrai un errore nel log di Expert Advisor con il codice: 3, e nel log del terminale:[Invalid parameters]. In realtà, non sono possibili azioni con un tale ordine sospeso - è un ordine limite nel terminale del cliente e un ordine a mercato sul server . L'ordine non può nemmeno essere cancellato manualmente.

Allego un EA semplificato (solo per Buy Limit), per la riproduzione dell'errore e un profilo con 8 EA installati in parallelo (l'errore appare più velocemente, che se l'errore è catturato da un solo EA - anche se si verifica anche con un EA installato). L'ordine di acquisto Limit è impostato a 1 punto a cinque cifre sotto il prezzo Ask e viene rimosso dopo 1 secondo dopo essere stato impostato. Se impostate un ordine anche 5 punti sotto il prezzo Ask e lo cancellate dopo un qualsiasi numero di secondi/minuti/ore, l'errore si verificherà ancora di tanto in tanto, solo meno frequentemente perché il meccanismo della sua comparsa non cambia.

È necessario avviare il terminale e aspettare che l'ordine in sospeso appaia. Di solito non si dovrebbe aspettare più di un'ora, a seconda dell'attività del mercato.


Applicazione aperta, Iniziato: 2017.06.06.12:37, #1766459


Nell'ottobre 2017, mi è stato scritto da servicedesk che sono riusciti a riprodurre questa situazione e che stanno lavorando a una soluzione del problema. E da allora c'è stato silenzio....

Complimenti a voi per essere andati fino in fondo, compresa la riproduzione! Infatti, l'ambiente di trading nel terminale non è ancora sincronizzato con il Trade Server.

Tuttavia, non ci sono stati aggiornamenti dopo maggio 2017 (build 1090) e il problema è stato riprodotto in ottobre. La tempistica è difficile da dire anche per MT5, e ancora di più per la 4.

A quanto pare, gli sviluppatori non hanno considerato questo bug critico. Penso che sia inaccettabile. Penso che sia inaccettabile, perché quasi nessuno lavora con ordini limite e all'interno dello spread.


ZZY Nella tua domanda al BOD, salutami da parte mia. Forse è banale, l'hanno dimenticato.

 
Fast235:

perché c'è scritto Backtest quando si salva un rapporto di trading?



Questo è il rapporto della scheda "Backtest" nel tester della strategia, giusto?

 
Alexander:

Questo è il rapporto della scheda "Backtest" nel tester della strategia, giusto?


È solo un modo nascosto per promuovere il tuo rapporto.

 

Potreste dirmi qual è l'errore?

(2018.04.10 15:20:13.844 La versione di debug del tester di "MQL5\Experts\Probe5.ex5" può essere ottimizzata solo su agenti locali, no Cloud, no Farm)

Sono già fregato con l'ottimizzazione. O accetta di funzionare sulla rete locale, o non lo fa!

 
AVAAR:

Potresti dirmi per favore qual è l'errore?

(2018.04.10 15:20:13.844 La versione di debug del tester di "MQL5\Experts\Probe5.ex5" può essere ottimizzata solo su agenti locali, no Cloud, no Farm)

Sono già fregato con l'ottimizzazione. O accetta di funzionare sulla rete locale o non lo fa!

Compila con F7, non con F5.

 
AVAAR:

Potreste dirmi qual è l'errore?

(2018.04.10 15:20:13.844 La versione di debug del tester di "MQL5\Experts\Probe5.ex5" può essere ottimizzata solo su agenti locali, no Cloud, no Farm)

Sono già fregato con l'ottimizzazione. O è d'accordo sulla rete locale, o non lo è!

Iltesto evidenziato è la radice del tuo errore.

Dovete compilare il file prima di ottimizzarlo.

 
Alexander:

Questo è il rapporto della scheda Backtest nel tester della strategia, giusto?

No, questo è dalla modalità Strumenti, trading reale, volevo mostrare il risultato, ma dice Backtest)

dai campi aggiuntivi di Strategy Tester nel rapporto

 
Vladislav Andruschenko:


È solo un modo mascherato di promuovere il tuo rapporto.

almeno non è un pipsqueak)