Cette stratégie est une stratégie de trading conçue sur la base du modèle de déviation standard double des bandes de Bollinger. Elle utilise les rails supérieurs et inférieurs des bandes de Bollinger et un et deux écarts standard comme signaux de trading.
La stratégie calcule d'abord le rail moyen, le rail supérieur et le rail inférieur des bandes de Bollinger.déviation type, et le rail inférieur est le rail du milieu - 2La stratégie est basée sur les lignes de la ligne moyenne + 1 déviation standard et de la ligne moyenne - 1 déviation standard. Elles sont utilisées comme lignes de stop loss.
En général, cette stratégie est une stratégie de rupture typique des bandes de Bollinger. Elle utilise des écarts standards doubles pour accroître la rigueur du jugement du signal et adopte des lignes de stop loss doubles pour contrôler activement les risques. La stratégie a une certaine marge d'optimisation des paramètres. En ajustant des paramètres tels que la période du milieu du rail et le multiplicateur de déviation standard, une meilleure performance de la stratégie peut être obtenue. En même temps, la stratégie fait également face au problème commun des fausses ruptures dans les stratégies de bandes de Bollinger. En outre, il y a place à une amélioration et à une optimisation supplémentaires du mécanisme de stop loss.
/*backtest start: 2022-12-11 00:00:00 end: 2023-12-17 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 // Bollinger Bands: Madrid : 14/SEP/2014 11:07 : 2.0 // This displays the traditional Bollinger Bands, the difference is // that the 1st and 2nd StdDev are outlined with two colors and two // different levels, one for each Standard Deviation strategy(shorttitle='MBB', title='Bollinger Bands', overlay=true) src = input(close) length = input.int(34, minval=1) mult = input.float(2.0, minval=0.001, maxval=50) basis = ta.sma(src, length) dev = ta.stdev(src, length) dev2 = mult * dev upper1 = basis + dev lower1 = basis - dev upper2 = basis + dev2 lower2 = basis - dev2 colorBasis = src >= basis ? color.blue : color.orange pBasis = plot(basis, linewidth=2, color=colorBasis) pUpper1 = plot(upper1, color=color.new(color.blue, 0), style=plot.style_circles) pUpper2 = plot(upper2, color=color.new(color.blue, 0)) pLower1 = plot(lower1, color=color.new(color.orange, 0), style=plot.style_circles) pLower2 = plot(lower2, color=color.new(color.orange, 0)) fill(pBasis, pUpper2, color=color.new(color.blue, 80)) fill(pUpper1, pUpper2, color=color.new(color.blue, 80)) fill(pBasis, pLower2, color=color.new(color.orange, 80)) fill(pLower1, pLower2, color=color.new(color.orange, 80)) // Entry conditions longCondition = ta.crossover(close, upper1) shortCondition = ta.crossunder(close, lower1) // Entry and exit strategy strategy.entry("Buy", strategy.long, when=longCondition) strategy.entry("Sell", strategy.short, when=shortCondition) strategy.close("Buy", when=shortCondition) strategy.close("Sell", when=longCondition)