Chiến lược MACD BB Breakout là một chiến lược giao dịch dựa trên chỉ số MACD và Bollinger Bands. Chiến lược sử dụng chỉ số MACD để nắm bắt xu hướng thị trường ngắn hạn trong khi sử dụng Bollinger Bands để xác định các khu vực mua quá nhiều và bán quá nhiều trên thị trường. Khi chỉ số MACD vượt qua Bollinger Band trên, chiến lược đi vào vị trí dài; khi chỉ số MACD vượt qua Bollinger Band dưới, chiến lược đi vào vị trí ngắn.
Nguyên tắc của Chiến lược Breakout MACD BB là như sau:
Chiến lược MACD BB Breakout kết hợp chỉ số MACD và Bollinger Bands để bắt đầu giao dịch trong giai đoạn đầu hình thành xu hướng. Sức mạnh của chiến lược nằm trong khả năng nắm bắt xu hướng ngắn hạn và xem xét sự biến động giá. Tuy nhiên, nó cũng phải đối mặt với những thách thức như rủi ro rút vốn, giao dịch thường xuyên và tối ưu hóa tham số. Thông qua xác nhận xu hướng, dừng lỗ năng động và thích nghi tham số, tính mạnh mẽ và khả năng thích nghi của chiến lược có thể được tăng thêm.
/*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")