Estratégia de negociação de curto prazo baseada no canal EMA e MACD


Data de criação: 2024-01-23 14:30:02 última modificação: 2024-01-23 14:30:02
cópia: 0 Cliques: 741
1
focar em
1617
Seguidores

Estratégia de negociação de curto prazo baseada no canal EMA e MACD

Visão geral

A estratégia é conhecida como a estratégia de negociação de linhas curtas baseada no canal EMA e MACD. Combina o canal EMA e o indicador MACD para identificar tendências e fornecer sinais de negociação.

Princípio da estratégia

A estratégia usa o 5th EMA e o 21st EMA para formar o canal EMA. Quando o 5th EMA atravessa o 21st EMA, o mercado é considerado como entrando no topo, e quando o 5th EMA atravessa o 21st EMA, o mercado é considerado como entrando no topo. O diagrama do indicador MACD pode ser usado para filtrar falsos sinais.

Análise de vantagens

A estratégia combina a identificação de tendências e a filtragem de indicadores para identificar efetivamente a direção da curva curta. Usando o canal EMA para determinar a direção da tendência principal, e filtrando os sinais falsos com o indicador MACD, pode aumentar significativamente a probabilidade de lucro. O mecanismo de parada de perda fixa também garante a relação de risco/benefício entre os ganhos.

Análise de Riscos

A estratégia é aplicada principalmente para negociações de curta linha, com fraca eficácia em condições de longo prazo e de choque. Em mercados de longo prazo horizontal, os sinais de cruzamento do canal EMA são frequentes, mas a maioria são falsos, no entanto, o MACD pode ter um certo efeito de filtragem, mas o efeito é limitado. Além disso, o mecanismo de parada de perda fixo dificulta a captação de ganhos adicionais trazidos pela tendência de longo prazo.

Direção de otimização

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

  1. Optimizar os parâmetros da EMA, procurando um conjunto de parâmetros que melhor se encaixe com a taxa de retorno máxima de uma variedade específica de transações;
  2. Otimizar os parâmetros do MACD para melhor filtragem;
  3. Ampliação do limiar de perda quando a volatilidade do mercado aumenta, em combinação com os indicadores de volatilidade;
  4. Adicionar um mecanismo de rastreamento de stop-loss para que o stop-loss fique mais próximo do preço, reduzindo a probabilidade de que um stop-loss desnecessário seja acionado, com a premissa de garantir o lucro.

Resumir

A estratégia é altamente lucrativa em geral, especialmente para negociações de curta linha, e é uma boa opção em estratégias de negociação quantitativa em busca de negociações de alta frequência. No entanto, quando o comerciante usa, tenha cuidado em ajustar razoavelmente os parâmetros de acordo com a situação do mercado, maximizando os lucros da estratégia e, ao mesmo tempo, controlando o risco de negociação.

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