En la carga de los recursos... Cargando...

Estrategia de convergencia del MACD con R:R, límites diarios y stop loss más ajustados

El autor:¿ Qué pasa?, Fecha: 2024-06-03 16:47:56
Las etiquetas:El MACD

img

Resumen general

Esta estrategia utiliza la convergencia y divergencia del indicador MACD para generar señales comerciales. Cuando la línea MACD cruza la línea de señal, y el valor de la línea MACD es mayor que 1.5 o menor que -1.5, genera señales largas y cortas, respectivamente. La estrategia establece niveles fijos de toma de ganancias y stop-loss e introduce el concepto de relación riesgo-recompensa (R: R). Además, emplea límites de pérdida y ganancias máximas diarias y un stop-loss de seguimiento más ajustado para controlar mejor los riesgos.

Principio de la estrategia

  1. Calcular la línea MACD y la línea de señal del indicador MACD.
  2. Determinar las situaciones de cruce entre la línea MACD y la línea de señal, considerando al mismo tiempo si el valor de la línea MACD supera ciertos umbrales (1.5 y -1.5).
  3. Cuando aparezca una señal larga, abrir una posición larga con un precio de toma de ganancias del precio más alto actual + 600 unidades mínimas de tick y un precio de stop-loss del precio más bajo actual - 100 unidades mínimas de tick.
  4. Cuando aparezca una señal corta, abra una posición corta con un precio de toma de beneficio del precio más bajo actual - 600 unidades mínimas de tick y un precio de stop-loss del precio más alto actual + 100 unidades mínimas de tick.
  5. Introducir una lógica de stop-loss de seguimiento: cuando el precio suba (posición larga) o baje (posición corta) más de 300 unidades mínimas de tick en relación con el precio de entrada, mover el precio de stop-loss al precio de entrada + (precio de cierre - precio de entrada - 300) para posiciones largas o al precio de entrada - (precio de entrada - precio de cierre - 300) para posiciones cortas.
  6. Establecer límites máximos diarios de pérdida y ganancia: cuando la pérdida diaria alcance 600 unidades mínimas de tick o la ganancia alcance 1800 unidades mínimas de tick, cierre todas las posiciones.

Análisis de ventajas

  1. La combinación del indicador MACD con las condiciones de umbral de precios filtra efectivamente algunas señales de ruido.
  2. La relación riesgo-recompensación fija (R: R) hace que el riesgo y la recompensa de cada operación sean controlables.
  3. La lógica de stop-loss de seguimiento protege las ganancias después de que se forme una tendencia y reduce las reducciones.
  4. Los límites máximos diarios de pérdidas y ganancias ayudan a controlar la exposición diaria al riesgo y a evitar pérdidas o ganancias excesivas seguidas de retiros.

Análisis de riesgos

  1. El indicador MACD tiene un efecto de retraso, que puede dar lugar a señales retardadas o falsas.
  2. Los niveles fijos de toma de ganancias y de stop-loss pueden no adaptarse a las diferentes condiciones del mercado y podrían activarse con frecuencia en mercados inestables.
  3. La lógica de stop-loss de seguimiento puede no detener las pérdidas a tiempo durante las inversiones de tendencia, lo que conduce a la devolución de beneficios.
  4. Los límites máximos diarios de pérdida y ganancias pueden hacer que la estrategia cierre posiciones prematuramente cuando la tendencia diaria es clara, perdiendo beneficios potenciales.

Dirección de optimización

  1. Considere el uso de indicadores MACD de marcos de tiempo múltiples para confirmar las señales y mejorar la precisión de la señal.
  2. Ajustar dinámicamente los niveles de take profit y stop loss en función de la volatilidad del mercado para adaptarse a las diferentes condiciones del mercado.
  3. Optimizar la lógica de stop-loss posterior, como establecer la distancia de stop-loss posterior basada en el indicador ATR para una mejor adaptación a las fluctuaciones de precios.
  4. Optimizar los parámetros de los límites máximos diarios de pérdidas y ganancias para encontrar valores límite adecuados que controlen los riesgos y capten los movimientos de tendencia tanto como sea posible.

Resumen de las actividades

Esta estrategia utiliza la convergencia y la divergencia del indicador MACD para generar señales comerciales, al tiempo que introduce medidas de control de riesgos como la relación riesgo-recompensa, el stop-loss trasero y los límites diarios. Aunque la estrategia puede capturar los movimientos de tendencia y controlar los riesgos hasta cierto punto, todavía hay espacio para la optimización y mejora.


/*backtest
start: 2023-05-28 00:00:00
end: 2024-06-02 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/
// © DD173838

//@version=5
strategy("MACD Convergence Strategy with R:R, Daily Limits, and Tighter Stop Loss", overlay=true, default_qty_type=strategy.fixed, default_qty_value=1)

// MACD settings
fastLength = input.int(12, title="Fast Length", minval=1)
slowLength = input.int(26, title="Slow Length", minval=1)
signalSmoothing = input.int(9, title="Signal Smoothing", minval=1)
source = input(close, title="Source")

// Calculate MACD
[macdLine, signalLine, _] = ta.macd(source, fastLength, slowLength, signalSmoothing)

// Plot MACD and signal line
plot(macdLine, title="MACD Line", color=color.blue)
plot(signalLine, title="Signal Line", color=color.red)

// Define convergence conditions
macdConvergenceUp = ta.crossover(macdLine, signalLine) and macdLine > 1.5
macdConvergenceDown = ta.crossunder(macdLine, signalLine) and macdLine < -1.5

// Define take profit and stop loss

        
    
takeProfit = 600
stopLoss = 100

// Plot buy and sell signals on the chart
plotshape(series=macdConvergenceDown, title="Short Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SHORT")
plotshape(series=macdConvergenceUp, title="Long Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="LONG")

// Execute short and long orders with defined take profit and stop loss
if (macdConvergenceDown)
    strategy.entry("Short", strategy.short, qty=1, stop=high + (stopLoss / syminfo.mintick), limit=low - (takeProfit / syminfo.mintick))

if (macdConvergenceUp)
    strategy.entry("Long", strategy.long, qty=1, stop=low - (stopLoss / syminfo.mintick), limit=high + (takeProfit / syminfo.mintick))

// Trailing stop logic
var float entryPrice = na
var float trailingStopPrice = na

if (strategy.position_size != 0)
    entryPrice := strategy.opentrades.entry_price(0)

if (strategy.position_size > 0)  // For long positions
    if (close - entryPrice > 300)
        trailingStopPrice := entryPrice + (close - entryPrice - 300)

if (strategy.position_size < 0)  // For short positions
    if (entryPrice - close > 300)
        trailingStopPrice := entryPrice - (entryPrice - close - 300)

if (strategy.position_size > 0 and not na(trailingStopPrice) and close < trailingStopPrice)
    strategy.close("Long", comment="Trailing Stop")

if (strategy.position_size < 0 and not na(trailingStopPrice) and close > trailingStopPrice)
    strategy.close("Short", comment="Trailing Stop")

// Daily drawdown and profit limits
var float startOfDayEquity = na
if (na(startOfDayEquity) or ta.change(time('D')) != 0)
    startOfDayEquity := strategy.equity

maxDailyLoss = 600
maxDailyProfit = 1800
currentDailyPL = strategy.equity - startOfDayEquity

if (currentDailyPL <= -maxDailyLoss)
    strategy.close_all(comment="Max Daily Loss Reached")

if (currentDailyPL >= maxDailyProfit)
    strategy.close_all(comment="Max Daily Profit Reached")


Relacionados

Más.