Эта стратегия генерирует торговые сигналы, основанные на перекрестном взаимодействии между полосами Боллинджера и индикатором Халла. Она длинна, когда индикатор Халла пересекает верхнюю полосу полос Боллинджера, и коротка, когда индикатор Халла пересекает верхнюю полосу полос Боллинджера. Стратегия сочетает в себе стратегию прорыва полос Боллинджера и стратегию следования тренду индикатора Халла, чтобы использовать преимущества обоих.
Стратегия в основном использует кроссовер между диапазонами Боллинджера и индикатором Хулла для генерации торговых сигналов.
Болинджерские полосы содержат три линии: среднюю линию, верхнюю линию и нижнюю линию. Средняя линия представляет собой скользящую среднюю за N дней, в то время как верхняя и нижняя линии представляют собой среднюю линию ± стандартное отклонение. Если цена проходит через верхнюю линию, это указывает на возможность прорыва; если цена проходит через нижнюю линию, это указывает на возможность обратного вызова.
Индикатор Хулла - это индикатор, следующий за трендом. Он использует разницу между двумя взвешенными скользящими средними различных периодов для определения текущей тенденции. Если скользящая средняя краткосрочной продолжительности выше длинной, это указывает на восходящий тренд, и наоборот.
Стратегия сочетает в себе сильные стороны обоих индикаторов. Когда индикатор Хулла пересекает нижнюю полосу полос Болинджера, считается, что цена акции может войти в восходящий тренд, поэтому идите на длинный. Когда индикатор Хулла пересекает нижнюю полосу, считается, что цена акции может войти в нисходящий обратный звонок, поэтому идите на короткий.
Сочетает в себе сильные стороны Bollinger Bands и индикатора Hull, чтобы сделать торговые сигналы более надежными.
Использует индикатор Hull для определения направления тренда и полосы Боллинджера для определения уровня поддержки/сопротивления, генерируя перекрестные сигналы для повышения прибыльности.
Параметры обоих показателей могут быть оптимизированы для запасов различных циклов для расширения применимости.
Стратегия может генерировать больше ложных сигналов во время движений в пределах диапазона, вызывая потери.
Цены могут сильно колебаться, в результате чего оба индикатора выпускают сигналы одновременно.
Стратегия устанавливает размер позиции на 100% непосредственно. При фактическом развертывании размеров позиций необходимо корректировать, чтобы избежать увеличения потерь из-за полного открытия позиции.
Испытать и оптимизировать параметры обоих показателей для адаптации к большому количеству циклов акций.
Добавьте фильтры, такие как объем торговли или волатильность, чтобы избежать неправильных сигналов во время консолидации.
Оптимизируйте стратегии стоп-лосса, устанавливая последующие ордера стоп-лосса или стоп-лимит.
Корректировать правила размещения позиций путем добавления условий повторного ввода, чтобы избежать увеличения потерь.
Эта стратегия сочетает в себе стратегию прорыва полос Боллинджера и стратегию следования тренду индикатора Хулла, используя перекрестные сигналы между ними для достижения как эффектов следования тренду, так и эффектов прорыва. Стратегия имеет сильную адаптивность к среднесрочным и краткосрочным акциям, учитывая отсутствие серьезных фундаментальных изменений. Но параметры, размещение позиций, стратегии стоп-лосса все еще нуждаются в оптимизации во время фактического развертывания, чтобы сделать стратегию более надежной.
/*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)