MACD BB Breakout Strategy adalah strategi perdagangan berdasarkan penunjuk MACD dan Bollinger Bands. Strategi ini menggunakan penunjuk MACD untuk menangkap trend pasaran jangka pendek sambil menggunakan Bollinger Bands untuk menentukan kawasan overbought dan oversold di pasaran. Apabila penunjuk MACD memecahkan di atas Bollinger Band atas, strategi memasuki kedudukan panjang; apabila penunjuk MACD memecahkan di bawah Bollinger Band bawah, strategi memasuki kedudukan pendek. Strategi ini bertujuan untuk menangkap trend pasaran jangka pendek dan memulakan perdagangan pada peringkat awal pembentukan trend.
Prinsip Strategi Penembusan MACD BB adalah seperti berikut:
Strategi BREAKOUT MACD menggabungkan penunjuk MACD dan Bollinger Bands untuk memulakan perdagangan pada peringkat awal pembentukan trend. Kekuatan strategi terletak pada keupayaannya untuk menangkap trend jangka pendek dan mempertimbangkan turun naik harga. Walau bagaimanapun, ia juga menghadapi cabaran seperti risiko penarikan, perdagangan yang kerap, dan pengoptimuman parameter. Melalui pengesahan trend, kehilangan berhenti dinamik, dan penyesuaian parameter, kekuatan dan daya adaptasi strategi dapat ditingkatkan lagi.
/*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")