Stratégie de changement rapide RSI de Noro v1.7


Date de création: 2023-12-22 15:10:40 Dernière modification: 2023-12-22 15:10:40
Copier: 0 Nombre de clics: 701
1
Suivre
1623
Abonnés

Stratégie de changement rapide RSI de Noro v1.7

Aperçu

La stratégie de commutation RSI rapide de Noro est une stratégie de trading quantitative qui utilise l’indicateur RSI pour identifier les occasions de survente. La stratégie combine à la fois la forme de la ligne K, le filtrage linéaire et la méthode de stop-loss pour contrôler les risques.

La stratégie repose principalement sur les éléments clés suivants:

  1. Indicateur RSI rapide: utilisé pour identifier les occasions de survente
  2. Forme de la ligne K: combinaison d’entités de la ligne K et de lignes yin et yang, pour aider à juger de la tendance
  3. Filtrage en ligne moyenne: utilisez la ligne moyenne SMA pour filtrer et éviter les faux signaux
  4. Le blocage des pertes: le blocage des pertes est réalisé en combinant les zones de limite du RSI

Principe de stratégie

La stratégie de commutation RSI rapide de Noro est principalement basée sur les signaux d’achat et de vente suivants:

  1. Signal de sur-achat et de survente du RSI rapide: génère un signal de transaction lorsque le RSI rapide franchit sa limite supérieure ou franchit sa limite inférieure.

  2. Signal de forme de ligne K: combinant la taille de l’entité de la ligne K, la direction de la ligne du solstice, etc., pour juger de la tendance et aider à générer un signal RSI rapide.

  3. Filtrage de la ligne moyenne: en combinaison avec la direction de la ligne moyenne SMA, évitez les fausses ruptures.

  4. Signaux de stop-loss: lorsque le RSI rapide revient à travers sa limite supérieure ou inférieure, la position est stoppée.

Plus précisément, la stratégie est basée sur la zone de sur-achat et de survente du RSI rapide pour juger des opportunités de négociation. Lorsque le RSI rapide franchit sa limite inférieure, il est considéré comme un signal de survente; lorsque le RSI rapide franchit sa limite supérieure, il est considéré comme un signal de survente.

Pour éviter le bruit, la stratégie a ajouté les jugements auxiliaires suivants:

  1. Taille de l’entité K: plus l’entité K est grande, plus la tendance est évidente
  2. Ligne du crépuscule: comment déterminer la direction de la ligne K
  3. Ligne moyenne SMA: filtrage des fausses déviations
  4. Stop loss: Stop loss lorsque le RSI rapide revient à travers la zone délimitée

Ainsi, la stratégie combine le RSI rapide, la forme de la ligne K, la ligne moyenne et le stop-loss pour prendre des décisions de trading.

Avantages stratégiques

Cette stratégie présente les avantages suivants:

  1. Le RSI rapide est très sensible: il permet de saisir rapidement les occasions de survente
  2. Ligne K et équivalence: éviter les transactions bruyantes
  3. Arrêt automatique des pertes: vous pouvez arrêter les pertes à temps et contrôler les risques
  4. Adapté pour les transactions de courte durée: adapté pour les périodes de courte durée telles que 1 heure, 30 minutes, etc.
  5. Facile à optimiser: les paramètres peuvent être adaptés à différents marchés

Risque stratégique

Cette stratégie comporte aussi des risques:

  1. Il peut y avoir des arrêts en continu: il y a plus de signaux d’arrêt en cas de tremblement.
  2. Paramètres à optimiser: adaptation des paramètres selon les cycles et les variétés
  3. Les pertes ne sont pas totalement évitables: la fermeture en temps opportun peut entraîner une certaine perte

Pour réduire les risques, il est possible d’optimiser les choses de la manière suivante:

  1. Optimiser le RSI rapide pour réduire le bruit des transactions
  2. Optimisation de la position de stop-loss et maîtrise des pertes individuelles
  3. Ajout d’un module de gestion des fonds et de la répartition des risques

Orientation de l’optimisation de la stratégie

Cette stratégie peut être optimisée dans les domaines suivants:

  1. Stratégie d’augmentation de l’arrêt: arrêt de la vente après que les bénéfices aient atteint un certain niveau et verrouillage partiel des bénéfices
  2. Augmentation de la gestion des fonds: ajout de mécanismes de gestion tels que le contrôle des positions et la diversification des risques
  3. Optimisation des paramètres des différentes périodes: ajuster les paramètres de l’indicateur pour tester l’effet des différentes périodes
  4. Augmenter l’apprentissage automatique: optimiser automatiquement les paramètres à l’aide d’algorithmes et s’adapter aux changements du marché
  5. Test de variété: stratégie de test de robustesse dans plus de variétés

