Estrategia SSL doble con EMA para el stop loss

El autor:¿ Qué pasa?, Fecha: 2023-11-06 16:52:11
Las etiquetas:

img

Resumen general

Esta estrategia integra el indicador Dual SSL y el indicador de promedio móvil, utilizando el indicador Dual SSL para determinar la dirección de la tendencia del mercado y los promedios móviles para la confirmación de la tendencia. Pertenece a una estrategia de seguimiento de tendencias.

Estrategia lógica

  1. Calcular el rieles superior tomando la SMA del precio más alto durante un período especificado frente al cierre de ayer.

  2. Compara el precio de cierre actual con los rieles superior e inferior para determinar la dirección de la tendencia actual. Si el precio de cierre está por encima del rieles superior, la tendencia se determina como alcista. Si el precio de cierre está por debajo del rieles inferior, la tendencia se determina como bajista.

  3. Calcular la SMA de 200 períodos de los precios de cierre como referencia para las tendencias a medio y largo plazo.

  4. Cuando el precio de cierre se rompe por debajo de la SMA desde abajo, se genera una señal de compra.

  5. Después de entrar en una posición larga, si el precio de cierre se rompe por debajo del rieles superior, es una señal de cierre.

  6. Si el precio de cierre se rompe por debajo del punto de stop loss, se activa la orden de stop loss.

Ventajas

  1. El uso del indicador Dual SSL para determinar la dirección de la tendencia puede identificar efectivamente las tendencias y aumentar la probabilidad de entrar en la dirección correcta.

  2. La adición de medias móviles puede filtrar algunas señales de ruido y evitar operaciones incorrectas en mercados agitados.

  3. El uso de un stop loss para controlar el riesgo de una sola operación puede evitar efectivamente pérdidas excesivas.

  4. La lógica de la estrategia es relativamente simple y fácil de entender, adecuada para que los principiantes practiquen.

Los riesgos

  1. El indicador Dual SSL es sensible al ajuste de parámetros, diferentes combinaciones de períodos pueden dar lugar a resultados muy diferentes.

  2. Un MA demasiado largo excluye demasiadas oportunidades de negociación, mientras que uno demasiado corto no puede denunciar de manera efectiva.

  3. Un rango de stop loss demasiado amplio no puede controlar el riesgo de manera efectiva, mientras que uno demasiado estrecho puede desencadenarse por fluctuaciones normales de precios.

  4. La estrategia se basa en gran medida en la optimización de parámetros. Los parámetros incorrectos pueden no identificar las tendencias correctamente, lo que lleva a decisiones comerciales incorrectas.

Direcciones de optimización

  1. Prueba diferentes combinaciones de períodos para encontrar parámetros que puedan mejorar la precisión de la determinación de tendencias para el indicador Dual SSL.

  2. Prueba diferentes MAs de período para encontrar el equilibrio óptimo entre las señales de desnotificación y de preservación.

  3. Explorar las pérdidas de parada adaptativas que se ajustan en función de la volatilidad del mercado para hacer que la pérdida de parada sea más receptiva.

  4. Incorporar otros indicadores de confirmación, como volumen, confluencia de marcos de tiempo múltiples, para mejorar la robustez.

  5. Se debe realizar un análisis de marcha adelante de la estrategia optimizada para garantizar la robustez.

Conclusión

Esta estrategia combina los puntos fuertes del indicador SSL doble y las medias móviles. Con un potencial significativo para la optimización de parámetros, es una estrategia de tendencia. Con un ajuste y optimización razonables de parámetros, se pueden lograr buenos resultados. Sin embargo, el riesgo de sobreajuste debe controlarse para garantizar la robustez. En general, esta estrategia sirve como un buen ejemplo para la exploración y el aprendizaje.


/*backtest
start: 2022-10-30 00:00:00
end: 2023-11-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//@Isaac
//Estrategia vista en ▼▼
//YT: Trading Zone
strategy('SSL Strategy + EMA 200 AND Stop Loss', overlay=true)

ema = ta.ema(close, 200)

stop_loss = input.float(2.00, title='Stop Loss', step=0.10)

period = input(title='Period', defval=10)
len = input(title='Period', defval=10)
smaHigh = ta.sma(high, len)
smaLow = ta.sma(low, len)
Hlv = int(na)
Hlv := close > smaHigh ? 1 : close < smaLow ? -1 : Hlv[1]
sslDown = Hlv < 0 ? smaHigh : smaLow
sslUp = Hlv < 0 ? smaLow : smaHigh


cruceArriba = ta.crossover(sslUp, sslDown)
cruceAbajo = ta.crossunder(sslUp, sslDown)

alcista = (close > ema ) and (cruceArriba) 
bajista = (close < ema) and (cruceAbajo)

var SL = 0.0
//Cerrar compra por cruce
por_cruce = ta.crossunder(sslUp, sslDown)

//Cerrar venta por cruce
por_cruceAB = ta.crossunder(sslDown, sslUp)

//Cerrar compra y venta por stop loss
Stop = SL

comprado = strategy.position_size > 0
vendido = strategy.position_size < 0

UTmpconvertL = strategy.position_avg_price * (1 + 0.1)
UTmpdefineL = (UTmpconvertL > close and strategy.openprofit > 0.1)
UTSPL = UTmpdefineL

SPL = UTSPL

///////////////////////////////////////////////////////////////////////

UTmpconvertLS = strategy.position_avg_price * (1 + 0.1)
UTmpdefineLS = (UTmpconvertLS > close and strategy.openprofit > 0.1)
UTSPLS = UTmpdefineLS

SPLS = UTSPLS

////////////////////////////////////////////////////////////////////////

if not comprado and not vendido and alcista
    cantidad = (strategy.equity / close)
    strategy.entry('Compra', strategy.long, qty=cantidad, comment="Long")
    SL := sslDown


if comprado and not vendido and por_cruce and SPL
    strategy.close("Compra", comment="Exit Long")
    SL := 0
    
if comprado and not vendido and Stop
    strategy.exit('Compra', stop=Stop, comment="SL")
    SL := 0

///////////////////////////////////////////////////////////////////

if not comprado and not vendido and bajista
    cantidad = (strategy.equity / close)
    strategy.entry('Venta', strategy.short, qty=cantidad, comment="Short")
    SL := sslDown

if not comprado and vendido and por_cruceAB and SPLS
    strategy.close("Venta", comment="Exit Short")
    SL := 0
    
if not comprado and vendido and Stop
    strategy.exit('Venta', stop=Stop, comment="SLS")
    SL := 0



plot(Stop > 0 ? Stop : na, style=plot.style_circles, color=color.new(color.yellow,0))
plot(ema)
plot(sslDown, linewidth=2, color=color.new(color.red, 0))
plot(sslUp, linewidth=2, color=color.new(color.lime, 0))




Más.