Curso avanzado de programación de Sistemas de Trading, Indicadores, PaintBars y ShowMe's Programación desde cero en 2 de las mejores plataformas de trading a nivel mundial: TradeStation y Multicharts GesTrading Strategies |2 DESCRIPCIÓN El presente curso on-line tiene como objetivo que incluso aquellos alumnos que jamás han programado venzan sus miedos y dificultades para que por fin se hallen en condiciones de programar sus propios Sistemas, Indicadores, PaintBars y ShowMe's en EasyLanguage, lenguaje de programación de 2 de las mejores plataformas de trading: TradeStation y Multicharts (el curso se centrará exclusivamente en TradeStation, pero todo lo aprendido en programación será válido también en Multicharts). A tal fin, se parte absolutamente de cero para gradualmente ir avanzando en grado de dificultad y complejidad en el temario, de manera tal que hasta los alumnos que poco o absolutamente nada saben de programación carezcan de problemas relevantes en su proceso de aprendizaje. Y con objeto de alcanzar más fácilmente dicho objetivo de aprendizaje, el curso se complementa con material adicional, entre el cual cabe reseñar la infinidad de ejercicios prácticos de diferente dificultad que el alumno deberá ir realizando en su tiempo libre a su ritmo, a cuya solución irá teniendo acceso a medida que avance el curso. Si a la finalización del curso el alumno deseara ampliar y mejorar su formación, tendrá la posibilidad de hacerlo contratando el número de horas de tutoría que desee con el profesor, las cuales se llevarían a término en las fechas y horas acordadas entre el profesor y el alumno. De este modo, el alumno dispondrá de un instrumento óptimo para sacarle el máximo aprovechamiento al curso. A su término: El alumno estará en condiciones de programar sistemas de todo tipo: tendenciales, antitendencia, de explosión de volatilidad, continuos, intradiarios continuos, intradiarios puros, de scalping, basados en fundamentales, en soportes y resistencias variables, en gaps, patrones estacionales, en patrones de velas, etc., conociendo en detalle con infinidad de ejemplos la forma exacta que tienen las reglas de un sistema de trading. También estará en condiciones de programar todo tipo de Indicadores, PaintBars y ShowMe's que le facilitarán la tarea de desarrollo de sus propios sistemas de trading en todo tipo de mercados ofrecidos por TradeStation dentro de las posibilidades permitidas por esta galardonada plataforma de trading. Asimismo, adquirirá la base necesaria para que, con la posterior práctica en algunos casos, sea capaz de programar cosas tan aparentemente complejas, útiles y/o interesantes como por ejemplo: - Soportes, resistencias, líneas directrices, canales y divergencias, las cuales será capaz incluso de visualizar gráficamente programando por él mismo fácilmente que se dibuje todo ello automáticamente sin nosotros hacer nada en pantalla. - Sistemas basados en fundamentales o que mezclen criterios tanto de Análisis Fundamental como de Análisis Técnico con el fin de complementar nuestro trading técnico con el basado más en noticias y datos económicos relevantes para el trading. - Filtros basados en patrones estacionales que determinen automáticamente cuándo es el primer y último día de trading de cada mes, el día de acción de gracias, el día de vencimiento,... - Filtros para entrar en el mercado solamente cierto mes y/o día de la semana (lunes, martes,…) y/o en cierta franja horaria exclusivamente. - Sistemas que usen 3 ventanas temporales de diferente time frame para determinar la tendencia del mercado a corto, medio y largo plazo a fin de aumentar la probabilidad de acierto de nuestro trading operando solamente si la tendencia en los 3 distintos plazos de tiempo coincide. GesTrading Strategies |3 - - Indicadores como la media de Hull (una de las mejores móviles existentes) pero actuando como si hubiéramos recortado el horario del histórico de 9:30 h. a 17:30 h. a pesar de estar operando en un horario de 8:00 h. a 22:00 h. Incluso aprenderemos a programar cosas tan curiosas y exóticas como filtros que tengan en cuenta si hay Luna llena o nueva (pues hay quien opina que la influencia de la Luna en el comportamiento psicológico humano afecta incluso en el trading)... GesTrading Strategies |4 TEMARIO 1.- BREVE INTRODUCCIÓN A TRADESTATION. ¿Por qué TradeStation? Funcionalidades principales de TradeStation en comparación con otras plataformas de trading como MultiCharts, NinjaTrader, Metatrader, Visual Chart,... Menús y opciones principales (con especial énfasis en todo aquello orientado a los Sistemas de Trading y el Análisis Técnico). Extras: o Cómo insertar en un gráfico histórico indicadores sobre indicadores o indicadores sobre indicadores sobre indicadores. o Cómo dibujar en una misma ventana más de un gráfico histórico (igual o diferente, y del mismo o diferente time frame) colocándolos todos ellos uno debajo del otro. o Cómo insertar en la escala correcta de precios un indicador en un segundo gráfico histórico. o Cómo dibujar un indicador de un mercado en otro mercado utilizando un mercado debajo del otro. o Cómo exportar datos históricos de TradeStation a otra plataforma de trading, así como importar datos históricos de otra plataforma de trading a TradeStation. 2.- APRENDIENDO LO MÁS BÁSICO PERO ÚTIL PARA PROGRAMAR. Mecánica esencial de cualquier Sistema de Trading, Indicador, PaintBar y ShowMe en cualquier plataforma de trading en general (y particularmente en TradeStation). Familiarizándonos con dicha mecánica en TradeStation trabajando con lo más básico pero práctico sobre un solo gráfico histórico. o Sentencias principales relacionadas con los precios (máximo, mínimo,..) y otras de diferente tipo a su vez sencillas y útiles. o Órdenes principales de entrada y salida de una posición. o Primer acercamiento a la estructura sencilla If…Then. o Tipos de órdenes básicas (a mercado, limitadas y de stop). o Forma general de entrar en el mercado en sistemas tendenciales (a favor de la tendencia) y antitendenciales (en contra de la tendencia). o Forma general de salir de una posición mediante stop loss, stop profit y trailing stop. o Peligros de las instrucciones para determinar la posición en mercado y el precio de entrada. Uso correcto para que el código de programación se ajuste a lo que esperamos de él. o Estructura general de un código de programación en EasyLanguage. Primera aproximación a las variables externas (Inputs) e internas (Vars). - Ejemplo práctico 1: cierre de posiciones a fin de día decidiendo nosotros desde fuera del código la hora de cierre. - Ejemplo práctico 2: cierre de posiciones a fin de día dejando que sea el ordenador el que determine la hora de cierre, de tal manera que incluso cierre posiciones correctamente los días que el mercado cierra por festivos (o por cualquier otro motivo) antes de hora. o Más instrucciones de programación relacionadas con las entradas y las salidas. o Forma general de las instrucciones aprendidas para salir de una posición. - Cómo asociar a cada manera diferente de entrar en el mercado una manera también diferente de salir, de manera tal que, a modo de ejemplo, si entramos según un criterio tendencial, salgamos con un stop loss, stop profit y trailing stop diferentes al del caso en que entremos con arreglo a un criterio antitendencia. - Stop loss, stop profit, trailing stops en cualquier barra o en todas menos en la siguiente a la de entrada, en la cual se entra a mercado en el último tick de la barra (su cierre). o Operaciones matemáticas básicas y uso adecuado de los paréntesis tanto en las condiciones como en las relaciones matemáticas. GesTrading Strategies |5 Familiarizándonos con la mecánica de la programación en TradeStation trabajando con varios históricos a la vez (con varias gráficas del mismo o diferente time frame). Cómo tener éxito entendiendo de verdad lo que hace el EasyLanguage con diferentes time frames. Algunas diferencias de programación entre el EasyLanguage de la versión actual de TradeStation y el de las versiones anteriores. "Signals" o subsistemas en cada una de las diferentes versiones de TradeStation. Resumen de lo aprendido. 3.- MÁS ALLÁ DE LO BÁSICO. Más allá del If sencillo: cómo utilizar la forma general de If sin problema alguno y sabiendo usar siempre correctamente los Else y los Begin…End. Uso de Not para obtener la condición contraria a una condición simple o combinación de condiciones. Cómo determinar fácilmente el número de veces que cierto día hemos entrado o salido en el pasado con una simple instrucción de programación. Cómo obtener fácilmente la apertura, el máximo, el mínimo y el cierre diario, semanal, mensual y anual de hasta 50 días, semanas, meses y años atrás sin necesidad de trabajar con una ventana de gráficos adicional diaria, semanal, mensual o anual. Instrucciones para determinar soportes y resistencias de diferente tipo. Instrucciones para cruce de indicadores o precios. Cómo pasar fácilmente la hora a minutos y viceversa. Utilidad práctica con optimización de parámetros que representan el tiempo. Variables que representan texto: variables de tipo string. Haciendo los códigos de programación más claros con variables que representan condiciones: variables booleanas. Primera aproximación a las funciones: o Cómo crear sistemas de trading que usen indicadores o indicadores sobre indicadores: uso de funciones. o Cómo crear nuestras propias instrucciones o funciones de programación. Creando fácilmente nuestros propios Indicadores, PaintBars y ShowMe’s. Ejemplos prácticos. Cómo programar fácilmente alertas acústicas, visuales y por e-mail que nos avisen de cuándo se ha tocado determinado precio o cumplido cualquier condición de nuestros sistemas, indicadores, paintbars o showme's. Qué hacer cuando nuestro código de programación no actúa como esperábamos: detectando más rápida y eficientemente errores o defectos de programación sin morir en el intento. Resumen de lo aprendido. 4.- CAMINANDO HACIA LA COMPLEJIDAD Y EXTRAÑEZA. Programación de filtros y criterios de entrada/salida basados en patrones estacionales. Sentencias específicas para obtener información asociada tanto al mercado como a las velas empleadas: nombre del símbolo, multiplicador del mercado, mínimo movimiento del mercado en puntos, tipo de barra (diaria, de minutos, de segundos,...), time frame empleado, etc... Sentencias nuevas para salir en cualquier barra por stop loss, stop profit y trailing stop especificando en dinero cuánto estamos dispuestos a perder, cuánto aspiramos a ganar, o cuánto estamos dispuestos a dejar de ganar de lo máximo que llevábamos ganado provisionalmente en nuestra posición de mercado. Instrucciones de programación exclusivas de sistemas para conocer en todo momento datos específicos de nuestro sistema, tanto estadísticos como de otro tipo: peor drawdown, ganancia acumulada, máxima pérdida, máximo número de entradas dentro de una posición, valor de las comisiones, del slippage,... Sentencias para visualizar en forma de indicador barra a barra algunos datos de interés de un sistema: posición, precio de entrada, precio medio de entrada si operamos con un número variable de contratos, número de contratos en cada momento, rentabilidad acumulada,... Más allá de las operaciones matemáticas básicas. GesTrading Strategies |6 Cómo programar fácilmente dentro de un sistema, indicador, paintbar o showme que se trace una línea entre 2 puntos que representen un soporte, una resistencia, una línea directriz, unos canales o hasta incluso unas divergencias entre el gráfico de precios y un indicador cualquiera. o Proyectando con la programación dicha línea recta hacia delante y atrás, tanto visualmente como numéricamente sin el empleo de fórmula alguna. - Ejemplo proyectando hacia delante una línea directriz para entrar cuando los precios reboten en ella. Un pequeño truco para lograr algo supuestamente imposible: dibujar automáticamente desde el código de un Sistema todos los Indicadores, PaintBars y ShowMe's usados por el sistema (con sus mismos parámetros y hasta en la escala correcta de precios) sin necesidad de programar aparte los mismos Indicadores, PaintBars y ShowMe's con dichos mismos parámetros. Bucle For…Begin…End. Segunda forma de crear por nosotros mismos nuestras propias funciones de programación: funciones con parámetros por referencia o de salida. o Ejemplo práctico programando un indicador que automáticamente detecte divergencias y que seguidamente las dibuje tanto en el gráfico de precios como en el estocástico dibujado por el mismo indicador. Más sobre colores programables. Otras forma de If: Switch-Case y Once…Begin…End. Bucles While…Begin…End y Repeat…Until. Arrays. Más allá de las funciones: "métodos" o sentencias creadas por nosotros que al ser utilizadas no sólo pueden devolvernos uno o más valores, sino asimismo ejecutar cualquier acción que deseemos. Más sobre variables: o Mejorando la velocidad de ejecución y optimización de los códigos de programación haciendo algo generalmente innecesario: declarar explícitamente el tipo de variable. o Variables intrabar cuyos valores no varían cierre a cierre de barra, sino tick a tick dentro de la barra. - Backtesting de sistemas haciendo zoom dentro de la barra con la precisión que deseemos. Programando sistemas de trading que varíen dentro de la misma o diferente posición el número de contratos. o Ejemplo de programación de Money Management: aplicando el famoso "Fixed Ratio" de Ryan Jones a nuestros sistemas de trading. ¿Influyen las fases de la Luna en la psicología de masas bursátil? Creando Sistemas, Indicadores, PaintBars y ShowMe’s basados en las Fases lunares. Resumen de lo aprendido. 5.- INTRODUCCIÓN A LAS ESTRATEGIAS BASADAS EN FUNDAMENTALES, NOTICIAS Y OPCIONES. Sentencias para trabajar con fundamentales y tratar de sacarle mejor provecho al mercado. Ejemplos de trading basado en la aparición de noticias o datos económicos relevantes para el mercado. Posibilidad de testear estrategias de opciones con sus correspondientes dificultades y limitaciones. Resumen de lo aprendido.