X-Trader Trading Machine 2.0

Antes de irnos de vacaciones, les dejamos la nueva versión de la X-Trader Trading Machine, la 2.0. Se trata de una versión más estable de la hoja de calculo, en la que además se han corregido varios bugs en el código. Pueden descargarla desde el Foro.

Como ya sabrán, la X-Trader Trading Machine se trata de una herramienta semiprofesional que permite automatizar cualquier sistema que uno se proponga con un poco de habilidad y unas cuantas líneas de código en Visual Basic. En esta nueva versión hemos incorporado las siguientes novedades:


- Control de líneas que resuelve el bug que aparecía en algunas ocasiones cuando se iniciaba la recolección de datos. Ahora los datos se inician siempre en la fila 15 de la hoja de cálculo (fila 14 si iniciamos la macro en una barra a medias).

- Se ha suprimido el refresco de pantalla que resultaba algo molesto y podía suponer la pérdida del algún tick.

- En esta ocasión se ha incorporado un sistema ligeramente más "complicado" ;-) que el que venía incorporado en la versión anterior. Ahora, el sistema compra si el ultimo cierre ha sido superior al cierre anterior y además el cierre es mayor que la apertura en la barra actual, y vende si el ultimo cierre ha sido inferior al cierre anterior y además el cierre es menor que la apertura en la barra actual. El sistema es de giro, de tal forma que si está comprado, venderá dos contratos para girarse y viceversa.

- Cuando el sistema hace una operación, la señala en la columna G al lado de la fila en que se ha realizado, lo que permite mantener un registro de las operaciones realizadas.

- Se ha incorporado la capacidad para seleccionar el rango horario en que se desea lanzar ordenes, cerrando posiciones al final de dicho periodo si se desea. Para ello, el sistema abre posiciones a partir de la hora que indiquemos en la celda I2 y cerrará la posición en el momento que la hora se encuentre entre las celdas I3 e I4. Si no desea que la hoja cierre posiciones, basta con poner las 0.00 horas en las celdas I3 e I4.

- Otra característica muy interesante que hemos introducido es la capacidad de graficar. Para ello si se desplazan hasta la columna J, verán que hay un gráfico de barras que puede representar los datos que tengan almacenados en tiempo real. Eso si, para que todas las macros funcionen correctamente es muy importante que no seleccionen el gráfico con el ratón cuando se esté ejecutando alguna macro, de lo contrario, probablemente la hoja no funcione correctamente. (Nota: el gráfico está limitado a 255 barras).

- También se ha incorporado código (en fase de pruebas) que permite mantener la conexión DDE con la TWS aunque ésta se caiga

Recuerden que para hacerla funcionar deben configurar su ordenador o Excel con el sistema de notación decimal anglosajón (Separador Decimal = Punto (.) y Separador de Miles = Coma (,)). Si trabaja con Excel XP ó Excel 2003, vaya a Herramientas -> Opciones -> Pestaña Internacional, desmarque la casilla Usar separadores del sistema y ponga un punto en el Separador de Decimales y una coma en el de Miles. Si no dispone de esa versión de Excel, deberá ir al Panel de Control de Windows y en Configuración Regional modificar esos parámetros con la desventaja de que el cambio afectará a todo el sistema Windows.

Recuerden asimismo que deben tener activadas las macros en Excel (si no las tuvieran activadas deben ir a Herramientas-> Opciones-> Pestaña Seguridad -> Seguridad Macros y ponganlo en nivel Medio). Asimismo, no olviden tener activado en la TWS las ya clásicas opciones "Enable ActiveX..." y "Enable DDE..." en la TWS, dentro del menu Configure -> API.

Una vez configurado todo lo anterior, carguen la TWS y despues abran la hoja, habiliten Macros y no actualicen vinculos. En la celda A2 introduzcan su Username, guarden y cierren la hoja. Después abranla de nuevo, habiliten Macros, no actualicen vinculos, rellenen los datos para el contrato del que deseen recibir datos y pulsen en "Request Quote". Si han seguido todos los pasos, deberían tener en pantalla la cotización del futuro o acción seleccionado.

Una vez hecho esto, comprueben que en la celda B2 pone "No" (sin comillas). Pulsen en Start y observen cómo la hoja va almacenando los datos y graficándolos a partir de la fila 15. Cuando tengan bastantes datos, pulsen en Stop y después en Clear Data para borrar los datos almacenados.

Por último, con la macro en Stop y la hoja limpia de datos, escriban Yes en la celda B2 y pulsen en Start de nuevo, Observen ahora cómo lanza las órdenes (la primera vez, recomiendo que esto se haga con la demo de IB). Observen el comportamiento de la TWS. En este punto, observen que mientras no haya dos cierres como mínimo no se lanzan órdenes.

Recuerden que esto es un punto de partida sobre el que Vds. deberán programar sus sistemas. Para ello, tecleen Alt + F11 con la macro de la hoja parada y estudien minuciosamente el código de las macros. Todo el código está comentado en castellano y creo que con una mínima base pueden entender más o menos lo que las macros hacen.

En cualquier caso, si tienen dudas sobre la forma en que se construye un ticker o se lanza una orden conviene que vean la siguiente referencia de la página de Interactive Brokers, http://www.interactivebrokers.com/php/apiUsersGuide/apiguide/excel/dde_syntax_for_excel.htm.

Un saludo
X-Trader

 



Si te ha gustado este articulo, ¡compártelo en redes!