Cette stratégie tente d'identifier les opportunités à court terme où Bitcoin est susceptible de rebondir en recherchant des modèles de divergence haussiers dans l'indicateur RSI, et ainsi déterminer de bons points d'entrée pour les transactions longues.
Identifier la divergence haussière avec l'indicateur RSI
Vérifiez si la valeur de l'indice de résistance est inférieure au seuil
Vérifiez si le prix de clôture est inférieur au niveau le plus bas de la divergence précédente
Définir les conditions de sortie du stop loss
Définir les conditions de sortie du bénéfice
L' utilisation de la divergence de l'indicateur d' indice de volatilité peut effectivement saisir les opportunités de rebond des prix à court terme
La combinaison avec le seuil inférieur de l'indicateur de risque permet de déterminer des points d'entrée spécifiques
Les paramètres Stop Loss et Take Profit aident à gérer le risque et la récompense
La stratégie fait référence à beaucoup d'expérience de trading réelle avec les signaux RSI Bitcoin et est très adapté pour Bitcoin long scalping
Des paramètres raisonnables permettent à la stratégie de s'adapter aux différentes conditions du marché et de bien fonctionner pour la négociation en direct
La divergence de l'indice de volatilité peut échouer, entraînant une perte de transactions si elle est mal identifiée
Un seul indicateur tend à générer de faux signaux, doit être combiné avec d'autres
Besoin de choisir les valeurs de paramètres appropriées, les paramètres incorrects affectent la rentabilité
Le trading long doit tenir compte de la tendance globale, éviter le trading contre tendance
Il faut faire attention aux frais de négociation, le trading à haute fréquence affecte les bénéfices
Les paramètres doivent être régulièrement testés et optimisés en fonction de l'évolution des marchés
Considérez l'ajout d'autres indicateurs tels que les moyennes mobiles pour les conditions de filtrage afin de réduire les faux signaux
Testez différents paramètres de période sur chaque période pour trouver des combinaisons optimales
Incorporer une analyse de tendance à plus long terme pour éviter d'acheter contre un renversement de tendance
Mettre en œuvre un stop loss dynamique qui augmente progressivement les stops à mesure que le niveau de profit augmente
Régler le pourcentage de stop loss en fonction de la dimension spécifique de la position
Introduire l'apprentissage automatique pour l'optimisation automatique des paramètres
Cette stratégie vise à identifier les opportunités de rebond à court terme de Bitcoin en détectant les divergences haussières du RSI et en déterminant les bons points d'entrée longs. La stratégie est simple et efficace, incorporant beaucoup d'expérience de trading pratique, ce qui la rend très adaptée aux longs de scalping Bitcoin. Cependant, la dépendance à un seul indicateur tend à générer de faux signaux, elle doit donc être combinée à d'autres indicateurs.
/*backtest start: 2023-11-02 00:00:00 end: 2023-11-09 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bullish Divergence Short-term Long Trade Finder", overlay=false) max_range = 50 min_range = 5 ///pivot_left = 25 pivot_right = 5 //Inputs src = input(close, title="Source") rsiBearCondMin = input.int(50, title="RSI Bearish Condition Minimum") rsiBearCondSellMin = input.int(60, title="RSI Bearish Condition Sell Min") rsiBullCondMin = input.int(40, title="RSI Bull Condition Minimum") pivot_left = input.int(25, title="Look Back this many candles") SellWhenRSI = input.int(75, title="RSI Sell Value") StopLossPercent = input.int(5, title="Stop loss Percentage") rsiPeriod = input.int(14, title="RSI Length") rsiOversold = input.int(30, title="RSI Oversold Level") rsiOverbought = input.int(70, title="RSI Overbought Level") //RSI Function/ value rsi_value = ta.rsi(src, rsiPeriod) rsi_hour = request.security(syminfo.tickerid,'60',rsi_value) rsi_4hour = request.security(syminfo.tickerid,'240',rsi_value) rsi_Day = request.security(syminfo.tickerid,'D',rsi_value) plot(rsi_value, title="RSI", linewidth = 2, color = color.black, display =display.all) hline(50, linestyle = hline.style_dotted) rsi_ob = hline(70, linestyle=hline.style_dotted) rsi_os = hline(30, linestyle=hline.style_dotted) fill(rsi_ob, rsi_os, color.white) SL_percent = (100-StopLossPercent)/100 pivot_low_true = na(ta.pivotlow(rsi_value, pivot_left, pivot_right)) ? false : true //create a function that returns truee/false confirm_range(x) => bars = ta.barssince(x == true) //counts the number of bars since thee last time condition was true min_range <= bars and bars <= max_range // makees sure bars is less than max_range(50) and greater than min_range(5) // RSI higher check / low check RSI_HL_check = rsi_value<rsiBullCondMin and rsi_value > ta.valuewhen(pivot_low_true and rsi_value<rsiBullCondMin, rsi_value,1) and confirm_range(pivot_low_true[1]) // price check for lower low price_ll_check = low < ta.valuewhen(pivot_low_true, low, 1) bullCond = price_ll_check and RSI_HL_check and pivot_low_true //pivot_high_true = na(ta.pivothigh(rsi_value, pivot_left, pivot_right)) ? false : true pivot_high_true = na(ta.pivothigh(rsi_value, pivot_left, pivot_right)) ? false : true // RSI Lower check / high check ensuring that the RSI dips below 30 to start divergence RSI_LH_check = rsi_value < ta.valuewhen(pivot_high_true and rsi_value>rsiBearCondMin, rsi_value,1) and confirm_range(pivot_high_true[1]) //and rsi_value[pivot_right] >= 65 // price check for lower low price_hh_check = high > ta.valuewhen(pivot_high_true, high, 1) bearCond = price_hh_check and RSI_LH_check and pivot_high_true and rsi_value[3] > rsiBearCondSellMin plot(pivot_low_true ? rsi_value : na, offset=-5, linewidth=3, color=(bullCond ? color.green : color.new(color.white, 100))) plotshape(bullCond ? rsi_value : na , text = "BUY", style = shape.labelup, location = location.absolute, color = color.green, offset =0, textcolor = color.white ) plot(pivot_low_true ? rsi_value : na, offset=-5, linewidth=3, color=(bearCond ? color.red : color.new(color.white, 100))) plotshape(bearCond ? rsi_value : na , text = "Sell", style = shape.labelup, location = location.absolute, color = color.red, offset =0, textcolor = color.white ) //[bbUpperBand, bbMiddleBand, bbLowerBand] = ta.bb(src, bbPeriod, bbDev) //Entry Condition longCondition = false //bullEntry = bullCond and RSI_HL_check and confirm_range(pivot_low_true[1]) if bullCond and close < ta.valuewhen(pivot_low_true, low, 1) and rsi_hour <40 ///and rsi_4hour<40 //and rsi_Day<50 strategy.entry("Long", strategy.long) //Exit Condition if (strategy.position_size > 0 and close < strategy.position_avg_price*SL_percent) strategy.close("Long") if (strategy.position_size > 0 and (rsi_value > SellWhenRSI or bearCond)) strategy.close("Long")