
Ringkasan
Strategi ini menggabungkan 200-hari indeks moving average (EMA 200), volume perdagangan rata-rata harga (VWAP) dan indikator aliran dana (MFI) untuk menghasilkan sinyal jual beli. Ide utamanya adalah menggunakan kombinasi ketiga indikator ini untuk menilai arah dan kekuatan tren, menghasilkan sinyal perdagangan jika harga menembus 200 EMA dan dikonfirmasi oleh indikator VWAP dan MFI.
Prinsip Strategi
- Menghitung 200-hari EMA, dan menghitung persentase dari zona penyangga di atas dan di bawah rel dari zona penyangga yang dimasukkan.
- Menghitung Indeks VWAP.
- Hitung indikator MFI 14 siklus dan tetapkan batas pembelian dan penjualan.
- Dapatkan 200 EMA untuk periode waktu tinggi sebagai filter tren.
- Untuk menilai kontinuitas pergerakan harga, periksa apakah memenuhi kondisi kenaikan atau penurunan berturut-turut.
- Kondisi-kondisi di atas, yang menghasilkan sinyal beli adalah: harga penutupan menembus 200 EMA di atas rel dan lebih tinggi dari VWAP, MFI lebih besar dari buy threshold, harga penutupan lebih tinggi dari 200 EMA pada periode waktu tinggi, dan pergerakan harga terus meningkat.
- Sinyal jual adalah kondisi: harga closeout turun di bawah 200 EMA dan di bawah VWAP, MFI lebih kecil dari harga closeout, closeout di bawah 200 EMA pada periode waktu tinggi, dan harga terus turun.
- Strategi untuk melakukan transaksi multihead atau kosong head yang sesuai ketika kondisi buy atau sell terpenuhi.
Keunggulan Strategis
- Menggabungkan beberapa indikator untuk membuat penilaian yang komprehensif, secara efektif memfilter sinyal palsu, meningkatkan keandalan sinyal.
- Memperkenalkan penyaringan tren untuk periode waktu yang lebih tinggi, membuat keputusan perdagangan selaras dengan tren besar, dan mengurangi risiko perdagangan berlawanan.
- Dengan menilai kontinuitas pergerakan harga, lebih lanjut mengkonfirmasi kekuatan tren dan meningkatkan akurasi waktu masuk.
- Menggunakan konsep zona penyangga, memungkinkan harga berfluktuasi dalam kisaran tertentu, menghindari seringnya transaksi.
- Parameter dapat disesuaikan, fleksibel, dan dapat dioptimalkan untuk berbagai pasar dan gaya perdagangan.
Risiko Strategis
- Indikator dapat menghasilkan sinyal palsu yang menyebabkan kerugian di pasar yang bergoyang atau di titik-titik perubahan tren.
- Penetapan parameter yang tidak tepat dapat menyebabkan kinerja strategi yang buruk, seperti zona penyangga yang terlalu besar dapat kehilangan peluang perdagangan, terlalu kecil dapat menyebabkan perdagangan yang terlalu sering.
- Strategi ini bergantung pada data historis untuk menghitung dan menilai, dan mungkin tidak bereaksi pada waktu yang tepat untuk insiden yang tidak terduga atau insiden Black Swan.
- Strategi ini mungkin gagal dalam beberapa kondisi pasar khusus, seperti tren yang terus berlanjut atau fluktuasi yang sangat kuat.
Arah optimasi strategi
- Untuk optimalisasi parameter, dapat dilakukan dengan melakukan retrospeksi terhadap data historis untuk mencari kombinasi parameter yang optimal, seperti siklus EMA, siklus MFI dan threshold, ukuran zona penyangga, dan sebagainya.
- Anda dapat mempertimbangkan untuk memperkenalkan indikator tambahan atau indikator sentimen pasar lainnya, seperti Bollinger Bands, RSI, dan lain-lain, untuk meningkatkan keandalan dan stabilitas sinyal lebih lanjut.
- Dalam manajemen perdagangan, dapat diperkenalkan mekanisme stop loss, seperti stop loss bergerak atau stop loss dinamis berbasis ATR, untuk mengendalikan risiko perdagangan tunggal.
- Anda dapat mengeksplorasi strategi manajemen posisi yang berbeda, seperti ukuran posisi berdasarkan risiko atau rumus Kelly, untuk mengoptimalkan rasio risiko / keuntungan strategi.
- Pertimbangkan untuk memperkenalkan pembelajaran mesin atau algoritma adaptif, dan secara dinamis menyesuaikan parameter strategi untuk menyesuaikan diri dengan perubahan pasar.
Meringkaskan
Strategi ini membangun sistem perdagangan pelacakan tren yang relatif stabil dengan menggabungkan indikator EMA, VWAP, dan MFI 200 hari, sambil mempertimbangkan kecenderungan dan kesinambungan pergerakan harga dalam siklus waktu tinggi. Strategi ini memfilter sinyal palsu dan meningkatkan akurasi waktu masuk dengan penilaian komprehensif dari beberapa kondisi.
Kode 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")