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

Estrategia MACD avanzada con Martingale limitado

El autor:¿ Qué pasa?, Fecha: 2024-06-03 10:43:00
Las etiquetas:El MACDEl ATR

img

Resumen general

Esta estrategia combina el indicador MACD y el método de gestión de dinero Martingale para capturar los movimientos de tendencia del mercado mientras se controlan los riesgos. La estrategia utiliza el cruce de la línea rápida MACD y la línea lenta como señales de negociación, y adopta un número limitado de enfoques de Martingale para controlar el tamaño de la posición. Cuando ocurre una operación perdedora, la estrategia duplicará el número de contratos para la próxima operación, hasta un máximo de tres veces, con el fin de recuperar las pérdidas anteriores. Al mismo tiempo, la estrategia establece condiciones de take-profit y stop-loss para controlar aún más los riesgos.

Principios de estrategia

  1. Utilice el cruce de la línea rápida del MACD (período predeterminado de 12) y la línea lenta (período predeterminado de 26) como señales de negociación.
  2. El número inicial de contratos es 0.02. Cuando se produce una operación perdedora, duplique el número de contratos para la siguiente operación, hasta un máximo de tres veces. Si no se logra rentabilidad después de tres doblajes, restablezca el número de contratos al valor inicial de 0.02.
  3. Establecer condiciones de toma de ganancias: para las posiciones largas, cerrar la posición cuando el precio suba un 1,5% por encima del precio de entrada; para las posiciones cortas, cerrar la posición cuando el precio baje un 1% por debajo del precio de entrada.
  4. Establecer condiciones de stop-loss: para las posiciones largas, cerrar la posición cuando el precio caiga un 1% por debajo del precio de entrada; para las posiciones cortas, cerrar la posición cuando el precio suba un 1% por encima del precio de entrada.

Ventajas estratégicas

  1. Al combinar el indicador MACD de seguimiento de tendencias y el método de gestión de dinero Martingale, la estrategia puede beneficiarse de las tendencias de los mercados al tiempo que controla las reducciones.
  2. La estrategia utiliza un número limitado de métodos de Martingale, evitando el riesgo de apalancamiento ilimitado.
  3. Se establecen condiciones claras para obtener ganancias y para detener pérdidas, controlando aún más los riesgos.
  4. La lógica del código es clara y fácil de entender e implementar.

Riesgos estratégicos

  1. Aunque el método Martingale limita el número de apalancamientos, sigue existiendo el riesgo de un apalancamiento excesivo, lo que conduce a grandes pérdidas.
  2. El indicador MACD puede divergir del precio, lo que hace que las señales de negociación se vuelvan inválidas.
  3. Los coeficientes fijos de toma de ganancias y de detención de pérdidas pueden no adaptarse a las diferentes condiciones del mercado, lo que dará lugar a una toma prematura de ganancias o a la detención de pérdidas.

Direcciones para la optimización de la estrategia

  1. Considere ajustar dinámicamente el índice de apalancamiento de Martingale y el número de veces en función de la volatilidad actual del mercado y la tolerancia al riesgo de la cuenta.
  2. Combine otros indicadores técnicos como el RSI y las bandas de Bollinger con las señales MACD para formar señales comerciales más confiables.
  3. Adoptar métodos adaptativos de toma de ganancias y parada de pérdidas, como la toma de ganancias y parada de pérdidas basadas en ATR, o ajustar dinámicamente los ratios de toma de ganancias y parada de pérdidas en función de las tendencias y la volatilidad del mercado.
  4. Introducir un módulo de gestión de posiciones para ajustar dinámicamente el tamaño de la posición de cada operación en función de factores como el saldo de la cuenta y la tolerancia al riesgo.

Resumen de las actividades

Al combinar el indicador MACD y el método de gestión de dinero Martingale, esta estrategia busca obtener ganancias de los mercados de tendencia al tiempo que controla los riesgos. La lógica de la estrategia es clara y fácil de implementar, pero todavía hay riesgos asociados con el apalancamiento de Martingale y limitaciones de las relaciones fijas de toma de ganancias y stop-loss. En el futuro, la estrategia puede optimizarse ajustando dinámicamente el enfoque de apalancamiento, optimizando las señales comerciales, adoptando métodos de toma de ganancias y stop-loss adaptativos e implementando la gestión de posiciones para mejorar la robustez y rentabilidad de la estrategia.


/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Advanced MACD Strategy with Limited Martingale", overlay=true, initial_capital=500)

// MACD 설정 변경
fastLength = 15
slowLength = 30
signalSmoothing = 9
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing)

// 계약수 및 이전 거래 결과 기록
var float contractSize = 0.02 // 계약 수를 0.05로 시작
var int martingaleCount = 0 // 마틴게일 카운트
var float lastTradeResult = 0

// 매수 및 매도 조건
longCondition = ta.crossover(macdLine, signalLine)
shortCondition = ta.crossunder(macdLine, signalLine)

// 매수 신호
if (longCondition)
    strategy.entry("Long", strategy.long, qty=contractSize)
    lastTradeResult := strategy.netprofit

// 매도 신호
if (shortCondition)
    strategy.entry("Short", strategy.short, qty=contractSize)
    lastTradeResult := strategy.netprofit

// 익절 및 손절 조건
strategy.close("Long", when=(close / strategy.position_avg_price >= 1.015))
strategy.close("Short", when=(strategy.position_avg_price / close >= 1.01))
strategy.close("Long", when=(close / strategy.position_avg_price <= 0.99))
strategy.close("Short", when=(strategy.position_avg_price / close <= 0.99))

// 마틴게일 전략 적용
if (strategy.netprofit < lastTradeResult)
    if (martingaleCount < 3)
        contractSize := contractSize * 2
        martingaleCount := martingaleCount + 1
    else
        contractSize := 0.02 // 리셋 할 때 0.05로 리셋
        martingaleCount := 0
else
    contractSize := 0.02 // 초기화
    martingaleCount := 0

// 매수, 매도 포인트 화살표로 표시
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")

Relacionados

Más.