Эта стратегия генерирует сигналы покупки и продажи путем расчета перекрестка между линией HULL Smoothed Moving Average и линией экспоненциальной скользящей средней для определения направления тренда рынка.
Вычислить 5-периодный HULL Smoothed Moving Average (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 := ''