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 muestran los valores que maximizan la función objetivo en cada periodo. Cada periodo IS y OOS constituye una etapa en el proceso de walk-forward.

Optimizar con Walk Forward en Amibroker
Resultados walk forward amibroker

Para ver la curva de capital tanto de los IS como del OOS, Amibroker crea 2 tickers artificiales ∼∼∼ISEQUITY  y ∼∼∼OSEQUITY (Los encontrarás en Group253 que es donde se recogen los composite tickers).  Podemos poner en un gráfico estos tickers para ver la evolución de la curva de capital del sistema.
Si eres más visual, puedes ponerla en un gráfico con este código:

PlotForeign("~~~ISEQUITY","InSample Equity",colorRed,styleLine);
PlotForeign("~~~OSEQUITY","Out of Sample Equity",colorGreen,styleLine);
Title="{{NAME}}{{INTERVAL}} {{DATE}} {{VALUES}}";

Además en «Report» → «Report Explorer»  puedes ver el resultado del análisis en cada periodo OOS y el último report concatena todos los resultados OOS. Entrando en este report en el apartado «Trades» se pueden ver las operaciones por fecha con su resultado individual.

 


 

Si te ha gustado este mini tutorial me ayudarías mucho con +1 en Google Plus, un comentario o cualquier forma de compartir mi blog con la gente a la que creas que le pueda interesar.¡Hasta la próxima!

 

4 comentarios en «Guía: Optimizar con Walk Forward en Amibroker»

  1. Hola Duk2

    Muy útiles estos tutoriales!!!
    He pasado este blog a más personas.
    ¿tenias pensado hacer un cursillo de Amibroker? Seria estupendo para los que nos iniciamos porque me parece que es la plataforma menos extendida frente a otras, al menos en España… y cuesta bastante

    gracias

    Responder
    • Hola amdrd,

      Gracias por tu comentario, me alegra que te gusten los artículos.
      De momento lo que hecho es añadir a la web algunos post tipo guías sobre Amibroker. Pienso que puede ser útil para lectores que comienzan a utilizar esta plataforma. Sobre cursos, también hay otros lectores que me han preguntado, y estoy pensando en algo que pueda convenir y ser útil para todos.
      un saludo,

      Responder
  2. Duk2, estoy intentando optimizar las medias para el futuro del eurostoxx. Es como un filtro de tendencia para venta de opciones. No consigo hacerlo.
    Puede ser porque lo hice sobre indice eurostoxx ? se puede hacer sobre fururo o debe ser sobre un etf? Saludos

    Responder

Deja un comentario

ESTRATEGIAS DE TRADING