
La stratégie est un système de trading quantitatif basé sur des bris dynamiques des bandes de Bollinger. Elle combine plusieurs types de moyennes mobiles (incluant SMA, EMA, SMMA, WMA, VWMA) pour construire des bandes de Bollinger et prendre des décisions de négociation en fonction de la relation entre les prix et les bandes de Bollinger. L’idée centrale de la stratégie est de capturer les tendances à la hausse lorsque les prix franchissent les bandes de Bollinger et de les arrêter en temps opportun lorsque les prix tombent en dessous.
Le principe de fonctionnement de la stratégie comprend principalement les éléments clés suivants:
Il s’agit d’un système de négociation complet basé sur la courbe de Bryn Mawr, doté d’une bonne adaptabilité et d’une grande extensibilité. Il est capable de s’adapter à différents environnements de marché grâce à la sélection de plusieurs types de moyennes mobiles et à des paramètres flexibles. Le mécanisme de gestion des risques de la stratégie est relativement parfait, mais il reste encore de la place pour l’optimisation.
/*backtest
start: 2024-06-30 00:00:00
end: 2025-02-18 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Binance","currency":"DOGE_USDT"}]
*/
//@version=6
strategy(shorttitle="BB Demo", title="Demo GPT - Bollinger Bands", overlay=true, commission_type=strategy.commission.percent, commission_value=0.1, slippage=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// Inputs
length = input.int(20, minval=1, title="Length")
maType = input.string("SMA", "Basis MA Type", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
src = input.source(close, title="Source")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")
offset = input.int(0, "Offset", minval=-500, maxval=500)
// MA Calculation Function
ma(source, length, _type) =>
switch _type
"SMA" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
"SMMA (RMA)" => ta.rma(source, length)
"WMA" => ta.wma(source, length)
"VWMA" => ta.vwma(source, length)
// Indicator Calculations
basis = ma(src, length, maType)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
// Visual Plots
plot(basis, "Basis", color=color.new(#2962FF, 0), offset=offset)
p1 = plot(upper, "Upper", color=color.new(#F23645, 0), offset=offset)
p2 = plot(lower, "Lower", color=color.new(#089981, 0), offset=offset)
fill(p1, p2, color=color.rgb(33, 150, 243, 95), title="Background")
// Strategy Logic
longCondition = close > upper
exitCondition = close < lower
if longCondition
strategy.entry("Long", strategy.long)
if exitCondition
strategy.close("Long")