Cette stratégie conçoit un système de négociation simple basé sur l'indicateur RSI, qui peut déterminer la direction de la tendance du marché à travers l'indicateur RSI et mettre en œuvre des positions longues et courtes automatisées dans une plage de dates spécifique.
La stratégie utilise l'indicateur RSI pour déterminer la tendance du marché et les bandes de Bollinger pour confirmer les zones de surachat et de survente.
La valeur de l'indice de surachat est calculée en fonction de la moyenne mobile et de l'écart type de l'indice de surachat. L'indice de surachat et de survente est déterminé par l'écart type.
Lorsque le RSI passe de la bande inférieure à la bande supérieure, un signal d'achat est généré. Lorsque le RSI passe de la bande supérieure à la bande inférieure, un signal de vente est généré, pour suivre la tendance. Après être entré sur le marché, aucun stop loss ou take profit n'est défini jusqu'à ce que les positions soient fermées à la fin de la plage de dates spécifiée.
La stratégie utilise simplement et efficacement le RSI pour déterminer la direction de la tendance et les bandes de Bollinger pour identifier des opportunités de trading spécifiques.
Directions d' optimisation:
En résumé, il s'agit d'une stratégie de suivi de tendance très simple et directe. En utilisant le RSI pour déterminer la tendance, les bandes de Bollinger pour filtrer les signaux et définir la plage de dates de négociation, vous pouvez suivre efficacement les tendances et contrôler les risques. Mais la stratégie peut être optimisée davantage. Tout en la gardant simple et efficace, des méthodes telles que le stop loss, l'optimisation des paramètres et le filtrage des signaux peuvent être ajoutées pour la rendre plus adaptée au trading en direct.
/*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()