A estratégia é chamada de
A estratégia usa EMA de 5 dias e EMA de 21 dias para formar um canal EMA. Quando a EMA de 5 dias cruza acima da EMA de 21 dias, é considerada um sinal de alta. Quando a EMA de 5 dias cruza abaixo da EMA de 21 dias, é considerada um sinal de baixa. O histograma MACD pode filtrar sinais falsos. Os sinais de compra são gerados apenas quando o histograma MACD está acima de 0.
A estratégia combina a identificação de tendências e a filtragem de indicadores, o que pode identificar efetivamente as direções de tendências de curto prazo. Usando o canal EMA para determinar a direção da tendência principal e o histograma MACD para filtrar sinais falsos pode melhorar muito a lucratividade. O mecanismo fixo de stop loss e take profit também garante uma boa relação risco-recompensa.
A estratégia é principalmente adequada para negociação de curto prazo e tem um desempenho fraco em mercados de longo prazo e de variação. Em mercados laterais de longo prazo, os crossovers do canal EMA acontecem com frequência, mas a maioria são sinais falsos. Embora o histograma MACD possa desempenhar um papel na filtragem, sua eficácia ainda é limitada. Além disso, o stop loss fixo e o take profit dificulta a captura de ganhos incrementais de tendências de longo prazo. Portanto, esses são os principais riscos desta estratégia. As soluções são ajustar flexivelmente os parâmetros com base nas condições do mercado ou mudar para outras estratégias mais adequadas para as condições atuais do mercado.
A estratégia pode ser otimizada nos seguintes aspectos:
Otimizar os parâmetros da EMA para encontrar combinações de parâmetros que maximizem os retornos para instrumentos comerciais específicos.
Otimizar os parâmetros MACD para melhorar a eficácia da filtragem.
Incorporar indicadores de volatilidade para alargar o intervalo de stop loss quando a volatilidade do mercado aumentar.
Adicionar um mecanismo de stop loss para aproximar o stop loss do preço, reduzindo o gatilho desnecessário de stop loss e garantindo a lucratividade.
A estratégia tem uma lucratividade relativamente alta e é especialmente adequada para negociação de curto prazo. É uma boa escolha entre as estratégias de negociação quantitativa de alta frequência. Mas os comerciantes precisam ajustar os parâmetros razoavelmente com base nas condições do mercado ao usá-lo, para maximizar os retornos da estratégia enquanto controlam os riscos de negociação.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © moondevonyt //@version=5 strategy("Scalping with EMA channel and MACD", overlay=true) // Exponential moving average inputs ema21 = ta.ema(close, 21) ema5 = ta.ema(close, 5) // MACD inputs fastLength = 18 slowLength = 34 signalSmoothing = 12 [macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing) macdHistogram = macdLine - signalLine // Buy and sell conditions buyCondition = ta.crossover(ema5, ema21) and macdHistogram > 0 sellCondition = ta.crossunder(ema5, ema21) and macdHistogram < 0 // Re-entry conditions reEntryBuyCondition = close > ema21 reEntrySellCondition = close < ema21 // Set stop loss and take profit stopLoss = 8 takeProfit = 15 // Execute Strategy if buyCondition strategy.entry("Buy", strategy.long) strategy.exit("Take Profit/Stop Loss", "Buy", stop=close - stopLoss, limit=close + takeProfit) if reEntryBuyCondition strategy.entry("Re-Enter Buy", strategy.long) strategy.exit("Take Profit/Stop Loss", "Re-Enter Buy", stop=close - stopLoss, limit=close + takeProfit) if sellCondition strategy.entry("Sell", strategy.short) strategy.exit("Take Profit/Stop Loss", "Sell", stop=close + stopLoss, limit=close - takeProfit) if reEntrySellCondition strategy.entry("Re-Enter Sell", strategy.short) strategy.exit("Take Profit/Stop Loss", "Re-Enter Sell", stop=close + stopLoss, limit=close - takeProfit) // Plotting EMAs and MACD plot(ema21, color=color.blue, title="21 EMA") plot(ema5, color=color.orange, title="5 EMA") plot(macdHistogram, color=color.red, title="MACD Histogram") // Plot buy and sell signals plotshape(series=buyCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal") plotshape(series=sellCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")