A estratégia de ruptura de banda de ondulação dupla é uma estratégia de acompanhamento de tendências. Ela usa os altos e baixos das bandas de ondulação para determinar a tendência dos preços e estabelece posições de vários pontos quando os preços quebram as bandas de ondulação internas e fecham as posições quando os preços caem nas bandas de ondulação externas.
A estratégia começa com a mediana e o desvio padrão dentro do período especificado, construindo uma dupla faixa de ondas, ajustando o valor do desvio padrão. A faixa de ondas interna é composta por um desvio padrão positivo e negativo da mediana, e a faixa de ondas externa é composta por um desvio padrão positivo e negativo da mediana.
Quando o preço quebra o trajeto interno, considere que o mercado começou um mercado de alta, portanto, faça mais; Quando o preço cai para baixo do trajeto interno, considere que o mercado começou um mercado de baixa, portanto, faça falta.
A condição de saída de um stop-loss após o excesso é que o preço caia no declínio externo. A condição de saída de um stop-loss após o fechamento é que o preço quebre no aumento externo.
A estratégia também estabelece mecanismos de saída, como stop loss, stop loss e stop loss tracking.
A estratégia de ruptura da banda de ondas duplas tem as seguintes vantagens:
A estratégia de ruptura das duas faixas de onda também tem riscos:
Para os riscos acima, os parâmetros podem ser adequadamente ajustados, ou filtrados em combinação com outros indicadores, ou monitorados manualmente para reduzir o risco de ruptura.
A estratégia de ruptura da banda de ondas duplas pode ser otimizada em vários aspectos:
A estratégia de ruptura de dupla faixa de flutuação é uma estratégia de acompanhamento de tendências mais típica, que determina a mudança de posição do preço em relação à faixa de flutuação geral, criando um sinal de negociação quando selecionado. A estratégia utiliza a dupla faixa de flutuação para definir a área de ganho e definir um mecanismo de saída científico para controlar o risco, que pode ter um melhor efeito se os parâmetros forem otimizados e o risco estiver controlado.
/*backtest
start: 2023-12-17 00:00:00
end: 2023-12-24 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("BB Strat",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,currency="USD",initial_capital=100, overlay=true)
l=input(title="length",defval=100)
pbin=input(type=float,step=.1,defval=.25)
pbout=input(type=float,step=.1,defval=1.5)
ma=sma(close,l)
sin=stdev(ma,l)*pbin
sout=stdev(ma,l)*pbout
inu=sin+ma
inb=-sin+ma
outu=sout+ma
outb=-sout+ma
plot(inu,color=lime)
plot(inb,color=lime)
plot(outu,color=red)
plot(outb,color=yellow)
inpTakeProfit = input(defval = 0, title = "Take Profit", minval = 0)
inpStopLoss = input(defval = 0, title = "Stop Loss", minval = 0)
inpTrailStop = input(defval = 0, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)
useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na
useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na
useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na
useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na
longCondition = close>inu and rising(outu,1)
exitlong = (open[1]>outu and close<outu) or crossunder(close,ma)
shortCondition = close<inb and falling(outb,1)
exitshort = (open[1]<outb and close>outb) or crossover(close,ma)
strategy.entry(id = "Long", long=true, when = longCondition)
strategy.close(id = "Long", when = exitlong)
strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitlong)
strategy.entry(id = "Short", long=false, when = shortCondition)
strategy.close(id = "Short", when = exitshort)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitshort)