##Visión general
Esta estrategia se llama
## Principio de estrategia
La estrategia utiliza cuatro indicadores técnicos diferentes para determinar los puntos de entrada y salida.
Condición de entrada larga: la EMA de 5 días se cruza por encima de la EMA de 21 días, la EMA de 50 días se cruza por encima de la EMA de 200 días, BB %B es mayor que la línea de sobrecompra establecida, AO es mayor que el valor positivo establecido y ADX es mayor que el valor establecido.
Condición de entrada corta: la EMA de 5 días se cruza por debajo de la EMA de 21 días, la EMA de 50 días se cruza por debajo de la EMA de 200 días, BB %B es inferior a la línea de sobreventa establecida, AO es inferior al valor negativo establecido y ADX es mayor que el valor establecido.
##Análisis de ventajas La estrategia combina múltiples indicadores para determinar la dirección de la tendencia y la fuerza relativa de las acciones, que pueden filtrar eficazmente las falsas rupturas.
El indicador ADX puede determinar eficazmente la existencia y la fuerza de la tendencia, evitando la apertura frecuente en un mercado de choque.
El indicador BB % B evalúa si las existencias individuales se encuentran en un nivel
El indicador AO determina si existe un soporte de impulso relativamente fuerte durante la compra para garantizar la eficacia de la ruptura.
El indicador EMA
En resumen, esta estrategia puede controlar eficazmente los riesgos comerciales y realizar un seguimiento de las fuertes existencias en el mercado.
##Análisis de riesgos Aunque la estrategia utiliza múltiples indicadores para controlar los riesgos, todavía existen ciertos riesgos:
La combinación de múltiples indicadores exponenciales es sensible a los ajustes de parámetros. Las combinaciones inapropiadas de parámetros pueden no lograr el efecto deseado.
La búsqueda excesiva de impulso puede perder los puntos reales de inversión del mercado.
Los indicadores como el EMA tienen un carácter retrasado y pueden no ser capaces de reflejar el impacto de eventos repentinos en el tiempo.
Los grandes acontecimientos repentinos pueden causar divergencias en los indicadores.
## Dirección de optimización La estrategia también puede optimizarse en varios aspectos:
Utilice el aprendizaje automático para encontrar la combinación óptima de parámetros.
Añadir otros indicadores que determinan las tendencias, como el CCI y el MACD, para formar una
Añadir estrategias de stop-loss para controlar pérdidas individuales.
Establezca un tiempo de espera para evitar la avaricia excesiva.
## Resumen
Esta estrategia se llama
/*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)