Esta estratégia é baseada na concepção do indicador da faixa de Bol, quando o preço quebra a faixa de Bol para baixo, é tomada a operação de fazer mais ou fazer menos. A estratégia é lucrativa ao capturar a situação de ruptura.
Concretamente, a estratégia primeiro calcula o SMA médio de comprimento em comprimento, e o trajeto ascendente e descendente calculado em múltiplos diferenciais padrão. Quando o preço de fechamento irrompe no trajeto descendente de baixo para cima, faça uma entrada adicional; Quando o preço de fechamento irrompe no trajeto ascendente de cima para baixo, faça uma entrada de fechamento.
A estratégia tenta capturar a expansão de preços após a ruptura da trajetória ascendente e descendente. A ruptura da trajetória descendente é vista como um aumento da força dos lados mais fortes, e a ruptura da trajetória ascendente é vista como um aumento da força dos lados mais baixos, quando a negociação é favorável.
Os riscos acima mencionados podem ser reduzidos por meio da otimização das condições de entrada, adição de estratégias de stop loss e introdução de filtros de tendência.
Esta estratégia é uma estratégia de ruptura baseada em Bollinger Bands, que se beneficia da captura de situações de ruptura. A vantagem é a simplicidade da idéia e a facilidade de implementação; A desvantagem é a facilidade de ser enganado por situações de curvatura.
/*backtest
start: 2023-08-21 00:00:00
end: 2023-09-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=2
strategy("Noro's Bollinger Strategy v1.0", shorttitle = "Bollinger str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 5)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
length = input(20, minval=1)
mult = input(1.0, minval=0.001, maxval=50)
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")
source = close
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
up = close < lower
dn = close > upper
exit = (strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)
if up
strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, 01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00)))
if dn
strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, 01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00)))
if time > timestamp(toyear, tomonth, 31, 00, 00) or exit
strategy.close_all()