이 전략은 볼링거 밴드 기반의 거래 전략이다. 그것은 볼링거 밴드를 사용하여 구매 및 판매 신호를 생성하고 동적으로 스톱 로스 및 영업 수준을 설정합니다. 가격은 하위 밴드 아래로 넘어가면 구매 신호가 생성되며 가격이 상위 밴드 위에 넘어가면 판매 신호가 생성됩니다. 스톱 로스 레벨은 지난 기간 동안 가장 낮거나 가장 높은 가격에 설정되며, 영업 수준은 새로운 신호에 따라 동적으로 조정됩니다.
/*backtest start: 2024-04-01 00:00:00 end: 2024-04-30 23:59:59 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger Bands Strategy", overlay=true) // Bollinger Bands settings length = 20 src = close mult = 2.0 // Calculate Bollinger Bands basis = ta.sma(src, length) dev = mult * ta.stdev(src, length) upper = basis + dev lower = basis - dev // Plot Bollinger Bands plot(basis, color=color.blue, title="Middle Band") plot(upper, color=color.red, title="Upper Band") plot(lower, color=color.green, title="Lower Band") // Trade logic // Buy when the price crosses below the lower Bollinger Band buySignal = ta.crossover(lower, src) // Sell when the price crosses above the upper Bollinger Band sellSignal = ta.crossover(src, upper) // Define stop loss and take profit levels var float stopLoss = na var float takeProfit = na // Calculate stop loss and take profit levels if (buySignal) stopLoss := ta.lowest(low, length) takeProfit := na if (sellSignal) stopLoss := ta.highest(high, length) takeProfit := na // Update take profit on new signals if (buySignal) takeProfit := na if (sellSignal) takeProfit := na // Execute trades if (buySignal) strategy.entry("Buy", strategy.long, stop=stopLoss, limit=takeProfit) if (sellSignal) strategy.entry("Sell", strategy.short, stop=stopLoss, limit=takeProfit) // Plot signals on chart plotshape(series=buySignal, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy", title="Buy Signal") plotshape(series=sellSignal, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell", title="Sell Signal") // Alert conditions alertcondition(buySignal, title="Buy Alert", message="Buy Signal detected") alertcondition(sellSignal, title="Sell Alert", message="Sell Signal detected")