Стратегия EMA, Hull и RSI по отслеживанию возможностей

Автор:Чао ЧжанДата: 18 января 2024 года 15:46:35
Тэги:

img

Обзор

Эта стратегия строит торговые сигналы на основе скользящих средних, скользящих средних и индекса относительной силы (RSI). Она относится к типичной стратегии отслеживания возможностей, которая может автоматически идентифицировать рыночные возможности и переключаться между длинными и короткими позициями.

Логика стратегии

  1. Вычислить 50-периодный экспоненциальный скользящий средний (EMA) как показатель для оценки тенденции.
  2. Вычислить 7-дневный скользящий средний показатель Hull как более чувствительный и ведущий средний показатель, пересекая EMA, чтобы сформировать золотые кресты и мертвые кресты.
  3. Установите линию перекупа и линию перепродажи для RSI соответственно на 60 и 45. RSI выше 60 является сигналом перекупа, а RSI ниже 45 является зоной перепродажи.
  4. Когда перекуп происходит одновременно с проникновением вверх EMA, это короткий сигнал.
  5. Когда перепродажа происходит одновременно с понижением EMA, это длинный сигнал.

Преимущества стратегии

  1. Использует комбинацию EMA, Hull и RSI для всестороннего оценки рыночных тенденций, импульса и перекупленных/перепроданных зон, улучшая точность сигналов.
  2. EMA оценивает среднесрочные и долгосрочные тенденции, Hull ведет краткосрочные движения, RSI определяет уровни перекупленности/перепроданности.
  3. Сигналы входа должны соответствовать критериям тренда, импульса и зон перекупа/перепродажи, чтобы одновременно активироваться, эффективно фильтруя ложные сигналы.

Риски стратегии

  1. Использование только трех индикаторов может привести к упущению некоторых торговых возможностей.
  2. Периоды EMA и Hull требуют постоянного тестирования и оптимизации, неправильный выбор параметров может повлиять на качество сигнала.
  3. Параметры RSI также должны быть скорректированы для различных акций и валют, которые могут иметь различные стандарты перекупки/перепродажи.

Области улучшения

  1. Для создания мультирезонансного процесса принятия решений могут быть введены дополнительные показатели, например, полосы Боллинджера, линии КК и т.д.
  2. Параметры могут быть оптимизированы для различных продуктов.
  3. Анализ более длительных временных рамок может быть включен, чтобы избежать введения в заблуждение краткосрочными подделками.
  4. Для управления рисками могут быть реализованы стратегии стоп-лосса.

Резюме

Эта стратегия использует сочетание EMA, Hull и RSI в течение всех временных рамок для захвата среднесрочных и краткосрочных торговых возможностей. Сигналы входа должны соответствовать критериям тренда, импульса и измерений перекупленности / перепроданности одновременно, чтобы отфильтровать ложные сигналы. Стратегию можно еще больше улучшить путем оптимизации параметров и внедрения большего количества вспомогательных индикаторов для улучшения стабильности и эффективности торговли.


/*backtest
start: 2023-01-11 00:00:00
end: 2024-01-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Bitduke

//@version=4
strategy(shorttitle="EHR", title="Simple EMA_Hull_RSI", overlay=false, 
     calc_on_every_tick=false, pyramiding=0, default_qty_type=strategy.cash, 
     default_qty_value=1000, currency=currency.USD, initial_capital=1000,
     commission_type=strategy.commission.percent, commission_value=0.075)

// EMA
len = input(minval=1, title="EMA Length", defval=50)
src = input(close, title="EMA Source")
final_ema = ema(src, len)
plot(final_ema, color=color.red, title="EMA")

overbought = input(60, title="overbought value")
oversold = input(45, title="oversold value")

overbought_signal = rsi(close, 14) > overbought
oversold_signal = rsi(close, 14) < oversold
barcolor(overbought_signal ? color.black : na)
barcolor(oversold_signal ? color.blue : na)
// Hull MA
n = input(title="Hull Length", defval=7)
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?color.green:color.red
ma=plot(n1,color=c)

// Strategy Logic
longCondition =  overbought_signal and crossover(n1,final_ema) 
shortCondition = oversold_signal and crossover(final_ema,n1) 

strategy.entry("EHR_Long", strategy.long, when=longCondition)
strategy.entry("EHR_Short", strategy.short, when=shortCondition)


Больше