Stratégie double RSI et bandes de Bollinger


Date de création: 2023-12-12 11:53:49 Dernière modification: 2023-12-12 11:53:49
Copier: 0 Nombre de clics: 685
1
Suivre
1621
Abonnés

Stratégie double RSI et bandes de Bollinger

Aperçu

L’idée centrale de cette stratégie est de combiner les indicateurs techniques relativement faibles (RSI) et Brin pour filtrer les signaux de double trading, minimiser les interférences de faux signaux et améliorer la qualité des signaux.

L’indicateur RSI crée des opportunités de négociation lorsque le prix dépasse ou recule la courbe de Boer. Il intègre les avantages de deux indicateurs différents, prenant en compte les caractéristiques statistiques des fluctuations du marché et la situation de plus d’espace des acteurs du marché, pour former une base de jugement globale.

Principe de stratégie

Dans la section RSI, nous regardons simultanément deux indicateurs RSI de différentes périodes, un cycle plus court est utilisé pour capturer les signaux de survente et de survente, et un cycle plus long est utilisé pour confirmer le renversement de tendance. Lorsque le RSI de courte période montre un survente et un renversement de RSI de longue période, il est considéré comme une opportunité de négociation.

Dans la section des courbes de Brin, nous regardons si le prix a franchi une trajectoire ascendante ou descendante. La rupture de la courbe de Brin est un point de vente et la rupture de la courbe descendante est un point d’achat. Nous regardons également si le prix a rétabli la courbe de Brin, afin de saisir les opportunités de reprise en temps opportun.

Lorsque les signaux RSI et les signaux Brin sont présentés simultanément, nous considérons que l’opportunité est formée et émettons des ordres de négociation.

Analyse des avantages

  • Filtrage à double indice, plus de fiabilité, évitant les transactions inutiles
  • L’analyse des tendances et des retournements et des opportunités dans les différentes phases du marché
  • Les paramètres sont configurables et peuvent être ajustés selon les besoins
  • Gestion intégrée du temps et des fonds

Analyse des risques

  • Une mauvaise configuration des paramètres de la bande de Bryn peut entraîner un faux signal
  • L’incapacité à faire face à des situations extrêmes de fortes fluctuations du marché
  • L’indicateur RSI peut émettre des signaux erronés
  • Paramètres à optimiser pour différentes variétés et cycles

Les risques peuvent être évités et contrôlés par l’optimisation des paramètres, la réduction appropriée des positions, l’intervention humaine, etc.

Direction d’optimisation

  • Modifier les paramètres du RSI pour optimiser les jugements de survente
  • Adaptation de la bande passante Brin et optimisation de la stratégie de rupture de la bande passante
  • Amélioration des mécanismes de gestion des positions
  • Augmentation des stratégies de réduction des pertes
  • Un modèle multifonctionnel avec plus de facteurs

Résumer

Le RSI et la double stratégie de la ceinture de Brin utilisent pleinement les avantages des deux indicateurs pour générer des signaux de haute qualité, ce qui permet d’obtenir un retour sur investissement stable, à condition que les paramètres soient optimisés et que la gestion des risques soit en place. La combinaison de plus de signaux et de modèles est également une direction possible pour l’avenir.

Code source de la stratégie
/*backtest
start: 2023-11-11 00:00:00
end: 2023-12-04 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Ezieh Str.v2", shorttitle="Ezieh Str.v2", overlay=true, pyramiding=10, currency=currency.USD, slippage=3, commission_type=strategy.commission.cash_per_order, commission_value=0.04, initial_capital=1000)



UseDateFilter  = input(title="Enable Date Filter"         ,type=input.bool    ,defval=false                               ,group="Date & Time" ,tooltip="Turns on/off date filter")
StartDate      = input(title="Start Date Filter"          ,type=input.time    ,defval=timestamp("1 Jan 2000 00:00 +0000") ,group="Date & Time" ,tooltip="Date & time to start excluding trades")
EndDate        = input(title="End Date Filter"            ,type=input.time    ,defval=timestamp("1 Jan 2100 00:00 +0000") ,group="Date & Time" ,tooltip="Date & time to stop excluding trades")
UseTimeFilter  = input(title="Enable Time Session Filter" ,type=input.bool    ,defval=false                               ,group="Date & Time" ,tooltip="Turns on/off time session filter")
TradingSession = input(title="Trading Session"            ,type=input.session ,defval="1000-2200:1234567"                 ,group="Date & Time" ,tooltip="No trades will be taken outside of this range")

In(t)      => na(time(timeframe.period, t)) == false
TimeFilter = (UseTimeFilter and not In(TradingSession)) or not UseTimeFilter
DateFilter = time >= StartDate and time <= EndDate

DateTime = (UseDateFilter ? not DateFilter : true) and (UseTimeFilter ? In(TradingSession) : true) 

///////////// RSI
L_RSI_Length     = input(7  , title="L_Length")
L_RSI_OverSold   = input(45 , title="L_OverSold")
S_RSI_Length     = input(14 , title="S_Length")
S_RSI_OverBought = input(65 , title="S_OverBought")

price = close
Lvrsi = rsi(price, L_RSI_Length)
Svrsi = rsi(price, S_RSI_Length)

///////////// Bollinger Bands
BBlength = input(title="Bollinger Period Length", type=input.integer, defval=100, minval=2)
BBmult = 2.1 // input(2.0, minval=0.001, maxval=50,title="Bollinger Bands Standard Deviation")
BBbasis = sma(price, BBlength)
BBdev = BBmult * stdev(price, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev
source = close
plot(BBbasis, color=color.aqua,title="Bollinger Bands SMA Basis Line")
p1 = plot(BBupper, color=color.silver,title="Bollinger Bands Upper Line")
p2 = plot(BBlower, color=color.silver,title="Bollinger Bands Lower Line")
fill(p1, p2)


///////////// Colors
switch1=input(true, title="Enable Bar Color?")
switch2=input(true, title="Enable Background Color?")



///////////// Condition
LongCondition  = crossover(Lvrsi, L_RSI_OverSold)    and crossover(close  ,BBlower)
ShortCondition = crossunder(Svrsi, S_RSI_OverBought) and crossunder(close,BBupper)
Longexcon      = crossunder(low, BBupper)
Shortexcon     = crossover(low, BBlower)

qt = round(strategy.equity/price, 3)

///////////// RSI + Bollinger Bands Strategy
if (not na(Lvrsi))

    if LongCondition and DateTime
        strategy.entry("RSI_BB_L", strategy.long, qty=qt,  comment="Long")
    else
        strategy.cancel(id="RSI_BB_L")
        
    if Longexcon
        strategy.close("RSI_BB_L", qty_percent = 100, comment = "L_exit")
    
    if ShortCondition and DateTime
        strategy.entry("RSI_BB_S", strategy.short, qty=qt,  comment="Short")
    else
        strategy.cancel(id="RSI_BB_S")
        
    if Shortexcon
        strategy.close("RSI_BB_S", qty_percent = 100, comment = "S_exit")
    
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)