Эта стратегия сочетает в себе индикатор Pivot Points и средние True Range Bands для реализации системы отслеживания трендов в нескольких временных рамках.
Эта стратегия основывается главным образом на двух показателях:
Пивовые точки: вычисляют средние цены на самые высокие, самые низкие и закрывающиеся цены за определенный период, чтобы определить верхние и нижние пивовые точки.
Средний истинный диапазон полос: рассчитывать средний истинный диапазон за определенный период и перемещать средний диапазон вверх и вниз, чтобы сформировать канал.
Конкретная логика торговли:
Когда цена проходит через канал среднего истинного диапазона, займите длинные или короткие позиции вдоль направления прорыва. Когда цена возвращается в канал, закрывайте позиции. Кроме того, когда цена проходит через верхнюю точку поворота, займите длинную позицию; когда цена проходит через нижнюю точку поворота, займите короткую позицию.
Стратегия также вводит концепцию центральной линии.Когда прибыль превышает среднюю линию, можно закрыть половину позиции, чтобы получить некоторую прибыль и контролировать риск.
Стратегия имеет следующие преимущества:
Долгие и промежуточные циклы определяют основные тенденции, в то время как короткие циклы определяют конкретные записи.
Средине линия поворота обеспечивает возможность закрыть половину позиции, блокируя некоторую прибыль, обеспечивая при этом выигрышные сделки.
Средние диапазоны истинного диапазона обеспечивают четкие уровни стоп-лосса.
Стратегия имеет несколько параметров, легко оптимизировать для лучших комбинаций параметров.
Это максимально избегает риска ложных прорывов.
Стратегия также сопряжена с некоторыми рисками:
Большие риски остановки потерь при высокой волатильности рынка.
Средняя линия может часто вызывать стоп-лосс во время консолидации рынка.
Неправильный выбор параметров может привести к слишком малой или слишком частой торговле.
Недавние перерывы поворотной точки могут оказаться ложными перерывами.
Стратегия может быть оптимизирована из следующих аспектов:
Соедините больше фильтров, таких как объем и полосы Боллинджера, чтобы избежать ложных сигналов.
Оптимизировать периоды Ключевых точек и ATR для поиска лучших комбинаций параметров.
Установите буферную зону вокруг средней линии, чтобы избежать частых сбоев.
Добавьте соответствующие фильтры трендов, чтобы обеспечить работу по основным тенденциям.
В целом, это очень практичная стратегия отслеживания тренда. Она решает распространенные трудности стоп-лосса систем тренда и достигает контролируемого риска. Это очень рекомендуемая стратегия. При надлежащих оптимизациях и улучшениях ее производительность может быть еще больше повышена.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m 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/ // © LonesomeTheBlue //@version=4 strategy("Pivot Point SuperTrend [Backtest]", overlay = true) prd = input(defval = 2, title="Pivot Point Period", minval = 1, maxval = 50) Factor=input(defval = 3, title = "ATR Factor", minval = 1, step = 0.1) Pd=input(defval = 10, title = "ATR Period", minval=1) usecenter = input(defval = false, title="Use Center Line to Close Entry for 50%") showpivot = input(defval = false, title="Show Pivot Points") showcl = input(defval = false, title="Show PP Center Line") float ph = na float pl = na ph := pivothigh(prd, prd) pl := pivotlow(prd, prd) plotshape(ph and showpivot, text="H", style=shape.labeldown, color=na, textcolor=color.red, location=location.abovebar, transp=0, offset = -prd) plotshape(pl and showpivot, text="L", style=shape.labeldown, color=na, textcolor=color.lime, location=location.belowbar, transp=0, offset = -prd) float center = na center := center[1] float lastpp = ph ? ph : pl ? pl : na if lastpp if na(center) center := lastpp else center := (center * 2 + lastpp) / 3 Up = center - (Factor * atr(Pd)) Dn = center + (Factor * atr(Pd)) float TUp = na float TDown = na Trend = 0 TUp := close[1] > TUp[1] ? max(Up, TUp[1]) : Up TDown := close[1] < TDown[1] ? min(Dn, TDown[1]) : Dn Trend := close > TDown[1] ? 1: close < TUp[1]? -1: nz(Trend[1], 1) Trailingsl = Trend == 1 ? TUp : TDown linecolor = Trend == 1 and nz(Trend[1]) == 1 ? color.lime : Trend == -1 and nz(Trend[1]) == -1 ? color.red : na plot(Trailingsl, color = linecolor , linewidth = 2, title = "PP SuperTrend") plot(showcl ? center : na, color = showcl ? center < hl2 ? color.blue : color.red : na, transp = 0) bsignal = Trend == 1 and Trend[1] == -1 ssignal = Trend == -1 and Trend[1] == 1 if bsignal strategy.entry("Buy", true, 2, comment = "Buy") if ssignal strategy.entry("Sell", false, 2, comment = "Sell") if strategy.position_size == 2 and center > hl2 and usecenter strategy.close("Buy", qty_percent = 50, comment = "close buy entry for 50%") if strategy.position_size == -2 and center < hl2 and usecenter strategy.close("Sell", qty_percent = 50, comment = "close sell entry for 50%") if change(Trend) strategy.close_all()