Количественная стратегия DPD-RSI-BB сочетает в себе три индикатора - DPD, RSI и полосы Боллинджера для торговли акциями.
Стратегия состоит из следующих основных компонентов:
Показатель DPD для определения тенденции
Он строит линию DEMA с использованием двойных средних EMA и рассчитывает процент дифференциальной цены по отношению к DEMA в качестве индикатора определения тренда.
Индикатор RSI для оценки условий перекупления и перепродажи
Он рассчитывает значение RSI за определенный период. RSI выше верхнего предела оценивается как зона перекупленности, а RSI ниже нижнего предела оценивается как зона перепроданности.
Боллингерские полосы для определения поддержки и сопротивления
Он рассчитывает среднюю полосу, верхнюю полосу и нижнюю полосу за определенный период.
Всеобъемлющее суждение
Когда процент дифференциальной цены DPD ниже порога, RSI ниже нижнего предела зоны перепродажи, а цена ниже верхней полосы Боллинджера, генерируется бычий сигнал.
Стратегия имеет следующие преимущества:
Всеобъемлющее суждение с использованием нескольких показателей позволяет избежать ложных сигналов от одного показателя.
Использование индикатора RSI для оценки условий перекупа и перепродажи позволяет заранее установить стоп-лосс и взять точки прибыли.
Показатель DPD может лучше определить ценовые тенденции, в то время как полосы Боллинджера могут определить уровни поддержки и сопротивления.
Гибкие параметры позволяют оптимизировать различные запасы.
Стратегия также сопряжена с некоторыми рисками:
Сочетание нескольких индикаторов делает стратегию довольно сложной с трудом настройки параметров.
Показатели, такие как DPD и RSI, имеют определенные задержки, которые могут не соответствовать наилучшему сроку входа.
Параметры должны быть оптимизированы в соответствии с различными циклами и характеристиками запасов.
Следующие аспекты могут быть оптимизированы:
Настройка параметров индикатора для оптимизации пунктов входа и выхода.
Добавить механизмы остановки потери для строгого контроля по торговым потерям.
Испытание на различных запасах и параметрах цикла для оценки эффективности стратегии.
Стратегия DPD-RSI-BB сочетает в себе несколько индикаторов для суждений, чтобы избежать ложных сигналов от одного индикатора. Благодаря оптимизации параметров она может стать относительно сильной стратегией торговли акциями.
/*backtest start: 2023-11-14 00:00:00 end: 2023-11-21 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version= 2 strategy("DPD+RSI+BB ",overlay=true) price=close //############### DPD ################# buyper =input(-1,step=0.1) sellper=input(0,step=0.1) demalen = input(50,title="Dema Length") e1= ema(close,demalen) e2=ema(e1,demalen) demaprice = 2 * e1 - e2 demadifper = ((price-demaprice)/price)*100 //############## DPD ##################### //############# RSI #################### lengthrsi = input(6) overSold = input( 20 ) overBought = input( 60 ) vrsi = rsi(price, lengthrsi) //########## RSI ####################### //############### BB ################# lengthbb = input(50, minval=1) multlow = input(1.5, minval=0.001, maxval=50,step=0.1) multup = input(1.5,minval=0.001,maxval=50,step=0.1) basisup = sma(close, lengthbb) basislow = sma(close, lengthbb) devup = multup * stdev(close, lengthbb) devlow = multlow*stdev(close,lengthbb) upperbb = basisup + devup lowerbb = basislow - devlow p1 = plot(upperbb, color=blue) p2 = plot(lowerbb, color=blue) fill(p1, p2) //########### BB ################### yearfrom = input(2018) yearuntil =input(2039) monthfrom =input(6) monthuntil =input(12) dayfrom=input(1) dayuntil=input(31) if ( (demadifper<buyper) and crossover(vrsi,overSold) and (price < upperbb) and year >= yearfrom and year <= yearuntil and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil) strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND", comment="BUY") else strategy.cancel(id="BUY") if ( price>upperbb and vrsi>overBought and demadifper>sellper and year >= yearfrom and year <= yearuntil and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil ) strategy.entry("SELL", strategy.short,stop=close, oca_name="TREND", comment="SELL") else strategy.cancel(id="SELL")