Mercado de valores. Acciones. Rapidez en la ejecución de las órdenes comerciales. - página 16

 
prostotrader #:

Andrey Miguzov Te estás metiendo en la cocina después de todo...

no hay órdenes de mercado en la bolsa

Yo también lo pensé al principio... Pero ponen operaciones en el mercado (en MOEX) - es fácil de comprobar desde el feed de operaciones.

Hay un problema con el tiempo de ejecución, intentaré solucionarlo a través del soporte técnico, pero un poco más tarde. Si no lo arreglan. Lo más probable es que me vaya. atrás. Si recuerdas, tampoco fue siempre así en Otkritie. Y, gracias a ti, se ha convertido en lo que es ahora.


Pero hay que entender la gran diferencia - MT5 en Otkritie es sólo MOEX - es mucho más fácil para ellos para configurar el terminal para trabajar en varias secciones en una bolsa. Y para colocar el equipo más cerca del intercambio. Y eso es porque todavía no han hecho un EBS.

Y Finam ofrece ahora EBS:

Y hasta todo lo que necesita un pequeño retraso, y esto es imposible incluso teóricamente. Entiendes las oportunidades que surgen con tal número de instrumentos, ¿no? En general, hay + y - en todas partes

SZS: No es realmente sobre este tema, pero aún así. Dadas las actuales sanciones contra el sector bancario, no estoy seguro de dónde es más seguro guardar los fondos ahora: en un corredor ruso (bajo sanciones) o en la "cocina". No escribo esto para hacer un alegato político, es que realmente no lo entiendo en este momento. No quiero ofender a nadie con esto.

 
prostotrader #:

Hoy en día, los dos terminales reales

Futuros

13 ms

Acciones

26ms y 28ms respectivamente

Añadido

Operaciones inversas
Futuros

7 ms

Acciones

26 ms y 27 ms respectivamente

Cuando miro tus registros y luego los míos - mis ojos comienzan a "sangrar". Voy a publicar los registros un poco más tarde - también en VTB alrededor del mismo tiempo.Teniendo en cuenta el análisis que escribí anteriormente.

 
Andrey Miguzov #:

Cuando miro tus registros y luego los míos, mis ojos empiezan a sangrar. Voy a publicar los registros un poco más tarde - también en VTB alrededor de la misma hora.Teniendo en cuenta el análisis que escribí anteriormente.

Tengo unos 20-30ms en futuros en Otkritie, ping a servidores 10-12ms.

 
Andrey Miguzov #:

ZS: No es realmente sobre este tema, pero aún así. Dadas las actuales sanciones contra el sector bancario, no estoy seguro de si es más seguro mantener los fondos en un corredor ruso (bajo sanciones) o en la "cocina". No escribo esto por una discusión política, es que realmente no lo entiendo en este momento. No quiero ofender a nadie.

Hay un proverbio ruso muy sabio:

"Donde has nacido, donde has nacido" ....

Añadido

Recogí un par de contratos a un buen precio


 
Andrey Miguzov #:

Conclusiones:

1) El tiempo en los registros y los tiempos de tic no son lo mismo, lo cual es lógico, pero nunca lo había pensado. En mi opinión, no es del todo correcto medir el tiempo de ejecución mediante los registros de la terminal.

2) Conociendo la hora del tick con una precisión de milisegundos (al precio al que se envía la orden desde el terminal), se puede entonces (utilizando el historial de los símbolos de baja liquidez) conocer la "hora de ejecución" real.

"tiempo_de_ejecución" = "tiempo_en_el_mercado_que_ha_llamado_la_transacción_en_la_terminal" - "tiempo_del_mercado_de_su_transacción".

Este tiempo incluirá todos los retrasos de la red desde la bolsa al terminal y de vuelta (a través del corredor) + el tiempo de procesamiento de la ejecución de la operación en la bolsa + eltiempo de procesamiento del tick por el experto

Escribiré sobre los resultados más adelante.

