Cette stratégie vise à mettre en œuvre une stratégie de trading de scalper de pièces automatique basée sur les indicateurs techniques stochastiques RSI et EMA. Elle est conçue pour des bougies de 5 minutes, optimisées pour le BTC.
La stratégie utilise l'indicateur RSI pour déterminer les niveaux de surachat et de survente, combiné à la relation entre les valeurs K et D du RSI stochastique pour générer des signaux d'achat et de vente.
Il déclenchera un signal d'achat lorsque la ligne K du RSI stochastique est inférieure à 20, considérée comme survendue, et que K est supérieure à D. Après cela, il déterminera s'il faut vendre en fonction de trois conditions: 1) la hausse du prix de plus de 1% suivie d'un renversement de l'EMA; 2) la ligne K du RSI stochastique inférieure à D; 3) le prix de stop loss atteint 98,5% du prix d'entrée.
En outre, un virage à la baisse de l'EMA à court terme après une tendance haussière sera également considéré comme un signal de vente.
Cette stratégie intègre les forces du RSI stochastique, de l'EMA et d'autres indicateurs, en utilisant des méthodes relativement robustes pour déterminer le moment de l'entrée et de la sortie.
/*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)