Strategi Perdagangan Multi-Target Rata-Rata Pergerakan Eksponensial Ganda

EMA SMA TP SL 移动平均线 止损 多目标策略 交叉信号
Tanggal Pembuatan: 2025-08-21 09:01:39 Akhirnya memodifikasi: 2025-08-21 09:01:39
menyalin: 0 Jumlah klik: 212
2
fokus pada
319
Pengikut

Strategi Perdagangan Multi-Target Rata-Rata Pergerakan Eksponensial Ganda Strategi Perdagangan Multi-Target Rata-Rata Pergerakan Eksponensial Ganda

Ringkasan

Strategi perdagangan multi-target berindeks ganda adalah sistem perdagangan kuantitatif yang didasarkan pada sinyal silang antara rata-rata bergerak indeks jangka pendek dan jangka panjang (EMA). Strategi ini menggunakan silang antara 9 siklus dan 21 siklus EMA sebagai sinyal masuk, sambil mengatur hingga 10 target keuntungan dan satu titik stop loss untuk manajemen risiko dan pemaksimalkan keuntungan. Strategi ini mendukung perdagangan dua arah multi-posisi, dengan posisi terbuka saat EMA jangka pendek melewati EMA jangka panjang, kosong saat EMA jangka pendek melewati EMA jangka panjang, dan keluar saat silang terbalik.

Prinsip Strategi

