
Эта стратегия определяет направление рыночных тенденций путем вычисления HULL-сглаженных скользящих средних и скользящих средних индексов, создавая сигналы покупки и продажи. Она относится к среднесрочной стратегии отслеживания тенденций.
Вычислить 5-дневную HULL гладкую скользящую среднюю ((HULL SMA)). HULL SMA может быстрее реагировать на изменения цен, рассчитывая весомые скользящие средние и квадратный корень цикла.
Вычисление 5-дневного индекса скользящей средней ((EMA) 。 EMA вычисляет среднюю величину путем придания большего веса недавней цене, чем SMA.
Судя по перекрестному состоянию HULL SMA и EMA, генерируют сигналы купли и продажи.
Когда HULL SMA пересекает EMA, появляется сигнал “купить”. Это означает, что краткосрочная тенденция вверх превзошла долгосрочную тенденцию, что указывает на то, что цена будет расти.
Когда HULL SMA пересекает EMA ниже, создается сигнал продажи. Это указывает на то, что краткосрочная тенденция начинает меняться и цена будет падать.
HULL SMA чувствителен к ценовым изменениям и может обнаруживать изменения тенденций раньше.
EMA обладает способностью сглаживать шум, отслеживая долгосрочные тенденции.
Быстрая линия прорывает медленную, создавая сигнал, который позволяет поймать поворотный момент в тренде и вовремя выйти на рынок.
Приспособность к торговле в различные периоды может быть достигнута путем корректировки параметров скользящих средних.
Это позволяет легко оценивать как тенденции вверх, так и тенденции вниз, и гибко улавливать тенденции в обе стороны.
В случае землетрясения может возникнуть больше ошибочных сигналов.
Невозможно определить, насколько сильна или слаба тенденция, и возможны повторные убытки при слабой.
Промежуток между скользящими средними величинами слишком велик, что может привести к тому, что они будут пропускать часть событий.
Неправильная настройка параметров быстрого и медленного курса может повлиять на качество сигналов.
Частота сделок может быть слишком высокой, что увеличивает расходы на сделку и риски проскальзывания.
В сочетании с другими показателями можно улучшить фильтрационные сигналы, оценить сильные и слабые тенденции, оптимизировать параметры и контролировать риски.
Добавление фильтров для таких индикаторов, как MACD, RSI и т. д., чтобы определить, когда стоит купить или продать.
Включайте индикаторы силы тренда, такие как ADX, и избегайте торговли во время слабого тренда.
Оптимизация параметров скользящих средних, поиск оптимального сочетания параметров.
Устанавливайте стратегию стоп-лосса и контролируйте одноразовые потери.
С учетом количества сделок и контроля за затратами, скорректировать частоту открытия позиций.
В сочетании с анализом большего количества временных циклов, идентифицируются сигналы межциклических тенденций.
Разработать программу автоматической оптимизации параметров с динамическим поиском оптимальных параметров.
Эта стратегия, использующая пересечение скоростной HULL SMA и медленной EMA для определения рыночной тенденции, является типичной пересеченной стратегией движущихся средних. По сравнению с традиционными движущимися средними, эта стратегия использует более чувствительную HULL SMA, которая позволяет быстрее обнаруживать изменения тенденции. Однако все еще требуется оптимизация параметров и сочетание с другими техническими показателями для уменьшения ошибочных сигналов.
/*backtest
start: 2022-10-23 00:00:00
end: 2023-10-29 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("HULL EMA Crossover", overlay = true, process_orders_on_close = true)
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © spiritedPerson95700
inSession = true
HULL_INP = input.int(5, "Hull EMA Value")
EMA_INP = input(5, "EMA Value")
/// Indicator
HULL_EMA = ta.hma(close, HULL_INP)
EMA = ta.ema(close, EMA_INP)
prevSignal = ''
if (prevSignal == '')
prevSignal := HULL_EMA > EMA ? 'buy' : 'sell'
/// buy and sell signal
buy = ta.crossover(HULL_EMA, EMA)
short = ta.crossover(EMA, HULL_EMA)
sell = short
cover = buy
if inSession
if buy
prevSignal := 'na'
strategy.entry("long", direction = strategy.long, comment = "Buy")
if sell
prevSignal := 'na'
strategy.close("long", comment = "Sell")
if short
strategy.entry("short", direction = strategy.short, comment = "Short")
if cover
strategy.close("short", comment = "Cover")
plot(HULL_EMA, color = color.green)
plot(EMA, color = color.blue)
// if ( hour(time) == 15 and minute(time) > 25 )
// strategy.close("long", comment="EOD")
// strategy.close("short", comment="EOD")
// buy := false
// sell := false
// prevSignal := ''