Strategi perdagangan lintas EMA ganda

Penulis:ChaoZhang, Tanggal: 2023-10-16 16:24:00
Tag:

img

Pengamatan

Strategi perdagangan dengan EMA ganda adalah strategi pelacakan tren yang menggunakan dua EMA rata-rata yang berbeda untuk menilai sinyal jual. Strategi ini juga menggabungkan indikator EMA tambahan untuk menyaring sinyal perdagangan untuk mendapatkan waktu masuk yang lebih baik ke pasar tren.

Prinsip

Strategi ini menggunakan EMA cepat (siklus 9) dan EMA lambat (siklus 21) untuk menentukan waktu membeli dan menjual. Sinyal beli dihasilkan ketika EMA cepat melewati garis lambat, dan sinyal jual dihasilkan ketika EMA lambat melewati garis cepat. Untuk menyaring sinyal palsu, strategi ini juga memperkenalkan EMA tambahan (siklus 5) dan dua EMA tambahan (siklus 1), 4 siklus (siklus 4); EMA tambahan hanya akan memicu sinyal perdagangan yang sebenarnya ketika EMA tambahan berada di antara garis cepat saat EMA lambat terjadi dan EMA 1 siklus lebih tinggi dari EMA 4 siklus.

Ketika sinyal perdagangan dipicu, strategi akan mengatur stop loss dan stop loss berdasarkan nilai ATR. TP1 adalah 6 kali ATR untuk mendapatkan sebagian keuntungan dari kecepatan yang lebih cepat. Jika harga tidak memicu TP1, ketika EMA garis cepat kembali melintasi EMA tambahan, posisi akan langsung dipadatkan untuk mencapai TP2 stop loss.

Keunggulan

  • Menggunakan kombinasi EMA ganda untuk menyaring sinyal palsu untuk meningkatkan kualitas sinyal perdagangan
  • Indikator EMA tambahan dapat lebih memverifikasi arah tren dan mengurangi risiko operasi terbalik
  • Desain stop-gap ganda, untuk mendapatkan keuntungan cepat dan mengikuti tren keuntungan secara berkelanjutan
  • Pengecualian stop loss dinamis ATR dapat disesuaikan dengan volatilitas pasar untuk mengurangi risiko

Risiko dan Optimasi

  • Indikator EMA mudah menyebabkan penyusunan kurva, sinyal perdagangan mungkin tertunda
  • Kombinasi EMA jangka pendek mungkin menghasilkan sinyal perdagangan yang lebih berisik
  • Operasi jalur pendek rentan terhadap kejadian darurat dan risiko kerusakan yang lebih besar

Di sini ada beberapa tips yang bisa Anda gunakan.

  • Uji kombinasi parameter EMA dari beberapa kelompok untuk mencari parameter yang lebih optimal
  • Menambahkan verifikasi indikator lain seperti volume transaksi, volatilitas, dll.
  • Luaskan rentang stop loss yang tepat untuk mengurangi kemungkinan stop loss dipicu
  • Mengoptimalkan rasio pengaturan stopgap, menyeimbangkan kecepatan keuntungan dan efisiensi penggunaan dana

Pengamatan

Strategi perdagangan dengan EMA ganda untuk melakukan penentuan tren menggunakan penyambungan dua EMA, ditambah dengan banyak penyaringan EMA dan stop loss ATR dinamis, dapat melacak keuntungan tren secara efektif. Namun, masalah seperti penyesuaian kurva EMA, risiko stop loss perlu diperhatikan. Dengan optimasi parameter, manajemen risiko, dan lain-lain, kinerja perdagangan yang lebih stabil dapat diperoleh. Strategi ini cocok untuk digunakan oleh pedagang dengan dasar tertentu dalam pasar tren untuk mendapatkan efisiensi penggunaan dana yang lebih tinggi.

Gambaran umum

Strategi perdagangan crossover EMA ganda menggunakan dua garis EMA dari periode yang berbeda untuk menghasilkan sinyal beli dan jual dengan mengidentifikasi arah tren.

Prinsip-prinsip

Strategi ini menggunakan garis EMA cepat (9 periode) dan garis EMA lambat (21 periode) untuk menentukan entri. Salib emas di mana EMA cepat melintasi di atas EMA lambat menghasilkan sinyal beli, sementara salib kematian dengan EMA cepat melintasi di bawah EMA lambat menghasilkan sinyal jual. Untuk menyaring sinyal palsu, strategi ini juga menggunakan EMA bantu (5 periode) dan dua lagi EMA (1 periode, 4 periode). Sinyal perdagangan nyata hanya dipicu ketika EMA cepat dan lambat melintasi sementara EMA bantu berada di antara keduanya, dan EMA 1 periode berada di atas EMA 4 periode.

Setelah sinyal perdagangan dipicu, strategi menggunakan nilai ATR untuk mengatur stop loss dan mengambil tingkat keuntungan. TP1 ditetapkan pada 6 x ATR untuk pengambilan keuntungan yang lebih cepat. Jika harga tidak mencapai TP1, strategi akan menutup posisi secara langsung ketika EMA cepat menyeberangi kembali EMA tambahan, mewujudkan TP2.

Keuntungan

  • Desain EMA ganda menyaring sinyal palsu dan meningkatkan kualitas sinyal
  • EMA tambahan menambahkan verifikasi arah tren, mengurangi risiko perdagangan terbalik
  • Dual mengambil keuntungan memungkinkan keuntungan cepat dan tren berkelanjutan berikut
  • Peningkatan nilai tukar rupiah

Risiko dan Peningkatan

  • EMA dapat menunda harga dan menghasilkan sinyal terlambat
  • Kombo EMA yang lebih pendek dapat menghasilkan lebih banyak kebisingan
  • Stop yang lebih ketat menghadapi risiko kejadian mendadak yang lebih besar

