Sistema Cruce Medias

Cruce Medias Testing-1024x539

Share this post

Posted by: admin Comments: 0 0

De parte de nuestros amigos de Supperia llega este tutorial para automatizar una estrategia básica muy conocida espero que la disfruten y pongan en practica,

Sistema automático de cruce de medias creado con el Strategy Builder.

Vamos a construir un sistema automático con el Strategy Builder de NinjaTrader 8, basado en el cruce de dos medias.

Será un sistema continuo, es decir que siempre estará en mercado. Utilizará dos medias, una larga de mayor período o media lenta, y otra corta de menor período o media rápida. Si la media rápida está por encima de la media lenta, el sistema estará largo o comprado. Y si está por debajo, la posición será corta o vendida.

Tipo de media

La biblioteca de indicadores de NinjaTrader 8 aloja muchos tipos de medias: SMAEMATMADEMAKAMAHMA, etc. El objetivo de este artículo no es diseñar un sistema ganador, sino ejemplificar el uso del Strategy Builder para construir un sistema automático, por lo tanto elegiré un tipo de media cualquiera ya que por ahora no me preocupan los resultados que pueda conseguir. Voy a usar la SMA.

En la siguiente imagen se señalan las zonas de compra-venta que detectaría el sistema de cruce de medias utilizando dos SMA.

Cruce Medias

Creación de la estrategia

Consulte el artículo dedicado al Strategy Builder si aún no está familiarizado con este asistente. El primer paso es abrir el Strategy Builder desde el menú New / Strategy Builder.

strategy_builder

Welcome

En el desplegable Strategy seleccionar New strategy… y pulsar en Next para ir al siguiente paso del asistente.

Cruce Medias Welcome

General

En esta ventana introducir un nombre válido para la estrategia y una descripción. Pulsar en Next.

Cruce Medias GeneralDefault Properties

En este paso Default Properties no cambiar nada.

Cruce Medias DefaultProperties

Additional Data

En la ventana Additional Data tampoco hay que realizar cambios.

Cruce Medias AdditionalData

Inputs and Variables

En este paso de Inputs and Variables tenemos que configurar los parámetros de entrada que el sistema va a necesitar. En este caso son dos: uno para el período de la media lenta, y otro para el período de la media rápida. Estos parámetros serán personalizables por el usuario en la ventana de carga de la estrategia, y también podrán ser optimizados desde el Strategy Analyzer.

En la sección Inputs, pulsamos en la etiqueta add para añadir los parámetros uno a uno.

Cruce Medias InputsVariables0

Primero creamos un parámetro para el período de la media lenta, rellenando los siguientes campos:

  1. Name: es el nombre del campo. Introducir un nombre identificativo, como por ejemplo PerioSMASlow.
  2. Type: el tipo de datos que alojará el campo. Al tratarse de un período almacenará números enteros
  3. Default: valor por defecto que queramos informar. Por ejemplo 90.
  4. Min: valor mínimo que puede tomar el campo. Para los períodos es 1.
  5. Description: un texto informativo que se mostrará al pasar el mouse sobre el campo.
Cruce Medias InputsVariables1

Y del mismo modo añadimos un segundo parámetro para el período de la media rápida.

Cruce Medias InputsVariables2

El aspecto final de la ventana Inputs and Variables debe quedar como en la imagen siguiente. Y pulsamos en el botón Next para ir al siguiente paso.

Cruce Medias InputsVariables

Conditions and Actions

El siguiente paso del asistente es el de Conditions and Actions y es el más complejo ya que aquí vamos a dotar a nuestra estrategia de los algoritmos de comportamiento para tomar decisiones y ejecutar órdenes. El comportamiento del sistema será como sigue:

  • Si la media rápida está por encima de la media lenta, la posición de la estrategia debe ser larga.
  • Si la media rápida está por debajo de la media lenta, la posición de la estrategia debe ser corta.

Por razón de sencillez he decidido que sea un sistema continuo, así que siempre estaré comprado o vendido. Cuando las medias se crucen al alza, compraré, y cuando se crucen a la baja, venderé.

Añadir primera condición

Para añadir condiciones, pulsar en la etiqueta add del panel de condiciones.

Cruce Medias ConditionsActions1

En la ventana que aparece hay que configurar la condición. La primera condición que voy a crear es el cruce al alza de la media rápida sobre la media lenta.

