Estrategia dinámica de balanceo intradiario a corto y largo plazo que combina media móvil y supertendencia

El autor:¿ Qué pasa?, fecha: 2024-03-11 11:33:47
Las etiquetas:

img

Resumen de la estrategia

La Estrategia Dinámica de Equilibrio Largo Corto Intradiario Combinando Promedio Móvil y Supertendencia es una estrategia de negociación cuantitativa escrita en Pine ScriptTM 5. La estrategia utiliza el indicador MACD y el indicador Supertendencia para capturar oportunidades de tendencia en el mercado, al tiempo que controla el riesgo a través de cambios dinámicos largos cortos y stop-loss / take-profit.

Principios de estrategia

El núcleo de esta estrategia es combinar el indicador MACD y el indicador Supertrend para determinar la dirección de tendencia del mercado.

  1. Cuando el indicador de Supertrend cambia, indica una inversión de la tendencia.
  2. Utilice el histograma del indicador MACD para juzgar el cambio en el impulso. Cuando el histograma MACD pasa de negativo a positivo, indica un aumento en el impulso ascendente; cuando el histograma MACD pasa de positivo a negativo, indica un aumento en el impulso descendente.
  3. Abrir una posición larga cuando tanto el indicador Supertrend como el indicador MACD den una señal larga; abrir una posición corta cuando tanto el indicador Supertrend como el indicador MACD den una señal corta.
  4. Cierre todas las posiciones a una hora fija (por ejemplo, 15:15) en cada día de negociación para evitar el riesgo de la noche a la mañana.
  5. Reabrir posiciones en un nuevo día de negociación (por ejemplo, a las 9:30), según las indicaciones del indicador Supertrend y del indicador MACD.

A través de cambios dinámicos de largo a corto, la estrategia puede adaptarse a los cambios en el mercado y captar las oportunidades de tendencia.

Ventajas estratégicas

  1. Seguimiento de tendencias: al combinar el indicador Supertrend y el indicador MACD, la estrategia puede capturar de manera efectiva las oportunidades de tendencias en el mercado.
  2. Conmutación dinámica de largo a corto: La estrategia ajusta dinámicamente la dirección de la posición de acuerdo con los cambios en los indicadores, adaptándose a los cambios del mercado.
  3. Control de riesgos: mediante el cierre de posiciones a tiempo fijo y el cambio dinámico de posiciones largas a cortas, la estrategia puede controlar el riesgo relativamente bien.
  4. Flexibilidad de parámetros: los parámetros de la estrategia (como el período ATR, el factor, etc.) pueden ajustarse de acuerdo con las características del mercado y las preferencias personales, lo que proporciona cierta flexibilidad.

Riesgos estratégicos

  1. Riesgo de falla del indicador: en algunos entornos de mercado, el indicador MACD y el indicador Supertrend pueden dar señales falsas, lo que conduce al fracaso de la estrategia.
  2. Riesgo de optimización de parámetros: el rendimiento de la estrategia depende de la elección de parámetros, y los parámetros inadecuados pueden conducir a un mal rendimiento de la estrategia.
  3. El riesgo de stop-loss: la estrategia no tiene una lógica de stop-loss explícita, lo que puede conducir a pérdidas significativas en entornos de mercado extremos.
  4. Riesgo a un día: aunque la estrategia cierra posiciones durante el día, puede seguir teniendo que enfrentar el riesgo de brechas a un día al abrir posiciones a un día.

Direcciones de optimización

  1. Añadir una lógica de stop-loss: añadir una lógica de stop-loss explícita a la estrategia, como un stop-loss de porcentaje fijo o un ATR, para controlar aún más el riesgo.
  2. Optimización de parámetros: optimizar los parámetros clave de la estrategia, como el período ATR, el factor, los parámetros MACD, etc., para mejorar la solidez y la rentabilidad de la estrategia.
  3. Filtración de señales: agregar más condiciones de filtración de señales, como la ruptura de precios, el volumen de operaciones, etc., para mejorar la confiabilidad de las señales.
  4. Pruebas en varios mercados: Prueba de la estrategia en diferentes mercados e instrumentos para evaluar su aplicabilidad y estabilidad.

Resumen de las actividades

La estrategia de equilibrio de largo y corto plazo intradiario dinámico que combina promedio móvil y súper tendencia es una estrategia de negociación basada en el seguimiento de tendencias y el juicio de impulso. Al combinar el indicador de súper tendencia y el indicador MACD y ajustar dinámicamente la dirección de la posición, la estrategia puede adaptarse a los cambios en el mercado y capturar las oportunidades de tendencia.

