
Cette stratégie est une stratégie de trading qui utilise l’indicateur RSI pour identifier les tendances de choc et saisir les opportunités de renversement de tendance au cours des chocs. La stratégie détermine si le prix est entré dans la zone de choc à l’aide de l’indicateur RSI rapide et de la combinaison de l’entité K-Line et du signal polyvalent du RSI rapide pour déterminer le moment d’entrée.
La stratégie fonctionne principalement selon les principes suivants:
Plus précisément, la stratégie utilise le RSI à deux cycles pour déterminer si le prix entre dans la zone de choc 30-70. En même temps, il est nécessaire que l’entité de la ligne K dépasse la ligne moyenne de 1⁄4 ou 1⁄2 pour produire un signal de transaction. Ainsi, grâce à un jugement à deux conditions, il est possible de filtrer efficacement les faux signaux de choc et de s’assurer qu’ils n’entrent en jeu que lorsque le choc est réel.
Cette stratégie présente les avantages suivants:
Cette stratégie comporte également des risques à prendre en compte:
Pour contrôler les risques, il est recommandé d’ajuster la combinaison de paramètres, de vérifier en temps réel et de mettre en place un mécanisme d’arrêt des pertes.
Il y a encore de la place pour optimiser cette stratégie:
La stabilité et la rentabilité de la stratégie devraient être encore améliorées par des moyens tels que l’intégration multi-indicateurs, l’ajustement des paramètres adaptatifs et la négociation algorithmique.
La stratégie de négociation RSI à basse fréquence, qui capte les fluctuations des prix et le double filtrage des indicateurs RSI pour déterminer le moment d’entrée, est une stratégie efficace qui mérite une étude approfondie et une utilisation. En pratique, il est nécessaire de prêter attention aux risques et d’effectuer des ajustements d’optimisation en plusieurs dimensions pour améliorer encore l’efficacité de la stratégie.
/*backtest
start: 2023-01-07 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title = "Noro's FRSI Strategy v1.22", shorttitle = "FRSI str 1.22", overlay = true )
//Settings
uprsiperiod = input(2, defval = 2, minval = 2, maxval = 50, title = "RSI UP Period")
dnrsiperiod = input(9, defval = 9, minval = 2, maxval = 50, title = "RSI DN Period")
limit = input(30, defval = 30, minval = 1, maxval = 100, title = "RSI limit")
rsisrc = input(close, defval = close, title = "RSI Price")
rb = input(1, defval = 1, minval = 1, maxval = 5, title = "RSI Bars")
sps = 0
fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2018, defval = 2018, 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), uprsiperiod)
fastdown = rma(-min(change(rsisrc), 0), dnrsiperiod)
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
ur = fastrsi > uplimit
dr = fastrsi < dnlimit
uprsi = rb == 1 and ur ? 1 : rb == 2 and ur and ur[1] ? 1 : rb == 3 and ur and ur[1] and ur[2] ? 1 : rb == 4 and ur and ur[1] and ur[2] and ur[3] ? 1 : rb == 5 and ur and ur[1] and ur[2] and ur[3] and ur[4] ? 1 : 0
dnrsi = rb == 1 and dr ? 1 : rb == 2 and dr and dr[1] ? 1 : rb == 3 and dr and dr[1] and dr[2] ? 1 : rb == 4 and dr and dr[1] and dr[2] and dr[3] ? 1 : rb == 5 and dr and dr[1] and dr[2] and dr[3] and dr[4] ? 1 : 0
//Body
body = abs(close - open)
emabody = ema(body, 30)
//Signals
up = bar == -1 and sps == 0 and dnrsi and body > emabody / 4
dn = bar == 1 and sps == 0 and uprsi and body > emabody / 4
exit = bar == 1 and fastrsi > dnlimit and body > emabody / 2
//Trading
if up
strategy.entry("Long", strategy.long)
sps := 1
if exit
strategy.close_all()
sps := 0