
Il s’agit d’une stratégie de négociation utilisant l’indicateur de la ceinture de Brin. Cette stratégie vise à identifier les moments de forte fluctuation des prix et à prendre des décisions d’achat ou de vente en conséquence.
La stratégie détermine si le prix actuel est dans la zone de fluctuation en calculant les lignes de haut, de milieu et de bas de la ceinture de Brin, afin de déterminer le moment de la position ou de la position basse. Lorsque le prix est proche du haut de la ceinture, il est considéré comme une zone de limite à plusieurs têtes, la stratégie choisit de vendre une position basse; lorsque le prix est proche du bas de la ceinture, il est considéré comme une zone de limite à vide, la stratégie choisit d’acheter une position.
En outre, la stratégie introduit un facteur de renversement de tendance, qui déclenche une décision d’achat ou de vente correspondante en cas de signal de renversement. Plus précisément, la logique de la stratégie est la suivante:
Voici la logique de trading de base de la stratégie. En utilisant les caractéristiques des bandes de Bryn, combinées à la tendance et au facteur de revers, la stratégie tente de saisir les points de revers et de négocier lorsque la volatilité s’intensifie.
Les avantages de cette stratégie par rapport à une moyenne mobile ordinaire sont les suivants:
Dans l’ensemble, la stratégie a bien combiné le jugement des entités de la zone de Brin avec celui des entités de prix, en négociant à des points de retournement raisonnables, garantissant à la fois un certain niveau de profitabilité et une maîtrise des risques.
Cependant, cette stratégie comporte des risques, notamment:
En conséquence, il est possible d’optimiser à l’avenir les aspects suivants:
Cette stratégie est généralement un modèle de stratégie de trading typique de la Brin Belt. Elle évite les inconvénients de la plupart des transactions inefficaces qui peuvent être facilement générées en utilisant uniquement la Brin Belt.
/*backtest
start: 2023-12-18 00:00:00
end: 2024-01-17 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=3
strategy("Noro's Bollinger Strategy v1.2", shorttitle = "Bollinger str 1.2", overlay = true )
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
length = input(20, defval = 20, minval = 1, maxval = 1000, title = "Bollinger Length")
mult = input(2.0, defval = 2.0, minval = 0.001, maxval = 50, title = "Bollinger Mult")
source = input(ohlc4, defval = ohlc4, title = "Bollinger Source")
uset = input(true, defval = true, title = "Use trend entry")
usect = input(true, defval = true, title = "Use counter-trend entry")
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")
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
body = abs(close - open)
abody = ema(body, 30)
//Signals
bar = close > open ? 1 : close < open ? -1 : 0
up1 = bar == -1 and close >= basis and close < upper and (close < strategy.position_avg_price or strategy.position_size == 0) and uset
dn1 = bar == 1 and close <= basis and close > lower and (close > strategy.position_avg_price or strategy.position_size == 0) and uset
up2 = close <= lower and usect
dn2 = close >= upper and usect
exit = (strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open) and body > abody / 2
//Trading
if up1 or up2
strategy.entry("Long", strategy.long, needlong == false ? 0 : na)
if dn1 or dn2
strategy.entry("Short", strategy.short, needshort == false ? 0 : na)
if exit
strategy.close_all()