Estrategia de avance de la línea de tendencia de MA

El autor:¿ Qué pasa?, fecha: 2023-10-30 11:39:31
Las etiquetas:

img

Esta estrategia garantiza una rentabilidad continua en mercados volátiles mediante el seguimiento de los avances de la línea media móvil.

Estrategia lógica

La lógica central de esta estrategia es abrir posiciones basadas en los avances de la línea de promedio móvil. Utiliza MA para agregar múltiples promedios móviles para formar la línea de promedio móvil principal.

Específicamente, la estrategia adopta una media móvil doble WMA de 60 períodos como la línea media móvil principal. Al mismo tiempo, calcula el rango verdadero del precio y dibuja bandas superiores e inferiores.

Además de las señales de avance, la estrategia también incorpora RSI y EMA como indicadores auxiliares. Requiere RSI> 50 y precio por encima de EMA para ir largo, y RSI<50 y precio por debajo de EMA para ir corto, para evitar falsas rupturas.

Además, la estrategia utiliza formaciones de media móvil triple para determinar los puntos de salida.

Análisis de ventajas

  • Utilizando MA para suavizar los cambios de precios, puede identificar eficazmente las direcciones de tendencia
  • El comercio basado en las rupturas de canal puede generar ganancias decentes en mercados de rango
  • La combinación de RSI y EMA evita señales falsas de ruptura
  • El uso de formaciones de triple MA para determinar los puntos de salida evita tendencias agotadas

Análisis de riesgos

  • Las líneas MA pueden generar muchas rupturas falsas en mercados muy fluctuantes
  • Los tiempos de salida del triple MA pueden no ser muy precisos
  • Los parámetros incorrectos del RSI pueden conducir a un exceso de negociación

Estos riesgos pueden reducirse optimizando los períodos de MA, ajustando los ajustes de triple MA, utilizando el RSI con precaución, etc.

Direcciones de optimización

  • Optimizar los períodos de MA para encontrar mejores ajustes para la línea principal de la media móvil
  • Pruebe diferentes indicadores auxiliares para reemplazar el RSI, por ejemplo, KDJ, MACD, etc.
  • Ajustar los parámetros de triple MA para identificar con mayor precisión los puntos de inversión
  • Añadir el stop loss al riesgo de control por operación

Resumen de las actividades

En resumen, esta es una excelente estrategia de ruptura para los mercados de rango. La idea central es abrir posiciones basadas en rupturas de MA, filtradas por indicadores de tendencia, y obtener ganancias constantes en mercados que no están en tendencia. Las salidas se determinan antes utilizando formaciones de triple MA. Hay un amplio margen para optimizar los parámetros, mejorar la lógica de entrada / salida, etc. para maximizar el rendimiento en los mercados de rango.


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



//@version=5

//exapple bot
strategy('RIPO BOT', shorttitle='RIPO BOT', overlay=true, process_orders_on_close=true, calc_on_order_fills=false, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
sl_inp = input(0.1, title='Stop Loss %') / 100
tp_inp = input(0.33, title='Take Profit %') / 100

length = input(defval=21)
upper = ta.highest(length)
lower = ta.lowest(length)

lengthChop = input.int(14, minval=1)
ci = 100 * math.log10(math.sum(ta.atr(1), lengthChop) / (ta.highest(lengthChop) - ta.lowest(lengthChop))) / math.log10(lengthChop)
offset = input.int(0, "Offset",  minval = -500, maxval = 500)
plot(ci, "CHOP", color=#2962FF, offset = offset)
band1 = hline(61.8, "Upper Band", color=#787B86, linestyle=hline.style_dashed)
hline(50, "Middle Band", color=color.new(#787B86, 50))
band0 = hline(38.2, "Lower Band", color=#787B86, linestyle=hline.style_dashed)
fill(band1, band0, color = color.rgb(33, 150, 243, 90), title = "Background")

rsi = ta.rsi(close, 14)

var float entry_price = na

output = 100 * (close - upper) / (upper - lower)
ema = ta.ema(output, input(defval=13, title='EMA'))

ma(src, len) =>
    ta.wma(2 * ta.wma(src, len / 2) - ta.wma(src, len), math.round(math.sqrt(len)))
BBMC = ma(close, 60)
rangema = ta.ema(ta.tr, 60)
upperk = BBMC + rangema * 0.2
lowerk = BBMC - rangema * 0.2
color_bar = close > upperk ? color.blue : close < lowerk ? color.fuchsia : color.gray

ExitHigh = ma(high, 15)
ExitLow = ma(low, 15)
Hlv3 = int(na)
Hlv3 := close > ExitHigh ? 1 : close < ExitLow ? -1 : Hlv3[1]
sslExit = Hlv3 < 0 ? ExitHigh : ExitLow
base_cross_Long = ta.crossover(close, sslExit)
base_cross_Short = ta.crossover(sslExit, close)
codiff = base_cross_Long ? 1 : base_cross_Short ? -1 : na
entry_long = false

entry_short = false

    
if ta.crossover(close, BBMC) and output > ema
    entry_long := true
    
if ta.crossunder(close, BBMC) and output < ema
    entry_short := true

if entry_long and strategy.position_size == 0
    entry_price := close
    strategy.entry('enter long', strategy.long, comment='ENTER-LONG_BYBIT_MATICUSDT_BOT-NAME_1M_85915e4dc80fb663')
if strategy.position_size > 0
    strategy.exit('Stop Loss/TP long', 'enter long', limit=entry_price * (1 + tp_inp), stop = color_bar == color.fuchsia ? BBMC : na, comment='EXIT-LONG_BYBIT_MATICUSDT_BOT-NAME_1M_85915e4dc80fb663')
plot(entry_price * (1 + tp_inp), color=color.new(color.green, 0))


//if entry_short and strategy.position_size == 0
    //entry_price := close
    //strategy.entry('enter short', strategy.short, comment='ENTER-SHORT_BYBIT_MATICUSDT_BOT-NAME_1M_85915e4dc80fb663')
if strategy.position_size < 0
    strategy.exit('Stop Loss/TP short', 'enter short', limit=entry_price * (1 - tp_inp), stop = color_bar == color.blue ? BBMC : na, comment='EXIT-SHORT_BYBIT_MATICUSDT_BOT-NAME_1M_85915e4dc80fb663')
plot(entry_price * (1 + tp_inp), color=color.new(color.green, 0))
// plot(entry_price * (1 - sl_inp), color=color.new(color.red, 0))

plot(rsi, color=color.yellow)

plot(output, title='%R', color=color.new(color.yellow, 0), linewidth=2)
plot(ema, title='EMA', color=color.new(color.aqua, 0), linewidth=2)

plotarrow(codiff, colorup=color.new(color.blue, 35), colordown=color.new(color.fuchsia, 35), title='Exit Arrows', maxheight=20, offset=0)
plot(BBMC, color=color_bar, linewidth=4, title='MA Trendline')





Más.