Trading sobre la curva de capital – Equity curve trading

filtro curva de capital

En la entrada anterior del blog «Intercambiar sistemas de trading» buscaba saber cuándo activar o desactivar las señales de un determinado sistema de trading. Bien, una de las soluciones propuestas en esa entrada era hacer trading sobre la curva de capital, es decir, utilizar la curva de resultados para medir la sincronización del sistema de trading con las condiciones del mercado.

Hoy vamos a ver qué tal funciona esta técnica de equity curve trading utilizando un ejemplo.

Leer más

Review: Building Reliable Trading Systems – Keith Fitschen

Keith Fitschen

Keith FitschenEsta semana hay otra pequeña reseña de libros de trading, esta vez le toca el turno a un libro de Keith Fitschen.
La idea de Building Reliable Trading Systems es guiarnos en desarrollo de los sistemas de trading para poder obtener sistemas operables en la realidad.

A lo largo del libro se desarrollan dos sistemas: un sistema de trading tendencial para operar con materias primas y un sistema de trading de contratendencia para operarlo con acciones (en este caso con acciones de Nasdaq100) .
Para cada uno de los sistemas se van implementando distintos tipos de entrada, salidas, stops, filtros y estrategias de position size.

En cuanto al money managent, en este libro se analizan brevemente distintas estrategias de position sizing, especificando las características para cuentas pequeñas y para cuentas grandes (Atención que aquí consideran que una cuenta pequeña es aquella con menos de 100.000 dólares).

Además Keith Fitschen cuestiona algunas ideas clásicas o muy conocidas en trading, por ejemplo critica las posturas tradicionales del money management y del análisis de Monte Carlo. Nos invita a evitar ser manipulado por los gurús que sólo exponen el mejor ejemplo para reafirmar su hipótesis y nos incita a probar cada idea de trading por nosotros mismos. «No creas lo que otros digan, no creas en todo lo que escuches o en lo que leas. Comprueba por ti mismo si es verdad».

Una parte importante del libro está orientada a tratar acerca de la sobreoptimización en el diseño de los sistemas de trading. En el libro se define qué es la sobreoptimización y qué factores nos puede llevar a caer en este error. Para evitar sobreoptimizar un sistema, Keith Fitschen no utiliza un método de walk-forward, sino que elabora su propio método llamado BRAC.

Leer más



Sobreoptimización en sistemas de trading

¿Qué significa sobreoptimización en trading?

Sobreoptimizar, en inglés curve-fitting, se produce cuando un sistema está tan adaptado a las condiciones de los datos históricos que funciona perfectamente en un backtest, pero no funciona en real.

Estos sistemas sobreoptimizados se caracterizan porque parecen dejar de funcionar tan pronto como comenzamos a operarlos en real con nuestra cuenta.

Leer más

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