Sistema Cruce de Medias

Estrategia basada en el cruce de medias

Introducción

Explicación de cómo construir un sistema automático con el Strategy Builder de NinjaTrader 8, basado en el cruce de dos medias.

Se trata de un sistema continuo, es decir que siempre está en mercado. Utiliza 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: SMA, EMA, TMA, DEMAKAMA, HMA, 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 de dos medias

Creación de la estrategia

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

Abrir Strategy Builder

Welcome

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

StrategyBuilder. Welcome

General

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

Strategy Builder. General

Default Properties

En este paso Default Properties no cambiar nada.

Strategy Builder. Default Properties

Additional Data

En la ventana Additional Data tampoco hay que realizar cambios.

Strategy Builder. Additional Data

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.

Strategy Builder. Inputs and Variables

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.
Parámetro Período Media Lenta
Y del mismo modo añadimos un segundo parámetro para el período de la media rápida.
Parámetro Período Media Rápida

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.

Parámetros de entrada

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.

Strategy Builder. Conditions and Actions

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.

Strategy Builder. Add Condition Indicator

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.

Strategy Builder. Conditions SMA

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.

Strategy Builder. Periodo SMA Fast

Ya tenemos configurada la media rápida.

Strategy Builder. Condition SMA Fast

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.

Strategy Builder. Condition SMA Slow
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.

Strategy Builder. Condition Cross Above
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.

Strategy Builder. Add Actions

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

Strategy Builder. Add Action Enter Long
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 +.

Strategy Builder. Add new Conditions and Actions

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.

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

Strategy Builder. Action Enter short position

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

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.

Strategy Builder. Stops and Targets

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.

Strategy Builder. 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.

Strategy Testing
p

Aviso de riesgo

Este artículo tiene una finalidad divulgativa y didáctica acerca de sus contenidos. En ningún caso se pretende facilitar al lector un vehículo de inversión o especulación mediante las pautas que aquí se explican, y se desaconseja encarecidamente usar los ejemplos en un entorno productivo con cuenta real. Observe la claúsula de riesgo a pie de página y el Aviso Legal.