
Эта стратегия основана на динамическом Маркс-международной линии показателей, в сочетании с Брин-полосы и RSI для фильтрации торговых сигналов, реализовать только не делать больше, чем пустоту стратегию отслеживания тенденции. Эта стратегия определяет тенденции путем расчета динамического Маркс-международной линии изменения цены закрытия Хайк-линии, и сравнить с Брин-полосы, чтобы выпустить торговый сигнал. В сочетании с RSI фильтра, можно эффективно идентифицировать точку всплеска тенденции, реализовать тенденцию отслеживания.
В основе этой стратегии лежит изменение динамической средней марки по цене закрытия на линии Хекка. В частности, вычисляется разница между текущей и предыдущими двумя линиями K, а затем умножается на коэффициент чувствительности для получения точного значения изменения средней марки.
Затем это изменение сравнивается с разницами между верхней и нижней полосами по Бринской полосе. Если изменение средней линии Марка больше, чем разница между полосами Бринса, то считается, что тенденция проявляется при взрыве . Когда взрыв является положительным, то есть изменение средней линии Марка положительным, то образуется полисигнал и зеленая столбиковая линия.
Кроме того, в стратегии установлен RSI-фильтр, который посылает многосигналы только тогда, когда RSI выше отметки, чтобы избежать риска обратного тренда.
Меры по смягчению риска включают в себя: надлежащую корректировку параметров, чтобы сделать их более устойчивыми; использование в сочетании с другими показателями для определения обратной тенденции; использование только в течение длинной четкой тенденции и т. д.
В этой стратегии есть место для оптимизации:
Попробуйте различные ценовые источники, такие как цена закрытия, средняя линия и т. д., чтобы получить лучший эффект.
Настройка циклических параметров для равномерной маркировки и брин-полосы для оптимизации для разных сортов
Попытка заменить коэффициент чувствительности пропорциональными отношениями, чтобы сделать результаты показателя более интуитивными
Добавление других фильтров, таких как средняя линия тренда, объем сделок и т. д., для улучшения качества сигнала
Разработка стратегии пустого голоса с обратным действием в зависимости от формы показателя
Присоединение к механизму сдерживания убытков, чтобы лучше контролировать риски
Эта стратегия в целом является более стабильной стратегией отслеживания тенденции. Она использует динамическую среднюю линию для определения направления тенденции, идентификации точек взрыва в буринской полосе, фильтрации ложных сигналов RSI, реализует систему тенденций, которая делает только больше. Но также существует определенный риск, требующий оптимизации параметров для различных сортов и циклов, и невозможности получения прибыли от падения.
/*backtest
start: 2022-11-08 00:00:00
end: 2023-11-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
///////////Original Script Courtesy of Lazy_Bear.... Absolute Legend\\\\\\\\\\\\\\\
strategy('SmoothedWaddah', overlay=false, initial_capital=1)
sensitivity = input(150, title='Sensitivity')
fastLength = input(20, title='MacD FastEMA Length')
slowLength = input(40, title='MacD SlowEMA Length')
channelLength = input(20, title='BB Channel Length')
mult = input(1.5, title='BB Stdev Multiplier')
RSI14filter = input(40, title='RSI Value trade filter')
////////////MacD Calculation of price//////////////////////////////
calc_macd(source, fastLength, slowLength) =>
fastMA = ta.ema(source, fastLength)
slowMA = ta.ema(source, slowLength)
fastMA - slowMA
/////////BolingerBand Calculation of Price///////////////////////
calc_BBUpper(source, length, mult) =>
basis = ta.sma(source, length)
dev = mult * ta.stdev(source, length)
basis + dev
calc_BBLower(source, length, mult) =>
basis = ta.sma(source, length)
dev = mult * ta.stdev(source, length)
basis - dev
//////heinkenashi chart call for closing price "smoothing mechanism"\\\\\\\\\\\\\\\\\\\\\\\\\\\
point = request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close)
////////////////////T1 is change in MacD current candle from previous candle Sensitivy amplifies calculation/////////////////////
t1 = (calc_macd(point, fastLength, slowLength) - calc_macd(point[1], fastLength, slowLength)) * sensitivity
//////////////////////T2 is T1 from two candles prior\\\\\\\\\\\\\\\\\\\\\\\\\\\
t2 = (calc_macd(point[2], fastLength, slowLength) - calc_macd(point[3], fastLength, slowLength)) * sensitivity
////////////////E1 is difference in bolinger band upper and lower...E2 is E1 from one candle prior not needed//////////////
e1 = calc_BBUpper(ohlc4, channelLength, mult) - calc_BBLower(ohlc4, channelLength, mult)
//e2 = (calc_BBUpper(close[1], channelLength, mult) - calc_BBLower(close[1], channelLength, mult))
//////signal bar printing.. Up if MacD positive .. Down if MacD negative//////////
trendUp = t1 >= 0 ? t1 : 0
trendDown = t1 < 0 ? -1 * t1 : 0
///////plots difference in macD*Sensitivity, color change if increasing or decreasing.
//////color is green/lime if explosion is up \ color is red/orange if explosion is down/////////
plot(trendUp, style=plot.style_columns, linewidth=1, color=trendUp < trendUp[1] ? color.new(color.lime,45) : color.new(color.green,45), title='UpTrend')
plot(trendDown, style=plot.style_columns, linewidth=1, color=trendDown < trendDown[1] ? color.new(color.orange,45) : color.new(color.red,45), title='DownTrend')
plot(e1, style=plot.style_line, linewidth=2, color=color.new(#A0522D, 0), title='ExplosionLine')
////////////Entry conditions and Concept/////////////////////
////////////Long Only System. T1 is measuring the distance between MACD EMA's. This is Multiplied
////////////by the sensitivity so that it can be compared to the difference between BollingerBand.
/////////////{this could have been a ratio maybe i will work with that in a different script.}
/////////////I found that 135-175 sensitivy allows for values to be compared on most charts.....
////////////If the (difference between the EMA)*(Sensitivity) is greater than (BB upper line- BB lower line)
////////////it is considered an explosion in either the downside or the upside.The indicator will print
///////////a bar higher than the trigger line either green or red (up or down respectively)//////////////////
longCondition = trendUp > e1 and ta.rsi(close, 14) > RSI14filter
if longCondition
strategy.entry('up', strategy.long)
strategy.close('up', trendDown > e1)