Стратегия динамического среднего тренда


Дата создания: 2023-11-15 17:45:13 Последнее изменение: 2023-11-15 17:45:13
Копировать: 0 Количество просмотров: 621
1
Подписаться
1617
Подписчики

Стратегия динамического среднего тренда

Обзор

Эта стратегия основана на динамическом Маркс-международной линии показателей, в сочетании с Брин-полосы и RSI для фильтрации торговых сигналов, реализовать только не делать больше, чем пустоту стратегию отслеживания тенденции. Эта стратегия определяет тенденции путем расчета динамического Маркс-международной линии изменения цены закрытия Хайк-линии, и сравнить с Брин-полосы, чтобы выпустить торговый сигнал. В сочетании с RSI фильтра, можно эффективно идентифицировать точку всплеска тенденции, реализовать тенденцию отслеживания.

Стратегический принцип

В основе этой стратегии лежит изменение динамической средней марки по цене закрытия на линии Хекка. В частности, вычисляется разница между текущей и предыдущими двумя линиями K, а затем умножается на коэффициент чувствительности для получения точного значения изменения средней марки.

Затем это изменение сравнивается с разницами между верхней и нижней полосами по Бринской полосе. Если изменение средней линии Марка больше, чем разница между полосами Бринса, то считается, что тенденция проявляется при взрыве . Когда взрыв является положительным, то есть изменение средней линии Марка положительным, то образуется полисигнал и зеленая столбиковая линия.

Кроме того, в стратегии установлен RSI-фильтр, который посылает многосигналы только тогда, когда RSI выше отметки, чтобы избежать риска обратного тренда.

Стратегические преимущества

  • Используя динамическую мерку, можно эффективно отслеживать изменения в тренде.
  • Брин-пояса в качестве динамического индикатора, в сочетании с Марковой равной, позволяют лучше распознавать всплески тренда
  • Фильтр 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)