
Cette stratégie est basée sur l’indicateur RSI. Elle est conçue comme un simple système de suivi de tendance, permettant de déterminer la direction de la tendance du marché à partir de l’indicateur RSI sur une période donnée.
La stratégie utilise le RSI pour déterminer les tendances du marché et les zones de survente des zones de survente des zones de survente.
Tout d’abord, le RSI est calculé, puis les moyennes mobiles et l’écart-type du RSI sont calculés pour calculer la bande de Boehm. L’indicateur RSI fluctue entre 0 et 1, et la bande de Boehm est déterminée par l’écart-type de la zone de survente et de survente.
Lorsque le RSI génère un signal d’achat lorsqu’il passe de la voie inférieure à la voie supérieure, et un signal de vente lorsqu’il passe de la voie supérieure à la voie inférieure, pour réaliser le suivi de la tendance. Après l’entrée de la stratégie, ne mettez pas de stop loss et ne déposez pas jusqu’à la fin de la date spécifiée.
La stratégie utilise simplement et efficacement l’indicateur RSI pour déterminer la direction de la tendance, en plus de déterminer le moment de la transaction spécifique avec la bande de Brent. En limitant la plage de dates de transaction, les risques inutiles peuvent être évités.
Les directions d’optimisation
Cette stratégie est généralement une stratégie de suivi de tendance très simple et directe. En utilisant le RSI pour juger de la tendance, Brin a un filtre pour les signaux, limitant la gamme de dates de négociation, permettant de suivre efficacement la tendance et de contrôler les risques. Cependant, la stratégie peut être optimisée davantage, en gardant une base simple et efficace.
/*backtest
start: 2022-10-19 00:00:00
end: 2023-10-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Gidra
//2018
//@version=2
strategy(title = "Gidra's RSI or MFI Strategy v0.1", shorttitle = "Gidra's RSI or MFI v0.1", overlay = false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 1)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
src = input(close, title="source")
lengthRSI = input(14, title="RSI or MFI length")
// RSI %B
useRSI = input(true, title="use RSI or MFI")
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")
//MFI
upper = sum(volume * (change(src) <= 0 ? 0 : src), lengthRSI)
lower = sum(volume * (change(src) >= 0 ? 0 : src), lengthRSI)
mf = rsi(upper, lower)
//RSI
rsi = useRSI?rsi(src, lengthRSI): mf
// %B
length = input(50, minval=1, title="BB length")
mult = input(1.618, minval=0.001, maxval=50)
basis = sma(rsi, length)
dev = mult * stdev(rsi, length)
upperr = basis + dev
lowerr = basis - dev
bbr = (rsi - lowerr)/(upperr - lowerr)
plot(bbr, color=black, transp=0, linewidth=2)
// band1 = hline(1, color=white, linestyle=dashed)
// band0 = hline(0, color=white, linestyle=dashed)
// fill(band1, band0, color=teal)
hline(0.5, color=white)
//Signals
up = bbr >= 0 and bbr[1] < 0
dn = bbr <= 1 and bbr[1] > 1
//exit = ((bbr[1] < 0.5 and bbr >= 0.5) or (bbr[1] > 0.5 and bbr <= 0.5))
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]
//Trading
if up
strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if dn
strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, 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()