
A estratégia de negociação de Brinks de seleção múltipla é uma estratégia de negociação quantitativa que combina o indicador de Brinks, o indicador de linha média, o indicador RSI e a característica do gráfico de linha K para a seleção de múltiplos termos, emitindo um sinal de negociação quando os termos são satisfeitos. Esta é uma estratégia típica de acompanhamento de tendências para lucrar com a captura de flutuações de tendências de preços nas linhas médias e longas.
A estratégia utiliza principalmente três indicadores: a faixa de Brin, a linha média e o RSI. Destes, a linha média da faixa de Brin é a média móvel simples de n dias do preço, a linha superior e a linha inferior são a faixa média + 2 vezes o diferencial padrão e a faixa média - 2 vezes o diferencial padrão. O indicador RSI é um valor entre 0 e 100, calculado com base em queda e queda em um determinado período.
A estratégia gera sinais de negociação através de três critérios principais:
(1) Brincar com a ruptura da trajetória descendente e a defesa da linha K. Faça mais quando o preço de fechamento atravessa a trajetória descendente e a cor da linha K é oposta à direção da tendência atual.
(2) O Brin corre corre correlacionado com a ruptura da trajetória e a defesa da linha K. Quando o preço de fechamento entra em trajetória abaixo e a cor da linha K é oposta à direção da tendência atual, faça uma defesa.
(3) A entidade de linha K gira. Se a direção da posição coincidir com a cor da entidade de linha K gira, a posição é zero.
Além disso, a estratégia também estabelece condições auxiliares, como filtros de linha uniforme, filtros de entidade de linha K e filtros RSI, para controlar rigorosamente a entrada.
Pode-se reduzir o risco através da regulação dos parâmetros da faixa de Bryn e do controle rigoroso do stop loss.
Esta estratégia é uma estratégia típica de acompanhamento de tendências de linha média e longa. Através da filtragem de múltiplos termos, controle rigoroso do tempo de entrada e saída, uso de métodos de negociação de tendências, pode-se reduzir as transações desnecessárias e capturar as tendências de linha média e longa do mercado.
/*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()