Estratégias de negociação de curto prazo baseadas no canal EMA e no MACD

Autora:ChaoZhang, Data: 2024-01-23 14:30:02
Tags:

基于EMA通道和MACD的短线交易策略

Resumo

A estratégia é conhecida como a estratégia de negociação de curto prazo baseada no canal EMA e no MACD. Ele combina o canal EMA e o indicador MACD para identificar tendências e dar sinais de negociação.

Princípios estratégicos

A estratégia usa o EMA do dia 5 e o EMA do dia 21 para formar o canal EMA. Quando o EMA do dia 5 atravessa o EMA do dia 21, o mercado é considerado como entrando em uma posição mais alta, quando o EMA do dia 5 atravessa o EMA do dia 21, o mercado é considerado como entrando em uma posição mais baixa. O gráfico vertical do indicador MACD pode ser usado para filtrar os sinais falsos.

Análise de vantagens

A estratégia, combinada com a identificação de tendências e a filtragem de indicadores, é eficaz para identificar a direção do mercado de curto prazo. Utilizando 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 captura de prejuízos fixo também garante o risco-retorno dos ganhos.

Análise de riscos

A estratégia é aplicada principalmente a negociações de curto prazo e não funciona muito bem em tendências de longo prazo e em mercados turbulentos. No mercado de longo prazo, os sinais de cruzamento dos canais EMA são frequentes, mas na maioria são falsos, quando o MACD pode ter um certo efeito de filtragem, mas o efeito é limitado. Além disso, o mecanismo de bloqueio de stop loss fixo dificulta a captação dos ganhos incrementais da tendência de longo prazo.

Optimização

A estratégia pode ser otimizada em vários aspectos: 1. Otimizar os parâmetros da EMA para encontrar combinações de parâmetros que maximizem o rendimento mais adequado a uma variedade específica de negociações; Otimizar os parâmetros do MACD para melhorar o efeito de filtragem; 3. Ampliar a faixa de stop-loss quando a volatilidade do mercado aumenta, em combinação com os indicadores de volatilidade; 4. Incorporar um mecanismo de rastreamento de stop-loss para aproximar o stop-loss do preço e reduzir a probabilidade de um stop-loss desnecessário ser desencadeado, garantindo lucros.

Resumo

A estratégia é de alta rentabilidade em geral, especialmente para negociações de curto prazo, e é uma boa opção em estratégias de negociação quantitativa que buscam negociações de alta frequência. No entanto, os traders devem ter cuidado para ajustar os parâmetros de acordo com o mercado, maximizando os ganhos da estratégia, ao mesmo tempo em que controlam o risco 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")

Mais informações