
Die Strategie basiert auf einem Moving Average, dem Hull Moving Average und einem relativ starken RSI, um Handelssignale zu erstellen. Sie ist eine typische Opportunity Tracking Strategie. Sie kann automatisch Marktchancen identifizieren und Long-Switches für den mittleren und kurzen Handel vornehmen.
Die Strategie nutzt eine Kombination aus drei Indikatoren EMA, Hull und RSI, um kurz- und mittelfristige Handelschancen zu erfassen. Die Erzeugung von Strategiesignalen erfordert die Erfüllung der drei Dimensionen Trend, Dynamik und Überkauf-Überverkauf, um viele falsche Signale zu filtern. Gleichzeitig kann die Stabilität und die Handelsleistung der Strategie durch die Optimierung der Parameter und die Einführung weiterer Hilfsindikatoren 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)