
Стратегия основана на перекрестных сигналах Hull Moving Average (HMA). Hull Moving Average - это технический индикатор, разработанный Аланом Халлом, предназначенный для уменьшения отставания от движущихся средних.
HMA рассчитывается следующим образом:
У Hull Moving Average меньше задержек по сравнению с простой и весовой Moving Averages, поэтому они могут быстрее реагировать на изменения цен, повышая чувствительность стратегии.
Сигналы создаются с помощью скрещивания двух HMA-линий с разными циклами, что позволяет эффективно отфильтровывать некоторый шум и ложные сигналы, повышая надежность сигнала.
Параметры регулируемы и могут быть адаптированы к различным рынкам и торговым видам путем корректировки циклических параметров HMA.
Hull Moving Average является отсталым индикатором, который может подавать ошибочные сигналы на ранних этапах обратного тренда.
Неправильный выбор параметров может привести к плохой эффективности стратегии. Слишком длинный цикл может привести к замедленной реакции стратегии, а слишком короткий может привести к слишком большому количеству ложных сигналов.
Как и все стратегии, основанные на одном индикаторе, эта стратегия может плохо работать в волатильных рынках, создавая больше ложных сигналов и убыточных сделок.
Для дальнейшего подтверждения эффективности перекрестных сигналов HMA можно рассмотреть возможность внедрения других технических или фундаментальных факторов в качестве фильтрующих условий, таких как объем торгов, индикаторы тенденций и т. д.
Для оптимизации параметров можно использовать методы генетических алгоритмов, сетчатого поиска и т. Д. Для оптимизации параметров можно использовать методы генетических алгоритмов, сетчатого поиска и т. Д. Для оптимизации параметров можно использовать методы генетического алгоритма, сетчатого поиска и т. Д.
Включение в стратегию механизмов стоп-лосса и стоп-стопа, контролирующих риски и доходы от одноразовой торговли.
Учитывая тенденциозность рынка, можно оценить показатели путем введения рыночных тенденций, торговать на трендовых рынках и избегать рыночных колебаний.
Хеллская стратегия пересечения скользящих средних является простой и удобной для использования, благодаря быстрому реагированию на HMA, она позволяет своевременно улавливать изменения в ценах. Однако, как и все стратегии, она имеет свои ограничения, и ее эффективность зависит от типа рынка и выбора параметров. В практическом применении ее можно комбинировать с другими методами анализа для дальнейшего подтверждения сигналов.
/*backtest
start: 2023-03-16 00:00:00
end: 2024-03-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//Basic Hull Ma Pack tinkered by InSilico
strategy("RKTD BETA - Hull Suite by InSilico", overlay=true)
//INPUT
src = input(close, title="Source")
modeSwitch = input("Ehma", title="Hull Variation", options=["Hma", "Thma", "Ehma"])
length = input(200, title="Length(180-200 for floating S/R , 55 for swing entry)")
lengthMult = input(1.0, title="Length multiplier (Used to view higher timeframes with straight band)")
useHtf = input(false, title="Show Hull MA from X timeframe? (good for scalping)")
htf = input("240", title="Higher timeframe", type=input.resolution)
switchColor = input(true, "Color Hull according to trend?")
candleCol = input(false,title="Color candles based on Hull's Trend?")
visualSwitch = input(true, title="Show as a Band?")
thicknesSwitch = input(1, title="Line Thickness")
transpSwitch = input(40, title="Band Transparency",step=5)
// Alert Messages
longAlertMessage = '{"base": "BTC", "quote": "USDT", "price": ' + tostring(close) + ', "action": "long", "orderType": "market", "close":true}'
shortAlertMessage = '{"base": "BTC", "quote": "USDT", "price": ' + tostring(close) + ', "action": "short", "orderType": "market", "close":true}'
//FUNCTIONS
//HMA
HMA(_src, _length) => wma(2 * wma(_src, _length / 2) - wma(_src, _length), round(sqrt(_length)))
//EHMA
EHMA(_src, _length) => ema(2 * ema(_src, _length / 2) - ema(_src, _length), round(sqrt(_length)))
//THMA
THMA(_src, _length) => wma(wma(_src,_length / 3) * 3 - wma(_src, _length / 2) - wma(_src, _length), _length)
//SWITCH
Mode(modeSwitch, src, len) =>
modeSwitch == "Hma" ? HMA(src, len) :
modeSwitch == "Ehma" ? EHMA(src, len) :
modeSwitch == "Thma" ? THMA(src, len/2) : na
//OUT
_hull = Mode(modeSwitch, src, int(length * lengthMult))
HULL = useHtf ? security(syminfo.ticker, htf, _hull) : _hull
MHULL = HULL[0]
SHULL = HULL[2]
//COLOR
hullColor = switchColor ? (HULL > HULL[2] ? #00ff00 : #ff0000) : #ff9800
//PLOT
///< Frame
Fi1 = plot(MHULL, title="MHULL", color=hullColor, linewidth=thicknesSwitch, transp=50)
Fi2 = plot(visualSwitch ? SHULL : na, title="SHULL", color=hullColor, linewidth=thicknesSwitch, transp=50)
alertcondition(crossover(MHULL, SHULL), title="Hull trending up.", message="Hull trending up.")
alertcondition(crossover(SHULL, MHULL), title="Hull trending down.", message="Hull trending down.")
///< Ending Filler
fill(Fi1, Fi2, title="Band Filler", color=hullColor, transp=transpSwitch)
///BARCOLOR
barcolor(color = candleCol ? (switchColor ? hullColor : na) : na)
// Define Buy and Sell Conditions based on crossovers
buyCondition = crossover(MHULL, SHULL)
sellCondition = crossunder(MHULL, SHULL)
// Plotting the Hull Moving Average (HMA)
plot(MHULL, title="MHULL", color=hullColor, linewidth=thicknesSwitch)
plot(SHULL, title="SHULL", color=hullColor, linewidth=thicknesSwitch, transp=transpSwitch)
fill(Fi1, Fi2, title="Band Filler", color=hullColor, transp=transpSwitch)
// Execute Strategy based on Buy and Sell Conditions
strategy.entry("Buy", strategy.long, when=buyCondition, alert_message=longAlertMessage)
strategy.entry("Sell", strategy.short, when=sellCondition, alert_message=shortAlertMessage)
// Additional elements like bar coloring remain unchanged
barcolor(color = candleCol ? (switchColor ? hullColor : na) : na)