
A estratégia é uma estratégia de rastreamento de movimentos de volumes baseada no Brinband. Combina o indicador Brinband para determinar a tendência do mercado e os pontos de reversão, para rastrear os movimentos do mercado através da configuração de posições em aberto.
O indicador central da estratégia é a faixa de Brin. A faixa de Brin é composta por um meio, um meio e um meio. O meio é uma média móvel de n dias, e o meio e o meio são os desvios do intervalo padrão de subida e descida. Quando o preço está perto do meio e do meio, é visto como um sinal de super-compra e super-venda.
A estratégia inclui simultaneamente posições de construção de tendência e posições de construção de reversão, correspondendo respectivamente a diferentes oportunidades de negociação. A posição de construção de tendência requer a trajectória central como referência de resistência de suporte, formando o efeito de desvio de ruptura. A posição de construção de reversão de transformação é formada diretamente na faixa de Brin e reverte perto da trajectória inferior.
A estratégia combina a característica de sobrecompra e sobrevenda da faixa de Brin com o julgamento do ponto de reversão. Isso permite que ela seja aplicada simultaneamente em mercados de tendência e de choque, capturando diferentes tipos de oportunidades de negociação. A configuração de saída de parada da estratégia impede a expansão dos perdas.
Em comparação com a estratégia simples de Brin, o julgamento lógico da tendência incluída na estratégia torna a posição mais estável, mas também aproveita a oportunidade de reversão. Isso aumenta a taxa de comunicação. Em segundo lugar, a negociação bidirecional de múltiplos espaços também utiliza mais amplamente as oportunidades de negociação em diferentes mercados.
A estratégia baseia-se principalmente na característica de sobrecompra e sobrevenda das faixas de Brin. Assim, quando os preços são fortemente flutuantes, os intervalos das faixas de Brin aumentam constantemente, o que pode levar a várias posições perdidas.
Para a falha de uma faixa de Boolean, pode-se reduzir o parâmetro de n dias, tornando a faixa de Boolean mais sensível. Ou reduzir o seu alcance, reduzindo a probabilidade de causar perdas. Para o julgamento de curva de reversão, pode-se reduzir o erro, otimizando o parâmetro de ruptura.
A estratégia pode ser otimizada em várias áreas:
A estratégia é uma extensão e otimização efetiva da estratégia padrão de Brin. O julgamento de desvio de tendência adicionado aumenta a estabilidade e aproveita as oportunidades de reversão. A configuração de negociação bidirecional e de parada de perda também torna a estratégia mais robusta. Otimizando os parâmetros e adicionando mais filtros, a eficácia pode ser ainda melhorada
/*backtest
start: 2023-11-20 00:00:00
end: 2023-11-27 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=3
strategy("Noro's Bollinger Strategy v1.3", shorttitle = "Bollinger str 1.3", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 5)
//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 ohlc4 >= basis and ohlc4 < upper and (close < strategy.position_avg_price or strategy.position_size == 0) and uset
dn1 = bar == 1 and ohlc4 <= basis and ohlc4 > 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, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if dn1 or dn2
strategy.entry("Short", strategy.short, needshort == false ? 0 : na, 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()