Los resultados reales (en este caso entrada por pico - salida por tiempo). Siento que haya mucho texto e imágenes. Las conclusiones se pueden leer inmediatamente, todo lo demás es sólo para confirmarlas.

Pestaña Asesores Expertos (la hora del tick que provoca la entrada/salida en/de la posición se resalta en amarillo):

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

Pestaña de entrada de 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)

Cinta de operaciones - entrada en acciones:


Cinta de acuerdos - entrada en los futuros


Resumen de la entrada:

Para las acciones:

1) De los registros de la terminal: 10:45:19.621 - 10:45:19.471 = 150ms

2) Tiempo de tick en el feed de operaciones: 10 :45:18.540 - 10:45:18.444 = 96 ms. ¡¡¡Y no entiendo cómo es posible!!!

Para los futuros:

1) De los registros de la terminal: 10:45:19.641 - 10:45:19.471 = 170ms.

2) Tiempo de tick en el feed de operaciones: 10:45:18.573 - 10:45:18.444= 129 ms. ¡¡¡Aquí tampoco entiendo cómo es posible!!!


En cuanto a las estadísticas, es lo mismo para la salida:

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)

Cinta de operaciones - salida de acciones:


Cinta de operaciones - salida en futuros:

Salida:

Para las acciones:

1) De los registros de la terminal: 12:45:21.841 - 12:45:21.670 = 171 ms.

2) Tiempo de tick en el feed de operaciones: 12:45:20.556 - 12:45:20.489= 67 ms. ¡¡¡Otra vez!!! ¡¡¡¡Y cómo de grande es la diferencia!!!!

Para los futuros:

1) Según los registros del terminal: 12:45:21.857 - 12:45:21.670 = 187 ms

2) Tiempo de tick en el feed comercial: 12:45:20.585- 12:45:20.489= 96 ms ...


Conclusiones:

Cuando se miden los retrasos reales de ejecución, no se pueden utilizar los registros del terminal. O debo usarlos de alguna otra manera, si alguien lo explica - estaré agradecido :)

Tiempo de "ejecución" en los registros - 150, 170, 171, 187 ms. Tiempo de ejecución de las operaciones - 96, 129, 67, 96 ms respectivamente. Diferencia media - 72,5 ms. La hora correcta está naturalmente en la bolsa. Y esto con un ping de 12 ms.


***La "ejecución" se refiere al intervalo de tiempo entre el envío de un tick "base" de la bolsa a través de un broker y la conclusión de mi operación en ese "tick" en la bolsa. Todo en función de la hora del intercambio.

En este tiempo se incluye supuestamente 2 (???? ahora duda) latencia de red de ~ 12 ms (ping) al corredor, el tiempo de procesamiento de la garrapata por el terminal, EA (voy a medir y añadir cómo muchos ~ ms en mi caso), el corredor de servidor, el intercambio + 2 latencias de red del corredor.


ZS: ¿cuánta "ejecución" en Otkritie entonces? :) Genial en general, me temía que fuera al revés y mucho peor...

 
Andrey Miguzov #:

Conclusiones:

Cuando se miden los retrasos de ejecución reales, no se pueden utilizar los registros de los terminales. O debería usarse de otra manera, si alguien me lo explica - le estaré agradecido :)

Tiempo de "ejecución" en los registros - 150, 170, 171, 187 ms. Tiempo de ejecución de las operaciones - 96, 129, 67, 96 ms respectivamente. Diferencia media - 72,5 ms. La hora correcta está naturalmente en la bolsa. Y esto con un ping de 12 ms.


***La "ejecución" se refiere al intervalo de tiempo entre el envío de un tick "base" de la bolsa a través de un broker y la conclusión de mi operación en ese "tick" en la bolsa. Todo según el momento del intercambio.

En este tiempo se supone que incluye 2 (???? ahora dudas) latencia de la red por ~12 ms (ping) al corredor, el tiempo de procesamiento de la garrapata por el terminal, EA (mido y añadir cuántos es ~ ms en mi caso), corredor de servidor, el intercambio + 2 latencias de la red del corredor.


