Estrategia de convergencia intradía con límite MACD y relación R:R

MACD
Fecha de creación: 2024-06-03 16:47:56 Última modificación: 2024-06-03 16:47:56
Copiar: 3 Número de Visitas: 611
1
Seguir
1617
Seguidores

Estrategia de convergencia intradía con límite MACD y relación R:R

Descripción general

La estrategia determina las señales de negociación en función de la convergencia y dispersión de los indicadores MACD. Cuando las líneas MACD se cruzan con las líneas de señal, y el valor de la línea MACD es mayor a 1.5 o menor a 1.5, se producen señales de venta y venta, respectivamente. Al mismo tiempo, la estrategia establece un punto de parada fijo y introduce el concepto de la relación de retorno por riesgo (R: R). Además, la estrategia utiliza límites de pérdidas máximas y ganancias máximas diarias, así como medidas de detención móviles más estrictas para controlar mejor el riesgo.

Principio de estrategia

  1. Calcula las líneas MACD y las líneas de señal de los indicadores MACD.
  2. Juzgar el cruce de la línea MACD con la línea de señal, y considerar si el valor de la línea MACD excede un cierto umbral (de -1.5 y -1.5)
  3. Cuando aparezca la señal de hacer más, abra una posición de hacer más, configure el precio de parada como el precio máximo actual + 600 unidades de movimiento mínimo, y el precio de parada como el precio mínimo actual - 100 unidades de movimiento mínimo.
  4. Cuando aparezca una señal de baja, abra una posición baja, configure el precio de parada como el precio mínimo actual - 600 unidades de movimiento mínimo, y el precio de parada como el precio máximo actual + 100 unidades de movimiento mínimo.
  5. Introducción de la lógica de stop loss móvil, cuando el precio se mueve a un precio de apertura de posición + (precio de cierre - precio de apertura de posición - 300) o a un precio de apertura de posición - (precio de apertura de posición - precio de cierre - 300) cuando el precio supera las 300 unidades de movimiento mínimo respecto al precio de apertura de posición.
  6. Establezca los límites máximos de pérdidas y ganancias diarias, y cancele todas las posiciones cuando las pérdidas alcancen las 600 unidades mínimas de variación o las ganancias alcancen las 1800 unidades mínimas de variación.

Análisis de las ventajas

  1. La combinación de los indicadores MACD con las condiciones de desvalorización de precios filtra eficazmente algunas señales de ruido.
  2. La tasa de riesgo-retorno fija (R:R) y el riesgo-beneficio por transacción son controlables.
  3. La lógica de stop loss móvil protege las ganancias después de la formación de una tendencia y reduce el retroceso.
  4. Los límites de pérdidas y ganancias máximas diarias ayudan a controlar la apertura de riesgo de un solo día y evitar pérdidas o ganancias excesivas y la retirada posterior.

Análisis de riesgos

  1. El indicador MACD está rezagado y puede presentar un retraso o una señal errónea.
  2. El punto de parada fijo puede no adaptarse a las diferentes condiciones del mercado y puede activar el stop con frecuencia en situaciones de crisis.
  3. La lógica de stop loss móvil puede no detener los pérdidas a tiempo cuando la tendencia se invierte, lo que provoca un rebote de las ganancias.
  4. Los límites de pérdidas y ganancias máximas en un día pueden llevar a una estrategia de liquidación prematura cuando la tendencia en el mercado de un día es clara, perdiendo beneficios potenciales.

Dirección de optimización

  1. Considere el uso de indicadores MACD de múltiples marcos de tiempo para confirmar la señal y mejorar la precisión de la señal.
  2. Ajuste el punto de parada de pérdidas de acuerdo con la dinámica de la volatilidad del mercado para adaptarse a las diferentes condiciones del mercado.
  3. Optimización de la lógica de stop loss móvil, como la configuración de la distancia de stop loss móvil según el indicador ATR, para adaptarse mejor a las fluctuaciones de precios.
  4. Optimización de los parámetros de los límites máximos de pérdidas y ganancias diarias, para encontrar los límites adecuados y capturar las tendencias al mismo tiempo que se controla el riesgo.

Resumir

La estrategia juzga las señales de negociación a través de la convergencia y dispersión de los indicadores MACD, al tiempo que introduce medidas de control de riesgo como la relación de retorno del riesgo, los paros móviles y los límites diarios. Aunque la estrategia es capaz de capturar el comportamiento de la tendencia y controlar el riesgo hasta cierto punto, todavía hay espacio para la optimización y la mejora. En el futuro, se puede considerar la optimización de las dimensiones de la confirmación de señales, los paros de parada, los paros móviles y los límites diarios, con el fin de obtener un retorno más sólido y visible.

Código Fuente de la Estrategia
/*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")