
Strategi ini adalah sistem perdagangan kuantitatif yang berasaskan persimpangan garis rata dan indikator MACD, yang menggabungkan pelbagai petunjuk teknikal untuk mengoptimumkan masa masuk dan keluar. Strategi ini menggunakan persimpangan EMA9 dan WMA30 sebagai isyarat masuk, sambil menggabungkan indikator MACD untuk pengesahan. Keadaan keluar lebih kompleks, mempertimbangkan hubungan harga dengan garis rata dan perubahan dalam indikator MACD.
Syarat penyertaan:
Syarat keluar ((keperluan untuk memenuhi salah satu daripada syarat berikut):
Penunjuk tambahan:
Idea teras strategi ini adalah menggunakan persilangan garis purata jangka pendek (EMA9) dengan garis purata jangka menengah (WMA30) untuk menangkap trend yang berpotensi meningkat, sambil menggunakan indikator MACD untuk menyaring isyarat palsu. Keadaan keluar dirancang untuk menghentikan atau mengunci keuntungan tepat pada masanya, untuk mengelakkan penarikan balik yang disebabkan oleh terlalu banyak kedudukan.
Analisis komprehensif pelbagai petunjuk: menggabungkan pelbagai petunjuk teknikal seperti garis rata-rata, MACD, VWAP, dan sebagainya, memberikan perspektif analisis pasaran yang lebih menyeluruh, yang membantu meningkatkan ketepatan keputusan perdagangan.
Mekanisme kemasukan yang fleksibel: Pengesahan MACD melalui kerjasama silang EMA dan WMA, yang dapat menangkap tahap awal trend dan menyaring dengan berkesan beberapa isyarat palsu.
Kawalan risiko yang ketat: Menggunakan pelbagai keadaan keluar, termasuk penurunan berterusan garis purata jangka pendek dan isyarat pembalikan MACD, membantu menghentikan kerugian tepat pada masanya dan mengawal risiko.
Pertimbangkan tempoh masa yang berbeza: Pengenalan SMA 200 hari dan EMA 21 hari, yang membolehkan strategi untuk menganalisis dalam pelbagai bingkai masa, meningkatkan fleksibiliti strategi.
Rujukan harga berdasarkan kuantiti transaksi: Dengan menggunakan indikator VWAP, faktor kuantiti transaksi dipertimbangkan, memberikan rujukan yang lebih mewakili untuk pergerakan harga.
Risiko perdagangan yang kerap: Strategi persilangan rata-rata boleh menyebabkan perdagangan yang kerap, meningkatkan kos perdagangan dan menjejaskan hasil keseluruhan.
Risiko ketinggalan: Rata-rata bergerak pada dasarnya adalah penunjuk ketinggalan, yang mungkin tidak dapat menangkap titik perubahan dalam masa yang tepat dalam pasaran yang bergolak.
Risiko penembusan palsu: Pada peringkat penyusunan cakera, isyarat penembusan palsu yang kerap mungkin berlaku, menyebabkan kerugian berterusan.
Bergantung kepada trend: Strategi ini berfungsi dengan baik di pasaran yang jelas berpijak, tetapi mungkin tidak berfungsi dengan baik di pasaran yang bergolak.
Sensitiviti parameter: Kesan strategi mungkin sangat sensitif kepada tetapan parameter (seperti kitaran purata, parameter MACD, dan sebagainya) yang memerlukan penyesuaian yang kerap.
Memperkenalkan penunjuk kadar turun naik: Pertimbangkan untuk menambah penunjuk ATR (Average True Range) untuk menyesuaikan kedudukan hentian mengikut turun naik pasaran, meningkatkan fleksibiliti pengurusan risiko.
Mekanisme keluar yang dioptimumkan: Anda boleh mempertimbangkan untuk menambah trailing stop atau stop loss dinamik berdasarkan kadar turun naik untuk mengunci keuntungan dengan lebih baik.
Menambah penapisan lalu lintas: Analisis lalu lintas gabungan pada pengesahan isyarat masuk untuk mengurangkan risiko penembusan palsu.
Klasifikasi keadaan pasaran: Membangunkan model klasifikasi keadaan pasaran yang menggunakan parameter atau strategi perdagangan yang berbeza dalam keadaan pasaran yang berbeza (trend, goyah).
Analisis jangka masa berbilang: memperluaskan strategi ke pelbagai jangka masa, meningkatkan ketepatan kemasukan dengan pengesahan isyarat pada kitaran yang berbeza.
Pengoptimuman Pembelajaran Mesin: Mengoptimumkan parameter strategi secara dinamik menggunakan algoritma pembelajaran mesin untuk meningkatkan kemampuan strategi untuk menyesuaikan diri dengan perubahan pasaran.
“Enhanced EMA/WMA crossover strategy with comprehensive exit conditions” adalah sistem perdagangan kuantitatif yang menggabungkan pelbagai petunjuk teknikal untuk menangkap trend pasaran melalui crossover rata-rata dan petunjuk MACD, dan mengendalikan risiko menggunakan pelbagai syarat. Keunggulan strategi ini terletak pada perspektif analisis pasaran yang komprehensif dan mekanisme pengurusan risiko yang ketat, tetapi juga menghadapi cabaran seperti keterbelakangan dan kepekaan parameter. Arah pengoptimuman masa depan dapat tertumpu pada peningkatan kemampuan strategi untuk menyesuaikan diri dan menguruskan risiko, seperti pengenalan indikator kadar turun naik, mengoptimumkan mekanisme keluar, memasukkan klasifikasi keadaan pasaran, dll.
/*backtest
start: 2023-07-25 00:00:00
end: 2024-07-30 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
//X version 11
strategy("EMA9/WMA30 Crossover Strategy with Enhanced Exit Conditions", shorttitle="EMA9/WMA30 Enhanced Exit", overlay=true)
// Inputs
lengthEma = input.int(9, title="Length for EMA")
lengthWma = input.int(30, title="Length for WMA")
fastLength = input.int(12, title="Fast Length for MACD")
slowLength = input.int(26, title="Slow Length for MACD")
macdLength = input.int(9, title="Signal Smoothing for MACD")
pointsGainGoal = input.float(33.00, title="Points Gain Goal")
pointsLossGoal = input.float(-50.00, title="Points Loss Goal")
// Calculating EMA, WMA, and MACD
EMA9 = ta.ema(close, lengthEma)
WMA30 = ta.wma(close, lengthWma)
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, macdLength)
// Adding 200 SMA, 21 EMA, and VWAP
SMA200 = ta.sma(close, 200)
EMA21 = ta.ema(close, 21)
VWAPValue = ta.vwap(close)
// Buy Signal based on EMA/WMA Crossover and MACD confirmation
crossover = ta.crossover(EMA9, WMA30)
buySignal = crossover and macdLine > signalLine
// Entry
var float entryPrice = na
if (buySignal)
strategy.entry("Buy", strategy.long)
entryPrice := close
// Counters for consecutive closes below EMA9 and WMA30
var int belowEMA9Count = 0
var int belowWMA30Count = 0
belowEMA9Count := close < EMA9 ? belowEMA9Count + 1 : 0
belowWMA30Count := close < WMA30 ? belowWMA30Count + 1 : 0
// Exit Conditions
MACDBearishCross = ta.crossunder(macdLine, signalLine)
exitCondition1 = belowEMA9Count >= 2 and belowWMA30Count >= 1
exitCondition2 = MACDBearishCross
// Exit
if (strategy.position_size > 0)
if (exitCondition1 or exitCondition2)
strategy.close("Buy")
entryPrice := na
belowEMA9Count := 0
belowWMA30Count := 0
// Visualization
plot(EMA9, title="EMA 9", color=color.blue)
plot(WMA30, title="WMA 30", color=color.red)
plot(SMA200, title="SMA 200", color=color.orange)
plot(EMA21, title="EMA 21", color=color.purple)
plot(VWAPValue, title="VWAP", color=color.green)