Prinsip-prinsip inti dari strategi ini didasarkan pada sistem crossover rata-rata bergerak indeks, yang diimplementasikan sebagai berikut:

  1. Hitung dua EMA: EMA cepat ((9 siklus) dan EMA lambat ((21 siklus)
  2. Ketika EMA cepat melewati EMA lambat, menghasilkan sinyal multitasking
  3. Ketika EMA cepat melewati EMA lambat, menghasilkan sinyal kosong
  4. Setelah masuk, strategi akan secara otomatis menghitung 10 harga target tangga (TP1-TP10) dan harga stop loss berdasarkan harga masuk
  5. Strategi menggunakan setelan persentase yang sama untuk posisi multihead dan kosong, tetapi berlawanan arah
  6. Untuk multi-head, stop loss ditetapkan di bawah harga masuk 0,5%, dan target keuntungan berkisar antara 0,5% dan 5,0% di atas harga masuk
  7. Untuk headline, stop loss diatur di atas harga masuk 0,5%, dan target profit berkisar antara 0,5% dan 5,0% di bawah harga masuk
  8. Strategi untuk keluar dari posisi saat ada sinyal reverse cross.

Strategi ini mengadopsi metode manajemen risiko yang sistematis, dengan 10% dana akun digunakan secara default untuk setiap transaksi, dengan dana awal 100.000, dan melarang operasi overage.

Keunggulan Strategis

  1. Sinyal masuk yang sederhana dan efektifEMA cross adalah sinyal perdagangan yang banyak digunakan dan diverifikasi, mudah dipahami dan diterapkan. Pengaturan parameter untuk siklus 9 / 21 lebih baik menangkap tren jangka pendek dan menengah.
  2. Manajemen laba multi-tujuanTarget keuntungan 10 tangga yang memungkinkan pedagang untuk mendapatkan keuntungan dalam jumlah besar pada tingkat harga yang berbeda, yang dapat mengunci sebagian dari keuntungan dan memperpanjang keuntungan sebanyak mungkin.
  3. Kontrol risiko yang ketat: Setiap transaksi memiliki titik stop loss yang jelas, membatasi persentase kerugian maksimum untuk setiap transaksi, dan mengontrol risiko secara efektif.
  4. Bantuan visualStrategi: Semua sinyal masuk, stop loss, dan target ditandai dengan jelas di grafik, membantu pedagang memahami situasi pasar secara intuitif.
  5. Kemampuan transaksi dua arahStrategi ini juga mendukung perdagangan multi-lokasi, yang memungkinkan untuk mencari peluang di berbagai lingkungan pasar.
  6. Parameter yang dapat disesuaikan: Semua parameter kunci (termasuk siklus EMA, stop loss ratio, target profit) dapat disesuaikan dengan input, meningkatkan fleksibilitas strategi.
  7. Otomatis sepenuhnyaStrategi: Mengeksekusi otomatisasi penuh, tanpa intervensi manusia, mulai dari pengenalan sinyal, masuk, pengaturan tujuan stop loss dan profit, hingga keluar.

Risiko Strategis

  1. Risiko Penembusan PalsuSistem EMA crossover mudah menghasilkan sinyal palsu di pasar yang bergoyang, yang dapat menyebabkan perdagangan yang sering dan kerugian. Strategi tidak menyiapkan filter untuk membedakan sinyal kuat dan lemah.
  2. Stop loss biasStrategi saat ini memiliki default stop loss yang ditetapkan pada 0.5%, yang mungkin terlalu ketat di pasar atau varietas yang lebih berfluktuasi dan mudah dipicu oleh kebisingan pasar.
  3. Ketergantungan satu indikatorStrategi ini hanya mengandalkan EMA crossing sebagai sinyal masuk, tanpa konfirmasi dalam kombinasi dengan indikator teknis lainnya atau kondisi pasar, meningkatkan risiko kesalahan penilaian.
  4. Pengelolaan dana tetap: 10% dana akun tetap digunakan untuk setiap transaksi, tidak disesuaikan dengan dinamika volatilitas pasar atau intensitas sinyal, mungkin tidak cukup dioptimalkan.
  5. Kurangnya pengenalan lingkungan pasarStrategi ini tidak membedakan antara pasar tren dan pasar goyah, dan masih menghasilkan sinyal dalam lingkungan pasar yang tidak sesuai dengan sistem silang EMA.
  6. Strategi Keluar Satu: Meskipun telah ditetapkan beberapa target keuntungan, namun sebenarnya strategi hanya akan menetap pada target pertama (TP1) atau keluar pada saat reverse crossover, tanpa mencapai keuntungan batch yang sebenarnya.

Untuk mengurangi risiko ini, disarankan untuk memperkenalkan kondisi penyaringan tambahan, seperti indikator kekuatan tren, dan pertimbangkan untuk menyesuaikan stop loss dan target posisi sesuai dengan dinamika pasar yang berfluktuasi.

Arah optimasi strategi

  1. Tambahkan filterIntroduksi indikator teknis tambahan sebagai filter, seperti ADX (Indeks Tren Rata-rata) untuk mengkonfirmasi kekuatan tren, atau indikator relatif kuat (RSI) untuk menghindari perdagangan di zona overbought dan oversold.
  2. Dinamika Stop Loss: Mengubah stop loss persentase tetap menjadi stop loss dinamis berdasarkan volatilitas pasar, seperti menggunakan ATR (Average True Rate of Volatility) dikalikan dengan faktor untuk mengatur jarak stop loss.
  3. Mencapai Keuntungan Multi-Tujuan yang BenarPerubahan kode strategi untuk mencapai posisi terpadat pada beberapa posisi target yang berbeda, bukan hanya pada posisi terpadat pada posisi target pertama. Ini memerlukan pembagian setiap perdagangan menjadi beberapa posisi yang lebih kecil.
  4. Meningkatkan mekanisme identifikasi tren: Menambahkan logika pengidentifikasi tren, hanya membuka posisi ketika arah tren jelas, menghindari sering berdagang di pasar yang bergoyang.
  5. Pengelolaan dana yang optimal: Mengubah proporsi dana setiap transaksi secara dinamis sesuai dengan intensitas sinyal, volatilitas pasar, atau penarikan, bukan menggunakan 10% secara tetap.
  6. Menambahkan filter waktuBerusahalah untuk menghindari perdagangan pada saat-saat yang sangat bergejolak sebelum dan sesudah buka dan tutup pasar, atau saat-saat ketika data ekonomi penting diumumkan.
  7. Memperkenalkan stop loss bergerakKetika harga bergerak ke arah yang menguntungkan untuk jarak tertentu, stop loss dipindahkan ke titik keseimbangan atau posisi yang lebih menguntungkan untuk melindungi keuntungan.
  8. Meningkatkan perlindungan terhadap trenDalam kondisi pasar yang ekstrem, tambahkan indikator berlawanan sebagai sinyal peringatan untuk menghindari terus memegang posisi ketika pasar berbalik tajam.

Dengan optimasi ini, strategi dapat secara signifikan meningkatkan stabilitas dan profitabilitas, mengurangi frekuensi penarikan dan kerugian transaksi.

Meringkaskan

Strategi perdagangan multi-target moving average adalah sistem perdagangan kuantitatif dengan struktur yang jelas, logika yang sederhana, yang didasarkan pada sinyal silang EMA klasik, dan dilengkapi dengan manajemen keuntungan dan pengaturan stop loss multi-target. Strategi ini cocok untuk perdagangan tren jangka pendek dan menengah, dan lebih baik dalam pasar tren yang jelas.

Meskipun desain strategi relatif sederhana, namun mengandung elemen-elemen inti dari strategi perdagangan: sinyal masuk, kondisi keluar, manajemen stop loss dan target keuntungan. Keuntungan utama dari strategi adalah operasi yang jelas, mudah dipahami dan dilaksanakan, serta dukungan visual yang baik.

Namun, ada juga keterbatasan dari strategi tersebut, seperti ketergantungan pada satu indikator, kurangnya identifikasi lingkungan pasar, dan kurangnya fleksibilitas dalam pengelolaan dana. Strategi ini memiliki ruang yang lebih besar untuk dioptimalkan dengan menambahkan filter tren, mengoptimalkan mekanisme stop loss, dan mencapai keuntungan batch yang nyata dan meningkatkan metode pengelolaan dana.

Bagi trader, strategi ini dapat digunakan sebagai kerangka dasar untuk menyesuaikan dan mengoptimalkan secara individual sesuai dengan preferensi risiko pribadi dan karakteristik varietas perdagangan, untuk mencapai efek perdagangan yang lebih baik.

Kode Sumber Strategi
/*backtest
start: 2024-08-21 00:00:00
end: 2025-08-20 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_OKX","currency":"BNB_USDT","balance":5000}]
*/

//@version=5
strategy("9/21 EMA with 10 Targets + Stoploss", 
     overlay = true,
     initial_capital = 100000,
     default_qty_type = strategy.percent_of_equity,
     default_qty_value = 10,
     pyramiding = 0)

// === Inputs ===
emaFastLen = input.int(9, "Fast EMA Length")
emaSlowLen = input.int(21, "Slow EMA Length")
slPercent  = input.float(0.5, "Stoploss %", step=0.1)

// 10 Targets
tp1Percent = input.float(0.5, "Target 1 %", step=0.1)
tp2Percent = input.float(1.0, "Target 2 %", step=0.1)
tp3Percent = input.float(1.5, "Target 3 %", step=0.1)
tp4Percent = input.float(2.0, "Target 4 %", step=0.1)
tp5Percent = input.float(2.5, "Target 5 %", step=0.1)
tp6Percent = input.float(3.0, "Target 6 %", step=0.1)
tp7Percent = input.float(3.5, "Target 7 %", step=0.1)
tp8Percent = input.float(4.0, "Target 8 %", step=0.1)
tp9Percent = input.float(4.5, "Target 9 %", step=0.1)
tp10Percent = input.float(5.0, "Target 10 %", step=0.1)

// === EMA Calculation ===
emaFast = ta.ema(close, emaFastLen)
emaSlow = ta.ema(close, emaSlowLen)

// === Entry Conditions ===
longCond  = ta.crossover(emaFast, emaSlow)
shortCond = ta.crossunder(emaFast, emaSlow)

// === Entry ===
if (longCond and strategy.position_size <= 0)
    strategy.entry("BUY", strategy.long)

if (shortCond and strategy.position_size >= 0)
    strategy.entry("SELL", strategy.short)

// === Series Variables for Targets ===
var float tp1 = na
var float tp2 = na
var float tp3 = na
var float tp4 = na
var float tp5 = na
var float tp6 = na
var float tp7 = na
var float tp8 = na
var float tp9 = na
var float tp10 = na
var float stopLevel = na

// === Long Positions ===
if strategy.position_size > 0
    stopLevel := strategy.position_avg_price * (1 - slPercent/100)
    tp1 := strategy.position_avg_price * (1 + tp1Percent/100)
    tp2 := strategy.position_avg_price * (1 + tp2Percent/100)
    tp3 := strategy.position_avg_price * (1 + tp3Percent/100)
    tp4 := strategy.position_avg_price * (1 + tp4Percent/100)
    tp5 := strategy.position_avg_price * (1 + tp5Percent/100)
    tp6 := strategy.position_avg_price * (1 + tp6Percent/100)
    tp7 := strategy.position_avg_price * (1 + tp7Percent/100)
    tp8 := strategy.position_avg_price * (1 + tp8Percent/100)
    tp9 := strategy.position_avg_price * (1 + tp9Percent/100)
    tp10 := strategy.position_avg_price * (1 + tp10Percent/100)

    strategy.exit("Exit Long", "BUY", stop=stopLevel, limit=tp1)

// === Short Positions ===
if strategy.position_size < 0
    stopLevel := strategy.position_avg_price * (1 + slPercent/100)
    tp1 := strategy.position_avg_price * (1 - tp1Percent/100)
    tp2 := strategy.position_avg_price * (1 - tp2Percent/100)
    tp3 := strategy.position_avg_price * (1 - tp3Percent/100)
    tp4 := strategy.position_avg_price * (1 - tp4Percent/100)
    tp5 := strategy.position_avg_price * (1 - tp5Percent/100)
    tp6 := strategy.position_avg_price * (1 - tp6Percent/100)
    tp7 := strategy.position_avg_price * (1 - tp7Percent/100)
    tp8 := strategy.position_avg_price * (1 - tp8Percent/100)
    tp9 := strategy.position_avg_price * (1 - tp9Percent/100)
    tp10 := strategy.position_avg_price * (1 - tp10Percent/100)

    strategy.exit("Exit Short", "SELL", stop=stopLevel, limit=tp1)

// === Plotting ===
plot(emaFast, "EMA 9", color=color.yellow, linewidth=2)
plot(emaSlow, "EMA 21", color=color.orange, linewidth=2)

// Global plots (avoid local scope error)
plot(tp1,  "TP1",  color=color.new(color.green, 0))
plot(tp2,  "TP2",  color=color.new(color.green, 10))
plot(tp3,  "TP3",  color=color.new(color.green, 20))
plot(tp4,  "TP4",  color=color.new(color.green, 30))
plot(tp5,  "TP5",  color=color.new(color.green, 40))
plot(tp6,  "TP6",  color=color.new(color.green, 50))
plot(tp7,  "TP7",  color=color.new(color.green, 60))
plot(tp8,  "TP8",  color=color.new(color.green, 70))
plot(tp9,  "TP9",  color=color.new(color.green, 80))
plot(tp10, "TP10", color=color.new(color.green, 90))
plot(stopLevel, "Stoploss", color=color.red, linewidth=2)

// Entry Signals
plotshape(longCond, title="BUY Signal", style=shape.labelup, color=color.green, text="BUY")
plotshape(shortCond, title="SELL Signal", style=shape.labeldown, color=color.red, text="SELL")