
La stratégie de rupture de la bande de volatilité double est une stratégie de suivi de la tendance. Elle utilise les hauts et les bas de la bande de volatilité pour déterminer la tendance des prix et établit des positions multiples lorsque les prix franchissent la bande de volatilité interne et des positions plates lorsque les prix franchissent la bande de volatilité externe.
La stratégie commence par calculer la moyenne et l’écart-type pour une période donnée, et construit une bande de deux ondes en ajustant les valeurs de l’écart-type. La bande interne est constituée d’une moyenne positive et d’un écart-type négatif, tandis que la bande externe est constituée d’une moyenne positive et d’un écart-type négatif et demi.
Lorsque le prix dépasse la trajectoire interne, le cours est considéré comme en hausse et donc comme en hausse; lorsque le prix dépasse la trajectoire interne, le cours est considéré comme en baisse et donc comme en baisse.
La condition de sortie du stop est que le prix tombe sur la trajectoire descendante externe. La condition de sortie du stop est que le prix franchisse la trajectoire descendante externe.
La stratégie prévoit également des mécanismes de retrait tels que le stop-loss, le stop-loss et le stop-loss tracking.
Les avantages de la stratégie de rupture de la bande de fréquence sont les suivants:
Il y a aussi des risques liés à la stratégie de rupture de la bande de fréquences:
Les paramètres peuvent être adaptés en fonction des risques ci-dessus, ou filtrés en combinaison avec d’autres indicateurs, ou contrôlés manuellement pour réduire le risque de percée.
Les stratégies de rupture de la bande de fréquences peuvent être optimisées dans les domaines suivants:
La stratégie de rupture de la bande de doubles oscillations est une stratégie de suivi de tendance typique, qui utilise la zone de gain de la bande de doubles oscillations et définit un mécanisme de sortie scientifique pour contrôler les risques, qui peut être plus efficace si les paramètres sont optimisés et les risques contrôlés.
/*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)