Estratégia de longo prazo baseada no MACD


Data de criação: 2024-01-12 11:02:06 última modificação: 2024-01-12 11:02:06
cópia: 0 Cliques: 639
1
focar em
1617
Seguidores

Estratégia de longo prazo baseada no MACD

Visão geral

Esta estratégia baseia-se no MACD e nas linhas de posição longas e pacíficas, permitindo a negociação de longas linhas de pares de moedas. A posição é aberta quando a linha de MACD atravessa a linha de posição longa e a posição é fechada quando a linha de MACD atravessa a linha de posição baixa.

Princípio da estratégia

A estratégia usa a linha rápida e a linha lenta do indicador MACD. O parâmetro da linha rápida é o EMA de 12 dias e o parâmetro da linha lenta é o EMA de 26 dias. O diferencial entre as duas linhas médias é o gráfico em coluna do MACD.

Concretamente, a estratégia calcula primeiro a linha rápida, a linha lenta e a linha de sinal do indicador MACD. Em seguida, configure a linha longa como -0.04, a linha de equilíbrio como 0.015. Se o MACD atual for maior que a linha longa, faça mais; Se o MACD atual for menor que a linha de equilíbrio, faça mais. Além disso, configure a linha de parada para 95% do preço de abertura da posição.

Análise de vantagens

A estratégia tem as seguintes vantagens:

  1. Indicadores MACD para determinar tendências de mercado com alta precisão
  2. Ao mesmo tempo, o uso de longa linha e linha de armazenamento de filtro duplo, para evitar sinais errados
  3. Estabeleça uma estratégia de stop loss e controle de risco
  4. Simples, claro, lógico, fácil de entender e de implementar
  5. Apenas necessários e indicadores MACD, com baixo consumo de recursos

Análise de Riscos

A estratégia também tem riscos:

  1. O MACD tem um certo atraso e pode ter perdido uma oportunidade de curto prazo
  2. A configuração de stop loss pode ser conservadora demais para acompanhar a tendência de linha longa.
  3. A configuração dos parâmetros precisa ser testada e otimizada repetidamente, ou pode ser excessivamente ajustada
  4. Aplica-se apenas, outras moedas têm efeitos duvidosos

Pode ser otimizado e melhorado por meio de ajustes apropriados de parâmetros e combinações de outros indicadores.

Direção de otimização

A estratégia pode ser melhorada em vários aspectos:

  1. Teste diferentes combinações de parâmetros MACD para encontrar o melhor

Pode-se experimentar diferentes comprimentos de linha rápida, lenta e de sinal para encontrar a combinação mais adequada.

  1. Substituição por outros indicadores

Indicadores como RSI, KD e outros podem ter efeitos muito diferentes.

  1. Optimizar os parâmetros de linha longa e linha de carga

Os dados podem ser testados repetidamente para encontrar um parâmetro mais adequado para a posição de equilíbrio longo.

  1. Ajustar a estratégia de stop loss

O que podemos fazer é pensar em trailing stops e outras formas de trailers mais dinâmicos.

  1. Teste de vários pares de moedas

Estratégias aplicadas a outros pares de moedas, resultados de pesquisa

Resumir

Esta estratégia é uma estratégia de negociação de linha longa muito simples e intuitiva. Utiliza os indicadores MACD para avaliar a situação e configura condições de dupla filtragem para reduzir as transações erradas. Ao mesmo tempo, configura-se o stop loss para controlar o risco. A estratégia é lógica clara, de baixo consumo de recursos, fácil de entender e implementar e é recomendada.

Código-fonte da estratégia
/*backtest
start: 2024-01-04 00:00:00
end: 2024-01-11 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(shorttitle = "GBPJPY MACD", title = "GBPJPY MACD")
fastMA = input(title="Fast moving average",  defval = 12, minval = 7)
slowMA = input(title="Slow moving average",  defval = 26, minval = 7)
lastColor = yellow
[currMacd,_,_] = macd(close[0], fastMA, slowMA, 9)
[prevMacd,_,_] = macd(close[1], fastMA, slowMA, 9)
plotColor = currMacd > 0 ? currMacd > prevMacd ? lime : green : currMacd < prevMacd ? maroon : red
plot(currMacd, style = histogram, color = plotColor, linewidth = 3)
plot(0, title = "Zero line", linewidth = 1, color = gray)

//MACD
// Getting inputs
fast_length = input(title="Fast Length",  defval=12)
slow_length = input(title="Slow Length",  defval=26)
src = input(title="Source",  defval=close)
signal_length = input(title="Signal Smoothing",  minval = 1, maxval = 50, defval =9)
sma_source = input(title="Simple MA(Oscillator)", type=bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=bool, defval=false)

// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
col_macd = #0094ff
col_signal = #ff6a00

// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal

//plot(hist, title="Histogram", style=columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 )
plot(macd, title="MACD", color=col_macd, transp=0)
plot(signal, title="Signal", color=col_signal, transp=0)
///END OF MACD

//Long and Close Long Lines
linebuy = input(title="Enter Long", type=float, defval=-0.04)
linesell = input(title="Close Long", type=float, defval=0.015)

//Plot Long and Close Long Lines
plot(linebuy,color=green),plot(linesell,color=red)


//Stop Loss Input
sl_inp = input(0.05, title='Stop Loss %', type=float)/100


//Order Conditions
longCond = crossover(currMacd, linebuy)
exitLong = crossover(currMacd, linesell)
stop_level = strategy.position_avg_price * (1 - sl_inp)


//Order Entries
strategy.entry("long", strategy.long,  when=longCond==true)
strategy.close("long", when=exitLong==true)
strategy.exit("Stop Loss", stop=stop_level)