
Inti strategi ini adalah menggunakan EMA dan MACD untuk mengenal pasti arah trend dan masa masuk. Apabila harga menembusi EMA, ia menganggap bahawa trend telah berubah, dan penunjuk MACD yang terpisah mengukuhkan isyarat trend. Berdasarkan hubungan harga dengan EMA dan MACD, ia dapat menilai masa pembelian dan penjualan.
Strategi ini bergantung kepada garis EMA 20 kitaran dan penunjuk MACD untuk menentukan arah trend. Peraturan penjanaan isyarat perdagangan khusus adalah seperti berikut:
Sinyal beli: Apabila harga di bawah 20 EMA dan garis penunjuk MACD di bawah paksi 0, tunggu harga melintasi 20 EMA, sambil memeriksa sama ada garis penunjuk MACD sama-sama dengan pembetulan negatif atau baru sahaja dengan pembetulan negatif, jika dipenuhi, isyarat beli dikeluarkan pada harga 10 pcs di atas 20 EMA.
Sinyal jual: Apabila harga lebih tinggi daripada 20 EMA dan garis penunjuk MACD berada di atas paksi 0, tunggu harga menembusi ke bawah melintasi 20 EMA, sambil memeriksa sama ada garis penunjuk MACD bertukar positif-negatif atau baru bertukar positif-negatif, jika dipenuhi maka keluarkan isyarat jual pada harga 10 poin di bawah 20 EMA.
Strategi ini menggabungkan penilaian trend dan penapisan penunjuk untuk mengenal pasti titik perubahan trend dengan berkesan dan mengelakkan isyarat palsu di kawasan penyesuaian.
Kelebihan terbesar strategi ini adalah menggunakan EMA untuk menentukan arah trend besar, dan juga menggunakan penunjuk MACD untuk pengesahan ganda, sehingga menyaring beberapa isyarat perdagangan bising. Garis EMA dapat menentukan arah trend utama, dan MACD dapat menentukan lebih lanjut sama ada ada ada trend sedang berlangsung.
Di sisi lain, strategi ini juga menyediakan mekanisme kawalan risiko. Menggunakan cara berhenti dan berhenti yang tetap, risiko dapat dikendalikan dan dikendalikan dengan berkesan. Selain itu, beberapa kedudukan memenuhi keberangkatan bon, dan yang lain cuba untuk mengikuti trend keuntungan. Cara ini mengimbangi risiko dan keuntungan.
Risiko terbesar dalam strategi ini adalah bahawa isyarat trend yang dinilai oleh EMA dan MACD tidak semestinya sepenuhnya boleh dipercayai. Harga mungkin mengalami beberapa kemerosotan yang menyebabkan hentian tercetus. Selain itu, isyarat yang salah juga mungkin berlaku semasa penyusunan. Ini perlu dihindari dengan pengoptimuman parameter.
Di sisi lain, tetapan penangguhan kerugian tetap juga mempunyai risiko tertentu. Apabila keadaan pasaran berubah-ubah, penangguhan kerugian dengan nilai tetap sukar untuk menyesuaikan diri sepenuhnya dengan pasaran, mudah terjebak atau keluar terlalu awal. Ini memerlukan penyesuaian parameter penangguhan kerugian mengikut turun naik dan kecairan pada masa itu.
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Menguji kitaran EMA dengan parameter yang berbeza untuk mencari kombinasi parameter yang optimum
Mengoptimumkan parameter MACD agar lebih sesuai dengan ciri-ciri varieti yang diperdagangkan
Cuba ubah cara penyesuaian stop loss, seperti menggunakan stop loss ATR
Tambah petunjuk lain untuk menapis isyarat dan meningkatkan kualiti isyarat
Menilai kesan perdagangan pelbagai jenis dan memilih jenis yang paling sesuai
Dengan mengoptimumkan parameter dan model, anda dapat meningkatkan lagi kestabilan dan keuntungan strategi. Anda juga boleh mengawal risiko penyesuaian berlebihan dalam proses pengoptimuman.
Strategi ini agak kukuh secara keseluruhan, menggunakan indikator ganda yang digabungkan dengan isyarat trend yang menilai, boleh memfilter perdagangan bising pada tahap tertentu. Pengendalian risiko juga lebih tepat. Dengan mengoptimumkan parameter dan model lebih lanjut, strategi ini boleh menjadi strategi perdagangan kuantitatif yang layak untuk diuji.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("EMA and MACD Trading Strategy", overlay=true)
// Define inputs
emaPeriod = input(20, title="EMA Period")
macdShort = input(12, title="MACD Short Period")
macdLong = input(26, title="MACD Long Period")
macdSignal = input(9, title="MACD Signal Period")
riskAmount = input(10, title="Risk Amount (in pips)")
// Calculate indicators
ema = ema(close, emaPeriod)
[macdLine, signalLine, _] = macd(close, macdShort, macdLong, macdSignal)
// Define long trade conditions
longCondition = crossover(close, ema) and (macdLine > 0 or crossover(macdLine, signalLine)) // Removed unnecessary argument
// Define short trade conditions
shortCondition = crossunder(close, ema) and (macdLine < 0 or crossunder(macdLine, signalLine)) // Removed unnecessary argument
// Execute long trade
if (longCondition)
stopLoss = close - riskAmount
takeProfit = close + riskAmount
strategy.entry("Long", strategy.long)
strategy.exit("Exit", "Long", stop=stopLoss, limit=takeProfit)
// Execute short trade
if (shortCondition)
stopLoss = close + riskAmount
takeProfit = close - riskAmount
strategy.entry("Short", strategy.short)
strategy.exit("Exit", "Short", stop=stopLoss, limit=takeProfit)