A la hora de trabajar con una plataforma tan potente como es TradeStation conviene tener claros los conceptos y entender cuál es la diferencia entre Indicators, PaintBars y ShowMes. Para poder aprovechar al máximo toda la potencia de esta plataforma, en este artículo os vamos a explicar qué son y cómo programarlos para así poder decidir cuál en cada momento y exprimir todas las posibilidades de esta excelente plataforma. 

Básicamente, los Indicators, PaintBars y ShowMes son tres formas de representar objetos dentro de TradeStation. En particular:

  • Los Indicators se utilizan para representar valores numéricos en un gráfico en base a una fórmula. Por ejemplo, medias móviles, osciladores, etc.
  • Por su parte, los PaintBars sirven para colorear velas individuales cuando se dan unas determinadas condiciones definidas de antemano. Así, podemos colorear de azul claro la última vela cuando se forma una Envolvente o pintar de amarillo cualquier vela con un rango superior a las ocho últimas velas. Los PaintBars estánn pensados para detectar eventos recurrentes que se producen en sucesiones de velas.
  • Finalmente los ShowMes se parecen a los PaintBars en el sentido de que identifican velas que cumplen ciertas condiciones pero en lugar de colorear la vela, podemos especificar un marcador y su posición sobre la vela. A modo de ejemplo, podemos situar un punto a una distancia de 15 ticks por encima del máximo de la vela si su cierre es el mayor de las últimas cinco velas. El objetivo de los ShowMes es identificar eventos puntuales.

En TradeStation contamos con una amplia colección de Indicators, PaintBars y ShowMes accesibles desde el menú Insert o haciendo click con el botón derecho sobre cualquier gráfico y seleccionando Insert Analysis Technique. En ambos casos se nos abrirá una ventana como la siguiente, desde donde podremos elegir entre cientos de ellos:


Pero, ¿qué ocurre si queremos crear nuestros propios Indicators, PaintBars y ShowMes? En ese caso deberemos recurrir al entorno de desarrollo de TradeStation al cual podemos acceder desde las TradingApps seleccionando EasyLanguage:

Con ello se nos abrirá el TradeStation Development Environment desde donde podremos programar lo que deseemos acudiendo al menú File -> New.

Veamos a continuación algunos ejemplos de cómo programar un Indicator, un PaintBar y un ShowMe, los cuales además luego nos resultarán muy útiles. Para ello vamos a aprovechar para introducir EasyLanguage, sin duda uno de los lenguajes propietarios más potentes que existen para escribir código relacionado con el trading.


Mi Primer Indicator en TradeStation
Bien, pongámonos manos a la obra: la idea es crear un indicador que nos permita medir el promedio de los cuerpos reales de las velas.

Para ello, empezamos creando el indicador y dándole un nombre. Accedemos al menú File -> New -> Indicator y en la ventana que nos aparece rellenamos los campos correspondientes. En particular, hemos llamado XT_RealBody a nuestro Indicator:

Lo primero que debemos hacer es definir los parámetros (inputs) del indicador y su valor por defecto. En este caso necesitamos el período de la media móvil que definimos como AvgPeriod, el cual establecemos por defecto en 20.

Asimismo, creamos una variable para almacenar los datos de la media de los cuerpos reales denominada AvgRealBody:

{=============Declaración de Variables ===========}
inputs:
AvgPeriod(20);

variables:
AvgRealBody(0);


Observen que la declaración de inputs y variables el código anterior se ha finalizado con punto y coma. Si hubiera más variables habría que haberlas separado mediante comas. Por su parte, como podéis ver los comentarios en EasyLanguage van encerrados entre llaves.

Ahora toca calcular el promedio de los cuerpos reales de las velas. Para ello basta con aplicar la función Average sobre la diferencia entre cierres (C) y aperturas (O):

{============= Realizamos Cálculos ===========}
AvgRealBody = Average(C-O, AvgPeriod);


Ya solo nos queda representar el Indicator usando la función Plot, añadiendo además una línea de cero para tener un nivel de referencia:

