Résumé: Il s'agit d'une stratégie de trading rapide RSI conçue pour les marchés de crypto-monnaie. Il utilise à la fois des indicateurs RSI rapides et des modèles de gap sur les graphiques de chandeliers pour localiser les opportunités de trading.
Principaux: La stratégie utilise deux techniques principales: les indicateurs rapides du RSI et les modèles d'écart.
Le RSI est calculé en fonction de 7 bougies, ce qui rend le RSI plus sensible pour détecter rapidement les conditions de surachat/survente.
Deuxièmement, il détecte des schémas d'écart sur les graphiques de chandeliers. Les écarts se réfèrent aux espaces vides entre le prix d'ouverture actuel et le prix de clôture précédent. Les écarts signalent une forte volatilité et des renversements de tendance potentiels.
Lorsque l'indicateur rapide du RSI indique une situation de survente, passez long.
En outre, la stratégie utilise d'autres filtres, y compris les indicateurs SMA et Min / Max, pour éviter de faux signaux.
Les avantages: L'avantage majeur de cette stratégie est de capturer les virages ultra-rapides de surachat/survente et les opportunités d'inversion des écarts. Il est particulièrement approprié pour les marchés cryptographiques hautement volatils pour saisir les changements de tendance rapides.
Les risques:
Les principaux risques auxquels est confrontée la stratégie sont les suivants:
Le RSI rapide peut être trop sensible, provoquant des faux signaux excessifs.
Les écarts peuvent être simplement des fluctuations normales de prix au lieu de réels retours en arrière.
Au cours des périodes de faible volatilité, les positions peuvent être maintenues inactives pendant de longues périodes.
Des paramètres incorrects tels que la période Min/Max pourraient entraîner des signaux dilués et une faible efficacité.
En conséquence, les méthodes suivantes pourraient contribuer à atténuer les risques susmentionnés:
Ajustez les paramètres du RSI rapide et augmentez la période du RSI pour le rendre moins sensible.
Appliquez un stop-loss dynamique pour verrouiller les bénéfices.
Optimiser le taux de participation à la stratégie. Limiter l'implication dans des environnements à faible volatilité.
Test et optimisation continus des paramètres pour assurer des réglages robustes.
Amélioration: Les principales orientations d'optimisation sont les suivantes:
Explorez d'autres indicateurs comme le MACD, le KDJ combinés avec des lacunes pour améliorer la précision.
Mettre en place des mécanismes de stop loss adaptatifs basés sur la volatilité du marché.
Incorporer des indicateurs de volume comme OBV pour confirmer l'inversion après les écarts.
Optimisez les paramètres du filtre comme la période Min/Max pour découvrir les meilleurs réglages pour réduire les faux signaux.
Rechercher l'adaptabilité des paramètres à travers différents actifs cryptographiques.
Ces efforts pourraient améliorer sensiblement la stabilité, l'adaptabilité et la fiabilité de la stratégie.
Conclusion: En résumé, la stratégie de trading rapide RSI Gap est une approche efficace conçue explicitement pour les marchés cryptographiques volatils.
/*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()