Automatizar Sistemas con TradeStation

Tal y como comentábamos en el artículo del pasado 20 de Julio, era posible automatizar sistemas mediante la escritura de un archivo de texto por parte de Visual Chart y la utilización de TSim+, API que lanzaba la orden de Visual a la TWS. Sin embargo, recordarán que el sistema era algo tosco y que presentaba fallos importantes tales como el envío simultáneo de todas las órdenes que aparecían en el gráfico cuando Real Server se desconectaba y volvía a conectarse; asimismo, no debemos olvidar que aunque Visual Chart es un gran programa «made in Spain» lo cierto es que presenta algunos fallos importantes a la hora de determinar las señales de los sistemas y la recepción de datos en tiempo real es mejorable.

Por ello, ante los problemas que suscitaba la automatización con Visual Chart, en X-Trader.net decidimos buscar una solución profesional de bajo coste. Y allí estaba esperándonos en un rincón Tradestation, sin duda un magnífico programa de análisis técnico y desarrollo de sistemas que ha hecho que cambiara de opinión, llegando incluso a abandonar Metastock (del cual fui un acerrimo defensor a finales de los 90).

Las ventajas que presenta Tradestation son innumerables: las señales que generan los sistemas son fiables (no comete errores al menos en nuestro caso), se parece mucho a Visual Chart en algunos aspectos (de hecho, me consta que gente de AG Mercados lo utilizaba en sus inicios, me imagino que se han inspirado en él para el desarrollo de Visual Chart), posee un sistema de lanzamiento de órdenes propio (el Tracking Center), admite alimentación de datos de diversas fuentes, la programación es muy flexible (admite código en C++ y posee un lenguaje propietario, el Easy Lenguage o ELA, sobre el que tienen un manual de referencia en el Foro; también tengan en cuenta que existe multitud de código gratuito en la Red para Tradestation) y en general presenta tal cantidad de opciones que virtualmente no tiene limitaciones. Las únicas desventajas que le veo para alguien que se inicia son básicamente que está todo en inglés y el tener que familiarizarse con un nuevo lenguaje de programación (que recuerda en estructura al de Visual Chart).

Pero lo más interesante de Tradestation es que es capaz de lanzar ordenes a la TWS como les voy a comentar a continuación…

