## Visão geral
Esta estratégia é chamada de
Princípio da Estratégia
A estratégia utiliza quatro indicadores técnicos diferentes para determinar os pontos de entrada e saída.
Condição de entrada longa: a EMA de 5 dias ultrapassa a EMA de 21 dias, a EMA de 50 dias ultrapassa a EMA de 200 dias, BB %B é superior à linha de sobrecompra definida, AO é superior ao valor positivo definido e ADX é superior ao valor definido.
Condição de entrada curta: a EMA de 5 dias cruza abaixo da EMA de 21 dias, a EMA de 50 dias cruza abaixo da EMA de 200 dias, BB %B é inferior à linha de sobrevenda definida, AO é inferior ao valor negativo definido e ADX é superior ao valor definido.
Análise de vantagens A estratégia combina múltiplos indicadores para determinar a direção da tendência e a força relativa das ações, o que pode efetivamente filtrar falhas.
O indicador ADX pode determinar eficazmente a existência e a força da tendência, evitando aberturas frequentes num mercado de choque.
O indicador BB % B avalia se as existências individuais estão num nível
O indicador AO determina se existe um apoio relativamente forte durante a compra para garantir a eficácia da ruptura.
O indicador EMA
Em resumo, esta estratégia pode controlar eficazmente os riscos comerciais e acompanhar os fortes stocks no mercado.
##Análise de Risco Embora a estratégia utilize múltiplos indicadores para controlar os riscos, ainda existem certos riscos:
A combinação de múltiplos indicadores exponenciais é sensível aos ajustes de parâmetros.
A procura excessiva de impulso pode deixar de lado os pontos reais de reversão do mercado.
Os indicadores como a EMA têm uma natureza retardada e podem não ser capazes de refletir o impacto de eventos súbitos no tempo.
Os principais acontecimentos súbitos podem causar divergências nos indicadores.
Direcção de otimização A estratégia pode também ser otimizada em vários aspectos:
Use aprendizagem de máquina para encontrar a combinação de parâmetros ideal.
Adicionar outros indicadores que determinam tendências, como o CCI e o MACD, para formar uma combinação de
Adicionar estratégias de stop-loss para controlar perdas individuais.
Defina o tempo de espera para evitar ganância excessiva.
Resumo
Esta estratégia é chamada de
/*backtest start: 2022-12-04 00:00:00 end: 2023-12-10 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //ADX + BB %B + AO + EMA strategy("ADX + BB %B + AO + EMA", overlay=true, initial_capital=10000) take_profit_perc = input(title="Take Profit %", type=input.integer, defval=10, minval=1, maxval=100) stop_loss_perc = input(title="Stop Loss %", type=input.integer, defval=5, minval=1, maxval=100) bb_overbought = input(title="BB %B Overbought", type=input.integer, defval=75, minval=1, maxval=100) bb_oversold = input(title="BB %B Oversold", type=input.integer, defval=25, minval=1, maxval=100) ao_value = input(title="Awesome Oscillator", type=input.integer, defval=2) adx_value = input(title="ADX", type=input.integer, defval=15) startDate = input(title="Start Date", type=input.integer, defval=1, minval=1, maxval=31) startMonth = input(title="Start Month", type=input.integer, defval=1, minval=1, maxval=12) startYear = input(title="Start Year", type=input.integer, defval=2018, minval=2008, maxval=2200) inDateRange = (time >= timestamp(syminfo.timezone, startYear, startMonth, startDate, 0, 0)) ema5 = ema(close, 5) ema21 = ema(close, 21) ema50 = ema(close, 50) ema200 = ema(close, 200) //BB %B length = input(20, minval=1) src = input(close, title="Source") mult = input(2.0, minval=0.001, maxval=50, title="StdDev") basis = sma(src, length) dev = mult * stdev(src, length) upper = basis + dev lower = basis - dev bbr = (src - lower)/(upper - lower) //Awesome Oscillator ao = sma(hl2,5) - sma(hl2,34) // ADX adxlen = input(14, title="ADX Smoothing") dilen = input(14, title="DI Length") dirmov(len) => up = change(high) down = -change(low) plusDM = na(up) ? na : (up > down and up > 0 ? up : 0) minusDM = na(down) ? na : (down > up and down > 0 ? down : 0) truerange = rma(tr, len) plus = fixnan(100 * rma(plusDM, len) / truerange) minus = fixnan(100 * rma(minusDM, len) / truerange) [plus, minus] adx(dilen, adxlen) => [plus, minus] = dirmov(dilen) sum = plus + minus adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen) sig = adx(dilen, adxlen) long_strategy = ema5>ema21 and ema50>ema200 and bbr>(bb_overbought/100) and ao>ao_value and sig>adx_value short_strategy = ema5<ema21 and ema50<ema200 and bbr<(bb_oversold/100) and ao<-ao_value and sig>adx_value plot(ema5, color=color.blue) plot(ema21, color=color.aqua) plot(ema50, color=color.purple) plot(ema200, color=color.red) bgcolor(color=long_strategy ? color.green : na, transp=80) bgcolor(color=short_strategy ? color.purple : na, transp=80) if inDateRange and long_strategy strategy.entry("long", strategy.long) strategy.exit("exit", "long", stop=close*(100-stop_loss_perc)/100, limit=close*(100+take_profit_perc)/100) if inDateRange and short_strategy strategy.entry("short", strategy.short) strategy.exit("exit", "short", stop=close*(100+stop_loss_perc)/100, limit=close*(100-take_profit_perc)/100)