Strategi Filter Momentum EMA Supertrend Multi-periode

ATR EMA DEMA RSI supertrend VOLUME SL TP
Tanggal Pembuatan: 2025-08-15 11:33:46 Akhirnya memodifikasi: 2025-08-15 11:33:46
menyalin: 0 Jumlah klik: 286
2
fokus pada
319
Pengikut

Strategi Filter Momentum EMA Supertrend Multi-periode Strategi Filter Momentum EMA Supertrend Multi-periode

Ringkasan

Strategi ini adalah sistem pelacakan tren canggih yang menggabungkan indikator supertrend (Supertrend) dengan filter multi-dynamic yang dirancang khusus untuk menangkap tren yang kuat. Inti dari strategi ini adalah indikator supertrend yang disesuaikan secara dinamis menggunakan ATR (Average True Range) dengan EMA (Index Moving Average) dan DEMA (Double Index Moving Average) sebagai alat konfirmasi tren, sambil mengintegrasikan RSI (Index Moving Average Relatively Weak) dan filter volume transaksi untuk meningkatkan keandalan sinyal masuk. Strategi ini memiliki mekanisme stop loss, stop loss, dan tracking stop loss yang berbasis ATR, dan menyediakan parameter preset untuk beberapa periode waktu yang disesuaikan dengan gaya perdagangan yang berbeda.

Prinsip Strategi

