EMA, Hull und RSI-Opportunity-Tracking-Strategie

Schriftsteller:ChaoZhang, Datum: 18.01.2024
Tags:

img

Übersicht

Diese Strategie baut Handelssignale auf der Grundlage von gleitenden Durchschnitten, Hull-gleitenden Durchschnitten und dem Relative Strength Index (RSI) auf. Sie gehört zu einer typischen Opportunity-Tracking-Strategie, die automatisch Marktchancen identifizieren und zwischen Long- und Short-Positionen wechseln kann. Sie eignet sich für den mittelfristigen und kurzfristigen Handel.

Strategie Logik

  1. Berechnen Sie den 50-Perioden-Exponential Moving Average (EMA) als Indikator für die Beurteilung des Trends.
  2. Berechnen Sie den 7-tägigen Hull Moving Average als empfindlicheren und führenden Durchschnittsindikator, der die EMA durchquert, um goldene Kreuzungen und tote Kreuzungen zu bilden.
  3. Setzen Sie die Überkauflinie und die Überverkauflinie für den RSI auf 60 bzw. 45. Ein RSI über 60 ist ein Überkaufsignal und ein RSI unter 45 ein Überverkaufsbereich.
  4. Wenn ein Überkauf gleichzeitig mit einem Aufwärtstrend der EMA stattfindet, handelt es sich um ein Kurzsignal.
  5. Wenn ein Überverkauf gleichzeitig mit einem Abwärtstrend der EMA stattfindet, ist dies ein langes Signal.

Vorteile der Strategie

  1. Verwendet eine Kombination aus EMA, Hull und RSI, um Markttrends, Dynamik und Überkauf-/Überverkaufsgebiete umfassend zu beurteilen und die Signalgenauigkeit zu verbessern.
  2. Die EMA beurteilt mittelfristige bis langfristige Trends, Hull führt kurzfristige Bewegungen, der RSI identifiziert Überkauf/Überverkauf.
  3. Eintrittssignale müssen Kriterien für Trend-, Dynamik- und Überkauf-/Überverkaufszonen gleichzeitig erfüllen, um falsche Signale effektiv zu filtern.

Risiken der Strategie

  1. Mit nur drei Indikatoren können einige Handelsmöglichkeiten verpasst werden.
  2. EMA- und Hull-Perioden erfordern kontinuierliche Tests und Optimierungen, unsachgemäße Parameterwahl kann sich auf die Signalqualität auswirken.
  3. Die RSI-Parameter müssen auch für verschiedene Aktien und Währungen angepasst werden, die unterschiedliche Überkauf-/Überverkaufsstandards aufweisen können.

Verbesserungsbereiche

  1. Es können weitere Hilfsindikatoren eingeführt werden, z. B. Bollinger-Bänder, KC-Linien usw., um eine Mehrresonanzentscheidung zu schaffen.
  2. Die Parameter können für verschiedene Produkte optimiert werden.
  3. Es kann eine längere Zeitrahmenanalyse eingesetzt werden, um nicht durch kurzfristige Fälschungen irregeführt zu werden.
  4. Es können Stopp-Loss-Strategien zur Risikomanagement angewendet werden.

Zusammenfassung

Diese Strategie verwendet die Kombination von EMA, Hull und RSI über Zeiträume hinweg, um mittelfristige und kurzfristige Handelschancen zu erfassen. Die Einstiegssignale müssen gleichzeitig Kriterien in Bezug auf Trend, Momentum und Überkauf/Überverkauf erfüllen, um falsche Signale auszufiltern. Die Strategie kann durch Parameteroptimierung und Einführung mehrerer Hilfsindikatoren zur Verbesserung der Stabilität und Handelsleistung weiter verbessert werden.


/*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)


Mehr