Strategi ini adalah versi yang lebih baik dari strategi perdagangan berbasis indikator MACD. Ini menggabungkan karakteristik indikator MACD yang mengikuti tren dengan ide-ide perdagangan momentum, menghasilkan sinyal perdagangan dengan menganalisis perbedaan antara rata-rata bergerak cepat dan lambat. Sementara itu, strategi ini juga memperkenalkan metode pengoptimalan seperti konfirmasi tren, konfirmasi penundaan sinyal, stop-loss persentase tetap dan take-profit, untuk meningkatkan ketahanan dan profitabilitas strategi.
Inti dari strategi ini adalah indikator MACD, yang terdiri dari perbedaan antara rata-rata bergerak cepat (EMA) dan rata-rata bergerak lambat (EMA). Ketika EMA cepat melintasi EMA lambat, itu menghasilkan sinyal beli atau jual. Secara khusus, ketika garis MACD menembus garis sinyal dari bawah ke atas, itu menghasilkan sinyal beli; ketika garis MACD jatuh di bawah garis sinyal dari atas ke bawah, itu menghasilkan sinyal jual.
Selain sinyal silang MACD dasar, strategi ini juga memperkenalkan mekanisme konfirmasi tren. Ini membandingkan dengan rata-rata bergerak sederhana (SMA) untuk menentukan apakah pasar saat ini berada dalam tren naik atau turun. Hanya ketika sinyal beli muncul dalam tren naik, atau sinyal jual muncul dalam tren turun, operasi perdagangan akan dilaksanakan. Ini secara efektif menghindari sinyal palsu yang dihasilkan di pasar osilasi.
Selain itu, strategi memperpanjang jendela waktu konfirmasi sinyal. yaitu, hanya ketika candlestick saat ini memenuhi kondisi beli atau jual dan candlestick sebelumnya juga memenuhi kondisi yang sama, transaksi yang sesuai akan dieksekusi. ini lebih meningkatkan keandalan sinyal.
Akhirnya, strategi menetapkan tingkat stop-loss dan take-profit persentase tetap. Setelah perdagangan dilakukan, harga stop-loss dan take-profit akan dihitung berdasarkan harga masuk, dan posisi akan ditutup secara otomatis setelah harga ini tercapai. Ini membantu mengendalikan risiko dan pengembalian satu transaksi.
Strategi ini adalah strategi trading yang ditingkatkan berdasarkan indikator MACD. Melalui konfirmasi tren, konfirmasi keterlambatan sinyal, stop-loss dan take-profit tetap, dan metode lainnya, meningkatkan ketahanan dan potensi keuntungan strategi. Namun, juga menghadapi risiko dalam optimasi parameter, pengenalan tren, indikator tunggal, data backtesting, dan aspek lainnya.
/*backtest start: 2023-05-08 00:00:00 end: 2024-05-13 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © sligetit //@version=5 strategy("Improved MACD_VXI Strategy", overlay=true) // Calculate MACD and Signal Line fastLength = input.int(13, title="Fast Length") slowLength = input.int(21, title="Slow Length") signalLength = input.int(8, title="Signal Length") fastMA = ta.ema(close, fastLength) slowMA = ta.ema(close, slowLength) macd = fastMA - slowMA signal = ta.sma(macd, signalLength) // Plot MACD and Signal Line plot(macd, color=color.red, linewidth=1) plot(signal, color=color.blue, linewidth=2) // Calculate Cross Signals with Trend Confirmation smaPeriod = input.int(50, title="SMA Period") sma = ta.sma(close, smaPeriod) trendUp = close > sma trendDown = close < sma crossOver = ta.crossover(signal, macd) crossUnder = ta.crossunder(signal, macd) buySignal = crossOver and trendUp sellSignal = crossUnder and trendDown // Execute Buy/Sell Operations if buySignal strategy.entry("Buy", strategy.long) if sellSignal strategy.entry("Sell", strategy.short) // Extend Signal Confirmation Time Window longSignal = crossOver[1] and trendUp[1] shortSignal = crossUnder[1] and trendDown[1] if longSignal strategy.entry("Buy", strategy.long) if shortSignal strategy.entry("Sell", strategy.short) // Set Fixed Percentage Stop Loss and Take Profit stopLossPercent = input.float(1, title="Stop Loss (%)") / 100 takeProfitPercent = input.float(2, title="Take Profit (%)") / 100 stopLossPrice = strategy.position_avg_price * (1 - stopLossPercent) takeProfitPrice = strategy.position_avg_price * (1 + takeProfitPercent) strategy.exit("Stop Loss/Profit", "Buy", stop=stopLossPrice, limit=takeProfitPrice) strategy.exit("Stop Loss/Profit", "Sell", stop=stopLossPrice, limit=takeProfitPrice)