Strategi Dagangan Crossover EMA Berganda

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

img

Ringkasan

Strategi perdagangan penembusan EMA berganda adalah strategi pengesanan trend yang menggunakan dua garis EMA yang berbeza untuk menilai isyarat jual beli. Ia juga menggabungkan penapis isyarat dagangan dengan petunjuk EMA tambahan untuk mendapatkan masa masuk yang lebih baik dalam pasaran trend.

Prinsip

Strategi ini menggunakan EMA (siklus 9) dan EMA (siklus 21) untuk menentukan masa membeli dan menjual. Isyarat beli dihasilkan apabila EMA bergerak perlahan di atas EMA dan isyarat jual dihasilkan apabila EMA bergerak perlahan di bawah EMA. Untuk menapis isyarat palsu, strategi ini juga memperkenalkan EMA tambahan (siklus 5) dan dua EMA tambahan (siklus 1 dan 4). Isyarat dagangan sebenar hanya akan dicetuskan apabila EMA tambahan berada di antara EMA yang perlahan dan satu EMA lebih tinggi daripada EMA 4 siklus.

Apabila isyarat dagangan dipicu, strategi akan menetapkan paras stop loss dan stop loss berdasarkan nilai ATR. TP1 adalah 6 kali ganda ATR untuk mendapatkan sebahagian keuntungan pada kelajuan yang lebih cepat. Jika harga tidak memicu TP1, ia akan langsung meratakan kedudukan apabila EMA garis cepat melintasi EMA tambahan semula, mencapai TP2 stop loss.

Kelebihan

  • Menggunakan gabungan EMA berganda untuk menapis isyarat palsu untuk meningkatkan kualiti isyarat dagangan
  • Indikator EMA tambahan dapat mengesahkan arah trend dan mengurangkan risiko operasi terbalik
  • Reka bentuk stop-gap dua, yang boleh menghasilkan keuntungan dengan cepat dan mengikuti trend keuntungan secara mampan
  • ATR Stop Loss Pump boleh disesuaikan dengan turun naik pasaran untuk mengurangkan risiko

Risiko dan pengoptimuman

  • Indikator EMA mudah menyebabkan penyusunan kurva, dan isyarat dagangan mungkin tertunda
  • Gabungan EMA kitaran pendek mungkin menghasilkan lebih banyak isyarat perdagangan bunyi
  • Operasi garis pendek mudah terjejas oleh kejadian kecemasan dan risiko kemusnahan yang lebih besar

Arah pengoptimuman:

  • Uji pelbagai kumpulan kombinasi parameter EMA untuk mencari parameter yang lebih baik
  • Menambah pengesahan untuk metrik lain seperti jumlah dagangan, kadar turun naik, dan lain-lain
  • Luaskan julat stop loss dengan sewajarnya untuk mengurangkan kemungkinan pemicu stop loss
  • Mengoptimumkan nisbah tetapan stop-loss, menyeimbangkan kelajuan keuntungan dan kecekapan penggunaan dana

Ringkasan

Strategi perdagangan penembusan EMA berganda menggunakan persilangan dua EMA untuk membuat penilaian trend, ditambah dengan penapis EMA berganda dan ATR stop loss, yang dapat menjejaki keuntungan trend dengan berkesan. Tetapi masalah seperti penyesuaian kurva EMA, risiko stop loss memerlukan perhatian. Dengan pengoptimuman parameter, pengurusan risiko, dan lain-lain, prestasi dagangan yang lebih stabil dapat diperoleh. Strategi ini sesuai untuk digunakan oleh peniaga yang mempunyai asas tertentu dalam pasaran trend untuk mendapatkan penggunaan dana yang lebih tinggi.

Ringkasan

Strategi perdagangan silang EMA berganda menggunakan dua garis EMA dari tempoh yang berbeza untuk menjana isyarat beli dan jual dengan mengenal pasti arah trend.

Prinsip-prinsip

Strategi ini menggunakan garis EMA pantas (9 tempoh) dan garis EMA perlahan (21 tempoh) untuk menentukan kemasukan. Salib emas di mana EMA pantas melintasi di atas EMA perlahan menghasilkan isyarat beli, sementara salib kematian dengan EMA pantas melintasi di bawah EMA perlahan menghasilkan isyarat jual. Untuk menapis isyarat palsu, strategi ini juga menggunakan EMA tambahan (5 tempoh) dan dua lagi EMA (1 tempoh, 4 tempoh). Isyarat perdagangan sebenar hanya dicetuskan apabila EMA pantas dan perlahan melintasi sementara EMA tambahan berada di antara keduanya, dan EMA 1 tempoh di atas EMA 4 tempoh.

Apabila isyarat dagangan dicetuskan, strategi menggunakan nilai ATR untuk menetapkan paras stop loss dan mengambil keuntungan. TP1 ditetapkan pada 6 x ATR untuk mengambil keuntungan yang lebih cepat. Jika harga tidak mencapai TP1, strategi akan menutup kedudukan secara langsung apabila EMA cepat melintasi semula EMA tambahan, merealisasikan TP2.

Kelebihan

  • Reka bentuk EMA berganda menapis isyarat palsu dan meningkatkan kualiti isyarat
  • EMA tambahan menambah pengesahan arah trend, mengurangkan risiko perdagangan terbalik
  • Keuntungan mengambil berganda membolehkan keuntungan yang cepat dan trend berterusan berikut
  • Pendapatan yang disesuaikan dengan turun naik pasaran

Risiko dan Penambahbaikan

  • EMA boleh menunda harga dan menghasilkan isyarat lewat
  • Kombo EMA yang lebih pendek boleh menghasilkan lebih banyak bunyi
  • Hentian yang lebih ketat menghadapi risiko kejadian tiba-tiba yang lebih besar

Arahan penambahbaikan:

  • Uji pelbagai kombinasi EMA untuk parameter yang lebih baik
  • Tambah penunjuk pengesahan lain seperti jumlah, turun naik dan lain-lain.
  • Memperluas stop loss untuk menurunkan peluang berhenti keluar
  • Mengoptimumkan nisbah mengambil keuntungan untuk keuntungan berbanding kecekapan modal

Kesimpulan

Strategi silang EMA berganda memanfaatkan persilangan EMA untuk arah trend, bersama dengan penapisan EMA berganda dan pengambilan stop loss / keuntungan ATR dinamik. Ini membolehkan trend yang berkesan mengikuti dan menuai keuntungan. Walau bagaimanapun, batasan pemasangan EMA dan risiko stop loss memerlukan berhati-hati. pengoptimuman yang betul, pengurusan risiko dll. boleh membawa kepada prestasi yang lebih kukuh. Strategi ini sesuai untuk pedagang berpengalaman untuk mencapai kecekapan modal yang tinggi di pasaran trend.

[/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 lanjut