Стратегия сверхтенденции по многочисленным временным рамкам

Автор:Чао Чжан, Дата: 2024-01-31 17:29:37
Тэги:

img

Обзор

Эта стратегия сочетает в себе индикатор Pivot Points и средние True Range Bands для реализации системы отслеживания трендов в нескольких временных рамках.

Логика стратегии

Эта стратегия основывается главным образом на двух показателях:

  1. Пивовые точки: вычисляют средние цены на самые высокие, самые низкие и закрывающиеся цены за определенный период, чтобы определить верхние и нижние пивовые точки.

  2. Средний истинный диапазон полос: рассчитывать средний истинный диапазон за определенный период и перемещать средний диапазон вверх и вниз, чтобы сформировать канал.

Конкретная логика торговли:

Когда цена проходит через канал среднего истинного диапазона, займите длинные или короткие позиции вдоль направления прорыва. Когда цена возвращается в канал, закрывайте позиции. Кроме того, когда цена проходит через верхнюю точку поворота, займите длинную позицию; когда цена проходит через нижнюю точку поворота, займите короткую позицию.

Стратегия также вводит концепцию центральной линии.Когда прибыль превышает среднюю линию, можно закрыть половину позиции, чтобы получить некоторую прибыль и контролировать риск.

Анализ преимуществ

Стратегия имеет следующие преимущества:

  1. Долгие и промежуточные циклы определяют основные тенденции, в то время как короткие циклы определяют конкретные записи.

  2. Средине линия поворота обеспечивает возможность закрыть половину позиции, блокируя некоторую прибыль, обеспечивая при этом выигрышные сделки.

  3. Средние диапазоны истинного диапазона обеспечивают четкие уровни стоп-лосса.

  4. Стратегия имеет несколько параметров, легко оптимизировать для лучших комбинаций параметров.

  5. Это максимально избегает риска ложных прорывов.

Анализ рисков

Стратегия также сопряжена с некоторыми рисками:

  1. Большие риски остановки потерь при высокой волатильности рынка.

  2. Средняя линия может часто вызывать стоп-лосс во время консолидации рынка.

  3. Неправильный выбор параметров может привести к слишком малой или слишком частой торговле.

  4. Недавние перерывы поворотной точки могут оказаться ложными перерывами.

Руководство по оптимизации

Стратегия может быть оптимизирована из следующих аспектов:

  1. Соедините больше фильтров, таких как объем и полосы Боллинджера, чтобы избежать ложных сигналов.

  2. Оптимизировать периоды Ключевых точек и ATR для поиска лучших комбинаций параметров.

  3. Установите буферную зону вокруг средней линии, чтобы избежать частых сбоев.

  4. Добавьте соответствующие фильтры трендов, чтобы обеспечить работу по основным тенденциям.

Заключение

В целом, это очень практичная стратегия отслеживания тренда. Она решает распространенные трудности стоп-лосса систем тренда и достигает контролируемого риска. Это очень рекомендуемая стратегия. При надлежащих оптимизациях и улучшениях ее производительность может быть еще больше повышена.


/*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()

Больше