{============= Representamos el Indicator ===========}

Plot1(AvgRealBody);
Plot2(0);


Una vez tenemos el código del Indicator finalizado debemos verificar que está todo correcto y compilarlo. Para ello basta con ir al menú Build -> Verify o teclear F3 para ver si tenemos algún error. Si está todo conforme el Indicator queda compilado y ya nos debería aparecer dentro de la lista de Indicators de TradeStation como es nuestro caso:

Insertamos el indicador y nos debería salir algo como esto:

Por supuesto también podíamos haber hecho la versión en valor absoluto del Indicator, de tal forma que no se tenga en cuenta el signo del cuerpo real para realizar los cálculos, sin más que cambiar esta línea:

AvgRealBody = Average(C-O, AvgPeriod);

Por esta:

AvgRealBody = Average(C-O, AvgPeriod);

El Indicator tendría ahora todos los valores por encima de cero:



Mi Primer PaintBar en TradeStation
Pasamos ahora a crear un PaintBar que nos coloree velas que sean de tipo Inside Bar, esto es, velas cuyo rango queda completamente contenido dentro del rango de la vela previa.

Para ello, nuevamente vamos al menú File -> New dentro del entorno de desarrollo y elegimos PaintBar. En la ventana que nos aparece rellenamos los campos correspondientes como en la siguiente ventana:

A continuación introducimos el código, el cual es realmente sencillo como podéis ver. Simplemente basta con definir las condiciones y después indicar cómo queremos pintar la vela (en este caso hemos pintado de amarillo todos los valores de la vela):

If High <= High[1] and Low >= Low[1] then

PlotPaintBar(High,Low,Open,Close,"Inside Bar",Yellow);

Lo compilamos tecleando F3 y nos vamos al listado de PaintBars donde podemos encontrarlo, esperándonos en la lista:

 

Lo insertamos y ¡bingo! Ahí tenemos unas cuantas velas amarillas que cumplen con el criterio de ser una Inside Bar:



Mi Primer ShowMe en TradeStation
Terminamos este artículo explicando cómo crear un ShowMe que nos ponga un marcador debajo del mínimo de la vela en la que se produce un cruce de medias al alza o encima del máximo de la vela cuando el cruce de medias se produzca a la baja. De nuevo vamos al menú File -> New y elegimos ahora ShowMe. Le ponemos un nombre y un código y le damos a Ok:

Primero debemos definir los inputs de los períodos de las dos medias móviles que usaremos, los cuales establecemos inicialmente en 9 y 40:

inputs:
Length1(9),
Length2(40);

Adicionalmente creamos dos variables para almacenar los datos de cada media:
variables:

MA1(0),
MA2(0);


Ahora calculamos las dos medias usando cierres (C):

MA1 = Average(C, Length1);
MA2 = Average(C, Length2);

Y definimos las condiciones de cruce al alza y a la baja aprovechando las funciones “Crosses Above” y “Crosses Below”, ambas realmente útiles cuando programamos en EasyLanguage:

If MA1 crosses above MA2 then
    Plot1(Low);

If MA1 crosses below MA2 then
    Plot1(High);

En el código anterior podéis ver que en los ShowMes se usa también la función Plot.

Compilamos el ShowMe (tecleamos F3) y vamos a la lista de ShowMes donde lo encontraremos listo para ser insertado:


Lo insertamos y ¡voilá! Aquí tenemos nuestros puntitos rojos. Para comprobar que todo está ok hemos insertado en el gráfico las medias móviles con los mismos períodos para confirmar que los cruces se corresponden con los puntos:

 


Conclusión
En este artículo hemos visto las diferencias que existen entre Indicator, PaintBar y ShowMe en TradeStation y de paso hemos aprendido un poquito de EasyLanguage creando código personalizado para cada uno de esos casos (¿quién da más? :P).

En el próximo artículo veremos algunos trucos de programación en Easy Language que estoy seguro que les resultarán de mucha utilidad si trabajan con esta plataforma.


Saludos,
X-Trader