Estratégia de triagem de tendência de média móvel dupla de dimensionamento de largura de banda de Bollinger


Data de criação: 2023-10-25 15:00:20 última modificação: 2023-10-25 15:00:20
cópia: 2 Cliques: 453
1
focar em
1166
Seguidores

Estratégia de triagem de tendência de média móvel dupla de dimensionamento de largura de banda de Bollinger

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.

Princípio da estratégia

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

Vantagens estratégicas

  1. 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.

  2. 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.

  3. 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.

  4. A tendência é de que os investidores deveriam ter uma estratégia de negociação mais orientada para a tendência.

Risco estratégico

  1. 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.

  2. A zona Brin pode ser facilmente envolvida em tendências de turbulência. Isso pode ser evitado reduzindo a frequência de negociação.

  3. 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.

  4. Oportunidade de não ser capaz de capturar efetivamente um retorno de linha curta. O tempo de detenção pode ser reduzido adequadamente.

Direção de otimização da estratégia

  1. Optimizar os parâmetros de ciclo de linha média para encontrar o ambiente de mercado adequado para a estratégia.

  2. Optimizar o parâmetro de multiplicidade da faixa de Bryn para equilibrar a probabilidade de quebrar o stop loss.

  3. Adicionar outros indicadores para a verificação multi-factor e melhorar a qualidade do sinal.

  4. A análise de tendências, combinada com a energia do volume de transações, evita desvios.

  5. Optimizar a gestão de fundos, como por exemplo, a quota fixa, o stop loss fixo, etc., para controlar as perdas individuais.

  6. Tratamento de choques de preços, como por exemplo, largos saltos de vaga.

Resumir

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.

Código-fonte da estratégia
/*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)