Strategi Dagangan Berbilang Sasaran Purata Pergerakan Eksponen Berganda

EMA SMA TP SL 移动平均线 止损 多目标策略 交叉信号
Tarikh penciptaan: 2025-08-21 09:01:39 Akhirnya diubah suai: 2025-08-21 09:01:39
Salin: 0 Bilangan klik: 212
2
fokus pada
319
Pengikut

Strategi Dagangan Berbilang Sasaran Purata Pergerakan Eksponen Berganda Strategi Dagangan Berbilang Sasaran Purata Pergerakan Eksponen Berganda

Gambaran keseluruhan

Strategi dagangan pelbagai sasaran dengan purata bergerak indeks dua kali ganda adalah sistem dagangan kuantitatif berdasarkan tanda silang purata bergerak indeks jangka pendek dan jangka panjang (EMA). Strategi ini menggunakan tanda silang EMA 9 dan 21 sebagai isyarat masuk, sambil menetapkan sehingga 10 sasaran keuntungan dan satu titik berhenti untuk pengurusan risiko dan pengoptimuman keuntungan. Strategi ini menyokong perdagangan dua arah yang banyak, terbuka apabila EMA jangka pendek melintasi EMA jangka panjang, terbuka apabila EMA jangka pendek melintasi EMA jangka panjang, dan keluar ketika berlawanan arah.

Prinsip Strategi

Prinsip-prinsip utama strategi ini adalah berdasarkan kepada sistem penyambungan purata bergerak indeks, seperti berikut:

  1. Hitung dua EMA: EMA pantas ((9 kitaran) dan EMA perlahan ((21 kitaran)
  2. Apabila EMA cepat melalui EMA perlahan, ia menghasilkan isyarat ganda
  3. Apabila EMA pantas melalui EMA perlahan, ia menghasilkan isyarat kosong
  4. Setelah masuk, strategi akan mengira secara automatik 10 harga sasaran tangga (TP1-TP10) dan harga berhenti berdasarkan harga masuk
  5. Strategi menggunakan peratusan yang sama untuk kedudukan multihead dan kosong, tetapi sebaliknya
  6. Untuk multi-head, stop loss ditetapkan di bawah harga masuk 0.5%, dan sasaran keuntungan berkisar antara 0.5% dan 5.0% di atas harga masuk
  7. Untuk kepala kosong, stop loss ditetapkan 0.5% di atas harga masuk dan sasaran keuntungan berkisar 0.5% hingga 5.0% di bawah harga masuk
  8. Strategi ini juga akan keluar apabila terdapat isyarat silang terbalik.

Strategi ini menggunakan kaedah pengurusan risiko yang sistematik, dengan 10% dana akaun digunakan secara lalai untuk setiap perdagangan, dana permulaan ditetapkan pada 100,000, dan operasi peleburan dilarang.

Kelebihan Strategik

  1. Isyarat masuk yang mudah dan berkesan: EMA cross adalah isyarat dagangan yang digunakan secara meluas dan disahkan, mudah difahami dan dilaksanakan. Pengaturan parameter untuk kitaran 9 / 21 dapat menangkap trend jangka pendek dan menengah dengan lebih baik.
  2. Pengurusan keuntungan pelbagai objektif: Tetapkan 10 sasaran keuntungan tangga, yang membolehkan peniaga mendapat keuntungan secara berturut-turut pada tahap harga yang berbeza, dapat mengunci sebahagian keuntungan, dan membiarkan keuntungan dilanjutkan sejauh mungkin.
  3. Kawalan risiko yang ketat: Setiap dagangan mempunyai titik berhenti yang jelas, mengehadkan kadar kerugian maksimum untuk satu dagangan, mengawal risiko dengan berkesan.
  4. Bantuan visualStrategi: Semua isyarat masuk, titik henti dan sasaran ditunjukkan dengan jelas di carta, membantu peniaga memahami keadaan pasaran secara langsung.
  5. Keupayaan perdagangan dua halaStrategi ini juga menyokong perdagangan berbilang ruang dan mencari peluang dalam pelbagai keadaan pasaran.
  6. Parameter yang boleh disesuaikan: Semua parameter utama (termasuk kitaran EMA, nisbah stop loss, sasaran keuntungan) boleh disesuaikan dengan input, meningkatkan fleksibiliti strategi.
  7. Automatik sepenuhnyaStrategi: Automasi sepenuhnya, tanpa campur tangan manusia, dari pengenalan isyarat ke kemasukan, menetapkan sasaran berhenti dan keuntungan, dan keluar.

Risiko Strategik

  1. Risiko penembusan palsuSistem EMA silang mudah menghasilkan isyarat palsu dalam pasaran yang bergolak, yang boleh menyebabkan perdagangan yang kerap dan kerugian. Strategi tidak menetapkan penapis untuk membezakan isyarat kuat dan lemah.
  2. Stop loss biasSeting Stop Loss lalai untuk strategi semasa adalah 0.5%, yang mungkin terlalu ketat dalam pasaran atau jenis yang lebih bergolak dan mudah dicetuskan oleh bunyi pasaran.
  3. Kebergantungan satu indikatorStrategi hanya bergantung pada EMA Cross sebagai isyarat masuk, tanpa pengesahan dalam kombinasi dengan petunjuk teknikal lain atau keadaan pasaran, meningkatkan risiko kesalahan penilaian.
  4. Pengurusan wang tetap: 10% dana akaun tetap digunakan untuk setiap transaksi, tidak disesuaikan dengan turun naik pasaran atau kekuatan isyarat yang dinamik, mungkin tidak cukup optimum.
  5. Kurangnya pengenalan keadaan pasaranStrategi ini tidak membezakan antara pasaran trend dan pasaran goyah, dan masih menghasilkan isyarat dalam keadaan pasaran yang tidak sesuai dengan sistem persilangan EMA.
  6. Strategi keluar tunggalWalaupun banyak sasaran keuntungan telah ditetapkan, tetapi sebenarnya strategi hanya akan diletakkan pada titik sasaran pertama (TP1) atau keluar ketika bersilang terbalik, tanpa mencapai keuntungan yang benar.

Untuk mengurangkan risiko ini, disyorkan untuk memperkenalkan syarat penapisan tambahan, seperti indikator kekuatan trend, dan pertimbangkan untuk menyesuaikan seting stop loss dan sasaran mengikut dinamik turun naik pasaran.

Arah pengoptimuman strategi

  1. Tambah penapisMemperkenalkan penunjuk teknikal tambahan sebagai penapis, seperti ADX (Indeks Trend Rata-rata) untuk mengesahkan kekuatan trend, atau penunjuk RSI yang agak kuat (RSI) untuk mengelakkan perdagangan di kawasan overbought dan oversold.
  2. Dinamika Hentikan Kerugian: menukar peratusan berhenti tetap kepada berhenti dinamik berdasarkan turun naik pasaran, seperti menggunakan ATR (rata-rata amplitudo turun naik sebenar) kalikan dengan faktor untuk menetapkan jarak berhenti.
  3. Mencapai Keuntungan Berbilang ObjektifUbah kod strategi untuk mencapai kedudukan kosong pada bahagian-bahagian yang berlainan dari kedudukan sasaran, dan bukan hanya pada keseluruhan kedudukan kosong pada kedudukan sasaran pertama. Ini memerlukan pembahagian setiap urus niaga ke dalam beberapa kedudukan yang lebih kecil.
  4. Menambah mekanisme pengenalan trend: Tambah logik pengiktirafan trend, buka posisi hanya apabila arah trend jelas, dan mengelakkan perdagangan yang kerap dalam pasaran yang bergolak.
  5. Pengurusan wang yang optimumBergantung kepada intensiti isyarat, turun naik pasaran atau penarikan balik, bahagian dana yang digunakan untuk setiap transaksi disesuaikan secara dinamik, dan bukannya 10% tetap.
  6. Menambah penapis masaMengelakkan perdagangan pada masa-masa yang bergelombang sebelum dan selepas pasaran dibuka, atau mengelakkan pengumuman data ekonomi penting.
  7. Memperkenalkan penutupan bergerak: Apabila harga bergerak ke arah yang menguntungkan untuk jarak tertentu, titik hentian dipindahkan ke titik keseimbangan rugi atau kedudukan yang lebih menguntungkan, melindungi keuntungan.
  8. Peningkatan perlindungan terhadap trend: Dalam keadaan pasaran yang melampau, penambahan penunjuk berlawanan arah sebagai isyarat amaran untuk mengelakkan terus memegang kedudukan apabila pasaran berbalik.

Dengan pengoptimuman ini, anda dapat meningkatkan kestabilan dan keuntungan strategi dengan ketara, mengurangkan kekerapan penarikan balik dan perdagangan yang rugi.

ringkaskan

Strategi perdagangan pelbagai sasaran dengan purata bergerak dua indeks adalah sistem perdagangan kuantitatif yang jelas dan logik yang mudah, berdasarkan pada isyarat silang EMA klasik, ditambah dengan pengurusan keuntungan dan penempatan berhenti pelbagai sasaran. Strategi ini sesuai untuk perdagangan trend jangka pendek dan jangka pendek, dan lebih baik dalam pasaran yang jelas.

Walaupun reka bentuk strategi agak mudah, ia merangkumi unsur-unsur teras strategi perdagangan: isyarat masuk, syarat keluar, pengurusan hentian dan matlamat keuntungan. Kelebihan utama strategi adalah operasi yang jelas, mudah difahami dan dilaksanakan, sambil memberikan sokongan visual yang baik.

Walau bagaimanapun, strategi ini juga mempunyai batasan seperti bergantung pada satu indikator, kekurangan pengenalan keadaan pasaran dan pengurusan wang yang tidak cukup fleksibel. Strategi ini mempunyai ruang yang lebih besar untuk pengoptimuman dengan menambah penapis trend, mengoptimumkan mekanisme penangguhan kerugian, mencapai keuntungan yang benar-benar berturut-turut dan memperbaiki kaedah pengurusan wang.

Bagi peniaga, strategi ini boleh digunakan sebagai kerangka asas untuk menyesuaikan dan mengoptimumkan secara peribadi mengikut keutamaan risiko individu dan ciri-ciri varieti perdagangan untuk mencapai kesan perdagangan yang lebih baik.

Kod 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")