L’amélioration de la stratégie par des méthodes telles que la prévention, la gestion des risques, l’optimisation des paramètres et l’apprentissage automatique peut améliorer considérablement la stabilité de la stratégie.

Résumer

Dans l’ensemble, la stratégie de commutation RSI rapide de Noro, combinée à l’indicateur RSI rapide et à l’indicateur technique de la ligne K, permet une stratégie de négociation en ligne courte permettant de juger des surachats et des surventes. La stratégie est agile et facile à optimiser, tout en ajoutant un module de stop-loss pour contrôler les risques.

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

//Noro
//2018

//@version=2
strategy(title = "Noro's Fast RSI Strategy v1.7", shorttitle = "Fast RSI str 1.7", overlay = true)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
usemar = input(false, defval = false, title = "Use Martingale")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
usersi = input(true, defval = true, title = "Use Fast RSI Strategy")
usemm = input(true, defval = true, title = "Use Min/Max Strategy")
usebc = input(true, defval = true, title = "Use BarColor Strategy")
usesma = input(false, defval = false, title = "Use SMA Filter")
smaperiod = input(20, defval = 20, minval = 2, maxval = 1000, title = "SMA Filter Period")
fast = input(7, defval = 7, minval = 2, maxval = 50, title = "Fast RSI Period")
limit = input(30, defval = 30, minval = 1, maxval = 100, title = "RSI limit")
rsisrc = input(close, defval = close, title = "RSI Price")
rsibars = input(1, defval = 1, minval = 1, maxval = 20, title = "RSI Bars")
mmbars = input(1, defval = 1, minval = 1, maxval = 5, title = "Min/Max Bars")
showsma = input(false, defval = false, title = "Show SMA Filter")
showarr = input(false, defval = false, title = "Show Arrows")
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")

//Fast RSI
fastup = rma(max(change(rsisrc), 0), fast)
fastdown = rma(-min(change(rsisrc), 0), fast)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//Limits
bar = close > open ? 1 : close < open ? -1 : 0
uplimit = 100 - limit
dnlimit = limit

//RSI Bars
upsignal = fastrsi > uplimit ? 1 : 0
dnsignal = fastrsi < dnlimit ? 1 : 0
uprsi = sma(upsignal, rsibars) == 1
dnrsi = sma(dnsignal, rsibars) == 1

//Body
body = abs(close - open)
abody = sma(body, 10)

//MinMax Bars
min = min(close, open)
max = max(close, open)
minsignal = min < min[1] and bar == -1 and bar[1] == -1 ? 1 : 0
maxsignal = max > max[1] and bar == 1 and bar[1] == 1 ? 1 : 0
mins = sma(minsignal, mmbars) == 1
maxs = sma(maxsignal, mmbars) == 1

//SMA Filter
sma = sma(close, smaperiod)
colorsma = showsma ? blue : na
plot(sma, color = colorsma, linewidth = 3)

//Signals
up1 = bar == -1 and (strategy.position_size == 0 or close < strategy.position_avg_price) and dnrsi and body > abody / 5 and usersi
dn1 = bar == 1 and (strategy.position_size == 0 or close > strategy.position_avg_price) and uprsi and body > abody / 5 and usersi
up2 = mins and (close > sma or usesma == false) and fastrsi < 70 and usemm
dn2 = maxs and (close < sma or usesma == false) and fastrsi > 30 and usemm 
up3 = sma(bar, 2) == -1 and usebc
dn3 = sma(bar, 2) == 1 and usebc
exit = (((strategy.position_size > 0 and fastrsi > dnlimit and bar == 1) or (strategy.position_size < 0 and fastrsi < uplimit and bar == -1)) and body > abody / 2)

//Arrows
col = exit ? black : up1 or dn1 ? blue : up2 or dn2 ? red : na
needup = up1 or up2
needdn = dn1 or dn2
needexitup = exit and strategy.position_size < 0
needexitdn = exit and strategy.position_size > 0
plotarrow(showarr and needup ? 1 : na, colorup = blue, colordown = blue, transp = 0)
plotarrow(showarr and needdn ? -1 : na, colorup = blue, colordown = blue, transp = 0)
plotarrow(showarr and needexitup ? 1 : na, colorup = black, colordown = black, transp = 0)
plotarrow(showarr and needexitdn ? -1 : na, colorup = black, colordown = black, transp = 0)

//Trading
profit = exit ? ((strategy.position_size > 0 and close > strategy.position_avg_price) or (strategy.position_size < 0 and close < strategy.position_avg_price)) ? 1 : -1 : profit[1]
mult = usemar ? exit ? profit == -1 ? mult[1] * 2 : 1 : mult[1] : 1
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 * mult : lot[1]

if up1 or up2 or up3
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)

if dn1 or dn2 or dn3
    if strategy.position_size > 0
        strategy.close_all()
        
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot)
    
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()