
Cette stratégie utilise une combinaison de doubles moyennes mobiles et d’indicateurs RSI pour construire une stratégie de négociation croisée à plusieurs niveaux. Cette stratégie permet de capturer les tendances des lignes moyennes et longues, tout en utilisant les indicateurs des lignes courtes pour éviter les chocs inutiles.
La stratégie utilise deux ensembles de moyennes mobiles, les moyennes mobiles rapides (EMA 59 et EMA 82) et les moyennes mobiles lentes (EMA 96 et EMA 95): faites plus lorsque le prix passe de bas en haut de la moyenne mobile rapide; faites moins lorsque le prix passe de haut en bas de la moyenne mobile rapide. De plus, les zones de sur-achat et de sur-vente de l’indicateur RSI sont utilisées pour confirmer les signaux de négociation et les arrêts.
En particulier, un signal de tête blanche est généré lorsque l’EMA rapide est supérieure à l’EMA lente. Un signal de tête blanche est généré lorsque l’EMA rapide est supérieure à l’EMA lente.
L’avantage d’utiliser des moyennes mobiles doubles est qu’elles permettent de mieux identifier les variations de la tendance de la ligne médiane et longue. L’indicateur RSI permet de filtrer le bruit des transactions causé par certaines fausses ruptures.
Cette stratégie intègre les tendances des doubles moyennes mobiles qui suivent le renversement des échanges avec le RSI. Les doubles EMA suivent la direction des tendances des longues lignes du milieu, le RSI est utilisé pour confirmer l’efficacité des signaux de négociation et les arrêts.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("Swing Hull/rsi/EMA Strategy", overlay=true,default_qty_type=strategy.cash,default_qty_value=10000,scale=true,initial_capital=10000,currency=currency.USD)
//A Swing trading strategy that use a combination of indicators, rsi for target, hull for overall direction enad ema for entering the martket.
// hull ma copied from syrowof HullMA who copied from mohamed982 :) thanks both
// Performance
n=input(title="period",defval=500)
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?green:red
ma=plot(n1,color=c)
// RSi and Moving averages
length = input( 14 )
overSold = input( 70)
overBought = input( 30)
point = 0.0001
dev= 2
fastLength = input(59)
fastLengthL = input(82)
slowLength = input(96)
slowLengthL = input(95)
price = close
mafast = ema(price, fastLength)
mafastL= ema(price, fastLengthL)
maslow = ema(price, slowLength)
maslowL = ema(price, slowLengthL)
vrsi = rsi(price, length)
cShort = (crossunder(vrsi, overBought))
condDown = n2 >= n1
condUp = condDown != true
closeLong = (crossover(vrsi, overSold))
closeShort = cShort
// Strategy Logic
longCondition = n1> n2
shortCondition = longCondition != true
col =condUp ? lime : condDown ? red : yellow
plot(n1,color=col,linewidth=3)
if (not na(vrsi))
if shortCondition
if (price[0] < maslow[0] and price[1] > mafast[1]) //cross entry
strategy.entry("SYS-SHORT", strategy.short, comment="short")
strategy.close("SYS-SHORT", when=closeShort) //output logic
if (not na(vrsi))
if longCondition // swing condition
if (price[0] < mafast[0] and price[1] > mafast[1]) //cross entry
strategy.entry("SYS-LONG", strategy.long, comment="long")
strategy.close("SYS-LONG", when=closeLong) //output logic
// Stop Loss
sl = input(75)
Stop = sl * 10
Q = 100
strategy.exit("Out Long", "SYS-LONG", qty_percent=Q, loss=Stop)
strategy.exit("Out Short", "SYS-SHORT", qty_percent=Q, loss=Stop)
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)