
La stratégie consiste à rechercher les divergences multiples de l’indicateur RSI pour déterminer le moment où le prix du bitcoin pourrait rebondir à la hausse dans un court laps de temps, afin de déterminer le bon moment pour acheter.
L’indicateur RSI est utilisé pour déterminer la présence d’un décalage multiple.
Déterminer si le RSI est inférieur au seuil
Détermine si le cours de clôture est inférieur au point bas du départ
Définition des conditions de sortie
Définition des conditions de retrait des bénéfices
L’indicateur RSI peut être utilisé pour détecter une déviation multiple et capturer efficacement le moment d’une reprise à court terme.
En fonction de l’indice RSI bas, on peut déterminer les points d’achat spécifiques avant le rebond
La mise en place de conditions de stop-loss et de frein permettant de gérer les risques et les gains liés à la transaction
Cette stratégie fait référence à la caractéristique de l’indicateur RSI dans de nombreuses transactions en Bitcoin et est parfaitement adaptée aux Bitcoin Short Lines.
La configuration des paramètres de stratégie est raisonnable et peut être adaptée à différentes conditions de marché, ce qui favorise l’application en continu
Il y a une possibilité que l’indicateur RSI soit inefficace, ce qui entraînerait des pertes de trading s’il était mal jugé.
Un seul indicateur technique est susceptible de produire de faux signaux et doit être utilisé en combinaison avec d’autres indicateurs.
Il est nécessaire de choisir les valeurs de paramètres appropriées, car une mauvaise configuration peut affecter la rentabilité de la stratégie.
Pour faire des transactions dans plusieurs directions, il est nécessaire de se concentrer sur les tendances à grande échelle et d’éviter les opérations contraires.
Il faut faire attention aux frais de transaction, trop de transactions peuvent affecter les résultats finaux.
Les paramètres d’optimisation doivent être évalués régulièrement et les stratégies adaptées aux différents marchés.
On peut envisager d’ajouter d’autres indicateurs, tels que la moyenne mobile, pour définir des conditions de filtrage et réduire les faux signaux.
Les paramètres peuvent être testés sur différentes périodes pour trouver la meilleure combinaison de paramètres
Il est possible de combiner des jugements de tendance à un plus grand niveau pour éviter de faire plus lorsque la tendance est inversée.
Il est possible de définir un stop loss dynamique qui augmente progressivement le stop loss lorsque les bénéfices atteignent un certain niveau.
Il est possible de définir différents stop-loss en fonction de la situation de la position.
Les technologies telles que l’apprentissage automatique peuvent être introduites pour optimiser automatiquement les paramètres.
Cette stratégie permet de déterminer le moment de l’achat en capturant le décalage multiple de l’indicateur RSI et en jugeant la possibilité d’une hausse de rebond de Bitcoin dans un court laps de temps. La stratégie est simple et efficace, s’appuyant sur une grande quantité d’expérience en bourse, elle est parfaitement adaptée aux courts-circuits de Bitcoin.
/*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")