Etiquetas
bolsa estudio herramienta indicador inversión - bolsa Larry williams ninja ninja trader scalping sistemas automaticos de trading sistemas automáticos sistemas de inversion sistemas de trading spreads trading Visual Chart
Últimos comentarios
Últimas entradas de los Blogs
Tu primer Sistema con Ninja Trader 7
15 de Abril de 2010
En el artículo de hoy explicaré cómo construir un sistema sencillito con el asistente del NinjaTrader 7 para los lectores que aún no tengan el NT7 decirles que con el NT6.5 también se puede replicar, quizás la única diferencia sea el aspecto visual de las pantallas que intervienen durante el proceso de automatización. La mayoría de herramientas de automatización como Visual Chart y Ninja Trader disponen de asistentes que ayudan a “fabricar” sistemas, esto es importante para aquellos lectores que no tienen conocimientos de programación previos pues mediante estos asistentes es posible crear sistemas sin saber nada de programación. Vamos a ello, utilizando el asistente de NT7 nuestro primer sistema será automatizar un método sencillo basado en el cruce de medias. Este método tiene la principal característica de estar siempre en mercado, es decir, siempre tenemos una posición abierta en mercado ya sea larga o corta. Criterios de entrada Como ya he mencionado siempre estamos en mercado, por eso los criterios de entrada se ceñirán a determinar cuándo nos ponemos largos y cuándo nos ponemos cortos. Posición larga o compra: cuando el precio de cierre del instrumento corte hacia arriba la media de su cotización. Posición corta o venta: cuando el precio de cierre del instrumento corte hacia abajo la media de su cotización. Criterios de salida Básicamente cuando estamos largos y pasamos a cortos se cierra la posición y se abre la contraria, por tanto, en cada cruce del cierre de la cotización con su media se saldrá de la posición actual y se abrirá una nueva posición en dirección contraria, lo que comúnmente se llama Reverse de la posición. Proceso de automatización Vamos a ver paso a paso cómo construimos este sistema con el asistente:
La opción “Calculate on bar close” habilitada por defecto significa que nuestro sistema se ejecutará solo cuando se cierre la barra de la dimensión elegida en nuestro gráfico, es decir, si abrimos un gráfico con un instrumento cualquiera y con la dimensión 5 minutos, se ejecutará nuestro sistema cada 5 minutos coincidiendo con el cierre de la barra actual. Si en cambio deshabilitamos esta opción se ejecutará con cada movimiento del instrumento por tanto cada Tick, esta opción consume mucho proceso de CPU.
El nombre del parámetro debe empezar obligatoriamente con el primer carácter en mayúscula, el “Type” o tipo del parámetro deberá ser cualquiera de los que se muestran en el desplegable bool es booleano y solo puede tomar dos valores true o false, double para aquellos parámetros numéricos y con decimales como por ejemplo el precio de la cotización, string para aquellos parámetros que contienen información alfanumérica como el nombre del instrumento “ES 06-10”, int o entero para parámetros enteros como podría ser una fecha u hora, conviene aclarar el formato que utiliza NT para las variables o parámetros que almacenan fechas o horas:
“Default” nos permite especificar el valor por defecto que tomará nuestro parámetro para que no estemos introduciendo siempre el mismo valor en cada ejecución del sistema.
Como podéis ver hay hasta 10 pestañas que nos permiten definir hasta 10 criterios diferentes de entrada/salida, la lógica aquí es pensar que cuando se cumplan las condiciones introducidas en una de las pestañas se ejecutará la acción o acciones introducidas en esa misma pestaña, por lo tanto si tenemos 2 posibles criterios de entrada diferentes deberemos rellenar 2 pestañas aun cuando la acción a realizar sea la misma, como por ejemplo comprar 1 contrato. Lo mismo ocurrirá para los criterios de salida. Tened en cuenta que un criterio de entrada puede tener más de una condición, como nuestro sistema de hoy, para entrar largo en mercado hemos dicho que el precio de cierre debe cruzar o cortar hacia arriba la media, como la imagen siguiente:
La línea punteada azul es la media, y como podéis ver esta media ha sido cruzada por la barra con la etiqueta “Buy” de la operación de compra y también por la barra anterior, pero lo realmente importante es entender y ver las condiciones que se tienen que dar para que se haya producido un cruce hacia arriba de la media, básicamente son 2:
Con estas 2 condiciones determinamos nuestro criterio de entrada para la compra puesto claramente sabemos que si se cumplen a la vez habremos cruzado de abajo a arriba la media. Veamos cómo introducimos estas condiciones desde el asistente
Es lo que yo llamo el constructor de condiciones, vamos por partes, a la izquierda de la pantalla tenemos una lista idéntica a la de la derecha y justo en el centro tenemos el operador, los operadores más utilizados son == (igual), < (menor), > (mayor), <= (menor o igual) , >= (mayor o igual), != (diferente) y alguno más. Las listas nos permiten escoger los elementos implicados en la condición a construir, de nuestro sistema, ¿cuáles creéis que son? Pues muy fácil: la media y el precio de cierre de la cotización pues así lo hemos definido en los criterios de entrada. La media en cualquier herramienta se caracteriza por ser un elemento del tipo “indicador” y por lo tanto lo podremos localizar en el desplegable “Indicators” y el precio de cierre lo encontraremos dentro del desplegable “Price data” por el momento todo muy intuitivo, no? Pues vamos a construir la condición 2 de nuestro sistema
Para el indicador tenemos Input series donde hay que asignar sobre qué se calculará la media, puesto podríamos calcularla sobre otro indicador, pero en nuestro caso lo dejamos tal y como viene por defecto, o sea DefaultInput, que en nuestro caso particular será el precio de cierre, puesto que así lo configuraremos en el gráfico. Period equivale al número de barras a considerar para calcular el indicador, en nuestro caso la media inicialmente la haremos sobre 14 barras. Bars ago equivale a qué barra queremos hacer referencia en nuestra condición, sabiendo que 0 equivale a la barra actual o última e incrementando 1 accedemos a la anterior y así sucesivamente, como estamos configurando la condición 2 y ésta es sobre la barra actual dejaremos 0. Offset y Offset type nos permitirán especificar una distancia sobre el valor devuelto por el indicador seleccionado, imaginaros que queremos que nuestra condición se cumpla sólo si el precio de cierre ha superado la media en determinado porcentaje, con esta opción podríamos especificar Offset Type= Percent y Offset el porcentaje deseado. Plot on chart solo puede tomar 2 valores: true o false, en caso de que asignemos true veremos pintado el indicador en nuestro gráfico cuando habilitemos el sistema. Para el precio de cierre tenemos el Bars ago y el Offset y Offset type ambos tienen la misma equivalencia que en el caso de los indicadores, para construir la condición 2 nos bastará la barra actual que es 0. El operador que tenemos que seleccionar es (>) “mayor” por lo tanto si leemos de izquierda a derecha del constructor tenemos: Si el Close (cierre) de la barra actual es mayor a Indicador SMA (media) de la barra actual…. (hemos construido la condición 2)
Los elementos que podemos seleccionar son básicamente tres: Drawing por si queremos dibujar algo en el gráfico, comúnmente utilizado en la construcción de indicadores, Misc o “varios” por si queremos que haga algún sonido o escriba un mensaje de alerta, etc… y Order management o gestión de órdenes, el más importante desde donde elegiremos cómo enviar la orden a mercado, como en nuestro sistema queremos entrar largos elegiremos Enter Long position de la lista (1) y abajo nos aparecerán los parámetros
En Quantity, tenemos que indicar el número de contratos que queremos comprar, acordaros aquí que definimos en el paso 4 el parámetro “Contratos” que persigue dicho objetivo, por lo tanto para seleccionarlo deberéis pulsar sobre el botón “…” puntos suspensivos que aparece al lado del parámetro Quantity, lo podéis ver en la imagen anterior etiquetado con (2) , al pulsarlo se abrirà la ventana “Value” y deberemos seleccionarlo bajo el elemento “User defined Inputs”(3) y finalmente pulsar el botón Ok (4) creo que no es necesario detallarlo más pues todo es muy intuitivo.
Ahora solo nos faltará crear en otra pestaña el criterio de entrada 2, o sea para entrar cortos en mercado que es muy parecido al que acabamos de hacer. Os lo dejo como ejercicio, si alguien no se aclara que me lo diga.
Veamos en este punto los botones que aparecen en la parte inferior. Help nos presentará el manual de ayuda donde se explica en inglés el funcionamiento del asistente. View code nos permite ver el código que ha creado el asistente por nosotros y sin tener que saber nada de programación!. Unlock code permite desbloquear el código para modificarlo, esta opción solo la aconsejo si sabéis programar algo o queréis aprender trasteando el código, una vez desbloqueado ya no podréis utilizar el asistente para modificar o añadir criterios. Compile nos permite compilar el código para ver si lo que ha generado el asistente es correcto o no, en principio no es necesaria su utilización. Back nos permite retroceder por si queremos cambiar algo. Finish termina el asistente y genera el sistema para ser utilizado en nuestros gráficos. Cancel desestima todo lo que hayamos hecho hasta el momento y sale del asistente.
Ahora os voy a poner algunos deberes, una vez terminado el sistema me gustaría que lo ejecutarais sobre el instrumento ES 06-10 en un período de 100 días y vierais sus resultados. Acto seguido modificáis el sistema desde la opción Tools > Edit NinjaScript > Strategy y cambiáis los parámetros para que la media se calcule sobre 30 barras en lugar de las 14 que mostramos en el ejemplo, y ejecutáis de nuevo el sistema sobre el mismo gráfico (Pulsando F5) El resultado o ganancias son mucho mejores ¿no? Los resultados obtenidos deberían parecerse a los siguientes:
Venga, ya podéis empezar a trastear y a crear vuestros propios sistemas, aconsejo que una vez creado le echéis un vistazo al código para que os vaya sonando o veáis cómo se traduce en código la fabricación delsistema, es bastante intuitivo también y poco a poco iréis aprendiendo un poco de programación… En nuestro caso el código del sistema es el siguiente:
Se lee bastante bien, ¿no? seguro que si hacéis algún cambio en el sistema y miráis las diferencias vais a seguir aprendiendo mucho. Si alguien me quiere pedir el sistema de ejemplo, puede solicitarlo desde este enlace. Un saludo!! Artículos relacionados con "Tu primer Sistema con Ninja Trader 7"
Instalación de Sistemas en Ninja Trader
26 de Marzo de 2010
Etiquetas:
sistemas automáticos · sistemas de inversion · sistemas de trading · ninja trader · sistemas automaticos de trading
Tu primer Sistema con Ninja Trader 7 |