Estratégia de convergência de limite intradiário MACD e R:R Ratio

MACD
Data de criação: 2024-06-03 16:47:56 última modificação: 2024-06-03 16:47:56
cópia: 3 Cliques: 611
1
focar em
1617
Seguidores

Estratégia de convergência de limite intradiário MACD e R:R Ratio

Visão geral

A estratégia baseia-se na convergência e dispergência dos indicadores MACD para julgar os sinais de negociação. Quando a linha MACD e a linha de sinal se cruzam, e o valor da linha MACD é maior que 1,5 ou menor que -1,5, os sinais de fazer mais e fazer menos são produzidos. Ao mesmo tempo, a estratégia define um ponto de parada e perda fixo e introduz o conceito de taxa de retorno de risco (R: R). Além disso, a estratégia também usa limites de perda máxima e lucro máximo por dia, bem como medidas de parada móvel mais rigorosas para melhor controlar o risco.

Princípio da estratégia

  1. Calcule a linha MACD e a linha de sinal do indicador MACD.
  2. Julgar a interseção entre a linha MACD e a linha de sinal, considerando se o valor da linha MACD excede um determinado limite (de -1.5 e -1,5)
  3. Quando surgir um sinal de fazer mais, abra uma posição de fazer mais, configurando o preço de parada como o preço máximo atual + 600 unidades de menor mudança, e o preço de parada como o preço mínimo atual - 100 unidades de menor mudança.
  4. Quando surgir um sinal de curto prazo, abra uma posição de curto prazo, definindo o preço de parada como o preço mínimo atual - 600 unidades de menor mudança, e o preço de parada como o preço máximo atual + 100 unidades de menor mudança.
  5. A introdução da lógica de stop-loss móvel, quando o preço sobe (a mais) ou desce (a menos) em relação ao preço de abertura de uma posição acima de 300 unidades mínimas de variação, o preço de stop-loss é movido para o preço de abertura de uma posição + (o preço de fechamento - preço de abertura de uma posição - 300) (a mais) ou o preço de abertura de uma posição - (o preço de abertura de uma posição - preço de fechamento - 300) (a menos).
  6. Estabeleça limites de perda máxima e ganho máximo por dia e elimine todas as posições quando a perda atingir 600 unidades de mudança mínima ou o lucro atingir 1800 unidades de mudança mínima no dia.

Análise de vantagens

  1. Combinando o indicador MACD com as condições de depreciação de preços, filtra eficazmente alguns sinais de ruído.
  2. A taxa de retorno de risco fixo (R:R) é a taxa de retorno de risco controlada por transação.
  3. A lógica de stop loss móvel protege os lucros após a formação de uma tendência e reduz a retração.
  4. O limite máximo de perdas e ganhos diários ajuda a controlar a abertura de risco de um dia, evitando perdas excessivas ou retrações após o lucro.

Análise de Riscos

  1. Os indicadores MACD apresentam atraso e podem apresentar sinais de atraso ou sinais errados.
  2. O ponto de parada fixo pode não se adaptar a diferentes condições de mercado e pode desencadear frequentemente o stop loss em situações de turbulência.
  3. A lógica de stop loss móvel pode não ser capaz de parar a perda em tempo hábil quando a tendência se inverte, resultando em retornos de lucro.
  4. O limite máximo de perdas e lucros do dia pode levar a uma estratégia de liquidação prematura, perdendo o lucro potencial quando a tendência do dia é clara.

Direção de otimização

  1. Considere o uso de indicadores MACD de múltiplos quadros de tempo para confirmar o sinal e melhorar a precisão do sinal.
  2. Ajustar o ponto de parada de perda de acordo com a dinâmica de volatilidade do mercado para adaptar-se a diferentes condições de mercado.
  3. Otimizar a lógica de stop loss móvel, como definir a distância de stop loss móvel de acordo com o indicador ATR, para se adaptar melhor às flutuações de preços.
  4. Optimizar os parâmetros dos limites máximos de perda e lucro diários, encontrar os limites apropriados e, ao mesmo tempo, controlar o risco e tentar capturar a tendência.

Resumir

A estratégia julga os sinais de negociação através da convergência e dispersação dos indicadores MACD, e introduz medidas de controle de risco, como a taxa de retorno do risco, o stop loss móvel e o limite diário. Embora a estratégia seja capaz de capturar a tendência e controlar o risco, ainda há espaço para otimização e melhoria. No futuro, pode-se considerar a otimização de dimensões como a confirmação de sinais, o stop loss, o stop loss móvel e o limite diário, a fim de obter retornos mais estáveis e visíveis.

Código-fonte da estratégia
/*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")