ZS: ¿cuánta "ejecución" en Otkritie entonces? :) En general genial, me temía que fuera al revés y mucho peor...

Sólo quieres enlazar dos veces diferentes :)

En realidad es muy sencillo.

Tiempo de ejecución, es el tiempo de envío de la orden por el terminal y se escribe en el registro

2022.04.11 11:25:41.599 Trades  'ххххх': sell limit 1 VTBR-6.22 at 2273

antes del momento de la transacción, que también se escribe en el registro.

2022.04.11 11:25:41.612 Trades  'ххххх': deal #111208977 sell 1 VTBR-6.22 at 2273 done (based on order #199905491)

El tiempo registrado (es el mismo) será el tiempo de ejecución de la orden comercial (13 ms) más/menos el error de tiempo en que se mantiene el registro.

Toda la confusión se debe a que MT5 no funciona según la hora exacta de la bolsa, sino según su propia hora.

 
JRandomTrader #:

Tengo unos 20-30ms en Apertura en futuros, ping a servidores 10-12ms.

Por favor, prueba a todos los no indiferentes si es posible.

En ese lugar del código, donde se obtiene una marca para formar la orden:

 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); //имя инструмента

Y luego publicar lo que el EA mostrará y lo que estará en los registros de la terminal para esta orden.

Intentaré encontrarlo yo mismo en la línea de comercio. Sin embargo, no siempre es posible hacerlo: necesitamos volúmenes que no sean típicos + idealmente, necesitamos llenarlos a diferentes precios.

 
prostotrader #:

Sólo quieres enlazar dos veces diferentes :)

En realidad es muy sencillo.

Tiempo de ejecución, es el tiempo de envío de la orden por el terminal y se escribe en el registro

a la hora de la negociación, que también se escribe en el archivo de registro.

El tiempo registrado (es el mismo) será el tiempo de ejecución de la orden comercial (13 ms) más/menos el error de tiempo en que se mantiene el registro.

Toda la confusión surge porque MT5 no funciona exactamente por la hora de la bolsa, sino por su propia hora.

No los mezclo entre sí. Tomo dos veces de los troncos de los terminales en un caso y dos veces de la astilla de los tratos en el otro caso. Y es mucho menos con la cinta (en teoría debería ser al revés). Y la cinta tiene razón de todos modos.

Añadido:

Lo que pones como ejemplo son los registros de la terminal. Podemos ver cuánto tiempo ha pasado en los registros de la terminal. ¿Y cómo sabemos cuánto tiempo ha pasado en el intercambio? Sólo la cinta de los tratos.


Un ejemplo aproximado y breve:

Imaginemos que se trata de una "cocina". Pueden enviarnos en los registros que el tiempo de ejecución es de 1 ms. ¿Cómo comprobarlo? Vaya a la bolsa y mire la hora allí - esta es la única manera de entender aproximadamente si los registros están mintiendo o no.

 
Andrey Miguzov #:

No los mezclo. Tomo dos veces de los registros de la terminal en un caso y dos veces de la cinta de operaciones en el otro caso. Y es mucho menos para la cinta (aunque debería ser al revés). Y la cinta es correcta en cualquier caso.

Entonces no entiendo qué quieres averiguar.

¿La diferencia de tiempo entre las operaciones al contado y las de futuros?

 
prostotrader #:

Entonces no entiendo qué quieres averiguar.

¿La diferencia de tiempo entre las operaciones al contado y las de futuros?

Añadido al post anterior.

El algoritmo es el siguiente:

Recibimos un tick de la bolsa (la hora del tick es T1).

Lo analizamos y decidimos enviar una orden de compra/venta sobre el símbolo

Enviamos un pedido

La bolsa lo ejecuta y fija la hora de ejecución en la casilla (hora de la bolsa - T2)

Me interesa el tiempo = T2-T1