Стратегия пересечения между диапазонами Боллинджера и индикатором Халла

Автор:Чао Чжан, Дата: 2023-12-08 11:58:07
Тэги:

img

Резюме

Эта стратегия генерирует торговые сигналы, основанные на перекрестном взаимодействии между полосами Боллинджера и индикатором Халла. Она длинна, когда индикатор Халла пересекает верхнюю полосу полос Боллинджера, и коротка, когда индикатор Халла пересекает верхнюю полосу полос Боллинджера. Стратегия сочетает в себе стратегию прорыва полос Боллинджера и стратегию следования тренду индикатора Халла, чтобы использовать преимущества обоих.

Принципы

Стратегия в основном использует кроссовер между диапазонами Боллинджера и индикатором Хулла для генерации торговых сигналов.

Болинджерские полосы содержат три линии: среднюю линию, верхнюю линию и нижнюю линию. Средняя линия представляет собой скользящую среднюю за N дней, в то время как верхняя и нижняя линии представляют собой среднюю линию ± стандартное отклонение. Если цена проходит через верхнюю линию, это указывает на возможность прорыва; если цена проходит через нижнюю линию, это указывает на возможность обратного вызова.

Индикатор Хулла - это индикатор, следующий за трендом. Он использует разницу между двумя взвешенными скользящими средними различных периодов для определения текущей тенденции. Если скользящая средняя краткосрочной продолжительности выше длинной, это указывает на восходящий тренд, и наоборот.

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

Преимущества

  1. Сочетает в себе сильные стороны Bollinger Bands и индикатора Hull, чтобы сделать торговые сигналы более надежными.

  2. Использует индикатор Hull для определения направления тренда и полосы Боллинджера для определения уровня поддержки/сопротивления, генерируя перекрестные сигналы для повышения прибыльности.

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

Риски и решения

  1. Стратегия может генерировать больше ложных сигналов во время движений в пределах диапазона, вызывая потери.

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

  3. Стратегия устанавливает размер позиции на 100% непосредственно. При фактическом развертывании размеров позиций необходимо корректировать, чтобы избежать увеличения потерь из-за полного открытия позиции.

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

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

  2. Добавьте фильтры, такие как объем торговли или волатильность, чтобы избежать неправильных сигналов во время консолидации.

  3. Оптимизируйте стратегии стоп-лосса, устанавливая последующие ордера стоп-лосса или стоп-лимит.

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

Заключение

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


/*backtest
start: 2023-11-30 00:00:00
end: 2023-12-07 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=3
strategy(title="Strategy Hull Bollinger", shorttitle="Hull bollinger",overlay=true, calc_on_order_fills=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, overlay=false)

n=input(title="period",defval=3)


n2ma=2*wma(close,round(n/2))
nma=wma(close,n)
diff=n2ma-nma
sqn=round(sqrt(n))


n2ma1=2*wma(close[1],round(n/2))
nma1=wma(close[1],n)
diff1=n2ma1-nma1
sqn1=round(sqrt(n))


n1=wma(diff,sqn)
n2=wma(diff1,sqn)
c=n1>n2?green:red

i = input(1)
PP = close[i]

length1 = input(20, minval=1)
src = input(close, title="Source")
mult = input(2.0, minval=0.001, maxval=10, step=0.2)
basis = sma(src, length1)
dev = mult * stdev(src, length1)
upper = basis + dev
lower = basis - dev


TP = input(500) * 10
SL = input(500) * 10
TS = input(20) * 10
TO = input(10) * 10
CQ = 100

TPP = (TP > 0) ? TP : na
SLP = (SL > 0) ? SL : na
TSP = (TS > 0) ? TS : na
TOP = (TO > 0) ? TO : na

longCondition = crossover(n1,lower)
if (longCondition)
    strategy.entry("Long", strategy.long)


shortCondition = crossunder(n1,upper)
if (shortCondition)
    strategy.entry("Short", strategy.short)

strategy.exit("Close Short", "Short", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP, trail_offset=TOP)
strategy.exit("Close Long", "Long", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP, trail_offset=TOP)

Больше