Ticks del futuro IBEX35

El foro de los productos derivados
Responder
pinoy
Mensajes: 273
Registrado: 07 Jul 2006 12:20

Ticks del futuro IBEX35

Mensaje por pinoy »

Hola a todos.
A ver si alguno le interesa.
Utilizo IB para recibir los ticks del futuro de IBEX35, y he comprobado que existen diferencias entre lo que recibo y lo que meff indica en sus ficheros de ticks a cierre de dia.
Entonces, me gustaria saber si es un problema de IB (que creo que es asi, simplemente no envia todos los ticks que se producen en un mismo segundo), o el problema es otro.
Alguno recibe y almacena los ticks del futuro IBEX desde IB ?
La idea sería el comprobar el fichero que almaceno yo con el que tengais vosotros, con eso se comprobaria si IB manda a todos los clientes la misma informacion...

Si hay algun interesado, podremos comparar un dia y ver que pasa.

H.Seldon
Mensajes: 546
Registrado: 26 Abr 2005 14:38

Mensaje por H.Seldon »

En realidad el proceso de envío y recepción de los cruces es complicado. Existen varias tecnologías y modelos de comunicación, y cada cual tiene sus ventajas e inconvenientes. Vaya por delante que prácticamente es imposible recibir todos los cruces que se producen en el mercado a través de internet. Siempre se perderán un número indeterminado de paquetes de datos.

En realidad el mercado (pongamos por caso el MEFF) es un gran ordenador (es un cluster de ellos, pero lo tomaremos por uno sólo). Si te enchufas por cable de calidad, en una conexión directa con ese ordenador (caso de los brokers y resellers de datos), pues recibirás la práctica totalidad de los datos (posiciones, cruces...)
Pero si el broker o agencia de valores tiene que redistribuir los datos y difundirlos por internet, pues aquí viene el lío.
El streaming usa protocolos ligeros (UDP y RTSP) que entregan paquetes de servidor a cliente de forma contínua, sin esperar peticiones (como haría TCP). Sin embargo, si se pierde algún paquete (cosa normal en internet), no hay una petición de reenvío, porque el cliente no sabe que hubo un envío de ese paquete en concreto.

La situación es peor si se conecta el graficador a la TWS. Imagínatelo de esta forma: la TWS recibe los datos (ya incompletos) y espera a que se los pida el Amibroker (por ejemplo). El mecanismo es que la TWS escribe los datos en una zona de memoria, accesible a través de un puerto. El Ami lee los datos directamente de esa zona en ese puerto.
Pero el Ami no sabe cuando habrá un nuevo dato. Para ello tiene que ir leyendo continuamente en ese puerto, por si hay nuevos datos. ¿Cada cuanto tiempo? Pues lo mínimo que puedes poner es de 1 segundo. Es decir, que si en ese segundo hay 3 cruces a 3 precios diferentes, a ti te aparece como un solo tick nuevo. (Se configura en Tools --> Preferences --> Intraday, en el campo "Realtime chart refresh interval [sec]")
En cualquier caso, para operar fluidamente esto es más que suficiente, y hay que tener en cuenta que aún es peor el DDE.

Por tanto, respondiento a tu duda, pues si: IB (ni nadie) envía todos los ticks que se producen en un mismo segundo, o si los envía, muchos se pierden por el camino. Además, si comparamos un fichero de ticks tuyo y otro mio, probablemente también haya diferencias, por el mismo motivo.

Me consta que una de las mejores capacidades de streaming de datos son la de prorealtime, lástima que el software sea tan cutre (no permite históricos, entre otras muchas carencias).

saludos (y vaya ladrillo !)
Avatar de Usuario
ondu
Mensajes: 865
Registrado: 18 May 2006 21:36

Mensaje por ondu »

Enas, hola H.seldon, pues en mis capturas tanto interactive brokers como el visual chart 4 tratan los paquetes con - TCP - es decir, si falla un paquete se le vuelve a enviar, no aparece ni el UDP ni el RTSP y aparece el FIX, Financial information exchange protocol en interactive brokers, es decir el fallo de paquetes no deberia producirse, podrias confirmar que no aparecen el UDP ni el RTSP con visual chart e interactive.

saludos !!!
H.Seldon
Mensajes: 546
Registrado: 26 Abr 2005 14:38

Mensaje por H.Seldon »

si pero tengo que hacer un escaneo de puertos y ahora no puedo parar muchos procesos que tengo en marcha, que pueden interferir (la mulita, la propia tws y otros)
En cuanto tenga un rato lo hago
saludos
H.Seldon
Mensajes: 546
Registrado: 26 Abr 2005 14:38

Mensaje por H.Seldon »

Pues la verdad, tienes razón

Sin la tws:

Imagen


Y ahora con la tws conectada:

Imagen


Hay abierto un puerto TCP más, el 7496
El que me lo explicó se quedó conmigo

Por tanto, en teoría todos deberíamos recibir los mismos ticks de IB.
En cuanto al VisualChart, que lo compruebe otro :-D

saludos
Adjuntos
tcp_sin_tws.jpg
tcp_sin_tws.jpg (67.61 KiB) Visto 350 veces
tcp_con_tws.jpg
tcp_con_tws.jpg (73.5 KiB) Visto 358 veces
Avatar de Usuario
ondu
Mensajes: 865
Registrado: 18 May 2006 21:36

