##Обзор
Эта стратегия называется
Принцип стратегии
Стратегия использует четыре различных технических показателя для определения точек входа и выхода.
Условие длинного входа: 5-дневная EMA пересекает 21-дневную EMA, 50-дневная EMA пересекает 200-дневную EMA, BB %B больше установленной перекупленной линии, AO больше установленного положительного значения и ADX больше установленного значения.
Условие короткого входа: 5-дневная EMA пересекает 21-дневную EMA, 50-дневная EMA пересекает 200-дневную EMA, BB %B меньше установленной перепроданной линии, AO меньше установленного отрицательного значения, а ADX больше установленного значения.
Анализ преимуществ Стратегия сочетает в себе несколько индикаторов для определения направления тренда и относительной силы акций, которые могут эффективно отфильтровывать ложные прорывы.
Индикатор ADX может эффективно определить наличие и силу тренда, избегая частых открытий на рынке шока.
Показатель BB %B определяет, находятся ли отдельные запасы на уровне
Показатель AO определяет, существует ли относительно сильная поддержка импульса во время покупки, чтобы обеспечить эффективность прорыва.
Золотой крест/мертвый крест индикатора EMA в сочетании с оценкой основного направления рынка позволяет избежать открытия позиций против тренда.
Таким образом, эта стратегия может эффективно контролировать торговые риски и отслеживать сильные запасы на рынке.
## Анализ рисков Несмотря на то, что стратегия использует множество показателей для контроля рисков, все еще существуют определенные риски:
Комбинация нескольких экспоненциальных показателей чувствительна к корректировке параметров.
Чрезмерное преследование импульса может упустить реальные точки переворота рынка.
Показатели, такие как EMA, имеют отстающий характер и могут не отражать влияние внезапных событий во времени.
Основные неожиданные события могут вызвать расхождение показателей.
## направление оптимизации Стратегия также может быть оптимизирована в нескольких аспектах:
Используйте машинное обучение, чтобы найти оптимальную комбинацию параметров.
Добавить другие индикаторы, определяющие тенденции, такие как CCI и MACD, чтобы сформировать
Добавьте стратегии стоп-лосса для контроля одиночных потерь.
Установите время ожидания, чтобы избежать чрезмерной жадности.
## Резюме
Эта стратегия называется
/*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)