En multitud de ocasiones he comentado con otros usuarios de la web que consideraba que el uso de osciladores de la manera clásica estaba muerto, por cuanto habían sido desarrollados en los años setenta y ochenta, por lo que en los mercados actuales probablemente no funcionen. Tal sería el caso del Estocástico o el RSI, donde normalmente se adoptan posiciones largas cuando el oscilador se encuentra sobrevendido y se toman posiciones cortas cuando se encuentra en el terreno de la sobrecompra.

Suponiendo que esto fuera cierto, ¿tendría algún valor usar los osciladores al contrario de la teoría explicada en los libros de análisis técnico? Esto es, la idea sería vender con valores muy bajos del oscilador y comprar cuando presente valores elevados. La base de esta estrategia estaría en suponer que cuando el momentum de una tendencia es muy fuerte, lo más probable es que el mercado continúe con el movimiento actual en lugar de girarse. Y es que seguramente todos los que llevamos tiempo en el trading nos hemos encontrado con esas situaciones en las que abrimos una posición en contra de la tendencia siguiendo un oscilador y este se queda pillado en niveles extremos mientras el mercado se mueve en vertical en nuestra contra.

Bien, veamos un ejemplo de ello siguiendo el artículo de V. Knapp titulado Stochastic Breakout publicado en noviembre de 2009 la revista Futures & Options Trader. La idea es utilizar el Estocástico como una herramienta de seguimiento de tendencia en base a las siguientes reglas:

  • Compra: abrimos posición larga en la apertura de la siguiente vela si la línea %K del Estocástico de 25 períodos cruza al alza el nivel de 98.

  • Venta: abrimos posición corta en la apertura de la siguiente vela si la línea %K del Estocástico de 25 períodos cruza a la baja el nivel de 2.

Por su parte, las reglas de stop loss y take profit son las siguientes:

  • Cierre Compra: en cada vela situamos un stop loss a una distancia de 4 ATRs de 12 períodos por debajo del cierre. Alternativamente cerraremos la posición en la siguiente apertura si la línea %K del Estocástico cierra por debajo de 2.

  • Cierre Venta: en cada vela situamos un stop loss a una distancia de 4 ATRs de 12 períodos por encima del cierre. Alternativamente cerraremos la posición en la siguiente apertura si la línea %K del Estocástico cierra por encima de 98.

Veamos un ejemplo práctico de cómo funcionaría la estrategia: en el siguiente gráfico del mini SP podéis ver como el Estocástico desencadena una señal de compra siguiendo las reglas de la estrategia al cruzar el nivel de 98 al alza, lo que implica abrir una posición larga en la apertura de la siguiente vela. El stop viene indicado por la línea azul oscuro que representa el cierre menos 4 veces el valor del ATR(12).

La entrada se produce el 16 de octubre a un precio de 1973.50, saltando el stop un mes después a 1995.75, lo que supone una ganancia de 22.25 puntos.

Estrategia de Estocástico Invertido en el miniSP

La gracia de las reglas de salida de esta estrategia es que cuanto más tiempo permanezca abierta una posición, mayor será la probabilidad de que el ATR se expanda y el stop se mueva a una distancia bastante amplia con respecto a los cierres. Ello en la práctica implicará que la mayor parte de las operaciones se cerrarán seguramente por la otra regla de salida basada en la línea %K. No obstante, es recomendable que la pérdida que representa el stop basado en el ATR no suponga más del 2% de nuestro capital.

 

Un Poquito de Backtest, Por Favor
¿Funcionará esta estrategia? Veámoslo programándola rápidamente en Easy Language. Aquí tenéis el código completo (como podéis ver, muy sencillito):

inputs:
Length(25),
    OverSold(2),
    OverBought(98),
    PositionSize(1),
    ATRPeriod(12),
    ATRMult(4);
    
variables:
    PctK(0),
    StopLong(0),
    StopShort(0);
 
PctK = 100*((C-Lowest(Low,Length))/(Highest(High,Length)-Lowest(Low,Length)));

if PctK >  OverBought and PctK[1] <  OverBought[1]
then
    Buy PositionSize contracts next bar at open

else if PctK < OverSold and PctK[1] >  OverSold[1]
then
    SellShort PositionSize contracts next bar at open ;

if PctK >  OverBought and MarketPosition = -1
 then Sell next bar at open
 else if PctK < OverSold and MarketPosition = 1
 then BuyToCover next bar at open ;

if MarketPosition = 1 then begin
   StopLong = (Close[1] - ATRMult*AvgTrueRange(ATRPeriod));
   SetStopLoss(StopLong);
end;

if MarketPosition = -1 then begin
StopShort = (Close[1] + ATRMult*AvgTrueRange(ATRPeriod));
SetStopLoss(StopShort);
end;


Probamos la estrategia en el histórico completo del mini S&P500 (desde septiembre de 1997 hasta hoy):

Backtest Estrategia Estocastico Invertido en miniSP 500

Los resultados obtenidos son los siguientes:

Resultados Backtest en miniSP 500

Lo primero que salta a la vista es que hace muy pocas operaciones (92 trades en un histórico de 20 años), y que el grueso de los beneficios se concentra en 15 operaciones, presentando una bajísima tasa de acierto, más típica de un sistema tendencial.

Si analizamos la equity, llama la atención (y mucho) lo marcado del cambio en su comportamiento justo en la mitad del histórico:

Curva de Beneficios Estrategia Estocastico Inverso en miniSP 500


Es como si a partir de la crisis de 2008 usar el Estocástico al revés se hubiera convertido en un edge (o dicho de otro modo, que la estrategia tradicional basada en Estocástico hubiera pasado a la historia).

De hecho si repetimos el backtest desde 2008, la cosa cambia notablemente y los beneficios se disparan aunque nuevamente siguen siendo pocas operaciones como para poder asegurar algo con algo de total certeza:

Resultados Backtest Estrategia Estocastico Inverso en miniSP 500 a partir de 2008

 


Conclusión
La idea de utilizar estrategias tradicionales de manera distinta a la que se sugieren en la mayor parte de libros de análisis técnico resulta muy tentadora, sobre todo si tenemos en cuenta que probablemente muchas de ellas hayan dejado de funcionar desde hace muchos años, por mucho que nuestro ojo se empeñe en decirnos que sí lo hacen.

Si bien el análisis realizado en el experimento de este artículo no es concluyente, dado el escaso número de operaciones, el resultado nos da un hilo a partir del que tirar. Posiblemente experimentando con diferentes valores para los niveles extremos del oscilador o incluso haciendo dichos niveles dinámicos (¿qué tal unas bandas de Bollinger sobre el Estocástico? :D) podamos obtener estrategias con perfil de seguidor de tendencia aunque basadas en un oscilador… usado al revés ;).


Saludos,
X-Trader