Estratégia de negociação de vários prazos baseada na EMA, RSI e MACD

Autora:ChaoZhang, Data: 2024-02-20 14:25:24
Tags:

img

Resumo

Esta estratégia combina a média móvel (EMA), o índice de força relativa (RSI) e os indicadores de divergência de convergência média móvel (MACD) para encontrar oportunidades de negociação em vários prazos e permitir a negociação automatizada.

Princípio da estratégia

A estratégia baseia-se principalmente nos indicadores EMA, RSI e MACD. A lógica de negociação é a seguinte:

  1. Use a EMA de 25 dias e a EMA de 45 dias para formar cruzes de ouro e cruzes de morte como sinais de negociação.

  2. Incorpore o indicador RSI para evitar falhas. Apenas tome sinais de compra de cruzes de ouro quando o RSI for maior que 50; apenas tome sinais de venda de cruzes de morte quando o RSI for menor que 50.

  3. Encontrar mais oportunidades de negociação sob diferentes configurações de parâmetros do RSI, incluindo RSI>30, RSI<30 etc.

  4. O indicador MACD pode ser utilizado como uma ferramenta de julgamento auxiliar para confirmar os sinais de negociação da EMA.

Ao encontrar mais oportunidades de negociação em diferentes prazos, a rentabilidade da estratégia pode ser melhorada.

Vantagens da estratégia

A maior força desta estratégia reside na combinação de múltiplos indicadores e negociação em diferentes prazos, o que melhora as probabilidades de negociações vencedoras.

  1. Os cruzes da EMA podem efetivamente acompanhar as mudanças de tendência no mercado e captar oportunamente as oportunidades de negociação.

  2. O indicador RSI ajuda a evitar falhas e reduz os riscos comerciais.

  3. Mais oportunidades de entrada através de diferentes configurações de parâmetros RSI melhoram a rentabilidade.

  4. O MACD fornece uma confirmação secundária dos sinais EMA para diminuir ainda mais os riscos.

  5. A negociação em vários prazos duplica as hipóteses de lucro.

Riscos da Estratégia

Há também alguns riscos com esta estratégia:

  1. A EMA tem atrasos que podem conduzir à perda de oportunidades de negociação a curto prazo.

  2. O ajuste incorreto dos parâmetros na combinação de múltiplos indicadores pode causar uma otimização excessiva.

  3. A negociação com vários prazos pode agravar as perdas, exigindo uma gestão rigorosa das perdas de parada.

  4. Os custos das transacções devem ser monitorizados em ambientes de negociação em tempo real para evitar excesso de negociação.

Orientações de otimização

A estratégia pode ser ainda melhorada:

  1. Teste e otimize os parâmetros EMA para a melhor combinação.

  2. Teste mais indicadores auxiliares como bandas BOLL, KD etc.

  3. Incorporar um mecanismo adaptativo de stop loss baseado na volatilidade do mercado.

  4. Otimizar o dimensionamento da posição sob diferentes configurações de parâmetros.

  5. Melhorar a lógica de entrada para eliminar sinais conflitantes ou aumentar o poder de filtragem.

Conclusão

Esta estratégia integra sinais em indicadores e prazos, capazes de rastrear tendências e capturar oportunidades de curto prazo. Enquanto isso, os mecanismos de entrada rigorosos também equipam a estratégia com capacidades decentes de controle de risco. Em geral, esta é uma estratégia com retornos estáveis e valor prático, que vale a pena recomendar.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Aqualizer

//@version=5
strategy("Aserin Buy and Sell", overlay=true)

shortSMA = ta.sma(close, 25)
longSMA = ta.sma(close, 45)
rsi = ta.rsi(close, 7)
ta.macd(close,12, 26, 9)
atr = ta.atr(3)
longCondition = ta.crossover(shortSMA, longSMA)
shortCondition = ta.crossunder(shortSMA, longSMA)

if (longCondition)
    strategy.entry("long", strategy.long, 100, when = rsi > 50)
if (shortCondition)
    strategy.entry("short", strategy.short, 100, when = rsi < 50)

if (longCondition)
    strategy.entry("long", strategy.long, 100, when = rsi > 30)
if (shortCondition)
    strategy.entry("short", strategy.short, 100, when = rsi < 30)

if (longCondition)
    strategy.entry("long", strategy.long, 100, when = rsi > 20)
if (shortCondition)
    strategy.entry("short", strategy.short, 100, when = rsi < 50)

plot(shortSMA)
plot(longSMA, color=color.black)

if (longCondition)
    stopLoss = low - atr * 2,45
    takeProfit = high + atr * 2,45
    strategy.entry("long", strategy.long, 1, when = rsi > 30)

    strategy.exit("exit", "long", stop=stopLoss, limit=takeProfit)

if (shortCondition)
    stopLoss = high + atr * 3
    takeProfit = low - atr * 3
    strategy.entry("short", strategy.short, 1, when = rsi < 30)
    strategy.exit("exit", "short", stop=stopLoss, limit=takeProfit)

plot(shortSMA)
plot(longSMA, color=color.black)


Mais.