
Chiến lược phá vỡ dải MACD BB là một chiến lược giao dịch dựa trên chỉ số MACD và chỉ số Bollinger Bands. Chiến lược này sử dụng chỉ số MACD để nắm bắt xu hướng ngắn hạn của thị trường và đồng thời sử dụng chỉ số Bollinger Bands để xác định khu vực mua và bán quá mức của thị trường.
Các nguyên tắc của chiến lược phá vỡ dải MACD BB như sau:
Chiến lược phá vỡ dải MACD BB bằng cách kết hợp chỉ số MACD và chỉ số Bollinger Bands để giao dịch trong giai đoạn đầu của sự hình thành xu hướng. Ưu điểm của chiến lược là có thể nắm bắt xu hướng ngắn hạn và tính đến biến động giá, nhưng cũng phải đối mặt với rủi ro độ lớn, giao dịch thường xuyên và thách thức tối ưu hóa tham số.
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
//AK MACD BB
strategy("AK MACD BB strategy", overlay = true)
// Inputs for TP and SL
tp_percent = input.float(1.0, title="Take Profit %") / 100
sl_percent = input.float(1.0, title="Stop Loss %") / 100
length = input.int(10, minval=1, title="BB Periods")
dev = input.float(1, minval=0.0001, title="Deviations")
//MACD
fastLength = input.int(12, minval=1, title="fastLength")
slowLength=input.int(26,minval=1)
signalLength=input.int(9,minval=1)
fastMA = ta.ema(close, fastLength)
slowMA = ta.ema(close, slowLength)
macd = fastMA - slowMA
//BollingerBands
Std = ta.stdev(macd, length)
Upper = (Std * dev + (ta.sma(macd, length)))
Lower = ((ta.sma(macd, length)) - (Std * dev))
Band1 = plot(Upper, color=color.gray, style=plot.style_line, linewidth=2,title="Upper Band")
Band2 = plot(Lower, color=color.gray, style=plot.style_line, linewidth=2,title="lower Band")
fill(Band1, Band2, color=color.blue, transp=75,title="Fill")
mc = macd >= Upper ? color.lime:color.red
// Indicator
plot(macd, color=mc, style =plot.style_circles,linewidth = 3, title="macd")
zeroline = 0
plot(zeroline,color= color.orange,linewidth= 2,title="Zeroline")
//buy
barcolor(macd >Upper ? color.yellow:na)
//short
barcolor(macd <Lower ? color.aqua:na)
if macd > Upper
strategy.entry("Long", strategy.long)
// strategy.exit("Long TP/SL", "Long", limit=close * (1 + tp_percent), stop=close * (1 - sl_percent), comment = "Long Exit" )
if macd < Lower
strategy.entry("Short", strategy.short)
// strategy.exit("Short TP/SL", "Short", limit=close * (1 - tp_percent), stop=close * (1 + sl_percent), comment = "Short Exit")