Stratégie de scalper Buy-Swing autonome basée sur le RSI stochastique et l'EMA


Date de création: 2023-10-31 11:34:47 Dernière modification: 2023-10-31 11:34:47
Copier: 0 Nombre de clics: 808
1
Suivre
1617
Abonnés

Stratégie de scalper Buy-Swing autonome basée sur le RSI stochastique et l’EMA

Aperçu

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.

Principe de stratégie

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.

Avantages stratégiques

  • L’utilisation d’indicateurs RSI aléatoires pour déterminer le moment d’achat est plus fiable et permet de filtrer efficacement les fausses ruptures.
  • Les indicateurs EMA permettent de mieux juger le moment où la tendance a changé.
  • Le blocage des pertes est un moyen efficace de maîtriser les pertes.
  • Le fait de détenir autant de pièces que possible réduit la fréquence des transactions et les frais de traitement.

Risque stratégique

  • Il est possible que l’indicateur RSI émette de faux signaux. Les paramètres RSI peuvent être ajustés de manière appropriée pour optimiser.
  • Si le prix de l’arrêt est trop bas, cela peut entraîner une augmentation des pertes. Vous pouvez ajuster la taille de l’arrêt de manière appropriée.
  • Une mauvaise configuration des paramètres de l’indicateur EMA peut manquer le moment de la modification de la tendance. Des paramètres pour différents cycles EMA peuvent être testés.

Direction d’optimisation

  • Tester différents réglages de paramètres RSI et RSI aléatoires pour trouver la combinaison optimale de paramètres
  • Essayez différents niveaux de stop-loss pour équilibrer les pertes et les retraits de profit.
  • Tester la combinaison des périodes longues et courtes de l’EMA pour déterminer les paramètres qui déterminent le mieux le changement de tendance
  • L’ajout d’autres indicateurs peut être envisagé pour améliorer l’exactitude des décisions de vente et d’achat

Résumer

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.

Code source de la stratégie
/*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)