Sistema SWINGUP
 
 

Sistema SWINGUP

 
TradingSys (AndG) - 3 Nov 2005
6 comentarios
 
tradingsys Desarrollamos este sistema con fines didácticos. Nuestra intención es jugar con algunas de las ideas enumeradas en artículo El eterno dilema de las medias móviles, aparecido en esta web la semana pasada. En él se analizaron varias propuestas (DEMA, GD y T3) para suavizar (smooth) medias e indicadores clásicos sin incurrir en un excesivo retardo (lag) respecto a las series de precios.

Como ya indicábamos, estas técnicas permiten filtrar buena parte de las señales falsas al ser implementadas en sistemas de trading,  siempre y cuando se esté dispuesto a asumir el precio de un ligero retardo respecto al punto óptimo de entrada.

En el presente sistema hemos combinado algunas conocidas tácticas de entrada y posicionamiento de stops empleando las bandas de Bollinger con una versión suavizada del estocástico a la que hemos dado el nombre de GDSTO.

1) EL INDICADOR GDSTO 


 La primera cuestión a la que hemos tenido que responder es: ¿Qué nivel de aplanamiento puede soportar un indicador sin degradar su nivel predictivo? Tras sucesivas pruebas, comprobamos que la aplicación del triple filtro del Generalized DEMA (GD) propuesto por Tillson (T3) resultaba en este caso excesivo. Probamos y descartamos también el T2, quedándonos finalmente con un GD aplicado al Sk y una media exponencial larga al Sd. (Sd= EMA(p)(GDSTO)).


 El resultado, tal y como podemos apreciar en la ilustración inferior, es razonablemente bueno: Consigue evitar algunos cortes improductivos de Sk y Sd al precio de un retardo que no supera las tres barras.


 tradingsys

 
Por otro lado, las bandas superior y inferior del indicador deben ser reducidas en al menos 15 puntos porcentuales para adaptarse a la amplitud de las curvas Sd y Sk una vez filtradas. De hecho, la ventana óptima se encuentra en el rango 35-45 (LowerBand) y 65-55 (UpperBand).

 
2) REGLAS DEL SISTEMA


  • COMPRA:
     
(1)   Cruce de Sd y Sk en sentido ascendente y por debajo del parámetro LowerBand.

(2)   Máxima actual por encima de la línea media de Bollinger. En la práctica, esto actúa como un trigger de entrada, por lo que no consideramos necesario la inclusión de estrategias complementarias basadas, por ejemplo, en ordenes limitadas a una fracción del ATR + cierre anterior.

  • VENTA:
     
(1)   Cruce de Sd y Sk en sentido descendente y por encima del parámetro UpperBand.

(2)   Mínima actual por debajo de la línea media de Bollinger.

  • CERRAR LARGO:
     
Verificación de la señal anticipada ControlC=1, cuando:

 GetMarketPosition=1 Y Cierre(1) > Indicador(BollinguerBandsData,1,1) Y Cierre < Indicador(BollinguerBandsData)

 Y, una vez satisfecha la señal:
 
GetMarketPosition=1 Y  ControlC=1 Y Minima(2) < Indicador(BollinguerBandsData,2,3) Y  Minima(1) < Indicador(BollinguerBandsData,1,3) Y Minima < Indicador(BollinguerBandsData,0,3)

  • CERRAR CORTO:
     
    Verificación de la señal anticipada ControlV=1, cuando:
     
GetMarketPosition=-1 Y Cierre(1) < Indicador(BollinguerBandsData,1,1) Y Cierre < Indicador(BollinguerBandsData)

 Y, una vez satisfecha la señal:
 
GetMarketPosition=-1 Y ControlV=1 Y Maxima(2) >Indicador(BollinguerBandsData,2,2) Y Maxima(1) > Indicador(BollinguerBandsData,1,2) Y Maxima > Indicador(BollinguerBandsData,0,2)

 * Recordamos que en el indicador de Bollinger proporcionado en la plataforma Visual Chart, la banda media es la línea 1, la superior la línea 2 y la inferior la línea 3.
 
 
3) COMPORTAMIENTO DEL SISTEMA
 
El sistema muestra un comportamiento realmente bueno en las fases laterales y de consolidación, aprovechando los frecuentes dientes de sierra de amplitud menor a dos sesiones para posicionarse de manera bastante precisa y dando muy pocas señales falsas.

 
tradingsys


Tal vez contribuya a ello nuestra versión suavizada del estocástico que, como hemos visto logra un compromiso aceptable entre aplanamiento de la curva y retardo:

 
tradingsys


