Расширенная стратегия следования за трендом на основе скользящей средней полосы Боллинджера


Дата создания: 2023-11-24 14:48:28 Последнее изменение: 2023-11-24 14:48:28
Копировать: 0 Количество просмотров: 951
1
Подписаться
1617
Подписчики

Расширенная стратегия следования за трендом на основе скользящей средней полосы Боллинджера

Обзор

Эта стратегия называется “Стратегия отслеживания трендов в сетке с высокой степенью равновесия”. Это стратегия, которая использует сетку с высокой степенью равновесия для определения тренда и отслеживания позиций в сетке в направлении тренда.

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

Основные идеи стратегии:

  1. Используйте ленту Брин для определения диапазона текущих рыночных колебаний. Средняя полоса ленты Брин - это n-дневная простая движущаяся средняя, а широта полосы - средняя величина ATR на n дней.

  2. Все четыре полосы на внешней стороне Брин-пояса представляют собой линию экзотической средней истинной величины колебаний. Стратегия создает позиции при прорыве линии разных уровней.

  3. EMA быстро и медленно усредняет направление тенденции большого цикла. При большом количестве голов в большом цикле делается только много голов, пустые головы наоборот.

  4. При появлении игловой K-линии в направлении тренда, строящая позиции останавливаются, а при появлении игловой K-линии - закрываются.

В частности, стратегия состоит из следующих частей:

  1. Определить параметры буринской полосы, где средняя траектория буринской полосы - n-дневная средняя линия SMA, а ширина буринской полосы - n-дневная ATR. Длина буринской полосы в стратегии n = 20.

  2. Встроенные четыре внешние расширенные линии, находящиеся на расстоянии от центральной орбиты в 1,236 раз, 2,382 раз, 3,618 раз и 4,236 раз, соответственно, имеют среднюю истинную частоту колебаний.

  3. Установка средней скоростной линии EMA для определения тенденции большого цикла, скоростная линия длиной 25 дней, медленная линия длиной 200 дней.

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

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

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

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

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

  1. Используя тенденционные характеристики, можно определить направление тренда в большом цикле, построить позиции в направлении тренда, что позволит уменьшить ненужные обратные операции.

  2. Использование многоуровневой бурин-линии позволяет более четко оценить текущие колебания в регионе, что позволяет получить представление о большинстве ситуаций.

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

  4. Эффективный сигнал, выравниваемый с помощью иглообразной K-линии, позволяет быстро остановить торможение.

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

Анализ стратегических рисков

В этой стратегии также есть некоторые риски:

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

  2. Вероятность прорыва провала булинской линии. Булинская линия не может 100% предсказать путь цены.

  3. Сигналы иглой K-линии появляются поздно, и их невозможно остановить вовремя.

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

В соответствии с решением:

  1. Постепенно корректируйте средние параметры, чтобы снизить вероятность ошибок.

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

  3. Испытание более чувствительных стоп-сигналов в определенных формах.

  4. Увеличение расстояния между ними, контроль над размером позиций.

Направление оптимизации стратегии

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

  1. Тестирование различных среднелинейных параметров для оптимизации больших циклов. Например, тестирование EMA, RSI и других показателей.

  2. Тестирование различных кратных ATR-параметров оптимизирует настройки ширины пулинговых каналов. Приближает пулинговые полосы к реальным колебаниям.

  3. Тестируйте другие эффективные сигналы остановки. Например, SAR, равновесие Калмана и т. д.

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

  5. Увеличение механизма хранения убытков.

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2023-10-24 00:00:00
end: 2023-11-23 00:00:00
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/
// © Aayonga

//@version=5
strategy("fib trend grid@Aa", overlay=true)

//回测时间
useDateFilter=input.bool(true,title = "启用回测时间范围限定(backtest)", group = "回测范围(backtest)")
backtesStarDate=input(timestamp("1 Jan 2015"),title = "开始时间(Start)", group = "回测范围(backtest)")
backtestEndDate=input(timestamp("1 Jan 2040"),title = "结束时间(finish)",group = "回测范围(backtest)")
inTradeWindow=true


