Stratégie à long terme Bull-Bear


Date de création: 2023-11-10 11:37:37 Dernière modification: 2023-11-10 11:37:37
Copier: 0 Nombre de clics: 680
1
Suivre
1621
Abonnés

Stratégie à long terme Bull-Bear

Aperçu

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.

Principe de stratégie

  1. L’indicateur RSI est utilisé pour déterminer la présence d’un décalage multiple.

    • Définition du paramètre de l’indicateur RSI (défault 14 cycles)
    • Calculer le RSI actuel
    • Pour déterminer si la déviation est multiple:
      • Le RSI a des points bas et bas.
      • Les prix sont à la baisse.
      • L’indicateur RSI a connu des hauts et des bas.
      • Les prix sont à la hausse et à la baisse.
  2. Déterminer si le RSI est inférieur au seuil

    • Définition du seuil de détermination du RSI bas (défault 40)
    • Si le RSI actuel est inférieur à ce seuil, il peut s’agir d’une opportunité d’achat.
  3. Détermine si le cours de clôture est inférieur au point bas du départ

    • Si c’est le cas, vérifiez plus loin que le signal de vente.
  4. Définition des conditions de sortie

    • Réglage du pourcentage de stop loss (défault à 5%)
    • Si le retrait atteint ce pourcentage, le stop loss est retiré.
  5. Définition des conditions de retrait des bénéfices

    • Le RSI est fixé à 75 (défaut)
    • Si la hausse du RSI atteint ce seuil, les bénéfices se retirent

Analyse des avantages

  1. L’indicateur RSI peut être utilisé pour détecter une déviation multiple et capturer efficacement le moment d’une reprise à court terme.

  2. En fonction de l’indice RSI bas, on peut déterminer les points d’achat spécifiques avant le rebond

  3. 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

  4. 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.

  5. 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

Analyse des risques

  1. Il y a une possibilité que l’indicateur RSI soit inefficace, ce qui entraînerait des pertes de trading s’il était mal jugé.

  2. Un seul indicateur technique est susceptible de produire de faux signaux et doit être utilisé en combinaison avec d’autres indicateurs.

  3. 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.

  4. 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.

  5. Il faut faire attention aux frais de transaction, trop de transactions peuvent affecter les résultats finaux.

  6. Les paramètres d’optimisation doivent être évalués régulièrement et les stratégies adaptées aux différents marchés.

Direction d’optimisation

  1. 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.

  2. Les paramètres peuvent être testés sur différentes périodes pour trouver la meilleure combinaison de paramètres

  3. Il est possible de combiner des jugements de tendance à un plus grand niveau pour éviter de faire plus lorsque la tendance est inversée.

  4. 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.

  5. Il est possible de définir différents stop-loss en fonction de la situation de la position.

  6. Les technologies telles que l’apprentissage automatique peuvent être introduites pour optimiser automatiquement les paramètres.

Résumer

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.

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