O recurso está a ser carregado... Carregamento...

Estratégia MACD avançada com Martingale limitado

Autora:ChaoZhang, Data: 2024-06-03 10:43:00
Tags:MACDATR

img

Resumo

Esta estratégia combina o indicador MACD e o método de gerenciamento de dinheiro Martingale para capturar os movimentos de tendência do mercado enquanto controla os riscos. A estratégia usa o cruzamento da linha rápida e lenta do MACD como sinais de negociação e adota um número limitado de abordagens de Martingale para controlar o tamanho da posição. Quando ocorre uma negociação perdedora, a estratégia dobrará o número de contratos para o próximo comércio, até um máximo de três vezes, a fim de recuperar as perdas anteriores. Ao mesmo tempo, a estratégia define condições de take-profit e stop-loss para controlar ainda mais os riscos.

Princípios de estratégia

  1. Use o cruzamento da linha rápida do MACD (período padrão de 12) e da linha lenta (período padrão de 26) como sinais de negociação.
  2. O número inicial de contratos é de 0,02. Quando ocorrer uma negociação perdedora, duplique o número de contratos para a próxima negociação, até um máximo de três vezes.
  3. Estabelecer condições de obtenção de lucro: Para as posições longas, fechar a posição quando o preço subir 1,5% acima do preço de entrada; para as posições curtas, fechar a posição quando o preço cair 1% abaixo do preço de entrada.
  4. Estabelecer condições de stop-loss: Para posições longas, fechar a posição quando o preço cair 1% abaixo do preço de entrada; para posições curtas, fechar a posição quando o preço subir 1% acima do preço de entrada.

Vantagens da estratégia

  1. Ao combinar o indicador MACD de tendência e o método de gestão de dinheiro Martingale, a estratégia pode lucrar com as tendências dos mercados enquanto controla os drawdowns.
  2. A estratégia utiliza um número limitado de abordagens de Martingale, evitando o risco de alavancagem ilimitada.
  3. São estabelecidas condições claras de obtenção de lucro e de stop-loss, que permitem controlar ainda mais os riscos.
  4. A lógica do código é clara e fácil de entender e implementar.

Riscos estratégicos

  1. Apesar de o método Martingale limitar o número de alavancagens, existe ainda o risco de alavancagem excessiva, levando a grandes perdas.
  2. O indicador MACD pode divergir do preço, fazendo com que os sinais de negociação se tornem inválidos.
  3. Os rácios fixos de tomada de lucro e de suspensão de perdas podem não se adaptar às diferentes condições de mercado, resultando na tomada prematura de lucros ou na suspensão de perdas.

Orientações para a otimização da estratégia

  1. Considerar o ajustamento dinâmico do rácio de alavancagem e do número de vezes de Martingale com base na volatilidade atual do mercado e na tolerância ao risco da conta.
  2. Combinar outros indicadores técnicos, como o RSI e as Bandas de Bollinger, com os sinais MACD para formar sinais de negociação mais fiáveis.
  3. Adotar métodos adaptativos de captação de lucros e de stop-loss, tais como captação de lucros e stop-loss baseados em ATR, ou ajustar dinamicamente os rácios de captação de lucros e stop-loss com base nas tendências e na volatilidade do mercado.
  4. Introduzir um módulo de gestão de posições para ajustar dinamicamente o tamanho da posição de cada operação com base em fatores como o saldo da conta e a tolerância ao risco.

Resumo

Ao combinar o indicador MACD e o método de gerenciamento de dinheiro Martingale, esta estratégia busca lucrar com os mercados em tendência enquanto controla os riscos. A lógica da estratégia é clara e fácil de implementar, mas ainda há riscos associados à alavancagem Martingale e limitações de rácios fixos de take-profit e stop-loss. No futuro, a estratégia pode ser otimizada ajustando dinamicamente a abordagem de alavancagem, otimizando os sinais de negociação, adotando métodos adaptativos de take-profit e stop-loss e implementando gerenciamento de posição para melhorar a robustez e lucratividade da estratégia.


/*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

Mais.