A estratégia baseia-se no indicador da faixa de Brin, fazendo mais quando o preço quebra a faixa de Brin para baixo e fechando quando o preço toca a faixa de Brin para cima. A estratégia usa o princípio de inclusão da faixa de Brin para rastrear a quebra anormal do preço e alcançar o objetivo de comprar baixo e vender alto.
Calcule o SMA da linha central da faixa de Bryn, usando uma média móvel simples do preço de fechamento recente.
A diferença padrão é StdDev, que reflete a amplitude de flutuação dos preços.
O SMA da linha central, somado ao desvio da diferença padrão, é traçado por Brin.
O SMA da linha central, menos o desvio do desvio padrão, é traçado por Brin.
Quando o preço de fechamento se aproxima de uma ruptura do trajeto de baixa para cima, faça uma entrada adicional.
Quando o preço toca a linha, considere que o preço é anormal e saia da posição.
A principal vantagem desta estratégia é que ela utiliza as características estatísticas dos indicadores de Brinks para rastrear os movimentos anormais do mercado e capturar as tendências. Comparada com a estratégia de média móvel convencional, a estratégia de Brinks tem vantagens:
O Brin corre para cima e para baixo e adapta-se automaticamente às flutuações do mercado.
A brecha é mais confiável como sinal de entrada.
O regresso ao eixo central é um sinal de parada razoável.
Os parâmetros podem ser ajustados para diferentes mercados.
Pode ser usado para capturar tendências de linha média e longa, mas também para as de linha curta.
Os principais riscos potenciais desta estratégia são:
A banda de brinquedos não funciona bem no mercado horizontal.
O sinal de ruptura pode ser falso e deve ser julgado com cautela.
A posição do pára-choque é demasiado ideal e pode ser melhorada para a prática.
A configuração incorreta dos parâmetros pode levar a transações excessivamente frequentes ou conservadoras.
O ciclo de resposta deve ser longo o suficiente para evitar a curvatura.
Correspondentes medidas de gestão de risco:
O indicador de volume de transações e o sinal de filtragem.
Optimizar parâmetros, testar a eficácia de dados em diferentes mercados.
Adição de parada móvel, parada rotativa.
Os sinais de avaliação devem ser desviados para evitar a perseguição.
A estratégia pode ser melhorada em:
Experimente diferentes tamanhos de parâmetros de faixa de Bryn para encontrar a melhor combinação.
Aumentar a linha média, MACD e outros indicadores filtrando sinais de ruptura.
Aplicação de algoritmos de aprendizagem de máquina para otimizar os parâmetros da faixa de Bryn.
Ao mesmo tempo, avaliar os pontos fortes e fracos e ajustar as posições.
Recolher dados de períodos mais longos, testar a estabilidade da estratégia.
Adição de um mecanismo de stop loss para controlar o risco.
A estratégia de correia de Brin é, em geral, uma estratégia de acompanhamento de tendências confiável. Ela é capaz de capturar de forma eficaz os preços de flutuação anormal. Mas também devemos estar atentos ao seu desvio com a prática real, e otimizar continuamente os parâmetros. Se for usado em um mercado real, é necessário realizar um rigoroso gerenciamento de risco e controlar os perdas individuais.
/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-12 04:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="BB training No Repainting (OTS Mode)", overlay=true)
// Strategy Rules:
// 1. Enter trade when price crosses above the lower band
// 2. Exit trade when price touches the upper band
//
// Chart Properties
testStartYear = input(2010, "Backtest Start Year")
testStartMonth = input(01, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0)
testStopYear = input(2030, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)
// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=input.bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and time >= testPeriodStart and time <= testPeriodStop ? #6c6f6c : na
bgcolor(testPeriodBackgroundColor, transp=97)
// User provided values
smaLength = input(title="SMA Length", type=input.integer, defval=20) // Middle band period length (moving average)
stdLength = input(title="StdDev Length", type=input.integer, defval=20) // Range to apply bands to
ubOffset = input(title="Upper Band Offset", type=input.float, defval=2.0, step=0.5) // Number of standard deviations above MA
lbOffset = input(title="Lower Band Offset", type=input.float, defval=2.0, step=0.5) // Number of standard deviation below MA
testPeriod() =>
time >= testPeriodStart and time <= testPeriodStop ? true : false
smaValue = sma(close, smaLength) // Middle band
stdDev = stdev(close, stdLength)
upperBand = smaValue + stdDev * ubOffset // Top band
lowerBand = smaValue - stdDev * lbOffset // Bottom band
// Plot bands to chart
plot(series=smaValue, title="SMA", color=color.green)
plot(series=upperBand, title="UB", color=color.blue, linewidth=2)
plot(series=lowerBand, title="LB", color=color.blue, linewidth=2)
longCondition = (crossover(close, lowerBand))
closeLongCondition = (close >= upperBand)
if (longCondition and testPeriod())
strategy.entry(id="CALL", long=true)
strategy.close(id="CALL", when=closeLongCondition)