Errori, bug, domande - pagina 2077

 
Aleksey Vyazmikin:

Ma per un limite sarebbe ok, ma quando si compra a libro, mi sembra strano che le informazioni sull'affare arrivino in porzioni.

Come posso sapere qual era il volume se un EA apre una posizione e un altro la elabora?

State riempiendo i limiti di qualcun altro con il vostro ordine a mercato. E non riempite necessariamente il limite di una controparte (se il vostro lotto di ordine > 1).

Come scoprirlo. Nell'Expert Advisor che elabora la storia, richiedete proprio questa storia se c'è una posizione aperta. E controlla se l'ordine che ha iniziato il commercio della posizione corrente è stato processato.

 
Alexey Kozitsyn:

Riempi i limiti di altre persone con il tuo ordine di mercato. E non riempite necessariamente il limite della stessa controparte (se il vostro lotto d'ordine > 1).

Come scoprirlo. Nell'Expert Advisor che elabora la storia, richiedete proprio questa storia se c'è una posizione aperta. E controlla se l'ordine che ha iniziato il commercio della posizione corrente è stato processato.


È chiaro che prendo i limiti, ma il riempimento non avviene immediatamente? Non vedo l'ordine scattare ad ogni contatore o livello di prezzo, ma in diverse parti.

Cosa vuol dire, l'ordine è stato processato o no? Ho iniziato un ordine a mercato e ha uno stato intermedio "in corso di esecuzione"? Come si inizializza?

 
Aleksey Vyazmikin:

È comprensibile che io versi dei limiti, ma il versamento non avviene immediatamente? Non è ogni contro agente o livello di prezzo che si innesca, ma in parti - non vedo uno schema.

Cosa vuol dire, l'ordine è stato processato o no? Ho iniziato un ordine a mercato e ha uno stato intermedio "in corso di esecuzione"? Come si inizializza?

Il tuo ordine di mercato inizia le negoziazioni. Ci può essere più di un trade se l'ordine limite più vicino non copre l'intero volume del vostro ordine a mercato.

Se non è chiaro, leggete l'articolo sui prezzi di scambio.

Cosa vuoi dire? Volete un secondo EA che elabori l'ordine una volta sola, giusto? Se è così, allora dovresti probabilmente ricordare il numero dell'ultimo ordine elaborato.

 
Alexey Kozitsyn:

Il tuo ordine di mercato inizia le negoziazioni. Ci può essere più di un trade nel caso in cui l'ordine limite più vicino non copra l'intero volume del vostro ordine a mercato.

Se non è chiaro, leggi l'articolo sui prezzi di scambio.


Ilprezzo di scambio è chiaro, non è questa la questione - è chiaro che ci possono essere molti accordi su un ordine, non è chiaro, l'altro è perché le informazioni su tutti gli accordi non arrivano in una sola volta - perché in realtà l'evento si verifica in una sola volta. O mi sbaglio e c'è un ritardo speciale tra ogni affare fornito dallo scambio? Se è così, per favore datemi un link per leggerlo.

Alexey Kozitsyn:

Cosa vuoi dire? Vuoi elaborare l'ordine una volta dal secondo EA, giusto? Se è così, allora probabilmente devi ricordare il numero dell'ultimo ordine elaborato.

Voglio controllare la posizione per alcuni criteri - SL/TP e volume. In questo caso una parte della posizione può essere formata da un altro ordine. Ok, mi ricordo il numero d'ordine nella cronologia, cosa devo fare dopo?
 
Aleksey Vyazmikin:

O mi sbaglio e c'è un ritardo speciale fornito dallo scambio tra ogni transazione?

Bene, controlla, chi ti ferma? Non ho sentito parlare di alcun ritardo speciale.

Voglio controllare la posizione per il rispetto di certi criteri - SL/TP e volume. Allo stesso tempo una parte della posizione può essere formata da un altro ordine. Ok, ho memorizzato il numero dell'ordine nella storia.

Bene, allora esaminate la posizione. Avete trovato la posizione - richiedete i suoi parametri. È possibile richiedere parametri su ogni tick. O dopo che l'evento OnTrade() si è verificato.

Se avete bisogno che la posizione sia processata solo dopo che l'ordine è stato completamente riempito, forse avete bisogno di OnTradeTransaction().

 
Alexey Kozitsyn:

Allora controlla, chi ti ferma? Non ho mai sentito parlare di ritardi speciali.


Beh, forse sto facendo qualcosa di sbagliato, ecco perché il risultato è così... quindi se c'è una risposta esatta, è chiaro in che direzione andare. Ma, comincerò a controllare, è solo che nei tester e in altri simulatori tutto funzionava bene, e ieri nella vita reale mi ha morso a causa di questo bug-specialità.

Alexey Kozitsyn:

Quindi considera la posizione. Trovata una posizione - richiedi i suoi parametri. È possibile richiedere parametri su ogni tick. O dopo che l'evento OnTrade() si è verificato.

Lo controllo in questo modo in OnTrade() - e ottengo una strana situazione... Bene, scriverò i registri in dettaglio per capire cosa sta succedendo. Solo che non so come riconoscere che l'ordine a mercato è ancora scambiato.


AlexeyKozitsyn:

Se volete che la posizione sia elaborata solo dopo che l'ordine è stato completamente riempito, forse, avete bisogno della funzione OnTradeTransaction().

OnTradeTransaction(), da quanto ho capito funziona solo sullo stesso terminale in cui viene fatta la compravendita, e nel mio caso sono computer diversi.
 
Aleksey Vyazmikin:

Non è possibile controllare tutte le caratteristiche del FORTS reale nel tester. Versare un ordine è uno di questi.

 
Alexey Kozitsyn:

Non è possibile controllare tutte le caratteristiche del FORTS reale nel tester. Versare un ordine è uno di questi.


Lo slittamento è selvaggio - 10 punti a testa - il bicchiere è vuoto, sembra che gli arbitraggisti siano gli unici...

 

Così, guardo la chiusura di 30 lotti per SL e vedo cheOnTrade() è entrato quando c'erano 30, poi 25, 25,25, 16,5,1,0 ben 39 volte!

Allo stesso tempo vedo che la posizione si è chiusa con trade:5,2,2,1,3,1,4,1,2,1,1,2,3,1,1 - cioè 15 volte! Chiedo agli sviluppatori un chiarimento su questo punto.

 
I commenti non pertinenti a questo argomento sono stati spostati in "Indicatore per indicatore".