A estratégia é baseada na geração de sinais de negociação em bandas de Brin e duas linhas de equilíbrio, em combinação com filtragem de tendências, com o objetivo de alcançar altas taxas de ganho e boas taxas de perda.
O uso de correia de Brin para determinar os sinais de alta, média e baixa frequência. Quando o preço toca a linha de cima, olha para cima, quando toca a linha de baixo, olha para cima.
Para determinar a tendência, use a média média de curto prazo de 20 e a média de longo prazo de 60 anos. Quando a média de curto prazo é usada, ela é positiva e quando a média de longo prazo é usada, é negativa.
A largura da faixa de Brin varia de acordo com a posição de parada. Quando a largura da faixa de Brin é superior a 0,5%, a posição de parada é inferior; quando a largura é inferior a 0,5%, a posição de parada é reduzida a metade da distância entre as faixas inferiores.
Condições de entrada: o preço de ruptura do trilho abaixo do bullish serve como sinal de fazer mais, o preço de ruptura do trilho acima do bearish serve como sinal de fazer mais.
Condições de saída: parar quando tocar a correia de Brin em linha reta ou em linha média de curta duração; parar quando tocar a correia de Brin em linha reta ou em linha média de curta duração.
Condição de parada: parada de parada quando o preço cai abaixo da faixa de Brin para baixo; parada de parada quando o preço quebra a faixa de Brin para cima.
O uso de duas linhas de equilíbrio para julgar a tendência permite filtrar de forma eficaz a tendência desconhecida ou o ruído de um mercado compilado.
A faixa de brinquedo central serve como resistência de suporte, a faixa superior e inferior como ponto de parada dinâmico, para controlar o risco.
Ajuste a amplitude de stop loss de acordo com a largura de banda de Brin para reduzir a probabilidade de que o stop loss seja ativado e garantir que o stop loss esteja em uma posição razoável.
A tendência é de que os investidores deveriam ter uma estratégia de negociação mais orientada para a tendência.
A dupla linha de equilíbrio gera uma maior probabilidade de falsas rupturas, podendo perder o ponto de viragem da tendência. O ciclo de equilíbrio pode ser apropriadamente reduzido.
A zona Brin pode ser facilmente envolvida em tendências de turbulência. Isso pode ser evitado reduzindo a frequência de negociação.
A posição de suspensão é facilmente atingida quando está perto da resistência de suporte. O alcance de suspensão pode ser afastado adequadamente.
Oportunidade de não ser capaz de capturar efetivamente um retorno de linha curta. O tempo de detenção pode ser reduzido adequadamente.
Optimizar os parâmetros de ciclo de linha média para encontrar o ambiente de mercado adequado para a estratégia.
Optimizar o parâmetro de multiplicidade da faixa de Bryn para equilibrar a probabilidade de quebrar o stop loss.
Adicionar outros indicadores para a verificação multi-factor e melhorar a qualidade do sinal.
A análise de tendências, combinada com a energia do volume de transações, evita desvios.
Optimizar a gestão de fundos, como por exemplo, a quota fixa, o stop loss fixo, etc., para controlar as perdas individuais.
Tratamento de choques de preços, como por exemplo, largos saltos de vaga.
Esta estratégia é mais estável em geral, com duas linhas de equilíbrio para determinar a direção da tendência, a faixa de Bryn fornece resistência de suporte e configura um stop loss dinâmico. Mas também há algumas limitações, como erro de avaliação de tendência, stop loss muito recente e outros problemas.
/*backtest
start: 2022-10-18 00:00:00
end: 2023-10-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy(title="yuthavithi BB Scalper 2 strategy", overlay=true)
len = input(20, minval=1, title="Length")
multiplier = input(4, minval=1, title="multiplier")
trendTimeFrame = input(60, minval=1, title="Trend Time Frame")
useTrendFilter = input(true, type=bool, title = "Use Trend Filter")
src = input(close, title="Source")
out = sma(src, len)
//plot(out, title="SMA", color=blue)
stdOut = stdev(close, len)
bbUpper = out + stdOut * multiplier
bbLower = out - stdOut * multiplier
bbUpper2 = out + stdOut * (multiplier / 2)
bbLower2 = out - stdOut * (multiplier / 2)
bbUpperX2 = out + stdOut * multiplier * 2
bbLowerX2 = out - stdOut * multiplier * 2
bbWidth = (bbUpper - bbLower) / out
closeLongTerm = request.security(syminfo.tickerid, tostring(trendTimeFrame), close)
smaLongTerm = request.security(syminfo.tickerid, tostring(trendTimeFrame), sma(close,20))
//plot(smaLongTerm, color=red)
trendUp = useTrendFilter ? (closeLongTerm > smaLongTerm) : true
trendDown = useTrendFilter? (closeLongTerm < smaLongTerm) : true
bearish = ((cross(close,bbUpper2) == 1) or (cross(close,out) == 1)) and (close[1] > close) and trendDown
bullish = ((cross(close,bbLower2) == 1) or (cross(close,out) == 1)) and (close[1] < close) and trendUp
closeBuy = (high[1] > bbUpper[1]) and (close < bbUpper) and (close < open) and trendUp
closeSell = (((low[1] < bbLower[1]) and (close > bbLower)) or ((low[2] < bbLower[2]) and (close[1] > bbLower[1]))) and (close > open) and trendDown
cutLossBuy = iff(bbWidth > 0.005, (low < bbLower) and (low[1] > bbLower[1]) and trendUp, (low < bbLowerX2) and (low[1] > bbLowerX2[1]) and trendUp)
cutLossSell = iff(bbWidth > 0.005, (high > bbUpper) and (high[1] < bbUpper[1]) and trendDown, (high > bbUpperX2) and (high[1] < bbUpperX2[1]) and trendDown)
if (bullish)
strategy.entry("Buy", strategy.long, comment="Buy")
if (bearish)
strategy.entry("Sell", strategy.short, comment="Sell")
strategy.close("Buy", closeBuy or cutLossBuy)
strategy.close("Sell", closeSell or cutLossSell)