Para poder lanzar órdenes a la TWS necesitarán tener 4 cosas en su ordenador:

  • Omega Tradestation (a poder ser la versión 2000i) (NOTA: a la hora de instalarlo se produce un error porque el programa está en inglés y lo estamos instalando en un Windows en castellano; una vez instalado Microsoft Data Access, cancelen la instalación de Tradestation, o de lo contrario se producirá un bucle, y copien el contenido de la carpeta C:Archivos de ProgramaArchivos ComunesSystemado en una nueva carpeta llamada C:Archivos de ProgramaCommon FilesSystemado. Una vez hecho esto ya se puede instalar TS con normalidad)
  • Metaserver 3.0 Demo. Podeis descargarlo desde http://www.traderssoft.com/. Con él vamos a alimentar Tradestation con datos en tiempo real de la TWS por lo que el coste de los datos va a ser nulo. La única limitación que tendremos será que al ser la versión Demo sólo podremos alimentar Tradestation con dos productos (futuros, acciones, opciones, etc.) simultáneamente.
  • Tradebolt: podeís descargarlo desde la página de Invest Labs (http://www.investlabs.com/ ). Este programa será nuestro enlace entre el Tracking Center de Tradestation y la TWS. Este programa es muy bueno y permite cancelar/modificar ordenes y enviar ordenes de todo tipo generadas por TS. La única pega que tiene es que ha comenzado a cobrar 1$ por cada orden ejecutada a través del programa (aunque parece ser que existe un programa especial para traders que mueven más de 250 contratos al mes por el que cobran 0.05$ por operación); eso sí, las ordenes en modo demo no las cobran.

Una vez instalado todo esto, y suponiendo que somos clientes de Interactive Brokers, tenemos la TWS y las librerias de las APIs actualizadas, podemos empezar a montar el tinglado. La gran ventaja de lo que les voy a proponer es que se trata de un círculo cerrado que se apoya fundamentalmente en la TWS y en los datos que recibe, por lo que no hay prácticamente desfase (quizás algunos milisegundos) entre el precio de mercado y las órdenes que lancemos. Asimismo, TS tiene una característica que nos gusta mucho y es que lanza las órdenes en la apertura de la siguiente barra a la que se ha producido la orden, lo que resulta bastante más realista.

1º Paso: Alimentar Tradestation con datos
Aquí entran en juego tres herramientas que debemos abrir de forma secuencial: primero abrimos la TWS y nos aseguramos de que en Configure -> API tenemos activados «Enable ActiveX…» y «Enable DDE Clients». Seguidamente abrimos Metaserver, aceptamos la conexión de la TWS y comenzamos a configurar Metaserver y el Global Server de Tradestation para que reciba datos de Metaserver (el proceso es muy parecido al que explica Alexey de la Loma en el excelente PDF que nos remitió para Metastock). Nosotros hemos elaborado este PDF explicando los detalles para el caso de Tradestation, esperamos que os resulte sencillo con los pasos indicados.

2º Paso: Crear un sistema en TradeStation y optimizarlo
En este punto no voy a entrar en detalle. El funcionamiento de TradeStation es muy similar al de Visual Chart aunque como decía antes, el lenguaje de programación es distinto así que si quereís aprender os recomiendo que diseccioneis los sistemas que ya vienen hechos en el programa y que estudieis el manual sobre ELA que teneís en el Foro. Recordad que la programación de sistemas, estudios e indicadores se realiza en un programa aparte llamado Easy Language Power Editor (dentro del menu Go). Asimismo, comentar que las señales de los sistemas deben programarse en uno o varios ficheros llamados Signals y despues se crea el sistema con TradeStation Strategy Builder indicando que Signals queremos que tome de las que disponemos en el programa (es decir, para que se entienda mejor: podemos abrir posiciones con un determinado sistema y cerrarlas con otro muy distinto ya que TS permite la combinación de señales de sistemas).

3º Paso: Lanzar ordenes al mercado con TradeBolt
Una vez descargado e instalado TradeBolt, tendreís que arrancar la TWS como Demo (Username: edemo / Password: demouser) o de lo contrario no os dejará usarlo ya que no estaís aún dados de alta para operar con la herramienta. Si quereis daros de alta como usuarios de TradeBolt, tendreis que mandar un correo electrónico a [email protected] con vuestro Nombre, Dirección de Correo Electrónico, Teléfono de Contacto y Nº de Cuenta de Interactive Brokers (por ejemplo, U654321) indicando que quereis trabajar con el programa TradeBolt. Afortunadamente, antes de que se hiciera de pago esta herramienta pude trabajar con ella de forma gratuita así que puedo contaros cómo funciona y qué teneis que hacer para lanzar ordenes automáticas:

– Cread un workspace en Tradestation que se llame Tradebolt o con un nombre que incluya esa palabra (por ejemplo, Mi Espacio de Tradebolt)

– Abrid un gráfico e insertad el sistema que deseis utilizar para operar. Una vez insertado el sistema, haced doble click en alguna de las flechas del sistema, id a la pestaña Properties y marcad la casilla «Generate orders for next bar» (esto es muy importante pues de lo contrario lanzará todas las órdenes que haya en el gráfico de golpe y porrazo a la TWS; no estaría de más una opción así en Visual Chart)

– Seguidamente vamos al menu File -> New de TradeStation y seleccionamos el icono que pone «Tracking Center». Perfecto, ya tenemos una pantalla en la que veremos todas las ordenes que genera el sistema. Ahora vamos a View-> Options… y en la pestaña General marcamos las casillas Active Orders, Filled Orders y Canceled Orders. Por su parte, en la pestaña Limit rellenamos todas las casillas con 9999 para evitar que Tradestation nos limite el número de ordenes que aparecerán en el Tracking Center y que serán enviadas a TradeBolt.

– Guardamos el espacio de trabajo en File -> Save Workspace As… para no tener que repetir todos estos pasos.

Con esto ya tenemos configurado TradeStation para lanzar órdenes a la TWS. Ahora falta configurar TradeBolt. Para ello abrimos el programa (os aconsejo que desactiveis los altavoces porque siempre da un error al principio con una sirena muy potente que os puede dar algún susto) siempre con la TWS abierta, ya sea con nuestro username (si nos hemos dado de alta como usuarios de TradeBolt) o en modo demo si queremos estudiar el programa o hacer pruebas. Marcamos la opción «Bring this window to top….» para desactivar la sirena y evitar que nos dé más sustos. Ahora tenemos que configurar la Tabla de Simbolos de Tradebolt; para ello vamos a Symbols -> Symbol Table y hacemos la equivalencia entre el simbolo de Tradestation (que, no olvidemos, es el mismo que el de Metaserver también) con el simbolo correspondiente de la TWS y señalamos las características del contrato. Listo!!! Ya tenemos Tradebolt listo para recibir datos del Tracking Center de TradeStation. Sólo nos queda una última opción que ajustar en TradeBolt y es la hora a la que queremos que nos cierre todos los contratos que tengamos abiertos en intradía. Para ello vamos al menu End Of Day y seleccionamos la hora que deseemos fijar como cierre de operaciones (si tenemos miedo de que el reloj de nuestro ordenador falle, podemos sincronizar con un reloj atómico en el menu Settings -> Date/Time. Si no quisieramos que nos cierre posiciones al cierre del mercado, podemos desactivar las dos casillas que aparecen en el menu End of Day y no nos cerrará posiciones. Finalmente, todo lo que queda es poner en «On» la opción de AutoTrading de la pantalla principal y veremos a TradeStation operar sólo con los datos procedentes de la propia TWS.

Resultado: tenemos un bucle cerrado perfecto que sólo depende de la TWS y de factores externos como la corriente eléctrica o Internet. Todo lo demás está perfectamente sincronizado y es raro que falle (salvo que tengamos poca RAM, porque estos programas consumen bastantes recursos, o porque andemos utilizando todo el rato el ordenador que ejecuta las ordenes para otras cosas, como jugar al Resident Evil o ver peliculas; la idea es tener un ordenador en exclusiva para operar).

Evidentemente se puede argumentar que esta forma de hacer las cosas es algo tosca y rudimentaria, aparte de complicada. Pero es que además debemos aumentar todas las comisiones aplicadas por IB en 1$ lo que para ciertos sistemas puede ser bastante dañino en las estadísticas… Asimismo no disponemos de históricos (aunque se pueden exportar de un archivo ASCII con un formato especial, un día de estos les contaré cómo…). Por supuesto nada nos impide utilizar TSim+ como generador de órdenes y sin los inconvenientes de Visual Chart ya que podemos indicar a TS que lance sólo la última orden; sin embargo, TSim+ no es tan flexible con los tipos de órdenes como lo es TradeBolt.

En cualquier caso, no se preocupen. En X-Trader.net también tenemos la solución a todos estos problemas y si lo que hemos contado aquí, a pesar de estar a años luz de lo que hay en España, no les convence preparense porque para el mes de Enero vamos a presentar algo en exclusiva que hará las delicias de muchas personas que desean automatizar sistemas por su cuenta y que tiene relación el comentario que hice en el Foro acerca de Operar sin gráficos. No verán nunca más un sólo gráfico mientras operan con sus sistemas y las comisiones serán las de IB; el gráfico pasará a ser algo del pasado, sólo útil para optimizar sistemas y tirar líneas. El sueño de Leonardo puede dejar de ser una quimera…

Un saludo
X-Trader

NOTA: X-Trader.net declina toda responsabilidad por un mal uso o un uso incorrecto de la información contenida en el presente artículo; asimismo, declinamos toda responsabilidad sobre las pérdidas o ganancias derivadas de la automatización de sistemas siguiendo ésta u otras tácticas propuestas en la web.

COMPARTIR EN: