
Die Strategie basiert auf den Bollinger Bands und erzeugt Handelssignale, indem die Preise die Bollinger Bands durchbrechen und nach unten gehen. Wenn die Preise nach oben gehen, machen Sie mehr, wenn die Preise nach unten gehen, machen Sie leer. Gleichzeitig ist die Strategie darauf ausgerichtet, die Volatilität des Marktes zu erfassen.
Die BB-Gleichgewichtsbrechstrategie ist eine Handelsstrategie, die auf den Bollinger-Bändern basiert, und handelt, indem sie die Gelegenheit erfasst, die Bollinger-Band zu überschreiten. Die Strategie hat den Vorteil, dass die Signale klar und einfach sind, und es gibt einige Risikokontrollen. Die Strategie hat jedoch auch einige Einschränkungen, wie z. B. eine möglicherweise zu hohe Handelsfrequenz, Signalverzögerungen usw.
/*backtest
start: 2023-06-08 00:00:00
end: 2024-06-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("BB Strategy", overlay=true)
// Input parameters
length = input.int(20, minval=1, title="Length")
maType = input.string("SMA", "Basis MA Type", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
src = input(close, title="Source")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")
offset = input.int(0, "Offset", minval=-500, maxval=500, title="Offset")
// Moving average 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)
// Calculate Bollinger Bands
basis = ma(src, length, maType)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
// Plot Bollinger Bands
plot(basis, "Basis", color=color.blue, offset=offset)
p1 = plot(upper, "Upper", color=color.red, offset=offset)
p2 = plot(lower, "Lower", color=color.green, offset=offset)
fill(p1, p2, title="Background", color=color.rgb(33, 150, 243, 95))
// Strategy logic
longCondition = ta.crossover(close, upper)
shortCondition = ta.crossunder(close, lower)
// Strategy entries and exits
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
if (shortCondition and strategy.position_size > 0)
strategy.close("Long")
if (longCondition and strategy.position_size < 0)
strategy.close("Short")