Stratégie de récupération de la moyenne mobile RSI à double sens


Date de création: 2023-10-23 15:46:33 Dernière modification: 2023-10-23 15:46:33
Copier: 0 Nombre de clics: 671
1
Suivre
1617
Abonnés

Stratégie de récupération de la moyenne mobile RSI à double sens

Aperçu

La stratégie de réponse linéaire régulière RSI bidirectionnelle est une stratégie de suivi de tendance qui utilise deux indicateurs RSI de différentes périodes de temps pour identifier les situations d’excédent et d’excédent. La stratégie est conçue pour tirer profit en faisant plus après l’excédent et en faisant moins après l’excédent.

Logique de stratégie

La stratégie utilise deux indicateurs RSI de différentes périodes pour pivoter l’un sur le graphique de 5 minutes et l’autre sur le graphique d’une heure. Pour l’indicateur RSI, le niveau de survente est identifié comme inférieur à 30 et le niveau de survente comme supérieur à 70.

Il suit les valeurs du RSI en cherchant des périodes où le RSI est en zone de survente ou de survente, ce qui indique une situation de survente ou de survente de l’expansion.

En outre, il utilise des moyennes mobiles asymétriques lisse, vérifiant les lignes K rouges ou vertes d’une certaine période avant d’entrer dans une transaction pour confirmer la direction de la tendance. Les filtres de couleur d’ouverture de position aident à éviter les faux signaux.

Lorsque les conditions RSI et des moyennes mobiles sont remplies, la stratégie fait plus après avoir survendu, et plus après avoir survendu, et le prix de pari revient à la moyenne.

Il est recommandé de faire un dépôt à la fin de la journée pour éviter d’y rester la nuit.

Analyse des avantages

  • Utilisation d’un cadre temporel multiple pour identifier les situations de survente
  • Filtre le bruit de la moyenne mobile asymétrique lisse et identifie la direction de la tendance
  • Filtrez les couleurs pour éviter les fausses signaux
  • Règles explicites d’ouverture et de clôture des positions sur la base de deux indicateurs de correspondance
  • Risques de contrôle de la position de clôture avant la journée

Analyse des risques

  • Si la tendance forte se poursuit, le RSI pourrait être secoué par un signal de survente après avoir été sur-acheté.
  • Une faille de marché pourrait déclencher un arrêt de la perte
  • Le retard de la moyenne mobile par rapport à la moyenne lisse peut retarder l’ouverture des positions et donc les faire manquer.
  • Les gains que l’on peut retirer d’une position de nuit avant la fin de la journée

Direction d’optimisation

  • Ajouter des filtres supplémentaires tels que le volume ou la volatilité pour confirmer le signal
  • Optimiser le cycle RSI et les paramètres de niveau de survente
  • Considérer un contrôle dynamique de position basé sur la volatilité
  • Test de stop loss et sortie, plutôt que d’être à plat avant la fin de la journée
  • Tester l’efficacité sur différentes variétés et ajuster les paramètres

Résumer

La stratégie de réplique linéaire bi-directionnelle du RSI utilise une méthode de régularisation de la dynamique des transactions. Le but est d’identifier des opportunités de retour linéaire à forte probabilité en combinant deux périodes de temps, un indicateur de surachat et de survente, une analyse de la forme de la ligne K et un filtre d’ouverture de position. Une gestion rigoureuse des risques et un contrôle prudent des positions aident à contrôler les retraits tout en générant des bénéfices.

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

//Gidra
//2018

//@version=2
strategy(title = "Gidra's Vchain Strategy v0.1", shorttitle = "Gidra's Vchain Strategy v0.1", overlay = false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 100)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
rsiperiod = input(14, defval = 14, minval = 2, maxval = 100, title = "RSI period")
rsilimit = input(30, defval = 30, minval = 1, maxval = 50, title = "RSI limit")
rsibars = input(3, defval = 3, minval = 1, maxval = 20, title = "RSI signals")
useocf = input(true, defval = true, title = "Use Open Color Filter")
openbars = input(2, defval = 2, minval = 1, maxval = 20, title = "Open Color, Bars")
showrsi = input(true, defval = true, title = "Show indicator RSI")
fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From Day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To Day")


//Heikin Ashi Open/Close Price
o=open
c=close
h=high
l=low
haclose = (o+h+l+c)/4
haopen = na(haopen[1]) ? (o + c)/2 : (haopen[1] + haclose[1]) / 2
hahigh = max (h, max(haopen,haclose))
halow = min (l, min(haopen,haclose))
col=haopen>haclose ? red : lime
plotcandle(haopen, hahigh, halow, haclose, title="heikin", color=col)

//RSI
uprsi = rma(max(change(close), 0), rsiperiod)
dnrsi = rma(-min(change(close), 0), rsiperiod)
rsi = dnrsi == 0 ? 100 : uprsi == 0 ? 0 : 100 - (100 / (1 + uprsi / dnrsi))
uplimit = 100 - rsilimit
dnlimit = rsilimit
rsidn = rsi < dnlimit ? 1 : 0
rsiup = rsi > uplimit ? 1 : 0

//RSI condition
rsidnok = highest(rsidn, rsibars) == 1? 1 : 0
rsiupok = highest(rsiup, rsibars) == 1? 1 : 0

//Color Filter
bar = haclose > haopen ? 1 : haclose < haopen ? -1 : 0
gbar = bar == 1 ? 1 : 0
rbar = bar == -1 ? 1 : 0
openrbarok = sma(gbar, openbars) == 1 or useocf == false
opengbarok = sma(rbar, openbars) == 1 or useocf == false

//Signals
up = openrbarok and rsidnok
dn = opengbarok and rsiupok

lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]

//Indicator RSI
colbg = showrsi == false ? na : rsi > uplimit ? red : rsi < dnlimit ? lime : na
bgcolor(colbg, transp = 20)

//Trading
if up
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59)// or exit
    strategy.close_all()