Prinsip-prinsip inti dari strategi ini didasarkan pada mekanisme konfirmasi sinyal berlapis, yang membangun kerangka keputusan perdagangan yang komprehensif:

  1. Sistem sinyal inti supertrend: Menggunakan ATR untuk menghitung band tren dinamis, menghasilkan sinyal beli ketika harga close out menembus downtrend (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

  2. Filter konfirmasi momentumPermintaan harga berada di atas EMA jangka pendek (siklus default 21) dan DEMA jangka panjang (siklus default 200) untuk memastikan arah perdagangan konsisten dengan tren utama dan menghindari perdagangan berlawanan.

  3. Verifikasi kekuatan sinyal: Mengkonfirmasi pergerakan harga melalui RSI (default requirement > 50), dan volume transaksi lebih besar dari EMA (default 20 cycle) mengkonfirmasi keterlibatan pasar, meningkatkan kualitas sinyal masuk.

  4. Mekanisme Masuk Ulang yang CerdasDalam tren naik yang telah dikonfirmasi, ketika harga kembali ke EMA setelah penyesuaian dan memenuhi kondisi lain, strategi akan masuk kembali, secara efektif menangkap peluang dalam perpanjangan tren.

  5. Sistem manajemen risiko

    • Stop loss set 1 ATR di bawah harga masuk (default)
    • Stop setting 3 ATR di atas harga masuk (opsional)
    • Setelah keuntungan lebih dari 1 ATR, memulai mekanisme tracking stop loss, mengunci sebagian dari keuntungan
  6. Preset parameter multi-periode

    • “Auto-1H/4H”: ATR siklus 10, kali 3, cocok untuk perdagangan goyang pendek
    • “Auto-1D”: ATR siklus 14, kali 3, cocok untuk trend tracking
    • “Auto-1W”: ATR siklus 20, kali 4, cocok untuk menangkap tren jangka panjang

Keunggulan Strategis

Strategi ini, setelah dianalisis secara mendalam, memiliki keuntungan yang signifikan sebagai berikut:

  1. AdaptifIndikator supertrend didasarkan pada penyesuaian dinamis ATR, yang dapat secara otomatis beradaptasi dengan perubahan volatilitas pasar, tetap efektif dalam berbagai lingkungan pasar.

  2. Konfirmasi multi-lapisan mengurangi sinyal palsuDengan verifikasi ganda EMA, DEMA, RSI dan volume transaksi, risiko sinyal palsu secara signifikan berkurang dan kualitas transaksi meningkat.

  3. Smart Re-entry menangkap perilaku berkelanjutanLogika re-entry yang inovatif memungkinkan re-entry setelah penarikan dalam tren naik, memanfaatkan fluktuasi dalam tren secara efektif, meningkatkan efisiensi penggunaan dana.

  4. Sistem manajemen risiko yang lengkapSistem Stop Loss, Stop Stop, dan Trace Stop yang dibangun di ATR membatasi kerugian dalam satu transaksi dan secara efektif melindungi keuntungan yang telah diperoleh dan mengurangi risiko penarikan.

  5. Multi-siklus preset untuk mempermudah operasi: Parameter default untuk berbagai kerangka waktu, membuat strategi mudah diterapkan pada berbagai siklus perdagangan, sesuai dengan preferensi waktu pedagang yang berbeda.

  6. Bantuan Visual Intuisi Jelas: Dengan warna yang diisi untuk membedakan tren naik dan turun, disertai dengan tanda sinyal jual beli yang jelas, membuat keadaan pasar menjadi jelas, memudahkan keputusan perdagangan.

  7. Terverifikasi dengan pengujian ulang: Menampilkan sekitar 60% tingkat kemenangan dan faktor keuntungan lebih besar dari 4 pada siklus garis matahari, sangat cocok untuk lingkungan pasar yang jelas tren.

Risiko Strategis

Meskipun strategi ini dirancang secara menyeluruh, ada risiko potensial sebagai berikut:

  1. Performa Bursa BergoyangDalam pasar yang tidak jelas tren, mungkin sering memicu stop loss, yang menyebabkan akumulasi kerugian kecil berturut-turut. Solusi adalah menghentikan perdagangan ketika struktur pasar tidak jelas, atau meningkatkan ATR untuk mengurangi sensitivitas sinyal.

  2. Kondisi penyaringan mungkin melewatkan beberapa peluang: Meskipun beberapa kondisi penyaringan meningkatkan kualitas sinyal, tetapi juga dapat menyebabkan kehilangan beberapa peluang tren awal. Pedagang dapat mempertimbangkan untuk menyesuaikan tingkat kekakuan kondisi penyaringan sesuai dengan preferensi risiko pribadi.

  3. Parameter SensitivitasPeriode ATR dan pengaturan kelipatan memiliki pengaruh yang signifikan terhadap kinerja strategi, dan mungkin memerlukan parameter yang berbeda untuk lingkungan pasar yang berbeda. Disarankan untuk mengoptimalkan pengaturan parameter untuk pasar tertentu melalui umpan balik.

  4. Risiko penarikan diri: Pelacakan menunjukkan bahwa penarikan besar dapat terjadi ketika menggunakan posisi penuh (hingga 100% +). Harus dilakukan manajemen dana yang ketat, dan risiko setiap transaksi dikendalikan dalam 1-2% .

  5. Data sejarah terbatasStrategi ini dilakukan pada pasar dan periode waktu tertentu, dan mungkin ada risiko over-adaptasi. Sebelum diterapkan secara langsung, pasar dan periode waktu yang lebih luas harus diuji.

  6. Kurangnya pengujian kondisi pasar ekstrimStrategi mungkin belum diuji dalam situasi ekstrem seperti pasar yang sangat berfluktuasi atau krisis likuiditas, dan tidak diketahui bagaimana performa dalam situasi seperti itu.

Arah optimasi

Strategi ini dapat dioptimalkan melalui analisis kedalaman kode:

  1. Penyesuaian parameter adaptasi: Mengembangkan mekanisme untuk menyesuaikan ATR kali dan siklus berdasarkan dinamika volatilitas pasar, sehingga strategi dapat secara otomatis beradaptasi dengan perubahan kondisi pasar. Misalnya, meningkatkan ATR kali ketika volatilitas meningkat, mengurangi ATR kali ketika volatilitas menurun.

  2. Klasifikasi Negara Pasar TerpaduMenggunakan modul identifikasi status pasar (misalnya menggunakan bandwidth Brin, ADX, dll), menyesuaikan parameter strategi secara otomatis atau menghentikan perdagangan sesuai dengan apakah pasar sedang tren atau bergejolak.

  3. Kerangka analisis multi-siklusTambahan fitur analisa multi-siklus, yang mengharuskan tren dalam kerangka waktu yang lebih tinggi untuk melakukan perdagangan sesuai dengan kerangka waktu saat ini, meningkatkan akurasi penilaian tren.

  4. Optimalkan logik masuk kembaliRe-entry criteria refinement: Pertimbangan untuk meningkatkan Fibonacci retracement level atau key support position confirmation, meningkatkan akurasi re-entry point.

  5. Pengelolaan dana yang optimal: Mengimplementasikan manajemen posisi dinamis, secara otomatis menyesuaikan ukuran posisi berdasarkan volatilitas pasar, nilai bersih akun dan kerugian berturut-turut, mengoptimalkan kinerja kurva modal.

  6. Menambahkan indikator sentimen pasarMengintegrasikan indikator sentimen pasar seperti indeks VIX (indeks volatilitas) atau tingkat perubahan volume transaksi, untuk menyesuaikan tindakan strategi ketika pasar panik atau terlalu optimis.

  7. Optimalisasi Pembelajaran Mesin: Menggunakan algoritma pembelajaran mesin untuk mengoptimalkan pilihan parameter dan waktu masuk, memprediksi kombinasi parameter perdagangan terbaik melalui model pelatihan data historis.

Meringkaskan

Strategi penyaringan momentum EMA hiper-siklus multi-siklus adalah sistem pelacakan tren yang dirancang dengan baik, dengan menggabungkan indikator hiper-trend dengan filter multi-pemain, untuk membangun kerangka keputusan perdagangan yang komprehensif. Kelebihannya adalah kemampuan beradaptasi yang kuat, pengesahan multi-lapisan untuk mengurangi sinyal palsu, masuk kembali cerdas untuk menangkap perilaku berkelanjutan, dan sistem manajemen risiko yang lengkap.

Namun, strategi ini mungkin berkinerja buruk di pasar yang bergoyang, dan ada sensitivitas parameter dan risiko penarikan potensial. Untuk meningkatkan lebih lanjut kehandalan strategi, pertimbangan dapat diberikan untuk mengembangkan penyesuaian parameter yang beradaptasi, mengintegrasikan klasifikasi status pasar, membangun kerangka analisis multi-siklus, mengoptimalkan logika re-entry, memperbaiki cara pengelolaan dana, meningkatkan indikator sentimen pasar, dan menerapkan teknologi pembelajaran mesin.

Pada akhirnya, strategi ini memberikan kerangka kerja yang ketat dalam indikator teknis dan manajemen risiko yang baik untuk perdagangan pelacakan tren, tetapi selalu ingat pentingnya kontrol risiko saat menggunakannya, membatasi risiko setiap perdagangan dalam kisaran yang dapat diterima, dan menyesuaikan parameter strategi sesuai dengan gaya perdagangan individu dan lingkungan pasar.

Kode Sumber Strategi
/*backtest
start: 2024-08-15 00:00:00
end: 2025-08-13 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("Supertrend EMA Strategy _V29", overlay=true, format=format.price, precision=2, initial_capital=1000)
// Inputs
tf_preset = input.string("Manual", title="Timeframe Preset", options=["Manual", "Auto-1H/4H", "Auto-1D", "Auto-1W"])
atr_period = input.int(10, title="ATR Period")
src = hl2
atr_multiplier = input.float(3.0, title="ATR Multiplier", step=0.1)
change_atr = input.bool(true, title="Change ATR Calculation Method?")
show_signals = input.bool(true, title="Show Buy/Sell Signals?")
highlighting = input.bool(true, title="Highlighter On/Off?")
ema_length = input.int(21, title="EMA Length")
dema_length = input.int(200, title="DEMA Length")
tp_multiplier = input.float(3.0, title="Take Profit Multiplier (ATR, 0=off)", step=0.5)

allow_long = input.bool(true, title="Allow Long Trades")
allow_short = input.bool(false, title="Allow Short Trades")
sl_multiplier = input.float(1.0, title="Stop Loss Multiplier (ATR, 0=off)", step=0.5)
use_vol_filter = input.bool(true, title="Use Volume Filter?")
vol_ema_length = input.int(20, title="Volume EMA Length", minval=1)
use_rsi_filter = input.bool(true, title="Use RSI Filter?")
rsi_length = input.int(14, title="RSI Length")
rsi_threshold = input.int(50, title="RSI Buy Threshold")
// Auto-adjust
int atr_period_final = atr_period
float atr_mult_final = atr_multiplier
string preset_label = tf_preset
if tf_preset == "Auto-1H/4H"
    atr_period_final := 10
    atr_mult_final := 3.0
    preset_label := "1H/4H"
else if tf_preset == "Auto-1D"
    atr_period_final := 14
    atr_mult_final := 3.0
    preset_label := "Daily"
else if tf_preset == "Auto-1W"
    atr_period_final := 20
    atr_mult_final := 4.0
    preset_label := "Weekly"
// Show settings
if barstate.islast
    label.new(x=bar_index[barstate.isrealtime ? 0 : 50], y=high, text="Preset: " + preset_label + "\nATR: " + str.tostring(atr_period_final) + "\nMult: " + str.tostring(atr_mult_final), color=color.white, style=label.style_label_left, textcolor=color.black, size=size.small, yloc=yloc.abovebar)
// Calculations
atr2 = ta.sma(ta.tr, atr_period_final)
atr = change_atr ? ta.atr(atr_period_final) : atr2
up = src - (atr_mult_final * atr)
up1 = nz(up[1], up)
up := close[1] > up1 ? math.max(up, up1) : up
dn = src + (atr_mult_final * atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? math.min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
buy_signal = trend == 1 and trend[1] == -1
sell_signal = trend == -1 and trend[1] == 1
ema = ta.ema(close, ema_length)
ema1 = ta.ema(close, dema_length)
dema = 2 * ema1 - ta.ema(ema1, dema_length)
vol_ema = ta.ema(volume, vol_ema_length)
rsi = ta.rsi(close, rsi_length)
// Plots (global)
up_plot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=color.green)
dn_plot = plot(trend == -1 ? dn : na, title="Down Trend", style=plot.style_linebr, linewidth=2, color=color.red)
plot(dema, title="DEMA 200", color=color.blue, style=plot.style_linebr, linewidth=2)
plotshape(buy_signal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.green)
plotshape(buy_signal and show_signals ? up : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white)
plotshape(sell_signal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.red)
plotshape(sell_signal and show_signals ? dn : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white)
m_plot = plot(ohlc4, title="", style=plot.style_circles, linewidth=1)
long_fill_color = highlighting ? (trend == 1 ? color.new(color.green, 90) : color.white) : color.white
short_fill_color = highlighting ? (trend == -1 ? color.new(color.red, 90) : color.white) : color.white
fill(m_plot, up_plot, title="UpTrend Highlighter", color=long_fill_color)
fill(m_plot, dn_plot, title="DownTrend Highlighter", color=short_fill_color)
plot(ema, title="EMA", color=color.blue, linewidth=2)
// Strategy Logic with Re-Entry (in if for skip)

var float entry_price = na
vol_condition = not use_vol_filter or volume > vol_ema
rsi_condition = not use_rsi_filter or rsi > rsi_threshold
buy_cond_met = buy_signal and close > ema and close > dema and allow_long and vol_condition and rsi_condition
re_entry_cond = trend == 1 and strategy.position_size == 0 and close[1] < ema and close > ema and close > dema and vol_condition and rsi_condition
sell_cond_met = sell_signal and strategy.position_size > 0 and (close < dema or true)
if buy_cond_met or re_entry_cond
    strategy.entry("Long", strategy.long)
    entry_price := close
if sell_cond_met
    strategy.close("Long")
    entry_price := na
if sell_signal and close < ema and close < dema and allow_short and vol_condition
    strategy.entry("Short", strategy.short)
    entry_price := close
if buy_signal and strategy.position_size < 0
    strategy.close("Short")
    entry_price := na
// SL & TP with Trailing
if strategy.position_size != 0 and not na(entry_price)
    if sl_multiplier > 0
        sl_price = strategy.position_size > 0 ? entry_price - (sl_multiplier * atr) : entry_price + (sl_multiplier * atr)
        trail_condition = strategy.position_size > 0 ? (close - entry_price > atr) : (entry_price - close > atr)
        trail_sl = strategy.position_size > 0 ? up : dn
        final_sl = trail_condition ? trail_sl : sl_price
        strategy.exit("SL Exit", stop=final_sl)
    if tp_multiplier > 0
        tp_price = strategy.position_size > 0 ? entry_price + (tp_multiplier * atr) : entry_price - (tp_multiplier * atr)
        strategy.exit("TP Exit", limit=tp_price)
// Alerts
alertcondition(buy_signal, title="SuperTrend Buy", message="SuperTrend Buy!")
alertcondition(sell_signal, title="SuperTrend Sell", message="SuperTrend Sell!")
change_cond = trend != trend[1]
alertcondition(change_cond, title="SuperTrend Direction Change", message="SuperTrend has changed direction!")