Estrategia de transformación del índice de oscilador

El autor:¿ Qué pasa?, Fecha: 2023-12-22 14:21:28
Las etiquetas:

img

Resumen general

La estrategia de transformación del índice de oscilador utiliza los cruces entre el índice de oscilador 3-10 de Bressert y su promedio móvil simple de 16 días para generar señales comerciales.

Estrategia lógica

La estrategia se basa en el índice del oscilador 3-10 de Bressert, que es la diferencia entre los promedios móviles exponenciales de 3 días y 10 días.

Específicamente, la estrategia primero calcula la EMA de 3 días, la EMA de 10 días y su diferencia como el índice del oscilador. Luego calcula el promedio móvil simple de 16 días del índice del oscilador como la línea de señal.

Análisis de las ventajas

  1. Utiliza el clásico índice de oscilador de Bressert que es bastante eficaz
  2. Forma señales comerciales claras con cruces de líneas rápidos y lentos
  3. Permite que las operaciones de reversión se adapten a los diferentes regímenes de mercado
  4. Puede utilizarse tanto en operaciones intradiarias como en operaciones de un día para otro

Análisis de riesgos

  1. El rendimiento del oscilador de Bressert es inestable con fluctuaciones de ganancias/pérdidas
  2. Los cruces de líneas rápidos y lentos pueden generar señales falsas
  3. Las operaciones de reversión tienen mayores riesgos y deben utilizarse con precaución
  4. Se requiere el stop loss para operaciones intradiarias y el dimensionamiento de posiciones para operaciones durante la noche

Direcciones de optimización

  1. Optimización de los parámetros mediante el ajuste de los períodos de media móvil
  2. Añadir filtros utilizando otros indicadores o acciones de precios
  3. Añadir una estrategia de stop loss para limitar el tamaño de la pérdida de una sola operación
  4. Optimizar la gestión del capital para reducir el impacto global de la utilización

Conclusión

La estrategia de transformación del índice de oscilador es una estrategia de negociación a corto plazo que genera señales de 3-10 osciladores y cruces de líneas de señal. Es simple y práctico para uso intradiario y nocturno, pero tiene fluctuaciones inherentes de PnL y riesgos de falsas señales. Se requieren filtros adicionales, stop loss y dimensionamiento de posición para refinar la estrategia.


/*backtest
start: 2022-12-15 00:00:00
end: 2023-12-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 27/03/2017
// TradeStation does not allow the user to make a Multi Data Chart with 
// a Tick Bar Chart and any other type a chart. This indicator allows the 
// user to plot a daily 3-10 Oscillator on a Tick Bar Chart or any intraday interval.
// Walter Bressert's 3-10 Oscillator is a detrending oscillator derived 
// from subtracting a 10 day moving average from a 3 day moving average. 
// The second plot is an 16 day simple moving average of the 3-10 Oscillator. 
// The 16 period moving average is the slow line and the 3/10 oscillator is 
// the fast line.
// For more information on the 3-10 Oscillator see Walter Bressert's book 
// "The Power of Oscillator/Cycle Combinations" 
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="D_Three Ten Osc", shorttitle="D_Three Ten Osc")
Length1 = input(3, minval=1)
Length2 = input(10, minval=1)
Length3 = input(16, minval=1)
reverse = input(false, title="Trade reverse")
hline(0, color=green, linestyle=line)
xPrice =  request.security(syminfo.tickerid,"D", hl2)
xfastMA = ema(xPrice, Length1)
xslowMA = ema(xPrice, Length2)
xMACD = xfastMA - xslowMA
xSignal = sma(xMACD, Length3)
pos = iff(xSignal > xMACD, -1,
	     iff(xSignal < xMACD, 1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(request.security(syminfo.tickerid, "D", xMACD), color=blue, title="D_Three Ten Osc")
plot(request.security(syminfo.tickerid, "D", xSignal), color=red, title="D_Three Ave")

Más.