Guía: Optimizar con Walk Forward en Amibroker

¡Hola! Como continuación a la entrada sobre optimizar sistemas de trading y walk forward, hoy tenemos un ejemplo / guía de cómo hacer el proceso de optimización con walk forward en Amibroker.
Primero que nada aclarar que se pueden hacer optimizaciones de sistemas de trading en Amibroker sin necesidad de hacer el proceso de Walk Forward. Además, siempre hay varias formas de hacer las cosas en Amibroker, este es sólo un ejemplo de tantos. Una vez hechas las aclaraciones, empezamos…

Como ejemplo tomamos un típico sistema de cruce de medias ( nota: esto no es un sistema para operar, sólo es un ejemplo). Las reglas del sistema son: Si la media rápida cruza hacia arriba a la media lenta compramos y si la media rápida cruza por debajo de la lenta vendemos. Todas estas operaciones filtradas con un filtro de tendencia alcista que en este caso es la media simple de 200 sesiones. Para evitar distorsiones al evaluar el sistema el tamaño de la posición es siempre el mismo ( siempre compramos 1.000$).

El código AFL en amibroker es el siguiente:

//Sistema ejemplo basado en el cruce de medias//
//Sistema ejemplo:Cómo optimizar con walk forward en Amibroker //
//estrategiastrading.com //

//condiciones generales//
SetOption("InitialEquity",10000);//capital inicial
SetPositionSize( 1000, spsValue );//tamaño posición 
SetOption("extracolumnslocation",1);//columnas optimizacion delante

//sistema//

Media1= Optimize("Media1",10,5,30,1);
Media2=Optimize("Media2",50,30,70,1);
Filtro= C> MA(C,200);
FMA= MA (C,Media1);
SMA = MA (C,Media2);

Buy = Cross( FMA,SMA) AND Filtro;
Sell = Cross(SMA, FMA);

Con la optimización lo que buscamos saber es qué valor tengo que darle a la longitud de las medias para poder mejorar los resultados. Las variables a optimizar son Media1 y Media 2.

Cómo optimizar con walk forward en Amibroker:

  1. En Amibroker vas a → Analysis→ Formula Editor.  Se abre un recuadro en blanco en el cual insertas el código del sistema.
    Atención: Cuidado con copiar y pegar directamente el código porque a veces hay caracteres como las «comillas» que no se leen correctamente.
    Dale un nombre al sistema y guárdarlo.
  2. EnAnalysis →New Analysis. Se abre una nueva pestaña en la que puedo elegir el sistema a optimizar.
    1. Abre la carpeta a la derecha » Pick a File» y elije el archivo AFL correspondiente.
    2. En «Apply to» hay un desplegable en el que puedes elegir sobre que título vas a optimizar. En este caso como sólo quieres optimizar el sistema para el título que estás viendo elije «Current».
    3. En el botón «Settings» ( es el dibujo de la herramienta) define las condiciones para la optimización. En este caso sólo operamos largos entonces en  «Positions» elije «Long», en «Periodicity» daily.
      Como estamos evaluando el sistema, lo haremos sin aplicar comisiones así que las pones a 0.

      Optimizar con Walk Forward en Amibroker
      Configurar el backtest en Amibroker
    4. En la pestaña «Trades» selecciona «Close» para todas las operaciones.
      Compras y ventas al precio de cierre de día.
    5. En la pestaña «Walk Forward» selecciono Easy Mode (EOD) porque estás optimizando un sistema para datos diarios en fin de día, además selecciona las fechas de comienzo y fin para el periodo in sample (IS), y selecciona la última fecha que tendrá en cuenta para el periodo out of sample (OOS).
      También puedes elegir la longitud de los sucesivos test OOS dando valores a «step» , en este caso está a 1 año.
      En el recuadro de abajo se pueden comprobar que los periodos IS, para in sample, y OOS, para out of sample, sean los correctos.
      También hay que seleccionar la función objetivo para la optimización «Optimization Target», en este ejemplo CAR/MDD.
      Si seleccionas «Anchored» se fijará la misma fecha de inicio para todos los backtest in sample, yo no suelo hacerlo.
  3.  Una vez tengo definidas todas las condiciones de la optimización vas a la estrella Optimize y en el desplegable elije Walk-Forward.

    optimization amibroker walk forward
    Configuración para optimizar con Walk Forward en Amibroker

Al terminar el proceso puedes ver los resultados en la pestaña Walk-Forward. Allí se ven los distintos resultados para los periodos IS y OOS así como también se

Leer más

Sistemas de trading: optimización y walk forward

optimizar sistemas de trading

¿Qué valor tengo que dar a las variables que tener más beneficio neto? ¿Con qué parámetros gano más por operación?
Estos son los tipos de pregunta que nos hacemos cuando lanzamos una optimización.

Optimizar sistemas de trading

Lo que se busca al optimizar sistemas de trading, o mejor dicho lo que yo busco cuando optimizo, es identificar los mejores valores numéricos para los distintos parámetros del sistema.

La idea al optimizar sistemas de trading es encontrar los valores adecuados para maximizar la función objetivo.

Esta función objetivo puede ser cualquiera de los ratios para evaluar sistemas como por ejemplo el recovery factor, K-ratio, el ratio de Sharpe, etc. Lo importante es que la función objetivo elegida simbolice lo que nosotros buscamos en un sistema.

Yo por ejemplo, actualmente optimizo por profit factor, buscando tener controlado el drawdown y me resulta muy importante tener un alto % de aciertos. Y digo actualmente porque estás son las funciones que son importantes para mí en mis condiciones actuales y para el tipo de sistema que estoy operando.

Para encontrar la mejor combinación de valores, el programa lo que hace es ir probando todas las combinaciones de valores posibles y haciendo el backtest para cada una de ellas.

¿Qué es un backtest? Hacer un backtest es aplicar el sistema de trading a los datos de cotizaciones históricas y analizar cómo ha funcionado el sistema en el pasado (% beneficio neto,  % Drawdown, etc).

Por esto, cuantas más variables tengas a optimizar más combinaciones posibles habrá y más backtests habrá que realizar.

La mayoría de plataformas de software para trading permiten hacer optimizaciones de los sistemas; actualmente trabajo con Amibroker (donde las optimizaciones son muy rápidas)

Leer más

ESTRATEGIAS DE TRADING