Mercato azionario. Azioni. Velocità di esecuzione degli ordini commerciali. - pagina 16

 
prostotrader #:

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.

 
prostotrader #:

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 rispettivamente

Quando 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.

 
Andrey Miguzov #:

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.

 
Andrey Miguzov #:

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


 
Andrey Miguzov #:

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):

2022.04.11 10:45:19.471 Цена входа bid: 755.8 EMA_ask = 519.7 Цена фьючерса: 2309.0 Цена акции: 0.022570 Время тика: 10:45:18.444 по символу VTBR
2022.04.11 12:45:21.670 Цена выхода ask: 549.0 Цена фьючерса: 2252.0 Цена акции: 0.022170 Время тика: 12:45:20.489 по символу VTBR

Scheda voce di registro:

2022.04.11 10:45:19.476 '': exchange buy 150 VTBR at market
2022.04.11 10:45:19.476 '': exchange sell 15 VBM2 at market
2022.04.11 10:45:19.486 '': accepted exchange buy 150 VTBR at market
2022.04.11 10:45:19.491 '': exchange buy 150 VTBR at market placed for execution in 15.925 ms
2022.04.11 10:45:19.491 '': accepted exchange sell 15 VBM2 at market
2022.04.11 10:45:19.491 '': exchange sell 15 VBM2 at market placed for execution in 13.994 ms
2022.04.11 10:45:19.621 '': deal #2305398 buy 150 VTBR at 0.022570 done (based on order #204678572)
2022.04.11 10:45:19.636 '': deal #2305399 sell 1 VBM2 at 2304 done (based on order #204678573)
2022.04.11 10:45:19.641 '': deal #2305400 sell 14 VBM2 at 2303 done (based on order #204678573)

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:

2022.04.11 12:45:21.685 '': exchange sell 150 VTBR at market, close #204678572 buy 150 VTBR 0.022570
2022.04.11 12:45:21.685 '': exchange buy 15 VBM2 at market, close #204678573 sell 15 VBM2 2303.067
2022.04.11 12:45:21.701 '': accepted exchange sell 150 VTBR at market, close #204678572 buy 150 VTBR 0.022570
2022.04.11 12:45:21.701 '': exchange sell 150 VTBR at market, close #204678572 buy 150 VTBR 0.022570 placed for execution in 19.305 ms
2022.04.11 12:45:21.701 '': accepted exchange buy 15 VBM2 at market, close #204678573 sell 15 VBM2 2303.067
2022.04.11 12:45:21.701 '': exchange buy 15 VBM2 at market, close #204678573 sell 15 VBM2 2303.067 placed for execution in 18.989 ms
2022.04.11 12:45:21.841 '': deal #2307117 sell 150 VTBR at 0.022170 done (based on order #204986103)
2022.04.11 12:45:21.857 '': deal #2307118 buy 6 VBM2 at 2252 done (based on order #204986104)
2022.04.11 12:45:21.857 '': deal #2307119 buy 9 VBM2 at 2252 done (based on order #204986104)

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...

 
Andrey Miguzov #:

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.

 
JRandomTrader #:

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:

 Print(" Время тика: ", 
       TimeToString((datetime)MathMax(last_tick_stocks.time,last_tick_futures.time),TIME_SECONDS), //в моём случае вход сразу по 2-м инструментам, у Вас возможно 1 символ
       ".", 
       MathMax(last_tick_stocks.time_msc,last_tick_futures.time_msc)%1000, //добавляет мс в строку
       " по символу ", 
       stocks_name); //имя инструмента

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.

 
prostotrader #:

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.

 
Andrey Miguzov #:

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?

 
prostotrader #:

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

Motivazione: