AmiBroker

El AmiBroker en su versión 4.7 se presenta como una interesante alternativa a los programas de chart por todos conocidos. Una de sus mayores ventajas es la posibilidad de alimentarse de datos a través de la conocida plataforma TWS de Interactive Brokers, potenciada hace escasas fechas con la disponibilidad de back fill de 24h. El último AmiBroker con su correspondiente plugin está ya en disposición de aprovechar este back fill con el consiguiente ahorro de costes a la hora de disponer de un programa de graficación a tiempo real. Asimismo en AmiBroker han desarrollado un «Automatic Trading Interface» para realizar operaciones enlazadas a la TWS.

Disfrutar de estas prestaciones requiere que realicemos algunos ajustes en nuestra TWS, en primer lugar actualizar la API que lleva instalada nuestra plataforma de contratación para permitir el flujo de datos provenientes del back fill hasta su destino en AmiBroker, para ello primero saldremos de la TWS y acto seguido actualizamos la API desde el siguiente enlace:

Una vez realizado esto ejecutamos de nuevo la TWS y verificamos que se encuentran activadas las opciones:
Configure -> API -> Enable Active X and Socket clients

Ya estamos listos para instalar el AmiBroker, del que existe una versión Demo y cuyo precio final creo que es aceptable, poco más de 200 USD en versión profesional; podemos descargar la versión de prueba desde http://www.amibroker.com/download.html

Una vez instalado procedemos a incorporar el plugin que permite realizar el ansiado back fill, descargándolo desde el siguiente link: http://www.amibroker.com/bin/

Dicho plugin se incorpora a la carpeta de plugins del AmiBroker, actualizando el anterior.

Ahora ya podemos arrancar nuestra TWS y el AmiBroker. Lo primero que vemos en el chart son unas pestañas inferiores estilo VisualChart que pueden hacernos pensar que dispondremos de charts de tickers distintos en cada una de ellas, pero no es así. Cada pestaña se corresponderá con una presentación diferente para el mismo ticker. Esto podemos personalizarlo fácilmente mediante el Workspace, View->Workspace y desde ahí vamos quitando y poniendo indicadores a nuestra voluntad. El nº de hojas o «sheets» es personalizable desde las opciones, por defecto son 8.

Es conveniente antes de añadir símbolos crear un nuevo database desde el menú File->Database que personalizaremos con la activación de recepción de datos desde la TWS y el límite horario que queramos tener, marcando como proveedor de datos a Interactive y activando la conexión mediante «Enable»

 

Para evitar horarios extendidos en Eurex o nocturnos en Globex usamos en intraday settings:

 

Aquí se nos plantea la primera particularidad, la necesidad de tener databases distintos para horarios diferentes, supongamos que como es mi caso no quiero tener en el gráfico de futuros USA los datos nocturnos ni los de por la mañana. Si limito el horario de 14:30 a 22:30 no podré tener en el mismo database al FDAX ya que perderé los datos hasta las 14:30 h. (en esto, MetaStock es personalizable para cada ticker mientras que aquí lo es pero para cada conjunto de tickers que pertenecen al mismo database).

En Configure activamos la casilla «Automatic back fill…» y ya tenemos nuestra database lista para añadir símbolos.

 

Ahora vamos a Symbol->New y pasamos la TWS a modo Symbol para ver el código que nos interesa, siendo la estructura símbolo-mercado-tipo. Algunos ejemplos serían:

DAX Vto. Junio 2005: FDAX JUN 05-DTB-FUT
EuroStoxx Vto. Junio 2005: FESX JUN 05-DTB-FUT
Bund: FGBL JUN 05-DTB-FUT
Mini Dow Jones Vto. Junio 2005: YM JUN 05-ECBOT-FUT (Atentos que son tres espacios entre YM y JUN 05)
Mini S&P500 Vto. Junio 2005: ESM5-GLOBEX-FUT
Mini Nasdaq 100 Vto. Junio 2005: NQM5-GLOBEX-FUT

A medida que los futuros vencen hay que cambiar el símbolo en el concepto de fecha.

Asimismo es importante no dejar activada la casilla «Use only local database» para que la actualización funcione.

Una alternativa interesante que presenta AmiBroker es importar los símbolos desde otro programa; así lo he hecho desde MetaStock sin ningún problema a través de File->Import Metastock Data; posteriormente debemos editar el símbolo para adaptarlo a las condiciones necesarias descritas anteriormente (símbolo-mercado-tipo).

De todas formas, no es conveniente tener demasiados símbolos en cada database, ya que al requerir demasiados backfill a la TWS al entrar en el database correspondiente puede haber una respuesta de error por parte de la TWS. Es mejor limitar los símbolos a aquellos que realmente vamos a usar activamente.

Además se plantea otro inconveniente al tener demasiados símbolos: el backfill es de hasta 24 h del día vigente, es decir que a las 12 de la mañana del día 2 tendremos backfill desde el comienzo de dicho día únicamente, pero no desde las 12 de la mañana del día anterior. Por tanto se hace necesario refrescar los datos una vez que el mercado ha cerrado y antes del comienzo del día siguiente para disponer de la base actualizada en todos y cada uno de los símbolos que tenemos. No sirve entrar en el database correspondiente y nada más, aunque el Amibroker nos indica «Backfill OK» esto es un mensaje falso; tenemos que cargar el chart para que quede actualizado. Esto supone evidentemente una obligación diaria por lo que para aquellos que no puedan hacerlo, perderán la continuidad de la base intradiaria.

Si lo que queremos es una base diaria no necesitamos la TWS, el propio programa la descarga desde uno de los proveedores gratuitos como Yahoo Finanzas desde el menú Tools->Auto Update Quotes, una sencilla y rápida manera de disponer de índices y valores pero con el symbol que nos proporciona Yahoo o el proveedor que escojamos, es por ello conveniente no mezclar estos tickers en la database de tiempo real actualizada desde la TWS, ya que solicitará back fill sin encontrar en símbolo requerido respondiendo con un mensaje de error acompañado de interminables pitidos 🙂

Tras esta crítica, un par de elogios para el programa. A la hora de graficar es interesante la opción de anclaje a los extremos de barras o velas pulsando el icono del imán que aparece en el menú principal. También opciones como añadir notas al chart, en el menú View, así como la ventana Times&Sales en el mismo apartado. Pero quizás la que más me ha llamado la atención es la posibilidad de ver los precios de otros tickers que están en la misma database que estamos usando pero cuyo chart no tenemos en primer plano; mediante la opción View->Real time data como puede apreciarse en la parte inferior de la siguiente imagen:

 

Quizás llame la atención la forma de la velas que aparecen en este chart; se trata de velas tipo Heiken-Ashi, más constantes a la hora de marcar tendencias y que he incorporado al programa, ya que no están por defecto.

Hacerlo es muy fácil una vez que se tiene la fórmula que las calcula; para esto pulsamos sobre «Formula-Editor» en el menú principal y pegamos lo siguiente:

HaClose = (O+H+L+C)/4;
HaOpen = AMA( Ref( HaClose, -1 ), 0.5 );
HaHigh = Max( H, Max( HaClose, HaOpen ) );
HaLow = Min( L, Min( HaClose, HaOpen ) );
PlotOHLC( HaOpen, HaHigh, HaLow, HaClose, «Modified » + Name(), colorBlack, styleCandle );
_SECTION_BEGIN(«EMA»);
P = ParamField(«Price field»,-1);
Periods = Param(«Periods», 15, 2, 200, 1, 10 );
Plot( EMA( P, Periods ), _DEFAULT_NAME(), ParamColor( «Color», colorCycle ), ParamStyle(«Style») );
_SECTION_END();

Lo guardamos con cualquier nombre, por ejemplo Heiken Ashi, y cuando tengamos el chart al que queramos aplicarlo abierto cargamos la fórmula desde Formula-Editor, y le pulsamos desde esa ventana el icono de Aplicar a dicho chart.

Bueno creo que con esto es suficiente para comenzar a trabajar con el programa, espero que otros foreros se animen a aportar nuevos avances una vez que vayamos conociendo mejor esta alternativa para graficar nuestros charts, como por ejemplo si encontramos una forma más cómoda de distinguir horarios de mercado sin separar los database (alguna sugerencia hay ya haciendo funcionar dos AmiBroker conjuntamente) y especialmente profundizar en el Automatic Trading Interface que promete ser un mundo de posibilidades… esperemos que no de perder pasta :-))

La información original de configuraciones puede encontrarse disponible desde la web del programa en esta dirección: http://www.amibroker.com/ib.html

Un saludo a todos los visitantes de X-Trader
Bertini

COMPARTIR EN: