Estratégia de recuo de tendência com base em indicadores ADX EFI


Data de criação: 2023-09-19 17:10:51 última modificação: 2023-09-19 17:10:51
cópia: 0 Cliques: 692
1
focar em
1617
Seguidores

Visão geral

A estratégia usa o canal de 50 ciclos e o índice de movimento ADX, juntamente com a combinação de indicadores de energia EFI para negociação de tendências. Quando o indicador de energia EFI mostra uma tendência, o retorno é feito na área de 50 canais. A estratégia é válida para o período de 1 minuto.

Princípio da estratégia

  1. Calcule o canal medíocre de 50 ciclos, com o ponto médio acima do canal como ponto alto e o ponto médio abaixo como ponto baixo.

  2. O índice de tendência do ADX é calculado para determinar a força da tendência, apenas quando a tendência é forte (ADX> 20) é considerado o comércio.

  3. Calcule o indicador de energia EFI de longo período (~ 120 ciclos) e curto período (~ 15 ciclos). O indicador de longo período maior que 0 indica um aumento de energia de tendência ascendente geral, e o indicador de curto período menor que 0 indica uma diminuição de pulso de tendência ascendente de curto prazo.

  4. A operação de compra é executada quando o indicador EFI de longo e curto período emite um sinal de compra e o preço retorna ao canal de linha média de 50.

  5. Quando o indicador EFI de longo e curto período emite um sinal de venda, e o preço retorna para 50 canais de linha média, faça uma operação de venda.

Análise de vantagens

A estratégia combina tendências, impulsos e sinais de retorno para filtrar efetivamente a maioria das falsas rupturas. As vantagens específicas são as seguintes:

  1. A linha média de 50 indica claramente as principais tendências.

  2. O indicador ADX assegura que as negociações sejam feitas apenas quando há uma tendência clara, evitando a arbitragem em mercados de turbulência.

  3. O indicador EFI julga que o momento em que a energia da tendência aumenta, a compra é feita, reduzindo o risco de compra.

  4. Esperar para ser chamado de volta para entrar no campo de jogo pode ser uma boa forma de obter uma melhor relação de risco/retorno.

  5. Uma combinação de vários indicadores pode filtrar eficazmente o risco de uma falsa descoberta.

Análise de Riscos

A estratégia tem os seguintes riscos:

  1. A tendência forte também pode ter um grande recuo, o que requer um amplo intervalo de parada.

  2. Em situações de turbulência, o indicador EFI pode emitir sinais errados e precisa ser combinado com indicadores de tendência como o ADX.

  3. O tempo de entrada pode ser perdido quando o retorno é profundo, e o parâmetro da linha média pode ser ajustado de acordo.

  4. Uma única variedade de transação não pode efetivamente dispersar o risco sistêmico do mercado.

Direção de otimização

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

  1. Teste mais variedades e descubra o alcance geral dos parâmetros da estratégia.

  2. Aumentar a estratégia de stop loss para bloquear o lucro através do rastreamento de stop loss.

  3. Optimização de parâmetros, otimização de parâmetros de indicadores, como ADX, EFI.

  4. Aumentar os algoritmos de aprendizagem de máquina para usar o treinamento de big data para determinar se as tendências são verdadeiras ou falsas.

  5. Aumentar a negociação de vários períodos de tempo, usando a tecnologia de Spacing para controlar as posições entre os diferentes períodos.

  6. Avalie e introduza mais indicadores de filtragem de tendências para melhorar a qualidade do sinal.

Resumir

A estratégia em geral é uma estratégia de retorno de tendência muito apropriada para os iniciantes. Combina vários sinais, como tendência, dinâmica e retorno, para filtrar efetivamente as falsas rupturas. A estratégia pode ser um poderoso sistema de rastreamento de tendência, otimizando a estratégia de parada de perda, configuração de parâmetros, período de tempo, etc.

Código-fonte da estratégia
/*backtest
start: 2023-08-19 00:00:00
end: 2023-09-18 00:00:00
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/
// © trent777brown

//@version=5
// strategy("adx efi 50 ema channel, trend pullback", overlay=true, margin_long=100, margin_short=100, currency=currency.USD, initial_capital= 100000, close_entries_rule="ANY")

//bollingerbands
[basis, upperband, lowerband]= ta.bb(ohlc4, 50, 3) 
[basis2, upperband2, lowerband2]= ta.bb(ohlc4, 50, 2)
psar= ta.sar(.1, .1, .09)
ema50= ta.ema(hlc3, 50) 
ema50hi= ta.ema(high, 50) 
ema50lo= ta.ema(low, 50) 
ema18= ta.wma(hlc3, 15)
wma9= ta.wma(open, 9) 
wma5= ta.wma(ohlc4, 5) 
ema34= ta.rma(hlc3, 10)
[macdline, signalline, histline]= ta.macd(hlc3, 5, 34, 5) 
[macdline2, signalline2, histline2]= ta.macd(hlc3, 15,70, 24) 
[diplus, diminus, adx]= ta.dmi(20, 20) 
[diplus2, diminus2, adx2]= ta.dmi(12, 12)
rsi= ta.rsi(hlc3, 14)
rsisma= ta.sma(rsi, 10) 
stoch= ta.stoch(close, high, low, 21)
k= ta.wma(stoch, 3)
d= ta.wma(k, 3)
trendline5= ta.wma(hlc3, 300) 
trendline9= ta.wma(open, 540) 
trendline18= ta.wma(open, 1080)
atr=ta.atr(14)
plot(psar, color=color.red, style=plot.style_circles)
plot(ema50, color=color.white, linewidth=4) 
plot(ema50hi, color=color.yellow, linewidth=4)
plot(ema50lo, color=color.yellow, linewidth=4)
plot(ema34, color=color.aqua, linewidth=4)
plot(wma9, color=color.gray, linewidth=4) 
plot(wma5, color=color.lime, linewidth=4) 
plot(trendline18, color=color.orange, linewidth=4) 
plot(upperband, color=color.navy, linewidth=4) 
plot(lowerband, color=color.navy, linewidth=4)
plot(upperband2, color=color.navy, linewidth=4)
plot(lowerband2, color=color.navy, linewidth=4)
plot(trendline9, color=color.maroon, linewidth=4)
plot(trendline5, color=color.yellow, linewidth=4)


efi = ta.rma(ta.change(close) * volume, 15)
efi2= ta.rma(ta.change(close) * volume, 120)

buy= efi2 > 0 and efi < 0 and efi[1] < efi  and adx >= 20 and open < ema50hi
sell= efi2 < 0 and efi > 0 and efi[1] > efi and adx >= 20 and open > ema50lo

//ell= rsi > 50 and ta.crossunder(wma5, wma9) and psar > high and ema18 <= ema50hi and macdline > 0 and macdline < signalline
//buy= ta.crossunder(close, ema50) and rsi < 50 and adx2 < adx2[1] and k < 25 and psar > high
//uy= rsi < 60 and ta.crossover(wma5, wma9)  and psar < low and ema18 >= ema50 and macdline2 > 0 and diplus2 < 30 // and histline2 < 0  
//buy=  ema18 > ema50 and ta.crossunder(rsi, 45) and open < ema50hi and adx2[3] < adx2 and diplus2 < 25 and macdline < 0  and adx < 10
//sell= ta.crossover(close, ema50) and rsi > 50 and adx2 < adx2[1] and k > 75 and psar < low
//ell= ema18 < ema50 and ta.crossover(rsi, 60) and open > ema50lo and diminus2 < 30 and macdline2 < 0 and adx2[2] < adx2 
//buy sell conditions 1
//buy= ta.crossover(wma5, ema18) and ema18 > ema50lo and diplus > 22 and diminus < 22 and adx > 15
//ell= ta.crossover(psar, high) and macdline2 < signalline2 and rsi < rsisma
//when conditions
buytrig= ema34 >= ema50lo
selltrig= ema34 <= ema50hi
//strategy
sl= low - atr * 8
tp= high +  atr * 4
sellsl= high + atr * 8
selltp= low - atr * 4
if(buy)
    strategy.entry("buy", strategy.long, when= buytrig)
    strategy.exit("exit buy", "buy", limit= tp, stop= sl)
    strategy.close("close", when= ta.crossunder(ema34, ema50lo))
if(sell)
    strategy.entry("sell", strategy.short, when= selltrig)
    strategy.exit("exit sell", "sell", limit= selltp, stop= sellsl)