Esta estratégia é baseada no indicador MACD e linhas longas e fechadas para implementar a negociação de longo prazo do par de moedas.
A estratégia usa linhas rápidas e lentas do indicador MACD. A linha rápida tem um parâmetro de EMA de 12 dias e a linha lenta tem um parâmetro de EMA de 26 dias. A diferença entre as duas linhas é o histograma MACD. Além disso, a EMA de 9 dias é calculada como a linha de sinal.
Especificamente, a estratégia primeiro calcula a linha rápida, a linha lenta e a linha de sinal do indicador MACD. Em seguida, a linha longa é definida em -0,04, a linha de fechamento é definida em 0,015. Se o histograma MACD atual for maior que a linha longa, ele vai longo. Se o histograma MACD atual for menor que a linha de fechamento, ele fecha a posição longa. Além disso, a linha de stop loss é definida em 95% do preço de entrada.
A estratégia apresenta as seguintes vantagens:
A estratégia apresenta também alguns riscos:
Métodos como o ajuste de parâmetros, a combinação de outros indicadores podem ser utilizados para otimizar e melhorar.
A estratégia pode ser otimizada nos seguintes aspectos:
Teste diferentes combinações de parâmetros MACD para encontrar parâmetros melhores
Linha rápida, linha lenta, linha de sinal com diferentes comprimentos pode ser tentado encontrar combinações mais adequadas
Tente outros indicadores
Indicadores como RSI, KD podem ter resultados muito diferentes
Otimizar parâmetros de linha longa e próxima
Os parâmetros mais adequados podem ser encontrados através de backtesting repetitivo
Ajustar a estratégia de stop loss
Considere paradas de trail para tornar o stop loss mais dinâmico
Teste em pares de moedas diferentes
Aplicar a estratégia a outros pares e examinar os efeitos
Em conclusão, esta é uma estratégia de negociação de longo prazo geral muito simples e intuitiva. Ele julga as condições do mercado usando o indicador MACD e define critérios de filtro duplo para reduzir a negociação falsa. O controle de risco também é configurado através de stop loss. A lógica é clara e a ocupação de recursos é baixa. É fácil de entender e implementar, vale a pena recomendar.
/*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)