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

La estrategia superior del MACD combinada con el Martingale restrictivo

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

MACD与限制性马丁格尔相结合的高级策略

Resumen

La estrategia combina el indicador MACD y el método de gestión de fondos de Martingale para capturar mercados tendenciales y controlar el riesgo. La estrategia utiliza el cruce de líneas rápidas y lentas del indicador MACD como señales de negociación y controla el tamaño de las posiciones con un número limitado de métodos de Martingale. Cuando se produce una operación perdedora, la estrategia duplica el número de contratos en la siguiente operación, hasta un triple, para compensar las pérdidas anteriores.

Principios estratégicos

  1. Utilizando el indicador MACD, el cruce de líneas rápidas (circuito predeterminado de 12) y líneas lentas (circuito predeterminado de 26) como señales de negociación, cuando la línea rápida atraviesa la línea lenta se hace más y cuando la línea rápida atraviesa la línea lenta se hace espacio.
  2. El número de contratos iniciales es de 0.02 y, en caso de que se produzca una operación perdedora, se duplica el número de contratos para la siguiente operación, hasta un máximo de tres veces. Si después de tres veces de duplicación aún no se obtiene una ganancia, el número de contratos restablecidos es de 0.02 inicial.
  3. Establecer condiciones de suspensión: para posiciones múltiples, cuando el precio sube un 1.5% con respecto al precio de apertura; para posiciones vacías, cuando el precio desciende un 1% con respecto al precio de apertura.
  4. Establecer condiciones de stop loss: para posiciones múltiples, cuando el precio cae un 1% respecto al precio de apertura; para posiciones en blanco, cuando el precio sube un 1% respecto al precio de apertura.

Las ventajas estratégicas

  1. La combinación de los indicadores de seguimiento de tendencias MACD y el método de gestión de fondos de Martingale permite obtener ganancias en mercados de tendencias y controlar las retracciones.
  2. El uso de un número limitado de métodos de Martín Gutiérrez evita el riesgo de una codificación ilimitada.
  3. Los riesgos se controlan aún más si se establecen condiciones claras para detener la captura y el daño.
  4. La lógica del código es clara, fácil de entender e implementar.

El riesgo estratégico

  1. Aunque el método de Martingle limita el número de codificaciones, existe el riesgo de codificar demasiado profundo, lo que puede causar grandes pérdidas.
  2. Es posible que el indicador MACD se desvíe del precio, lo que puede causar el fallo de la señal de negociación.
  3. Las tasas fijas de suspensión de pérdidas pueden no adaptarse a diferentes condiciones del mercado, lo que conduce a una suspensión o suspensión prematura de pérdidas.

Dirección de optimización estratégica

  1. Se puede considerar la proporción y la frecuencia de ajustes dinámicos de las tarjetas de Martingale, con una flexibilidad de configuración de las tarjetas en función de la volatilidad del mercado actual y la capacidad de soporte de riesgo de la cuenta.
  2. Sobre la base de la señal MACD, se combina con otros indicadores técnicos como el RSI, la banda de Bryn, etc., para formar una señal de negociación más confiable.
  3. El uso de métodos de frenado de pérdidas adaptados, como el frenado de pérdidas de ATR, o el ajuste de la proporción de frenado de pérdidas de acuerdo con las tendencias del mercado y la dinámica de la volatilidad.
  4. Introducción de un módulo de gestión de posiciones, que ajusta dinámicamente el tamaño de las posiciones de cada operación según el saldo de la cuenta, la capacidad de asumir riesgos y otros factores.

Resumen

La estrategia busca obtener ganancias en mercados de tendencia y controlar el riesgo mediante la combinación del indicador MACD y el método de gestión de fondos de Martinger. La lógica de la estrategia es clara y fácil de implementar, pero aún hay limitaciones en el riesgo de la tarjeta de Martinger y la proporción fija de stop loss. En el futuro, se puede optimizar la estrategia en aspectos como ajustes dinámicos de la programación de codificación, optimización de señales de negociación, uso de stop loss y gestión de posiciones adaptadas para mejorar la solidez y la 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")

Contenido relacionado

Más contenido