Mensaje por ondu »

Enas, el 7496 es el puerto socket de la TWS, el puerto exterior de la TWS es el :4000 y el puerto exterior del visual chart 4 es el :40010, si no tienes el puerto :4000 en el tcp es que no tienes conectada la TWS. conectate y veras el puerto :4000 en el TCP.

en cuanto al visual chart tambien es TCP.

saludos !!!
pinoy
Mensajes: 273
Registrado: 07 Jul 2006 12:20

Mensaje por pinoy »

efectivamente, en IB se utiliza un socket TCP. En las especificaciones de la API de IB (la que yo uso) dice que garantiza 150 mensajes por segundo, pero claro, no dice que son 150 mensajes... pero no creo que sean 150 ticks, seran 150 paquetes, o vete tu a saber que...
yo lo que se seguro es que IB no envia toda la informacio.
Por que? porque en alguna prueba que hice, mi sistema procesaba los ticks lentamente ( a proposito) y lo que vi es que me llegaban ticks y ninguno se descartaba, otra cosa es que luego yo los procesara minutos despues de cuando realmente sucedieron.
Pero a pesar de ello, no llegan todos...
y cuando hablamos de sistemas automaticos, y de slippage, es muy importante.
ejemplo. tu sistema dice comprar en 11152
y los ticks que te llegan son 11151, y el siguiente es el 11160
pues bien, te vas a comer un slippage (desviacion) de 8 puntos, cuando luego puede ser que en meff aparezca que en ese segundo se cruzaron tambien 11153, etc....

como veis es un tema serio...por eso de comprobar si la info que envia es a todos los clientes la misma...
Lo simple, si bueno, dos veces bueno
H.Seldon
Mensajes: 546
Registrado: 26 Abr 2005 14:38

Mensaje por H.Seldon »

Ondu: Pues parece que no. Está la TWS abierta y conectada y recibiendo datos, pero el puerto 4000 no parece que lo use nadie.
De todas formas ¿a quién le importa todo este rollo? :D

Imagen


pinoy: Efectivamente. Eso que dices es cierto y sucede, no siempre con tanto slippage, pero sucede.
pinoy escribió: Pero a pesar de ello, no llegan todos...
y cuando hablamos de sistemas automaticos, y de slippage, es muy importante.
ejemplo. tu sistema dice comprar en 11152
y los ticks que te llegan son 11151, y el siguiente es el 11160
pues bien, te vas a comer un slippage (desviacion) de 8 puntos, cuando luego puede ser que en meff aparezca que en ese segundo se cruzaron tambien 11153, etc....
saludos
Adjuntos
otravez.jpg
otravez.jpg (86.19 KiB) Visto 348 veces
H.Seldon
Mensajes: 546
Registrado: 26 Abr 2005 14:38

Mensaje por H.Seldon »

OK, Ondu, ya te he entendido. Voy a comprobarlo :-)
Avatar de Usuario
ondu
Mensajes: 865
Registrado: 18 May 2006 21:36

Mensaje por ondu »

Enas, a ver pillate el TCPVIEW de www.sysinternals.com.

de esta manera veras mejor las conexiones tcp y udp, yo lo hago con Ethereal capturando datos con otro pc siempre que el router te permita esa opción.

El tema era que si es todo UDP podria darse la perdida de paquetes, pero con TCP no lo encuentro logico, tendrian que llegar todos pero en fin hasta aquí llego, más no se, jeje.

saludos !!!
pinoy
Mensajes: 273
Registrado: 07 Jul 2006 12:20

Mensaje por pinoy »

en cualquier caso, y retomando el tema original...si alguno quiere comprobar los ticks de un dia, que me lo diga . Al menos asi saber si IB manda la misma info a todos los clientes...parece logico que asi sea...pero veamos si la logica se cumple...
Avatar de Usuario
ondu
Mensajes: 865
Registrado: 18 May 2006 21:36

Mensaje por ondu »

Enas, yo tengo el visual que va por ticks , en cuanto a volumen van bastante iguales, he visto algunos casos que en la TWS salia: eje: 9 contratos y en el visual chart 4 salian 5 y 4. pero que vaya, van fenomenales los 2.
en cuanto a demas plataformas ni idea, pero que IB lanza datos con una muy buena precisión no hay duda.

saludos !!!
pinoy
Mensajes: 273
Registrado: 07 Jul 2006 12:20

Mensaje por pinoy »

si no dudo que los datos de IB son buenisimos....
es mas, mi sistema es automatico y si no fuera por IB no se como haria...
pero vamos, que el problema de desviacion (slippage) esta ahi, y que en momentos de mercado se dan saltos de 8 y de 20 puntos tambien te lo digo... y si luego en meff ves que el salto de 20 puntos se hizo en 3 saltos intermedios...pues vamos, que cuando tu sistema compra 20 puntos peor de lo esperado...pues como que no sienta muy alla....y esto ha pasado en la caida de hace unas semanas, que no estoy hablando del pasado...
Lo simple, si bueno, dos veces bueno
Si te ha gustado este hilo del Foro, ¡compártelo en redes!


Responder

Volver a “Futuros y Opciones”