Sin embargo, la estrategia también tiene algunos riesgos y deficiencias, como el riesgo de fallo del indicador, el riesgo de optimización de parámetros, el riesgo de stop-loss, etc. Para mejorar aún más la estrategia, se puede considerar agregar lógica de stop-loss, optimizar parámetros, agregar más condiciones de filtrado de señal y probar en múltiples mercados.

En general, la estrategia de equilibrio de largo plazo intradiario dinámico que combina promedio móvil y supertendencia proporciona una forma de pensar para el seguimiento de tendencias y el control de riesgos. En la aplicación práctica, los operadores deben hacer los ajustes y optimizaciones apropiados a la estrategia en función de sus propias preferencias de riesgo y características del mercado, y usarla con precaución. Las estrategias de negociación cuantitativas pueden proporcionar ideas comerciales, pero el mercado está en constante cambio, y ninguna estrategia puede garantizar ganancias. Los inversores deben comprender los principios y riesgos de la estrategia, controlar razonablemente las posiciones, detener estrictamente las pérdidas y siempre permanecer alerta para sobrevivir en el mercado a largo plazo.


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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © smj31071995

//@version=5
strategy("EQ - INTRA - Samsuga supertrend prod", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_every_tick = false)


atrPeriod = input.int(7,    "ATR Length", minval = 1)
factor =    input.float(1.0, "Factor",     minval = 0.01, step = 0.01)
st_tf = "3"
macd_tf="30"

[supertrend, direction] =request.security(symbol = syminfo.tickerid, timeframe = st_tf,expression =  ta.supertrend(factor, atrPeriod),lookahead=barmerge.lookahead_on)

supertrend := barstate.isfirst ? na : supertrend
upTrend =    plot(direction <= 0 ? supertrend : na, "Up Trend",   color = color.green, style = plot.style_linebr)
downTrend =  plot(direction <= 0 ? na : supertrend, "Down Trend", color = color.red,   style = plot.style_linebr)
bodyMiddle = plot(barstate.isfirst ? na : (open + close) / 2, "Body Middle",display = display.none)
longcondition = direction[1] > direction 
shortCondition = direction[1] < direction 

macdp1 = 2
macdp2=8
macdp3=4

[macdLine, signalLine, histLine] =request.security(symbol = syminfo.tickerid, timeframe = macd_tf,expression = ta.macd(close,macdp1,macdp2,macdp3),lookahead=barmerge.lookahead_on)
// log.info(str.tostring(syminfo.tickerid)+str.tostring(histLine[0]))
timezone_input = input("Asia/Kolkata", title="Timezone")
// log.info(timezone_input)
if(hour==15 and minute==15)
    strategy.close_all(comment = "DAY EXIT",alert_message = "X-D")
else if(hour==9 and minute==30)
    if(longcondition or histLine[1]>0)
        strategy.entry(id= "Long", direction=strategy.long,  comment = "DL",alert_message = "L")
    else if(shortCondition or histLine[1]<0) 
        strategy.entry(id= "Short", direction=strategy.short,  comment = "DS",alert_message = "S")
else
    if(longcondition)
        strategy.close("Short",comment = "X-S", alert_message = "X-S")
        if(histLine[1]>0)    
            strategy.entry(id= "Long", direction=strategy.long,  comment = "L",alert_message = "L")
    else if(shortCondition) 
        strategy.close("Long",comment = "X-L",alert_message = "X-L")
        if(histLine[1]<0)    
            strategy.entry(id= "Short", direction=strategy.short,  comment = "S",alert_message = "S")


// plot(macdLine,   title = "MACD",   color = #2962FF)
// plot(signalLine, title = "Signal", color = #FF6D00)
// 8, 21, 5
// 8,13,9
// 12,26,9
//  1--> 3, 17, 5
// 3, 10, 16
// log.info(str.tostring(syminfo.tickerid)+str.tostring(histLine[0]))
//  /////////----------------METHOD 1-----------------////////////////
// if(longcondition)
//     if(strategy.opentrades>0)
//         strategy.close("Long","Prev Exit", immediately = true)
//     if( histLine[0] > 0.1)
//         strategy.entry(id= "Long", direction=strategy.long,  comment = "update long")

    
// else if(shortCondition and strategy.openprofit<=0.1) 
//     strategy.close("Long",comment = "Close",immediately = true)
//  /////////----------------METHOD 2-----------------////////////////
// if(longcondition)
//     if(histLine[0] > 0)
//         strategy.entry(id= "Long", direction=strategy.long,  comment = "update long" )
//         strategy.exit("Long", loss = close*0.2)


    
// else if(shortCondition ) 
//     strategy.close("Long",comment = "Close",immediately = true)
//  /////////----------------METHOD 3-----------------////////////////



Más.