Arah perbaikan:

  • Uji beberapa kombinasi EMA untuk parameter yang lebih baik
  • Tambahkan indikator konfirmasi lainnya seperti volume, volatilitas dll.
  • Memperluas stop loss untuk menurunkan peluang stop out
  • Mengoptimalkan rasio mengambil keuntungan untuk keuntungan vs efisiensi modal

Kesimpulan

Strategi crossover EMA ganda memanfaatkan penyeberangan EMA untuk arah tren, bersama dengan penyaringan EMA ganda dan pengambilan stop loss / profit ATR dinamis. Ini memungkinkan mengikuti tren yang efektif dan panen keuntungan. Namun, keterbatasan pas EMA dan risiko stop loss memerlukan hati-hati. Optimasi yang tepat, manajemen risiko, dll dapat menyebabkan kinerja yang lebih kuat. Strategi ini cocok untuk pedagang berpengalaman untuk mencapai efisiensi modal yang tinggi di pasar tren.

[/trans]


/*backtest
start: 2022-10-09 00:00:00
end: 2023-04-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// @author ADHDCRYPT0

//@version=4
strategy(title = "EMA double crossover", shorttitle = "(TEST) double cross over", overlay = true, default_qty_value = 100, initial_capital = 1000,default_qty_type=strategy.percent_of_equity, pyramiding=0, process_orders_on_close=true)


// Variables
ema_len1 = input(9 , title="Fast EMA")
ema_len2 = input(21, title="Slow EMA")
ema_len3 = input(5, title="Exit EMA")
ema_len4 = input(1, title="FastConf EMA")
ema_len5 = input(4, title="SlowConf EMA")

fastEMA = ema(open, ema_len1)
slowEMA = ema(open, ema_len2)
exitEMA = ema(open, ema_len3)
conf1EMA = ema(open, ema_len4)
conf2EMA = ema(open, ema_len5)
plot(fastEMA, title='fastEMA', transp=0, color=color.green)
plot(slowEMA, title='slowEMA', transp=0, color=color.red  )
plot(exitEMA, title='exitEMA', transp=0, color=color.orange)
plot(conf1EMA, title='conf1EMA', transp=0, color=color.blue)
plot(conf2EMA, title='conf2EMA', transp=0, color=color.black)

vol = volume 
volma = sma(volume,7)
vol_cond = vol>volma

atr = atr(5)


// Entry Conditions and vol_cond
long = crossover(fastEMA, slowEMA) and (conf1EMA > conf2EMA) and (fastEMA < exitEMA)
short= crossunder(fastEMA, slowEMA) and (conf1EMA < conf2EMA) and (fastEMA > exitEMA)

tradeType = input("BOTH", title="What trades should be taken : ", options=["LONG", "SHORT", "BOTH", "NONE"])

pos = 0.0

if tradeType=="BOTH"
    pos:= long? 1 : short? -1 : pos[1]
if tradeType=="LONG"
    pos:= long? 1 : pos[1]
if tradeType=="SHORT"
    pos:=short? -1 : pos[1]

longCond  = long  and (pos[1]!= 1 or na(pos[1]))
shortCond = short and (pos[1]!=-1 or na(pos[1]))

// EXIT FUNCTIONS //
sl  = input(1, title="Stop Loss (ATR)", minval=0)
tp  = input(6, title="Take Profit 1 (ATR)", minval=0)

// Simple Stop Loss + 2 Take Profits
sl_long   =  valuewhen(longCond , low - atr * sl, 0)
sl_short  =  valuewhen(shortCond, high+ atr * sl, 0)

tp_long  = valuewhen(longCond , high + atr * tp, 0)
tp_short = valuewhen(shortCond, low  - atr * tp, 0)


long_exit = crossover(fastEMA, exitEMA) and pos[1]==1
short_exit= crossover(exitEMA, fastEMA) and pos[1]==-1

if long_exit or short_exit
	pos:=0


// Position Adjustment
long_sl  = low <sl_long [1] and pos[1]==1
short_sl = high>sl_short[1] and pos[1]==-1

if long_sl or short_sl
    pos:=0
    
//  Strategy Backtest Limiting Algorithm
i_startTime = input(defval = timestamp("01 Sep 2002 13:30 +0000"), title = "Backtesting Start Time", type = input.time)
i_endTime = input(defval = timestamp("30 Sep 2099 19:30 +0000"), title = "Backtesting End Time", type = input.time)
timeCond = true


// Make sure we are within the bar range, Set up entries and exit conditions
if strategy.equity >0
    strategy.entry("long" , strategy.long , when=longCond  and timeCond and tradeType!="SHORT" , alert_message="INSERT MESSAGE HERE")
    strategy.entry("short", strategy.short, when=shortCond and timeCond and tradeType!="LONG" , alert_message="INSERT MESSAGE HERE")
    
    strategy.exit("SL/TP1", from_entry = "long" , stop=sl_long , limit=tp_long , alert_message="INSERT MESSAGE HERE")
    strategy.exit("SL/TP1", from_entry = "short", stop=sl_short, limit=tp_short, alert_message="INSERT MESSAGE HERE")

    strategy.exit("SL", from_entry = "long" , stop=sl_long, alert_message="INSERT MESSAGE HERE")
    strategy.exit("SL", from_entry = "short", stop=sl_short, alert_message="INSERT MESSAGE HERE")
    
    strategy.close("long", when=long_exit , comment="TP2", alert_message="INSERT MESSAGE HERE")
    strategy.close("short", when=short_exit, comment="TP2", alert_message="INSERT MESSAGE HERE")


Lebih banyak