//入场位 entry
bolllen=input.int(defval=20,minval=1,title="布林长度,(boll length)",group = "入场位(entry)")
sma=ta.sma(close,bolllen)
avg=ta.atr(bolllen)
fib1=input(defval=1.236,title="Fib 1",group = "入场位(entry)")
fib2=input(defval=2.382,title="Fib 2",group = "入场位(entry)")
fib3=input(defval=3.618,title="fib 3",group = "入场位(entry)")
fib4=input(defval=4.236,title="Fib 4",group = "入场位(entry)")
r1=avg*fib1
r2=avg*fib2
r3=avg*fib3
r4=avg*fib4
top4=sma+r4
top3=sma+r3
top2=sma+r2
top1=sma+r1
bott1=sma-r1
bott2=sma-r2
bott3=sma-r3
bott4=sma-r4



//趋势 plot

t4=plot(top4,title="卖 (sell)4",color=color.rgb(244, 9, 9))
t3=plot(top3,title = "卖(sell) 3",color=color.rgb(211, 8, 8))
t2=plot(top2,title="卖 (sell)2",color=color.rgb(146, 13, 13))
t1=plot(top1,title="卖(sell) 1",color=color.rgb(100, 3, 3))

b1=plot(bott1,title="买(buy1)1",color=color.rgb(4, 81, 40))
b2=plot(bott2,title="买(buy)2",color=color.rgb(15, 117, 46))
b3=plot(bott3,title = "买(buy)3",color =color.rgb(8, 176, 42) )
b4=plot(bott4,title="买(buy)4",color=color.rgb(15, 226, 103))
plot(sma,style=plot.style_cross,title="SMA",color=color.rgb(47, 16, 225))

//趋势
LengthF=input(defval = 25,title = "快线长度(fastlength)")
LengthS=input(defval=200,title = "慢线长度(slowlength)")
emaF=ta.ema(close,LengthF)
smaS=ta.sma(close,LengthS)
longTrend=emaF>smaS
longb=ta.crossover(emaF,smaS)
bgcolor(longb ? color.new(color.green,40):na,title = "多头强势(bull trend)")
shortTrend=smaS>emaF
shortb=ta.crossunder(emaF,smaS)
bgcolor(shortb ? color.new(#951313, 40):na,title = "空头强势(bear trend)")

//pinbar
bullPinBar = ((close > open) and ((open - low) > 0.6* (high - low))) or ((close < open) and ((close - low) > 0.9 * (high - low)))
//plotshape(bullPinBar  , text ="pinbar", textcolor=color.rgb(9, 168, 144),location=location.belowbar, color=color.rgb(29, 103, 67), size=size.tiny)
bearPinBar = ((close > open) and ((high - close) > 0.7 * (high - low))) or ((close < open) and ((high - open) > 0.7 * (high - low)))
//plotshape(bearPinBar  , text ="pinbar", textcolor=color.rgb(219, 12, 12),location=location.abovebar, color=color.rgb(146, 7, 7), size=size.tiny)

buy1=ta.crossunder(close,bott1) and longTrend and close>ta.ema(close,100)
buy2=ta.crossunder(close,bott2) and longTrend 
buy3=ta.crossunder(close,bott3) and longTrend 
buy4=ta.crossunder(close,bott4) and longTrend 
buyclose=bearPinBar or ta.crossunder(close,smaS)




if buy2 or buy3 or buy4 or buy1 and inTradeWindow
    strategy.order("多(buy)",strategy.long)

if buyclose  and inTradeWindow
    strategy.close("多(buy)")

sell1=ta.crossover(close,top1) and shortTrend and close<ta.ema(close,200)
sell2=ta.crossover(close,top2) and shortTrend and close<ta.ema(close,200)
sell3=ta.crossover(close,top3) and shortTrend and close<ta.ema(close,200)
sell4=ta.crossover(close,top4) and shortTrend and close<ta.ema(close,200)
sellclose=bullPinBar or ta.crossover(close,ta.sma(close,220))

if  sell1 or sell2 or sell3 or sell4 and inTradeWindow
    strategy.order("空(sell)",strategy.short)

if sellclose  and inTradeWindow
    strategy.close("空(sell)")