Stratégie Fast RSI Gap pour les crypto-monnaies


Date de création: 2023-11-27 11:22:19 Dernière modification: 2023-11-27 11:22:19
Copier: 0 Nombre de clics: 643
1
Suivre
1617
Abonnés

Stratégie Fast RSI Gap pour les crypto-monnaies

Le résumé: Cette stratégie est une stratégie de trading de sauts RSI rapides appliquée aux crypto-monnaies. Elle utilise à la fois l’indicateur RSI rapides et la stratégie de saut de ligne K pour rechercher des opportunités de trading.

Le principe de la stratégie: La stratégie utilise simultanément deux indicateurs principaux: le RSI rapide et la ligne K sautante.

Tout d’abord, il calcule un indicateur RSI rapide avec seulement 7 lignes K. L’indicateur RSI est plus sensible et peut rapidement capturer le phénomène de survente et de survente. Le RSI a une limite supérieure de 70 et une limite inférieure de 30.

Deuxièmement, il détecte une ligne K de saut. Le saut indique que le cours d’ouverture est largement écarté par rapport au cours de clôture de la veille. Le saut est un signal de forte volatilité qui annonce une éventuelle inversion de tendance.

Lorsque vous détectez une ligne K qui saute vers le bas et que le RSI rapide indique un survente, faites plus. Lorsque vous détectez une ligne K qui saute vers le haut et que le RSI rapide indique un survente, faites moins.

En outre, la stratégie utilise la moyenne SMA et le minimum et le maximum comme filtres pour éviter les erreurs de négociation. Un véritable signal de négociation n’est émis que s’il est passé par le filtre.

Analyse des avantages: Le plus grand avantage de cette stratégie est de capturer les surachats et les surventeurs rapides et les occasions de revirement. Elle est particulièrement adaptée aux marchés de crypto-monnaies plus volatils et peut saisir les points de basculement rapides. Par rapport au RSI classique, le RSI rapide est plus sensible et peut s’adapter à la négociation à haute fréquence des crypto-monnaies.

Analyse des risques: La stratégie présente quatre risques principaux:

  1. Le RSI rapide est trop sensible, ce qui entraîne un risque élevé de signaux trompeurs.

  2. Le saut en flèche peut être une fluctuation normale des prix plutôt qu’une véritable inversion, et la stratégie peut courir le risque d’un arrêt de la perte;

  3. Il est facile de rester à plat pendant des périodes de calme.

  4. Les paramètres de stratégie mal configurés, tels que la longueur minimale et maximale de l’indicateur, peuvent entraîner une dilution du signal et une inefficacité.

Par conséquent, les mesures suivantes peuvent réduire ces risques:

  1. régler les paramètres du RSI rapide en augmentant le nombre de cycles du RSI de manière appropriée;

  2. Le blocage des bénéfices par des stop-loss mobiles, afin d’éviter les pertes dues au suivi des sauts en l’air;

  3. Optimiser les paramètres d’engagement des stratégies et contrôler l’engagement des stratégies dans des situations de faible volatilité;

  4. Tester et optimiser les paramètres à plusieurs reprises pour trouver les paramètres optimaux pour assurer l’efficacité de la stratégie.

Les directions d’optimisation La stratégie a été optimisée pour:

  1. L’exploration d’autres indicateurs de prix tels que le MACD, le KDJ et d’autres, combinés avec le saut en longueur, pour améliorer la précision du signal;

  2. Ajout d’un paramètre d’arrêt adaptatif qui ajuste automatiquement le point d’arrêt en fonction des fluctuations du marché;

  3. des indicateurs de quantité de fusion comme l’OBV pour vérifier les signaux de confirmation des sauts en l’air et confirmer le renversement de tendance;

  4. Optimiser la longueur et les paramètres du filtre pour trouver la meilleure combinaison de paramètres pour réduire les fausses informations.

  5. L’étude de l’adaptabilité des différentes crypto-monnaies aux paramètres stratégiques, afin de définir des paramètres plus précis.

Grâce à ces optimisations, la stabilité, l’adaptabilité et la fiabilité des stratégies peuvent être améliorées.

Résumé: La stratégie de saut RSI rapide est une stratégie de trading efficace conçue spécialement pour les crypto-monnaies volatiles. Elle combine la sensibilité de l’indicateur RSI rapide et la capacité de prévision de la ligne K de saut. Grâce à des tests et à une optimisation constants, la capacité de la stratégie à capturer les retournements rapides du marché peut être encore améliorée pour obtenir des rendements stables à long terme sur un marché crypto-monnaie volatile.

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

//Noro
//2018

//@version=3
strategy(title = "Noro's Fast RSI Strategy v1.5", shorttitle = "Fast RSI str 1.5", overlay = true)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
usersi = input(true, defval = true, title = "Use Fast RSI Strategy")
usemm = input(true, defval = true, title = "Use Min/Max 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 
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
if up1 or up2
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn1 or dn2
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, 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()