En las situaciones de fuerte tendencia el sistema incurre en mayor número de errores, al no estar diseñado para adaptarse a la estructura de ciclos de amplitud media y larga.  Es el eterno dilema de todos los sistemas que operan con un time frame muy pequeño.

 
tradingsys


Claro ejemplo, por tanto, de la necesidad de contar con una cartera diversificada de sistemas tendenciales y antitendenciales que operen en diferentes escalas y mercados poco correlacionados.

 
4) VARIABLES Y PARÁMETROS:
 
En esta publicación nos gusta distinguir entre Variables, parámetros optimizables, parámetros no optimizables y parámetros ocultos.

 
(A) Las variables pueden ser de dos clases: Valores de control, que influyen sobre la secuencia secuencia de órdenes condicionales (flujo lógico del programa): V/F 0,1, (SWINGUP incluye dos variables lógicas; ControlC y ControlV, cuyo valor por defecto es “1”). Valores de usuario, valores fijos a introducir por el usuario para que el sistema realice sus cálculos; capital inicial, horas de inicio y cierre, etc.

 
(B) La función de los parámetros optimizables es adaptar el sistema a las condiciones intrínsecas del mercado y/o del time frame sobre el que se aplica. Su selección debe basarse en criterios objetivos como reducción significativa del DD o aumento de la curva de beneficios.

En este sistema hemos tomado la decisión (arbitraria y sujeta a debate, desde luego) de poner al arbitrio del usuario aquellos parámetros que en las pruebas de backtesting han hecho fluctuar el DD o el equity al menos un ±5%:
  1. GDSTOperiod: Controla el periodo del estocástico y del GD. Valor de referencia: 20, rango recomendable al optimizar: 14-35.
  2. Gdvfactor: Modifica el nivel de aplanamiento (smooth) asociado al GD. Valor de referencia: 0,74. Rango recomendable: 0,45-0,80.
  3. UpperBand: Banda superior del indicador GDSTO. Valor de referencia: 59. Rango optimizable: 65-55.
  4. LowerBand: Banda inferior del indicador GDSTO. Valor de referencia. 44. Rango optimizable: 35-45.
     
(C) Consideramos como parámetros no optimizables aquellos que no influyen de manera significativa sobre el DD y el beneficio, o que muestran una elevada correlación con alguno de los parámetros susceptibles de optimización, por lo que pueden subsumirse a estos directamente o mediante alguna operación matemática.

En nuestro caso:

 
  1. BollingerPerid: (Igual a GDSTOperiod).
  2. GDsd:  (Igual a GDSTOperiod).
  3. CoeficienteM de Bollinger: Se emplea el valor por defecto “2”. Cualquier otro valor comprendido entre “1” y “3” no afecta a los resultados.
 (D) Parámetros ocultos: Aquellos que han sido previamente optimizados por el desarrollador y se introducen de manera encubierta en las reglas del sistema. No recomendamos su uso, ya que conducirán a rendimientos pobres de carácter inevitable cuando el usuario trata de aplicar el sistema a otros mercados o time frames no previstos por el desarrollador. Algunos autores se expresan de manera más tajante y consideran un auténtico fraude el uso de estos parámetros.
 
 
5) APLICACIÓN DEL SISTEMA:
 
El sistema SWINGUP fue probado en nuestro índice benchmark (E-mini SP500 de 30¨) empleando todo el histórico disponible (1997-2005),  un total de 58.968 barras que, a nuestro juicio, es suficientemente representativo de la casuística alcista-bajista-lateral del mercado.

Los parámetros seleccionados en las pruebas de backtesting: 20, 0,74, 44 y 59 ofrecieron el siguiente resultado:

 
tradingsys


 
Cabe destacar la relativa robustez del sistema en operaciones a corto y a largo, cosa que suele ser bastante infrecuente en otros sistemas evaluados, los cuales evidencian una asimetría entre beneficio a corto y a largo mucho mayor.

 
El número de negocios (1.223) es elevado, tres por semana o uno cada 33 barras de 30 minutos. El sistema entra de lleno en la categoría del swingtrading u operativa intradiaria “tranquila”. La relación entre negocios positivos y negativos (1,57) se sitúa por encima de la media de los sistemas de este tipo, si bien el ratio (1,02) no acaba de gustarnos del todo.

 
tradingsys


 
6) DRAWDOWNS Y PRUEBA DE MONTECARLO


 Con un nivel de confianza del 95% (valor estándar de la operativa sistemática) y tras realizar 10.000 ciclos, el test de Montecarlo muestra un DD máximo del 25,32% como peor escenario posible. Incluso con una confianza del 100% el peor DD encontrado es del 52,55%. La robustez a largo plazo parece satisfactoria. (Recordemos que sólo en el caso de DD por encima de 65%, el riesgo de ruina total en las 100 operaciones alcanza niveles críticos).

 
