Sumber dimuat naik... memuat...

Strategi pengoptimuman MACD berganda menggabungkan trend berikut dan perdagangan momentum

Penulis:ChaoZhang, Tarikh: 2024-05-14 17:35:54
Tag:MACDVXIEMASMA

img

Ringkasan

Strategi ini adalah versi yang lebih baik daripada strategi perdagangan berasaskan penunjuk MACD. Ia menggabungkan ciri-ciri trend berikut penunjuk MACD dengan idea perdagangan momentum, menjana isyarat perdagangan dengan menganalisis perbezaan antara purata bergerak cepat dan perlahan. Sementara itu, strategi ini juga memperkenalkan kaedah pengoptimuman seperti pengesahan trend, pengesahan kelewatan isyarat, peratusan tetap stop-loss dan mengambil keuntungan, untuk meningkatkan ketahanan dan keuntungan strategi.

Prinsip Strategi

Inti strategi ini adalah penunjuk MACD, yang terdiri daripada perbezaan antara purata bergerak pantas (EMA) dan purata bergerak perlahan (EMA). Apabila EMA pantas melintasi EMA perlahan, ia menghasilkan isyarat beli atau jual. Khususnya, apabila garis MACD menembusi garis isyarat dari bawah ke atas, ia menghasilkan isyarat beli; apabila garis MACD jatuh di bawah garis isyarat dari atas ke bawah, ia menghasilkan isyarat jual.

Selain isyarat persilangan MACD asas, strategi ini juga memperkenalkan mekanisme pengesahan trend. Ia membandingkan dengan purata bergerak mudah (SMA) untuk menentukan sama ada pasaran semasa berada dalam trend menaik atau penurunan. Hanya apabila isyarat beli muncul dalam trend menaik, atau isyarat jual muncul dalam trend menurun, operasi dagangan akan dilaksanakan. Ini berkesan mengelakkan isyarat palsu yang dihasilkan dalam pasaran berayun.

Di samping itu, strategi ini memperluaskan tetingkap masa pengesahan isyarat. iaitu, hanya apabila lilin semasa memenuhi syarat membeli atau menjual dan lilin sebelumnya juga memenuhi syarat yang sama, transaksi yang sesuai akan dilaksanakan. Ini lebih meningkatkan kebolehpercayaan isyarat.

Akhirnya, strategi menetapkan tahap stop-loss dan take-profit peratusan tetap. Setelah perdagangan dijalankan, harga stop-loss dan take-profit akan dikira berdasarkan harga masuk, dan kedudukan akan ditutup secara automatik sebaik sahaja harga ini dicapai. Ini membantu mengawal risiko dan pulangan satu transaksi.

Kelebihan Strategi

  1. Pengesahan trend berganda: Menggabungkan penilaian trend penunjuk MACD dan purata bergerak mudah dapat menapis isyarat palsu dalam pasaran yang berayun dengan berkesan.
  2. Pengesahan kelewatan isyarat: Memerlukan dua candlestick berturut-turut untuk memenuhi syarat membeli atau menjual secara serentak meningkatkan kebolehpercayaan isyarat.
  3. Stop-loss dan take-profit tetap: Menetapkan tahap stop-loss dan take-profit berdasarkan peratusan tetap membantu mengawal risiko dan mengunci keuntungan.
  4. Parameter fleksibel: Parameter seperti panjang garis cepat dan perlahan penunjuk MACD, panjang garis isyarat, dan tempoh SMA untuk penilaian trend boleh ditetapkan secara fleksibel untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.

Risiko Strategi

  1. Risiko pengoptimuman parameter: Strategi mengandungi beberapa parameter, dan kombinasi parameter yang berbeza mungkin membawa hasil yang sama sekali berbeza.
  2. Risiko pengiktirafan trend: Strategi ini bergantung pada penilaian yang betul mengenai trend.
  3. Risiko penunjuk tunggal: Walaupun strategi dioptimumkan berdasarkan MACD, ia masih bergantung terutamanya pada satu penunjuk.
  4. Kelemahan data backtesting: Keberkesanan strategi sangat bergantung kepada kualiti data sejarah. Jika data backtesting sangat berbeza dengan keadaan pasaran sebenar, ia mungkin meremehkan risiko sebenar strategi.

Arahan Pengoptimuman Strategi

  1. Gabungkan dengan penunjuk teknikal lain: Pertimbangkan untuk memperkenalkan penunjuk teknikal lain, seperti RSI, Bollinger Bands, dll., Untuk menganalisis pasaran dari pelbagai dimensi dan meningkatkan ketepatan isyarat.
  2. Stop-loss dan take-profit dinamik: Sesuaikan secara dinamik perkadaran stop-loss dan take-profit mengikut turun naik pasaran untuk menyesuaikan diri dengan perubahan pasaran.
  3. Memperkenalkan pengurusan kedudukan: Sesuaikan saiz kedudukan setiap transaksi secara dinamik mengikut faktor seperti kekuatan trend pasaran dan kualiti isyarat perdagangan untuk mengawal risiko dengan lebih baik.
  4. Memperkenalkan pembelajaran mesin: Cuba menggabungkan algoritma pembelajaran mesin dengan strategi untuk mengoptimumkan pemilihan parameter secara automatik dengan belajar dari data sejarah, meningkatkan kebolehsesuaian strategi.

Ringkasan

Strategi ini adalah strategi perdagangan yang lebih baik berdasarkan penunjuk MACD. Melalui pengesahan trend, pengesahan kelewatan isyarat, stop-loss tetap dan mengambil keuntungan, dan kaedah lain, ia meningkatkan ketahanan dan potensi keuntungan strategi. Walau bagaimanapun, ia juga menghadapi risiko dalam pengoptimuman parameter, pengenalan trend, penunjuk tunggal, data backtesting, dan aspek lain. Pada masa akan datang, kita boleh mempertimbangkan untuk mengoptimumkan strategi dari aspek seperti menggabungkan penunjuk lain, stop-loss dinamik dan mengambil keuntungan, pengurusan kedudukan, dan pembelajaran mesin untuk meningkatkan lagi kesan aplikasinya yang praktikal.


/*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)

Berkaitan

Lebih lanjut