
Gambaran keseluruhan
Strategi ini menggabungkan purata bergerak indeks 200 hari (EMA 200), harga purata bertimbangan perdagangan (VWAP) dan indikator aliran wang (MFI) untuk menghasilkan isyarat beli-belah. Idea utamanya adalah untuk menggunakan gabungan ketiga-tiga indikator ini untuk menilai arah dan kekuatan trend, menghasilkan isyarat perdagangan jika harga menembusi EMA 200 dan disahkan oleh indikator VWAP dan MFI.
Prinsip Strategi
- Hitung EMA 200 hari, dan perhitungkan ke atas dan ke bawah rantaian zon pelindung berdasarkan peratusan zon pelindung input.
- Pengiraan VWAP.
- Mengira Indeks MFI 14 kitaran dan menetapkan had pembelian dan penjualan.
- Dapatkan 200 EMA untuk tempoh masa yang tinggi sebagai penapis trend.
- Untuk menilai kesinambungan pergerakan harga, periksa sama ada syarat kenaikan atau penurunan berterusan dipenuhi.
- Syarat-syarat yang digabungkan di atas, menghasilkan isyarat beli adalah: harga penutupan menembusi 200 EMA di atas landasan dan lebih tinggi daripada VWAP, MFI lebih besar daripada nilai terendah beli, harga penutupan lebih tinggi daripada 200 EMA dalam tempoh masa yang tinggi, dan pergerakan harga terus meningkat.
- Sinyal jual adalah: harga tutup jatuh di bawah 200 EMA dan lebih rendah daripada VWAP, MFI lebih kecil daripada harga tutup, harga tutup di bawah 200 EMA dalam tempoh masa yang tinggi, dan pergerakan harga terus menurun.
- Apabila syarat beli atau jual dipenuhi, strategi untuk melakukan perdagangan berganda atau kosong yang sesuai.
Kelebihan Strategik
- Menggabungkan pelbagai penunjuk untuk membuat penilaian menyeluruh, menapis isyarat palsu dengan berkesan, meningkatkan kebolehpercayaan isyarat.
- Memperkenalkan penapis trend untuk kitaran masa tinggi untuk memastikan keputusan perdagangan selaras dengan trend utama dan mengurangkan risiko perdagangan berlawanan.
- Dengan menilai kesinambungan pergerakan harga, lebih lanjut mengesahkan kekuatan trend dan meningkatkan ketepatan masa masuk.
- Menggunakan konsep zon penangguhan, membenarkan harga berfluktuasi dalam julat tertentu, mengelakkan perdagangan yang kerap.
- Parameter boleh disesuaikan, fleksibiliti tinggi, dan boleh dioptimumkan mengikut pasaran dan gaya perdagangan yang berbeza.
Risiko Strategik
- Dalam pasaran yang bergolak atau di titik perubahan trend, penunjuk mungkin menghasilkan isyarat palsu yang menyebabkan kerugian.
- Penetapan parameter yang tidak betul boleh menyebabkan prestasi strategi yang tidak baik, seperti kawasan pelindung yang terlalu besar boleh kehilangan peluang perdagangan, terlalu kecil boleh menyebabkan perdagangan yang kerap.
- Strategi bergantung kepada data sejarah untuk membuat pengiraan dan penilaian, dan mungkin tidak bertindak balas dengan cepat terhadap kejadian yang tidak dijangka atau peristiwa Black Swan.
- Strategi ini mungkin tidak berkesan dalam keadaan pasaran tertentu, seperti trend yang berterusan secara melampau atau turun naik yang teruk.
Arah pengoptimuman strategi
- Untuk mengoptimumkan parameter, anda boleh mencari kombinasi parameter terbaik dengan mengkaji semula data sejarah, seperti kitaran EMA, kitaran MFI dan nilai had, saiz zon penampan dan sebagainya.
- Anda boleh mempertimbangkan untuk memperkenalkan petunjuk tambahan atau sentimen pasaran seperti Brinks, RSI dan lain-lain untuk meningkatkan kebolehpercayaan dan kestabilan isyarat.
- Dalam pengurusan perdagangan, mekanisme hentian kerugian seperti hentian bergerak atau hentian dinamik berdasarkan ATR boleh diperkenalkan untuk mengawal risiko perdagangan tunggal.
- Anda boleh meneroka strategi pengurusan kedudukan yang berbeza, seperti saiz kedudukan berdasarkan risiko atau formula Kelly, untuk mengoptimumkan nisbah risiko-keuntungan strategi tersebut.
- Pertimbangkan untuk memperkenalkan algoritma pembelajaran mesin atau penyesuaian diri, menyesuaikan parameter strategi secara dinamik untuk menyesuaikan diri dengan perubahan pasaran.
ringkaskan
Strategi ini menggabungkan 200 hari EMA, VWAP dan MFI, sambil mempertimbangkan trend dan kesinambungan pergerakan harga dalam kitaran masa yang tinggi, untuk membina sistem perdagangan trend yang agak stabil. Strategi ini menyaring isyarat palsu dan meningkatkan ketepatan masa masuk dengan penilaian komprehensif pelbagai syarat. Pada masa yang sama, fleksibiliti parameter strategi membolehkan pengoptimuman mengikut pasaran dan gaya perdagangan yang berbeza.
Kod sumber strategi
/*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"}]
*/
//@version=5
strategy("200 EMA, VWAP, MFI Strategy - Visible Signals", overlay=true, pyramiding=0)
// Inputs for dynamic adjustments
buffer = input.float(0.2, title="EMA Buffer Percentage", step=0.1) / 100
higherTimeframe = input.timeframe("15", title="Higher Timeframe")
mfiBuyThreshold = input(60, title="MFI Buy Threshold")
mfiSellThreshold = input(40, title="MFI Sell Threshold")
consecutiveCloses = input.int(1, title="Consecutive Closes for Confirmation")
// Calculate the 200-period EMA
ema200 = ta.ema(close, 200)
emaBufferedHigh = ema200 * (1 + buffer)
emaBufferedLow = ema200 * (1 - buffer)
emaHigher = request.security(syminfo.tickerid, higherTimeframe, ta.ema(close, 200))
// VWAP calculation
vwap = ta.vwap(hlc3)
// Money Flow Index calculation
mfiLength = 14
mfi = ta.mfi(close, mfiLength)
// Plotting the indicators
plot(ema200, title="200 EMA", color=color.blue)
plot(vwap, title="VWAP", color=color.orange)
plot(mfi, title="MFI", color=color.purple)
hline(50, "MFI Reference", color=color.gray, linestyle=hline.style_dashed)
plot(emaHigher, title="Higher TF EMA", color=color.red)
// Price action confirmation
isUpTrend = ta.rising(close, consecutiveCloses)
isDownTrend = ta.falling(close, consecutiveCloses)
// Define entry conditions
longCondition = close > emaBufferedHigh and close > vwap and mfi > mfiBuyThreshold and close > emaHigher and isUpTrend
shortCondition = close < emaBufferedLow and close < vwap and mfi < mfiSellThreshold and close < emaHigher and isDownTrend
// Trading execution
if (longCondition)
strategy.entry("Buy", strategy.long)
if (shortCondition)
strategy.entry("Sell", strategy.short)
// Plot shapes for signals
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, size=size.small, title="Buy Signal", text="Buy")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, size=size.small, title="Sell Signal", text="Sell")