Эта стратегия использует полосы Боллинджера для определения направления рыночных тенденций и сочетает в себе индикаторы импульса для реализации транзакций отслеживания тренда.
Стратегия может быть в основном разделена на три части:
Определите направление полос Боллинджера. Средняя рельса полос Боллинджера представляет собой скользящую среднюю величину, а верхняя и нижняя рельсы представляют собой диапазон волатильности. Когда цена близка к верхней рельсе, она перекуплена. Когда она близка к нижней рельсе, она перепродана. Направление полос Боллинджера представляет направление ценовой тенденции.
Вычислить импульс. Эта стратегия использует импульс корпуса. Импульс корпуса выводится из быстро движущейся средней минус медленно движущейся средней. Положительное значение представляет тенденцию к росту, а отрицательное значение представляет тенденцию к снижению.
Сигнал перекрестного движения. Когда быстрая скользящая средняя пересекает медленную скользящую среднюю снизу, генерируется длинный сигнал. Когда она пересекает снизу сверху, генерируется короткий сигнал.
Правила торговли следуют: направление полос Боллинджера представляет собой основной тренд, а перекресток индикатора импульса представляет собой сроки входа на рынок. Торговый сигнал генерируется, когда перекресток импульса соответствует направлению полос Боллинджера. То есть отслеживать направление тренда, представленное полосами Боллинджера.
Избегайте ложных прорывов, сочетая тенденции и импульс. Примите полосы Боллинджера для оценки крупномасштабных тенденций, а затем используйте индикаторы импульса для определения конкретных точек входа, чтобы избежать риска форматного преследования местных прорывов.
Более эффективный контроль рисков. Болинджерские полосы обеспечивают стоп-лосс, которые эффективнее, чем простые скользящие средние.
Индикаторы импульса могут обеспечить достаточную мощь, чтобы продолжать подталкивать цены в первоначальном направлении после входа на рынок, что делает отслеживание тренда более плавным.
Риск неудачи определения полос Боллинджера: полосы Боллинджера не всегда полностью точно определяют тренд, что может неверно давать направленные сигналы, тем самым увеличивая уровень потерь.
Риск переворота тренда Даже если полосы Боллинджера правильно отражают масштабную тенденцию, цены могут перевернуться в среднесрочной и краткосрочной перспективе, что следует учитывать при торговле.
Риск оптимизации параметров. Стратегические параметры, такие как цикл расчета, должны быть оптимизированы для различных рыночных данных, чтобы достичь наилучшего эффекта торговли.
В дополнение к Bollinger Bands и Hull Momentum, другие индикаторы, такие как MACD и KDJ, могут быть добавлены, чтобы сформировать индикатор FILTER для улучшения точности суждения.
Присоединяйтесь к алгоритмам машинного обучения для оптимизации параметров в режиме реального времени в соответствии с различными сортами и рыночными условиями для улучшения стабильности стратегии.
Оптимизация стратегии стоп-лосса. Оптимизируйте стратегию стоп-лосса, чтобы максимизировать прибыль, прежде чем изменятся основные тенденции, и быстро остановить потери, когда тенденции обратятся.
Эта стратегия объединяет полосы Боллинджера для определения крупномасштабных тенденций и индикаторы импульса корпуса для определения конкретных точек входа, которые эффективно отслеживают тенденции.
/*backtest start: 2024-01-26 00:00:00 end: 2024-02-25 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // Hull Moving Average Crossover by SeaSide420 strategy("Hull Moving Average Crossover Strategy", overlay=true) keh=input(title="HullMA cross",defval=10) p=input(ohlc4) n2ma=2*ta.wma(p,math.round(keh/2)) nma=ta.wma(p,keh) diff=n2ma-nma sqn=math.round(math.sqrt(keh)) n2ma1=2*ta.wma(p[1],math.round(keh/2)) nma1=ta.wma(p[1],keh) diff1=n2ma1-nma1 sqn1=math.round(math.sqrt(keh)) n1=ta.wma(diff,sqn) n2=ta.wma(diff1,sqn) hullcross1 = n1 hullcross2 = n2 longcross1=(n1[0]-n1[3])+(n1[0]-n2[4])*100 longcross2=(n2[0]-n2[3])+(n2[0]-n1[4])*100 closelong = n1<n2 and longcross1<longcross2 if (closelong) strategy.close("Long") closeshort = n1>n2 and longcross1>longcross2 if (closeshort) strategy.close("Short") longCondition = n1>n2 and longcross1>longcross2 and strategy.opentrades<1 if (longCondition) strategy.entry("Long",strategy.long) shortCondition = n1<n2 and longcross1<longcross2 and strategy.opentrades<1 if (shortCondition) strategy.entry("Short",strategy.short) b=hullcross1>hullcross2?color.green:color.red c=hullcross2>hullcross1?color.green:color.red plot(ta.cross(hullcross1, hullcross2) ? hullcross1 : na,color=c, linewidth = 5, offset=3) barcolor(longcross1 < longcross2 ? color.black : color.white) bgcolor(longcross2 < longcross1 ? color.green : color.black, transp=85) plotshape(ta.cross(longcross2, longcross1) ? longcross2 : na, text="X", style=shape.labeldown, location=location.bottom)