tradingsys


 
Nuestro simulador también indica que con un capital inicial de 40.000$ y un contrato por operación, la posibilidad de obtener un 20% de beneficio sobre el capital inicial en las 100 primeras operaciones es del 62%, mientras que la de incurrir en una disminución crítica superior al 50% del capital inicial es tan solo del 2,9%. (Todas estas pruebas han sido realizadas con el programa Market System Analyzer.)

 
7) ESTRATEGIAS DE POSICIONAMIENTO


 En opinión de numerosos autores, los algoritmos de position sizing deberían ocupar un lugar mucho más destacado que las reglas de posicionamiento en cualquier sistema automático. Una adecuada gestión del riesgo por operación y del número de contratos a invertir en función de la curva de beneficios, contribuye de manera decisiva a incrementar el rendimiento y la robustez general del sistema. Antes de publicar SWINGUP hemos probado cinco estrategias de posicionamiento:

 
  • Turtles volatility-based position sizing.


Hace poco tiempo Curtis M. Faith, uno de los miembros del grupo original de Richard Dennis, ha hecho públicas, en un extenso documento que puede descargarse libremente en el portal www.originalturtles.org, las reglas completas del paradigmático sistema tendencial conocido como Turtle Trading Systems.
De su lectura causan impresión tres cosas:
 
      (a) La extremada sencillez y, a mi juicio, escasa importancia concedida de las reglas de entrada, basadas en la estrategia clásica de ruptura de precios máximos y mínimos conocida como Donchian´s Channel Breakout.
      (b) La enorme importancia dada a la diversificación intermercados y  la cuidadosa selección de productos muy líquidos.
      (c)  El avanzado e ingenioso sistema de posicionamiento basado en un riguroso control del riesgo en función de la volatilidad del mercado.
 
La fórmula emplea como estimador de volatilidad el ATR (Average True Range) de 20 sesiones. A partir este indicador establece la volatiliad de cada dólar arriesgado en un contrato de derivados como:
 
Market Dollar Volatility (MDV) = ATR (20) * Dollars per Point
 
El número de unidades (o contratos a comprar) en cada nuevo posicionamiento queda determinado por la expresión:
 
Unit = 1% of Account / MDV
 
Por ejemplo, supongamos que un sistema cuenta  con un “capital de faena”  (capital inical + beneficios) de 40.000$ y que deseamos saber cuantos contratos deben ser arriesgados en una determinada operación del E-mini SP500. Como en este mercado cada punto de fluctuación equivale a 50$, si el ATR(20) del gráfico de 30´ es por ejemplo de 2 , tenemos:
 
Unit Size= 0.01* 40000$ / 2 * 50$ = 400/100 = 4 contratos.
 
Hemos probado este método con nuestro sistema SWINGUP, obteniendo un resultado neto positivo muy importante durante el período analizado en el backtestig (1997-2005), más de 2.000.000$ de beneficio final. Sin embargo, las fluctuaciones interanuales son de vértigo, subiendo hasta un pico de 240 contratos, para descender abruptamente hasta 148. Un monumental “tobogán” de más de cuatro millones en 14 meses. Suponemos que no hay cuerpo que lo resista. ¿Dónde está el problema? ¿Qué hemos hecho mal?
 
Respuesta: ¡Prácticamente todo!
 
Para empezar, el método de las tortugas emplea gráficos diarios, es de tipo tendencial y se aplica a una cesta muy diversificada de mercados, por lo que:
 
      (1) Las variaciones del ATR en diferentes marco-épocas empleando barras de 30 minutos son descomunales. 
      (2) Un sistema antitendencia obtiene sus mayores beneficios en momentos de alta volatilidad (y en consecuencia elevado ATR). Por tanto su lógica es inversa. Se deben arriesgar más contratos cuando el ATR aumenta y no al revés, como establece el método de las tortugas.
      (3) Carecemos de la perspectiva de una aplicación del sistema a una cesta diversificada de sistemas. Cuestión crítica y esencial en la estrategia inversora de Richard Dennis y William Eckhard.
 
 En suma: Este método de position sizing es inapropiado para nuestro sistema, por lo que volvemos la vista a otras estrategias más habituales. Para ello emplearemos el simulador MSA:
 
  • Fixed ratio:

Estrategia en la que el principal parámetro es la variable “Delta” que representa la cantidad de beneficio necesaria para incrementar el número de contratos en una unidad.  Actuando con exquisita prudencia establecemos esta cantidad en 10.000$, con lo que obtenemos el siguiente gráfico:

 
tradingsys


 
Nuestro sistema, que permanece plano durante las 150 primeras operaciones, obtiene en el periodo analizado un beneficio final de 381.388$; eso si, elevando su DD máximo hasta el 30,83%.

  • Fixed Risk

