Stratégie de tendance du RSI extrême bidirectionnelle
Cette stratégie utilise l'indicateur RSI pour déterminer rapidement les tendances des prix.
La stratégie utilise un indicateur RSI amélioré pour juger de l'état de surachat et de survente des prix, combiné à un filtrage du corps de bougie pour réduire le bruit. Il va long ou court lorsque le RSI est dans la zone de surachat ou de survente et que la taille du corps de la bougie est supérieure à 1/3 de la taille moyenne du corps.
La stratégie réagit rapidement et peut capturer les tendances à court terme plus rapidement. Pendant ce temps, le filtrage du corps aide à réduire le bruit et à éviter d'être induit en erreur par de fausses ruptures.
La stratégie est assez sensible aux changements de prix, facilement induite en erreur par de faux signaux sur le marché. En outre, les pertes d'arrêt peuvent se déclencher fréquemment sur le marché à forte volatilité. Nous pouvons assouplir la plage de stop loss et optimiser les paramètres du RSI pour réduire la probabilité de faux signal.
Nous pouvons tester différents paramètres périodiques des indicateurs pour optimiser la stratégie et trouver la meilleure combinaison de paramètres.
Dans l'ensemble, il s'agit d'une stratégie à court terme efficace et réactive. Avec une certaine optimisation des paramètres et du modèle, elle a le potentiel d'améliorer davantage la stabilité et la rentabilité. Elle mérite une recherche et un suivi continus par les traders quant.
/*backtest start: 2023-11-03 00:00:00 end: 2023-12-03 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title = "Noro's Fast RSI Strategy v1.1", shorttitle = "Fast RSI str 1.1", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 5) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") rsiperiod = input(7, defval = 7, minval = 2, maxval = 50, title = "RSI Period") limit = input(30, defval = 30, minval = 1, maxval = 100, title = "RSI limit") rsisrc = input(close, defval = close, title = "RSI Source") 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), rsiperiod) fastdown = rma(-min(change(rsisrc), 0), rsiperiod) fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown)) uplimit = 100 - limit dnlimit = limit //Body body = abs(close - open) emabody = ema(body, 30) / 3 //Signals bar = close > open ? 1 : close < open ? -1 : 0 up = bar == -1 and fastrsi < dnlimit and body > emabody dn = bar == 1 and fastrsi > uplimit and body > emabody exit = ((strategy.position_size > 0 and fastrsi > dnlimit) or (strategy.position_size < 0 and fastrsi < uplimit)) and body > emabody //Trading if up strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00))) if dn strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00))) if time > timestamp(toyear, tomonth, today, 00, 00) or exit strategy.close_all()