Estratégia de cruzamento do indicador de impulso

Autora:ChaoZhang, Data: 2023-12-27 17:04:33
Tags:

img

Resumo

A estratégia de cruzamento do indicador de momento é uma abordagem de negociação baseada na combinação de sinais de média móvel exponencial (EMA) e índice de força relativa (RSI).

Princípio da estratégia

O núcleo desta estratégia é o sistema de cruzamento de linhas EMA rápidas e lentas.ema1, ema2eema3Entre eles,ema1representa uma tendência a curto prazo,ema2Representa uma tendência a médio prazo, eema3A tendência de curto prazo representa uma tendência de longo prazo. Quando a tendência de curto prazo cruza acima da tendência de médio prazo, um sinal de compra é gerado. Quando a tendência de curto prazo cai abaixo da tendência de médio prazo, um sinal de venda é gerado.

Para filtrar os falsos sinais, a estratégia define também duas condições adicionais:bodybar1 > bodybar2eclose > entrybar(para sinal de compra) ouclose < entrybarIsso garante que os dois candelabros recentes atendam à direção do sinal, e o preço atravessa o ponto de entrada para evitar entrada redundante.

Além disso, a estratégia incorpora o indicador RSI para avaliar as condições de sobrecompra e sobrevenda. A área de sobrecompra do RSI é usada para definir sinais de compra excessiva, enquanto a área de sobrevenda é usada para definir sinais de venda excessiva. Isso ajuda a evitar sinais errados em mercados sobreaquecidos e sobre-resfriados.

Análise das vantagens

As vantagens desta estratégia incluem:

  1. Simples e fáceis de usar, os utilizadores não precisam de compreender indicadores complexos.
  2. Dimensão flexível das posições com base na percentagem do capital investido.
  3. O cruzamento EMA combinado com o filtro RSI melhora a confiabilidade do sinal.
  4. Lógica comercial clara, fácil de entender e ajustar.

Análise de riscos

Os riscos desta estratégia incluem:

  1. Os crossovers da EMA não podem filtrar completamente o ruído do mercado e podem facilmente gerar falsos sinais.
  2. As linhas EMA de parâmetros fixos não podem adaptar-se às alterações do mercado em tempo real.
  3. Nenhuma lógica de stop loss não pode controlar uma única perda.
  4. As condições do filtro RSI são muito simples, possivelmente perdendo oportunidades.

Orientações de otimização

A estratégia pode ser otimizada nos seguintes aspectos:

  1. Estabelecer parâmetros de EMA adaptáveis com base na volatilidade do mercado e nos produtos de negociação para melhorar a atualidade dos parâmetros.
  2. Incorporar múltiplos filtros como MACD, Bandas de Bollinger, etc. para reduzir os falsos sinais.
  3. Adicione o rastreamento de stop loss, funções de lucro para controlar os riscos comerciais.
  4. Otimizar a lógica do filtro RSI para melhorar a estabilidade geral da estratégia.
  5. Otimizar dinamicamente os parâmetros da estratégia com técnicas de aprendizagem de máquina.

Conclusão

A estratégia de cruzamento de indicadores de momento integra os pontos fortes da EMA e do RSI e forma sinais de negociação baseados em cruzamento de indicadores. A estratégia é simples e prática, adequada para iniciantes, e também pode ser expandida e otimizada de acordo com as necessidades reais para melhorar o desempenho da estratégia. Com uma gestão de risco rigorosa, a estratégia promete retornos excessivos estáveis.


/*backtest
start: 2022-12-20 00:00:00
end: 2023-12-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('EMA Crossover Strategy', shorttitle='EMA Crossover', overlay=true)


// Define input for position size as a percentage of equity
position_size_pct = input(1, title='Position Size (%)') / 100

//Input EMA
len1 = input.int(25, minval=1, title='EMA 1')
src1 = input(close, title='Source')
ema1 = ta.ema(src1, len1)
len2 = input.int(100, minval=1, title='EMA 2')
src2 = input(close, title='Source')
ema2 = ta.ema(src2, len2)
len3 = input.int(200, minval=1, title='EMA 3')
src3 = input(close, title='Source')
ema3 = ta.ema(src3, len3)
//End of format

//Format RSI
lenrsi = input(14, title='RSI length')
outrsi = ta.rsi(close,lenrsi)
//plot(outrsi, title='RSI', color=color.new(color.blue, 0), linewidth=1)

//hline(70, 'Overbought', color=color.red)
//hline(30, 'Oversold', color=color.green)
//End of format


bodybar1 = math.abs(close - open)
bodybar2 = math.abs(close[1] - open[1])
// Plot the EMAs
plot(ema1, color=color.new(color.blue, 0), title='EMA 1')
plot(ema2, color=color.new(color.red, 0), title='EMA 2')
//plot(ema3, color=color.new(#ffffff, 0), title='EMA 3')

// EMA Crossover conditions
emaCrossoverUp = ta.crossover(ema1, ema2)
emaCrossoverDown = ta.crossunder(ema1, ema2)

var entrybar = close  // Initialize entrybar with the current close


// Calculate crossovers outside of the if statements
emaCrossoverUpOccured = ta.crossover(close, ema1) and ema1 > ema2 and bodybar1 > bodybar2 and close > entrybar
emaCrossoverDownOccured = ta.crossunder(close, ema1) and ema1 < ema2 and bodybar1 > bodybar2 and close < entrybar

plotshape(series=emaCrossoverUpOccured, location=location.abovebar, color=color.new(color.green, 0), style=shape.triangleup, title='New Buy Order', size=size.tiny)
plotshape(series=emaCrossoverDownOccured, location=location.belowbar, color=color.new(color.red, 0), style=shape.triangledown, title='New Sell Order', size=size.tiny)

// Define trading logic with custom position size and RSI conditions
if emaCrossoverUp or emaCrossoverUpOccured
    strategy.entry('Buy', strategy.long)
    entrybar := close  // Update entrybar when entering a new buy position
    entrybar

if emaCrossoverDown or emaCrossoverDownOccured
    strategy.entry('Sell', strategy.short)
    entrybar := close  // Update entrybar when entering a new sell position
    entrybar



Mais.