Mercato azionario. Azioni. Velocità di esecuzione degli ordini commerciali. - pagina 16
![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Andrey Miguzov Stai entrando in cucina dopo tutto...
non ci sono ordini di mercato nel mercato azionario
Lo pensavo anch'io all'inizio... Ma mettono le transazioni nel mercato (su MOEX) - è facile da controllare dal feed delle transazioni.
C'è un problema con il tempo di esecuzione, cercherò di risolverlo attraverso il supporto tecnico, ma un po' più tardi. Se non lo aggiustano. Molto probabilmente me ne andrò. indietro. Se vi ricordate, non è sempre stato così neanche a Otkritie. E, grazie a voi, è diventato quello che è ora.
Ma devi capire la grande differenza - MT5 in Otkritie è solo MOEX - è molto più facile per loro impostare il terminale per lavorare su diverse sezioni su una borsa. E per posizionare l'attrezzatura più vicino allo scambio. E questo perché non hanno ancora fatto un EBS.
E Finam offre ora EBS:
E fino a tutto ciò che è necessario un piccolo ritardo, e questo è impossibile anche teoricamente. Lei capisce quali opportunità si presentano con un tale numero di strumenti, vero? In generale, ci sono + e - ovunque
SZS: Non proprio su questo argomento, ma comunque. Date le attuali sanzioni contro il settore bancario non sono sicuro di dove sia più sicuro tenere i fondi ora: con un broker russo (sotto sanzioni) o nella "cucina". Non sto scrivendo questo per il gusto di un discorso politico, è solo che al momento non lo capisco proprio. Non voglio offendere nessuno con questo.
Oggi, entrambi i terminali reali
Futures
13 ms
Azioni
26ms e 28ms rispettivamente
Aggiunto
Reverse trades
Futures
7 ms
Azioni
26 ms e 27 ms rispettivamenteQuando guardo i vostri registri e poi i miei - i miei occhi cominciano a "sanguinare". Posterò i log un po' più tardi - anche su VTB verso la stessa ora - tenendo conto dell'analisi che ho scritto sopra.
Quando guardo i tuoi registri e poi i miei, i miei occhi cominciano a sanguinare. Un po' più tardi posterò i registri - anche su VTB intorno alla stessa ora - tenendo conto dell'analisi di cui ho scritto sopra.
Ho circa 20-30ms su futures in Otkritie, ping ai server 10-12ms.
ZS: Non proprio su questo argomento, ma comunque. Date le attuali sanzioni contro il settore bancario, non sono sicuro se sia più sicuro tenere i fondi con un broker russo (sotto sanzioni) o nella "cucina". Non sto scrivendo questo per il gusto di un discorso politico, è solo che al momento non lo capisco proprio. Non voglio offendere nessuno.
C'è un proverbio russo molto saggio:
"Dove sei nato, dove sei nato" ....
Aggiunto
Preso un paio di contratti a un prezzo gustoso
Conclusioni:
1) Il tempo nei log e i tempi di tick non sono gli stessi, il che è logico, ma non ci avevo mai pensato prima. IMHO, non è del tutto corretto misurare il tempo di esecuzione dai log del terminale.
2) Conoscendo il tempo del tick con la precisione dei millisecondi (al prezzo di cui l'ordine viene inviato dal terminale), è possibile poi (utilizzando la storia degli strumenti a bassa liquidità) conoscere il "tempo di esecuzione" effettivo.
"time_execution_time" = "time_in_the_market_that_called_transaction_in_terminal" - "time_the_market_time_of_your_transaction".
Questo tempo includerà tutti i ritardi di rete dalla borsa al terminale e viceversa (attraverso il broker) + il tempo di elaborazione dell'esecuzione dell'affare sulla borsa +il tempo di elaborazione del tick da parte dell'esperto
Scriverò dei risultati più tardi.
I risultati effettivi (in questo caso entrata per picco - uscita per tempo). Mi dispiace che ci sia molto testo e molte immagini. Si possono leggere immediatamente le conclusioni, tutto il resto è solo per confermarle.
Scheda Expert Advisors (il tempo del tick che causa l'entrata/uscita nella/dalla posizione è evidenziato in giallo):
Scheda voce di registro:
Nastro degli scambi - voce sulle azioni:
Nastro di accordi - ingresso su futures
Riassunto dell'iscrizione:
Per le azioni:
1) Dai log del terminale: 10:45:19.621 - 10:45:19.471 = 150ms
2) Tempo di tick nel feed degli scambi: 10:45:18.540 - 10:45:18.444 = 96 ms. E non capisco come sia possibile!!!
Per i futures:
1) Dai log del terminale: 10:45:19.641 - 10:45:19.471 = 170ms.
2) Tempo di tick nel feed degli scambi:10:45:18.573 - 10:45:18.444= 129 ms. Anche qui non capisco come sia possibile!!!
Ora per le statistiche, è lo stesso per l'uscita:
Nastro delle transazioni - uscita delle azioni:
Nastro delle transazioni - uscita sui futures:
Uscita dall'uscita:
Per le azioni:
1) Dai log del terminale: 12:45:21.841 - 12:45:21.670 = 171 ms.
2) Tempo di tick nel feed degli scambi:12:45:20.556 - 12:45:20.489= 67 ms. Di nuovo!!! E quanto è grande la differenza!!!!
Per i futures:
1) Secondo i log del terminale: 12:45:21.857 - 12:45:21.670 = 187 ms
2) Tempo di tick nel trade feed: 12:45:20.585- 12:45:20.489= 96 ms ...
Conclusioni:
Quando si misurano i ritardi effettivi di esecuzione - non si possono usare i log del terminale ! O dovrei usarli in qualche altro modo, se qualcuno lo spiega - gliene sarò grato :)
Tempo di "esecuzione" nei registri - 150, 170, 171, 187 ms. Tempo di esecuzione degli affari - 96, 129, 67, 96 ms rispettivamente . Differenza media - 72,5 ms. L'ora corretta è naturalmente sul cambio. E questo con un ping di 12 ms.
***La "esecuzione" si riferisce all'intervallo di tempo tra l'invio di un tick "base" dalla borsa tramite un broker e il mio trade su quel "tick" sulla borsa. Tutto secondo l'ora dello scambio.
In questo tempo è presumibilmente include 2 (???? ora dubbi) latenza di rete da ~ 12 ms (ping) al broker, tempo di elaborazione tick da terminale, EA (misuro e aggiungere quanti è ~ ms nel mio caso), server broker, scambio + 2 latenze di rete del broker.
ZS: quanto "esecuzione" a Otkritie allora? :) Forte in generale, avevo paura che sarebbe stato il contrario e molto peggio...
Conclusioni:
Quando si misurano i ritardi effettivi di esecuzione - i log del terminale non possono essere utilizzati ! O dovrebbe essere usato in un altro modo, se qualcuno può spiegarlo - gliene sarei grato :)
Tempo di "esecuzione" nei registri - 150, 170, 171, 187 ms. Tempo di esecuzione degli affari - 96, 129, 67, 96 ms rispettivamente . Differenza media - 72,5 ms. L'ora corretta è naturalmente sul cambio. E questo con un ping di 12 ms.
***L'"esecuzione" si riferisce all'intervallo di tempo tra l'invio di un tick "base" dalla borsa tramite un broker e la conclusione del mio trade su quel "tick" in borsa. Tutto secondo l'ora dello scambio.
In questo tempo è presumibilmente include 2 (???? ora dubbi) latenza di rete da ~ 12 ms (ping) al broker, tempo di elaborazione tick da terminale, EA (misuro e aggiungere quanti è ~ ms nel mio caso), server broker, scambio + 2 latenze di rete del broker.
ZS: quanto "esecuzione" a Otkritie allora? :) In generale va bene, avevo paura che sarebbe stato il contrario e molto peggio...
Vuoi solo collegare due tempi diversi :)
In realtà è molto semplice.
Tempo di esecuzione, questo è il tempo di invio dell'ordine da parte del terminale e viene scritto nel log
2022.04.11 11:25:41.599 Trades 'ххххх': sell limit 1 VTBR-6.22 at 2273
prima del momento della transazione, che viene anche scritto nel log.
2022.04.11 11:25:41.612 Trades 'ххххх': deal #111208977 sell 1 VTBR-6.22 at 2273 done (based on order #199905491)
Il tempo registrato (è lo stesso) sarà il tempo di esecuzione dell'ordine di compravendita (13 ms) più/meno l'errore di tempo a cui è tenuto il registro.
Tutta la confusione nasce perché MT5 non lavora secondo l'ora esatta della borsa, ma secondo la propria ora.
Ho circa 20-30ms in apertura su futures, ping ai server 10-12ms.
Si prega di testare a tutti non indifferente se possibile.
In quel posto del codice, dove si ottiene un segno di spunta per formare l'ordine:
E poi pubblicare ciò che l'EA mostrerà e ciò che sarà nei log del terminale per questo ordine.
Cercherò di trovarlo io stesso nella pipeline dei commerci. Tuttavia, non è sempre possibile farlo - avete bisogno di volumi che non sono tipici + idealmente, riempimento a prezzi diversi.
Vuoi solo collegare due tempi diversi :)
In realtà è molto semplice.
Tempo di esecuzione, questo è il tempo di invio dell'ordine da parte del terminale e viene scritto nel log
al tempo di scambio, che viene anche scritto nel file di log.
Il tempo registrato (è lo stesso) sarà il tempo di esecuzione dell'ordine di compravendita (13 ms) più/meno l'errore di tempo a cui è tenuto il registro.
Tutta la confusione nasce dal fatto che MT5 non lavora esattamente all'ora dello scambio e alla sua ora.
Non li mischio insieme. Prendo due volte dai tronchi terminali in un caso e due volte dalla scheggia di accordi nell'altro caso. Ed è molto meno con il nastro (dovrebbe essere viceversa in teoria). E il nastro ha comunque ragione.
Aggiunto:
Quello che lei dà come esempio sono i log del terminale. Possiamo vedere quanto tempo è passato nei log del terminale. E come facciamo a sapere quanto tempo è passato nello scambio? Solo il nastro degli accordi.
Un esempio approssimativo e breve:
Immaginiamo di avere a che fare con una "cucina". Possono inviarci nei log che il tempo di esecuzione è di 1 ms. Come controllarlo? Andate allo scambio e guardate l'ora lì - questo è l'unico modo per capire approssimativamente se i registri stanno mentendo o no.
Non li mischio insieme. Prendo due volte dai log del terminale in un caso e due volte dal nastro dei trade nell'altro caso. Ed è molto meno per il nastro (anche se dovrebbe essere il contrario). E il nastro è corretto in ogni caso.
Allora non capisco cosa vuoi scoprire?
La differenza di tempo tra gli scambi di spot e futures?
Allora non capisco cosa vuoi scoprire?
La differenza di tempo tra gli scambi di spot e futures?
Aggiunto al post sopra.
L'algoritmo è il seguente:
Riceviamo un tick dalla borsa (il tempo del tick è T1).
Lo analizziamo e decidiamo di inviare un ordine di acquisto/vendita sul simbolo
Inviamo un ordine
Lo scambio lo esegue e fissa il tempo di esecuzione nella casella di spunta (tempo dello scambio - T2)
Mi interessa il tempo = T2-T1