En el panel de la izquierda hacemos doble clic sobre la carpeta Indicator.

Cruce Medias ConditionsActions

Se despliega el contenido con todos los indicadores disponibles. Navegamos en la lista hasta encontrar la entrada SMA. Ésta será la media rápida.

En el campo Parameters/Period del panel inferior configuraremos el período. Por defecto figura un 14, pero no queremos un período fijo, sino que lo elija el usuario cuando ejecute la estrategia.  Desplazamos el mouse sobre el campo Period y pulsamos sobre la etiqueta set que aparece. A continuación se abrirá un nuevo diálogo para seleccionar el parámetro del cuál obtener el período.

Cruce Medias ConditionsActions3

Hacemos doble clic sobre la carpeta User input y seleccionamos el parámetro que alojará el período para la media rápida PerioSMAFast que creamos anteriormente en el paso Inputs and Variables. Pulsamos en OK para regresar a la ventana anterior.

Cruce Medias ConditionsActions

Ya tenemos configurada la media rápida.

Cruce Medias ConditionsActions

Repetimos los mismos pasos en el panel de la derecha para configurar la media lenta, pero eligiendo esta vez el parámetro PerioSMASlow para el período.

Cruce Medias ConditionsActions

Operador de comparación

El último paso para configurar la condición es establecer el tipo de comparación. Como queremos evaluar el cruce al alza, seleccionamos en el desplegable de la columna central la opción Cross above.

El campo Look back period informa del número de barras hacia atrás que queremos incluir para localizar el cruce. Sólo buscaremos el cruce en la barra corriente, así que asignamos un 1 al campo. Para cerrar la ventana pulsamos en el botón OK.

Cruce Medias ConditionsActions8

Añadir primera acción

En el panel superior se puede observar que la condición ha quedado registrada. Ahora hay que configurar la acción a ejecutar cuando se cumpla dicha condición. En el panel inferior pulsamos en la etiqueta add para abrir el diálogo de acciones.

Cruce Medias ConditionsActions

Hacemos doble clic en la carpeta Order Management y seleccionamos Enter long position. Y pulsamos en OK.

Cruce MediasConditionsActions9b

Añadir segundo grupo de condición + acción

Ya hemos registrado la primera condición junto con su acción: cuando la media rápida cruce al alza a la media lenta, se enviará una orden de compra a mercado. Ahora tenemos que configurar lo mismo pero para el cruce a la baja. Pulsamos en el botón +.

Cruce Medias ConditionsActions

Se creará una nueva pestaña Set 2 donde poder configurar un nuevo grupo de condición y acción. Simplemente repetimos los mismos pasos que hemos seguido para configurar el cruce al alza, pero esta vez para hacerlo a la baja, de modo que cuando la media rápida cruce a la baja a la media lenta, se enviará una orden de venta.

La primera diferencia con el Set anterior del cruce al alza es que hay que elegir Cross below para la condición.

Cruce Medias ConditionsActions

Y la segunda diferencia es la elección de Enter short position para la acción.

Cruce Medias ConditionsActions

Y así queda registrado el segundo Set para el cruce a la baja. Para ir al siguiente paso pulsamos en el botón Next.

Cruce Medias ConditionsActions

Stops and Targets

El sistema va a entrar y salir por los cruces de las medias, así que no hay que configurar órdenes de stop-loss ni de take-profit en la ventana de Stops and Targets. Pulsamos en Next.

Cruce Medias StopsTargets

Finish

Para terminar pulsamos en el botón Finish. Esta acción supone una compilación interna que puede dejar al sistema sin respuesta durante unos breves instantes. Cuanto más potente sea su hardware y menor tamaño tenga la biblioteca de NinjaScripts de su instalación, menor será el tiempo de espera en la compilación.

Cruce Medias Finish

Ejecución de la estrategia

Una vez que ha finalizado el asistente y la estrategia está compilada, ya podemos utilizarla en la plataforma como cualquier otra estrategia NinjaScript.

Por ejemplo, podemos activarla desde la pestaña Strategies del ControlCenter, también podemos cargarla en un chart, o bien testearla y optimizarla desde el Strategy Analyzer.

En la siguiente imagen se recoge un test realizado en el Strategy Analyzer con el fin de comprobar que la estrategia funciona correctamente y que las entradas y salidas se realizan donde deben, que es en las barras de cruce de las dos medias.

Cruce Medias Testing-1024x539

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *