Analyse rapide de la stratégie RSI


Date de création: 2023-12-04 14:40:02 Dernière modification: 2023-12-04 14:40:02
Copier: 0 Nombre de clics: 605
1
Suivre
1619
Abonnés

Analyse rapide de la stratégie RSI

Nom de la stratégie

La stratégie de tendance RSI à deux vitesses extrêmes

Aperçu

Cette stratégie est une stratégie rapide qui utilise l’indicateur RSI pour déterminer la tendance des prix. Elle possède à la fois la capacité de faire plus et de faire moins et peut capturer des prix de ligne courte plus rapides.

Principe de stratégie

La stratégie utilise l’indicateur RSI amélioré pour juger de l’état de survente et de survente du prix, en combinaison avec le filtrage du bruit des entités de la ligne K. Lorsque le RSI est dans une zone de survente ou de survente et que le volume de l’entité de la ligne K est supérieur à 13 du volume moyen, faire un surplus ou un vide.

Analyse des avantages

La stratégie réagit rapidement et permet de capturer les courts courants les plus rapides; et le filtrage de l’entité aide à réduire le bruit et à éviter d’être induit en erreur par de faux rebond. La stratégie s’applique aux variétés à forte volatilité et permet d’obtenir des rendements plus élevés.

Analyse des risques

Cette stratégie est sensible à la réponse aux changements de prix et peut être facilement induite en erreur par de faux signaux sur le marché. De plus, les arrêts de marché à forte volatilité peuvent être déclenchés plus fréquemment.

Direction d’optimisation

Il est possible de tester différents paramètres de l’indicateur périodique pour optimiser la stratégie et trouver la meilleure combinaison de paramètres. En outre, il est possible d’envisager d’ajouter d’autres indicateurs, tels que les règles de négociation de la pirogue, pour aider à filtrer les signaux.

Résumer

Cette stratégie est globalement une stratégie de courte ligne très efficace et sensible. Elle est susceptible d’améliorer encore la stabilité et la rentabilité grâce à l’optimisation de certains paramètres et modèles. La stratégie mérite d’être étudiée et suivie par les traders quantifiés.

Code source de la stratégie
/*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()