Es uno de los métodos más sencillos de incorporar a los sistemas automatizados. La estrategia consiste en calcular un riesgo máximo por operación considerando, en cada caso, el tamaño del capital de faena disponible. Nosotros, como de costumbre hemos sido muy conservadores, manteniendo un valor constante del 6% del equity curve. El resultado ha sido sorprendentemente bueno:

 
tradingsys


 
Obtenemos un pico de beneficio próximo a los 600.000$, con un DD que a penas supone un 28%.

  • Kelly Formula

Derivada del método fixed fractional, esta fórmula describe el porcentaje máximo de la cuenta que puede ser arriesgado en cada operación para maximizar el crecimiento del beneficio. Su expresión matemática es:

 
FK = ((WL+1)*PW-1)/WL. Siendo:

 WL= El ratio entre el valor medio de las operaciones ganadoras y perdedoras.

PW= El porcentaje de operaciones ganadoras.

 
Con los datos de nuestro sistema el programa calcula un valor de FK=11,56%, que da lugar al siguiente gráfico:

 
tradingsys


 
El sistema prácticamente permanece plano durante las primeras 500 operaciones, experimentando un crecimiento relativamente suave del número de contratos. Con todo, arriesgar un 11,56% del capital disponible por operación nos parece a todas luces excesivo y difícil de asumir por cualquier operador prudente. El DD sube al 38,9%, para un beneficio final de 1.463.562$ y un pico de 76 contratos.

 
Como de costumbre, y dado el carácter didáctico de este artículo, no optamos abiertamente por ninguna de las estrategias comentadas. Preferimos que el lector experimente por si mismo y se decida a implementar con los datos en la mano el método de posicionamiento que le resulte más tolerable.




 
AVISO PARA NAVEGANTES

 
Cláusulas de exclusión de garantía y responsabilidad:
 
(1) Recordamos que todos los resultados mostrados en esta página han sido obtenidos en el backtesting, por lo que no constituyen garantía alguna de que este comportamiento se mantenga en la operativa real. De hecho, y por motivos obvios, estos resultados suelen representar el mejor de los escenarios posibles. Por lo que cabe esperar un comportamiento significativamente peor en la operativa real.

 (2) El sistema SWINGUP, en el estado en que se ofrece a los lectores, tiene un carácter educativo y experimental. Aún no ha superado las pruebas de Fase 5 (Modo incubadora) por lo que no recomendamos su aplicación efectiva.

 (3) La operativa sistemática está considerada una modalidad inversora de alto riesgo que puede conducir a considerables pérdidas. Vamos, lo de siempre: “Rentabilidades pasadas y resultados hipotéticos no garantizan rentabilidades futuras”.

 (4) Tradingsys.org no autoriza la explotación comercial y venta de este sistema, que tiene un carácter freeware y que podrá ser incluido en otras webs siempre y cuando se cite debidamente la autoría y se incluya un vínculo a nuestra página.

 


INSTALACIÓN DEL SISTEMA EN VISUAL CHART


 Para que SWINGUP funcione correctamente, antes deberán ser instalados y compilados los indicadores GD (Generalized DEMA) y GDSTO. Ambos están disponibles en nuestra sección de descargas para los usuarios registrados de esta web.

 
A. García, 2005.
© tradingsys.org

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 

Comentarios

 

martelo - ERROR EN COMPILACION

Buenas, 
al intentar compilar el indicador GDST. Me sale el siguiente error: "Error interno de Visual Basic. No se puede generar la DLL." Tiene arreglo? Les agradecería respuesta, les dejo mi direccion de mail: ilaguardia@wanadoo.es. Muchisimas gracias

begperez - Error copilación GDSTO

Al copilar el indicador da error de copilación.Podría indicarme a que es debido? 
Gracias

admin - Re: begperez

Envíame un correo indicándome la versión de VC que utilizas y, quizá, pueda enviarte un indicador GDSTO que te funcione. 
 
El problema, es que se trata de un sistema ya muy antiguo (2005) cuyo código se escribió para versiones anteriores de VC. 

begperez - GDSTO

Gracias por su interés 
La versión es la 4.0.9.8 
Saludos

cexarius - GDSTO

Yo tampoco puedo compilar el indicador. Seria posible que me enviaseis por correo electronico una version compatible con VisualChart 4.0.9.8? 
 
Saludos

admin - Re:cexarius

Por favor, contacta con admini@tradingsys.org para indicarnos tu correo.

Añadir comentario

 
Modificado por TradingSys (AndG) - 14 Dic 2005
 
 

Secciones

 
 

Entradas recientes

 
 

Enlaces