Эта стратегия сочетает в себе скользящие средние и супер трендовые индикаторы для отслеживания тренда.
Для расчета средневзвешенной цены за определенный период используйте объем в качестве веса.
Вычислить скользящую среднюю стоимость Hull на основе MA.
Вычислить индикатор супер-тенденции. Супер-тенденция объединяет ATR для определения изменений тренда. Он вычисляет верхние и нижние полосы.
Когда ближайшие перерывы выше верхней полосы, идите на длинный.
График вспомогательных индикаторов, таких как открытие, закрытие, высокий и низкий визуально наблюдать движения цен.
Принимать торговые решения на основе перекрестных показателей.
Стратегия сочетает в себе как скользящую среднюю, так и супер-тенд, что позволяет более точно определять тренд.
Движущаяся средняя на корпусе более чувствительна к изменениям цен, что способствует своевременному обратному тренду.
Супер тренд динамически регулирует верхние и нижние диапазоны, чтобы адаптироваться к волатильности рынка.
Вспомогательные индикаторы визуально отображают движения цен для облегчения принятия решений с помощью сигналов индикатора.
Стратегия позволяет оптимизировать параметры на скользящий средний период, супер тренд мультипликатор и т.д.
Whipsaws могут генерировать ложные сигналы на рынках с ограниченным диапазоном, вызывая ненужные сделки.
Отслеживание нескольких показателей может сделать стратегию относительно сложной для реализации.
Параметры должны быть надлежащим образом адаптированы к характеристикам различных продуктов.
Для ограничения потерь на одиночных позициях требуется строгий режим стоп-лосса.
Высокая частота торговли требует контроля воздействия от комиссий.
Проверьте различные скользящие средние, чтобы найти более чувствительные к рынку.
Проверьте различные супер трендовые мультипликаторы, чтобы зафиксировать изменения тренда во времени.
Включить индекс волатильности для уменьшения размера позиции при повышении волатильности.
Добавьте условия прорыва, чтобы избежать ложных сигналов во время периодов диапазона.
Оптимизировать стратегию стоп-лосса, чтобы сделать ее более адаптивной к рыночным условиям.
Эта стратегия оценивает направление тренда, используя как скользящую среднюю, так и супер-тенд, чтобы следовать за трендом. Преимущество заключается в взаимной верификации между индикаторами для более точного обнаружения тренда. Но следует остерегаться ложных сигналов. Стратегия может быть еще лучше улучшена посредством оптимизации параметров и контроля рисков. Она подходит для операций по тренду на инструментах с сильными характеристиками тренда.
/*backtest start: 2022-11-07 00:00:00 end: 2023-11-13 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © rajukpatel //@version=5 strategy('My RK Strategy with Alert', shorttitle='My RK Strategy with Alert', overlay=true ) src5 = input(close) tf = input(1440) len5 = timeframe.isintraday and timeframe.multiplier >= 1 ? tf / timeframe.multiplier * 7 : timeframe.isintraday and timeframe.multiplier < 60 ? 60 / timeframe.multiplier * 24 * 7 : 7 ma = ta.ema(src5 * volume, len5) / ta.ema(volume, len5) //script taken from https://www.tradingview.com/script/kChCRRZI-Hull-Moving-Average/ src1 = ma p(src1, len5) => n = 0.0 s = 0.0 for i = 0 to len5 - 1 by 1 w = (len5 - i) * len5 n += w s += src5[i] * w s s / n hm = 2.0 * p(src1, math.floor(len5 / 3)) - p(src1, len5) vhma = p(hm, math.floor(math.sqrt(len5))) lineColor = vhma > vhma[1] ? color.lime : color.red plot(vhma, title='VHMA', color=lineColor, linewidth=3) hColor = true vis = true hu = hColor ? vhma > vhma[2] ? #00ff00 : #ff0000 : #ff9800 vl = vhma[0] ll = vhma[1] m1 = plot(vl, color=hu, linewidth=1, transp=60) m2 = plot(vis ? ll : na, color=hu, linewidth=2, transp=80) fill(m1, m2, color=hu, transp=70) // b = timeframe.isintraday and timeframe.multiplier >= 1 ? 60 / timeframe.multiplier * 7 : timeframe.isintraday and timeframe.multiplier < 60 ? 60 / timeframe.multiplier * 24 * 7 : 7 // res5 = input.timeframe('D') o = request.security(syminfo.tickerid, res5, open, barmerge.gaps_off, barmerge.lookahead_on) c = request.security(syminfo.tickerid, res5, close, barmerge.gaps_off, barmerge.lookahead_on) hz = request.security(syminfo.tickerid, res5, high, barmerge.gaps_off, barmerge.lookahead_on) l = request.security(syminfo.tickerid, res5, low, barmerge.gaps_off, barmerge.lookahead_on) col = c >= o ? color.lime : color.red ppo = plot(b ? o >= c ? hz : l : o, color=col, title='Open', style=plot.style_stepline, transp=100) ppc = plot(b ? o <= c ? hz : l : c, color=col, title='Close', style=plot.style_stepline, transp=100) plot(b and hz > c ? hz : na, color=col, title='High', style=plot.style_circles, linewidth=2, transp=60) plot(b and l < c ? l : na, color=col, title='Low', style=plot.style_circles, linewidth=2, transp=60) fill(ppo, ppc, col, transp=90) // // INPUTS // st_mult = input.float(1, title='SuperTrend Multiplier', minval=0, maxval=100, step=0.01) st_period = input.int(50, title='SuperTrend Period', minval=1) // CALCULATIONS // up_lev = l - st_mult * ta.atr(st_period) dn_lev = hz + st_mult * ta.atr(st_period) up_trend = 0.0 up_trend := c[1] > up_trend[1] ? math.max(up_lev, up_trend[1]) : up_lev down_trend = 0.0 down_trend := c[1] < down_trend[1] ? math.min(dn_lev, down_trend[1]) : dn_lev // Calculate trend var trend = 0 trend := c > down_trend[1] ? 1 : c < up_trend[1] ? -1 : nz(trend[1], 1) // Calculate SuperTrend Line st_line = trend == 1 ? up_trend : down_trend // Plotting //plot(st_line[1], color = trend == 1 ? color.green : color.red , style = plot.style_cross, linewidth = 2, title = "SuperTrend") buy = ta.crossover(c, st_line) sell = ta.crossunder(c, st_line) signal = input(false) /////////////// Plotting /////////////// plotshape(signal and buy, style=shape.triangleup, size=size.normal, location=location.belowbar, color=color.new(color.lime, 0)) plotshape(signal and sell, style=shape.triangledown, size=size.normal, location=location.abovebar, color=color.new(color.red, 0)) if buy strategy.entry('My Long Entry Id', strategy.long) if sell strategy.entry('My Short Entry Id', strategy.short)