
La stratégie vise à réaliser une stratégie de trading scalper basée sur l’achat et la détention autonome de pièces basées sur des indices aléatoires des moyennes mobiles lisse ((RSI) et des moyennes mobiles indicielles ((EMA)). Elle s’applique à la ligne K de 5 minutes et est optimisée pour le BTC. L’objectif de la stratégie est de détenir autant de pièces que possible en cours d’achèvement ou sans baisse significative.
Cette stratégie utilise le RSI pour déterminer si l’indicateur est en zone de survente et de survente et envoie des signaux d’achat et de vente en combinant les valeurs K et D de l’indicateur RSI aléatoire.
Une vente est considérée comme une survente lorsque la ligne K du RSI aléatoire est inférieure à 20 et génère un signal d’achat lorsque la ligne K est supérieure à la ligne D. La vente est ensuite jugée selon trois conditions: 1) un renversement de l’EMA après une hausse de plus de 1%; 2) une survente de la ligne K du RSI aléatoire est inférieure à la ligne D; 3) un stop loss atteint 98.5% du prix d’entrée.
De plus, un revirement à la baisse de l’EMA à court terme après une hausse est également considéré comme un signal de vente.
La stratégie intègre les avantages de plusieurs indicateurs tels que le RSI et l’EMA aléatoires, et utilise une méthode plus robuste pour déterminer le moment d’acheter et de vendre. La rentabilité et la stabilité de la stratégie peuvent être encore améliorées par l’optimisation des paramètres et la gestion des risques.
/*backtest
start: 2023-09-30 00:00:00
end: 2023-10-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title="Stochastic RSI W Auto Buy Scalper Scirpt III ", shorttitle="Stoch RSI_III", format=format.price, precision=2)
smoothK = input.int(3, "K", minval=1)
smoothD = input.int(3, "D", minval=1)
lengthRSI = input.int(14, "RSI Length", minval=1)
lengthStoch = input.int(14, "Stochastic Length", minval=1)
src = input(close, title="RSI Source")
rsi1 = ta.rsi(src, lengthRSI)
k = ta.sma(ta.stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = ta.sma(k, smoothD)
plot(k, "K", color=#2962FF)
plot(d, "D", color=#FF6D00)
h0 = hline(80, "Upper Band", color=#787B86)
hline(50, "Middle Band", color=color.new(#787B86, 50))
h1 = hline(20, "Lower Band", color=#787B86)
longStopLoss = strategy.opentrades.entry_price(0)* (.985)
stochDropping = ta.falling(k,2)
shortSma = ta.sma(hlc3,12)
shorterSma = ta.sma(hlc3,3)
plot(shortSma[3])
shortSmaFlip = (ta.change(shortSma,3)>0) and ta.falling(hlc3,1)
shorterSmaFlip = (ta.change(shorterSma,2)>0) and ta.falling(hlc3,1)
messageSellText ='"type": "sell", "symbol": "BTCUSD", "marketPosition": "{{strategy.market_position}}"'
messageBuyText ='"type": "buy", "symbol": "BTCUSD", "marketPosition": {{strategy.market_position}}"'
fill(h0, h1, color=color.rgb(33, 150, 243, 90), title="Background")
strategy.entry("Tech", strategy.long, when=(strategy.position_size <= 0 and k<17 and k>d),alert_message=messageBuyText)
//original: strategy.close("TL", when=(strategy.position_size >= 0 and (k>90 and k<d)))
takeProfit = hlc3 > strategy.opentrades.entry_price(0)*1.01
//longStopLoss = strategy.opentrades.entry_price(0)* (.995)
strategy.close("Tech", when=(strategy.position_size >= 0 and (k>90 and k<d and stochDropping)) or close<longStopLoss, comment="rsi or Stop sell",alert_message=messageSellText)
//strategy.close("Tech", when=(strategy.position_size >= 0 and close<longStopLoss), comment="stopLoss sell",alert_message=messageSellText)
strategy.close("Tech", when=(shortSmaFlip and k>20 and takeProfit),comment="Sma after profit",alert_message=messageSellText)