
La stratégie de négociation en bandes de Bourse à sélection multiple est une stratégie de négociation quantitative qui combine un indicateur de bandes de Bourse, un indicateur de ligne moyenne, un indicateur RSI et une caractéristique de diagramme en ligne K pour filtrer les conditions multiples et émettre un signal de négociation lorsque les conditions sont remplies. Il s’agit d’une stratégie de suivi de tendance typique qui permet de tirer profit des fluctuations de la tendance des prix sur la ligne moyenne et longue.
La stratégie utilise principalement trois indicateurs: la bande de Brin, la moyenne et le RSI. Le milieu de la bande de Brin est la moyenne mobile simple de n jours du prix, et le haut et le bas de la bande sont respectivement le milieu + 2 fois l’écart standard et le milieu - 2 fois l’écart standard. L’indicateur RSI est un nombre compris entre 0 et 100 calculé sur la base de la hausse et de la baisse d’une période donnée.
La stratégie génère un signal de transaction selon les trois conditions principales suivantes:
(1) Brin avec une rupture de la trajectoire descendante et un rebond de l’entité de la ligne K. Faire plus lorsque le prix de clôture est en rupture de la trajectoire descendante et que la couleur de l’entité de la ligne K est opposée à la direction de la tendance actuelle.
(2) Brin avec la rupture de la voie et le rebond de l’entité de la ligne K. Lorsque le prix de clôture est en train de traverser la voie et que la couleur de l’entité de la ligne K est opposée à la direction de la tendance actuelle, faites une pause.
(3) L’entité de la ligne K se déplace. Si la direction de la position est la même que la couleur de l’entité de la ligne K se déplace, alors la position est nulle.
En plus de cela, la stratégie a mis en place des conditions auxiliaires telles que le filtre homogène, le filtre entité K et le filtre RSI pour contrôler strictement l’entrée.
Il est possible de réduire le risque en ajustant les paramètres des bandes de Bryn et en contrôlant strictement les arrêts de perte.
Cette stratégie est une stratégie typique de suivi de la tendance de la ligne médiane et longue. En sélectionnant des conditions multiples, en contrôlant strictement le moment d’entrée et de sortie, en adoptant une méthode de négociation de tendance, on peut réduire les transactions inutiles et capturer la tendance de la ligne médiane du marché.
/*backtest
start: 2023-12-17 00:00:00
end: 2024-01-16 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=3
strategy("Noro's Bollinger Strategy v1.4", shorttitle = "Bollinger str 1.4", overlay = true )
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")
length = input(20, defval = 20, minval = 1, maxval = 1000, title = "Bollinger Length")
mult = input(1, defval = 1, minval = 0.001, maxval = 50, title = "Bollinger Mult")
source = input(ohlc4, defval = ohlc4, title = "Bollinger Source")
usebf = input(true, defval = true, title = "Use body-filter")
usecf = input(true, defval = true, title = "Use color-filter")
userf = input(true, defval = true, title = "Use RSI-filter")
fromyear = input(1900, defval = 1900, 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")
showbands = input(true, defval = true, title = "Show Bollinger Bands")
//Bollinger Bands
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
//Lines
col = showbands ? black : na
plot(upper, linewidth = 1, color = col)
plot(basis, linewidth = 1, color = col)
plot(lower, linewidth = 1, color = col)
//Body filter
nbody = abs(close - open)
abody = sma(nbody, 10)
body = nbody > abody / 2 or usebf == false
//Color filter
bar = close > open ? 1 : close < open ? -1 : 0
gb = bar == 1 or usecf == false
rb = bar == -1 or usecf == false
//RSI Filter
fastup = rma(max(change(close), 0), 7)
fastdown = rma(-min(change(close), 0), 7)
rsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))
ursi = rsi > 70 or userf == false
drsi = rsi < 30 or userf == false
//Signals
up = close <= lower and rb and body and drsi and (close < strategy.position_avg_price or strategy.position_size == 0)
dn = close >= upper and gb and body and ursi and (close > strategy.position_avg_price or strategy.position_size == 0)
exit = ((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body
//Trading
if up
strategy.entry("Long", strategy.long, needlong == false ? 0 : na)
if dn
strategy.entry("Short", strategy.short, needshort == false ? 0 : na)
if exit
strategy.close_all()