Triple EMA Trend Following Strategy adalah strategi yang sangat sesuai untuk mengikuti trend pasaran. Ia menggunakan tiga EMA dari tempoh yang berbeza sebagai isyarat perdagangan untuk menubuhkan kedudukan panjang atau pendek apabila terdapat pengesahan trend yang mencukupi.
Kelebihan strategi ini ialah ia dapat mengurangkan isyarat palsu dan memastikan kekuatan trend yang mencukupi sebelum memasuki kedudukan. Pada masa yang sama, ia mempunyai sistem stop loss adaptif yang boleh menjejaki berhenti berdasarkan turun naik pasaran, dengan itu mencapai pengurusan risiko yang lebih baik.
Strategi ini menggunakan EMA 7-, 14 dan 21 tempoh sebagai penunjuk isyarat kemasukan. Logik khusus adalah apabila harga melintasi di atas ketiga-tiga EMA pada masa yang sama, pergi panjang; apabila harga melintasi di bawah ketiga-tiga EMA pada masa yang sama, pergi pendek.
Reka bentuk ini dapat mengurangkan isyarat palsu dan memastikan trend cukup jelas sebelum memasuki.
Strategi ini menggunakan sistem stop loss adaptif berdasarkan ATR dan penarikan maksimum. Ia mengira turun naik harga dalam masa nyata dan menetapkan garis stop loss dengan sewajarnya. Khususnya, ia mengira kelipatan tertentu ATR sebagai zon penyangga stop loss.
Semasa trend menaik, garis stop loss akan bergerak ke atas dengan paras tertinggi baru, dengan kesan mengejar yang baik. Apabila harga jatuh kembali ke titik terendah zon penyangga, garis stop loss akan dicetuskan untuk menutup kedudukan. Ini dapat mengawal risiko stop loss mengikut keadaan pasaran.
Strategi ini menggunakan kaedah mengambil keuntungan peratusan tetap. Selepas membuka kedudukan, garis mengambil keuntungan akan ditetapkan pada peratusan tertentu di atas harga kemasukan. Apabila harga meningkat ke baris mengambil keuntungan, kedudukan akan ditutup untuk mengambil keuntungan.
Manfaat peratusan mengambil keuntungan tetap ini adalah bahawa ia membolehkan menetapkan tahap keuntungan sasaran yang akan memenuhi keluar sekali dicapai. Ia juga mengelakkan risiko harga jatuh lagi. Peratusan mengambil keuntungan boleh diselaraskan mengikut keperluan.
Dapat mengelakkan membuka kedudukan secara membabi buta di pasaran yang tidak menentu dengan menggabungkan dengan penunjuk penilaian trend; juga boleh menggunakan kaedah mengambil keuntungan atau nisbah keuntungan untuk membuat kaedah mengambil keuntungan lebih fleksibel.
Strategi ini juga boleh dioptimumkan dalam aspek berikut:
Gunakan lebih banyak penunjuk untuk menentukan masa kemasukan, seperti MACD, KD dan lain-lain, mengelakkan terperangkap dalam pasaran yang tidak menentu.
Cuba bergerak mengambil keuntungan, atau nisbah keuntungan mengambil keuntungan kaedah, untuk membuat mengambil keuntungan kaedah lebih fleksibel.
Tambah mekanisme pengiring ke bawah untuk kaedah berhenti kerugian, yang membolehkan mengesan titik yang lebih rendah lagi apabila harga jatuh lagi, dengan itu mengawal risiko.
Sesuaikan parameter tempoh EMA berdasarkan ciri-ciri produk yang berbeza, mengoptimumkan penilaian trend.
Tambah modul saiz kedudukan, boleh menyesuaikan setiap saiz perdagangan berdasarkan nisbah penggunaan dana.
Triple EMA Trend Following Strategy adalah strategi trend berikut yang sangat praktikal. Ia mempunyai keupayaan penilaian trend yang kuat, sementara juga mempunyai mekanisme mengambil keuntungan dan menghentikan kerugian adaptif yang boleh menguruskan pesanan secara automatik. Dari perspektif pengoptimuman, sistem mengambil keuntungan dan menghentikan kerugian boleh ditingkatkan lagi untuk menyesuaikan berdasarkan keadaan pasaran masa nyata. Tetapi secara keseluruhan, strategi ini adalah pilihan risiko yang mudah dilaksanakan dan boleh dikawal.
/*backtest start: 2023-01-01 00:00:00 end: 2023-06-16 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(shorttitle='Three EMAs Trend-following Strategy',title='Three EMAs Trend-following Strategy (by Coinrule)', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type=strategy.commission.percent, commission_value=0.1) //Backtest dates fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12) fromDay = input(defval = 1, title = "From Day", type = input.integer, minval = 1, maxval = 31) fromYear = input(defval = 2020, title = "From Year", type = input.integer, minval = 1970) thruMonth = input(defval = 1, title = "Thru Month", type = input.integer, minval = 1, maxval = 12) thruDay = input(defval = 1, title = "Thru Day", type = input.integer, minval = 1, maxval = 31) thruYear = input(defval = 2112, title = "Thru Year", type = input.integer, minval = 1970) showDate = input(defval = true, title = "Show Date Range", type = input.bool) start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window window() => time >= start and time <= finish ? true : false // create function "within window of time" ema_1 = ema(close, input(7)) ema_2 = ema(close, input(12)) ema_3 = ema(close, input(21)) Take_profit= ((input (4))/100) longTakeProfit = strategy.position_avg_price * (1 + Take_profit) length = input(20, "Length", minval = 2) src = input(close, "Source") factor = input(3.0, "Multiplier", minval = 0.25, step = 0.25) volStop(src, atrlen, atrfactor) => var max = src var min = src var uptrend = true var stop = 0.0 atrM = nz(atr(atrlen) * atrfactor, tr) max := max(max, src) min := min(min, src) stop := nz(uptrend ? max(stop, max - atrM) : min(stop, min + atrM), src) uptrend := src - stop >= 0.0 if uptrend != nz(uptrend[1], true) max := src min := src stop := uptrend ? max - atrM : min + atrM [stop, uptrend] [vStop, uptrend] = volStop(src, length, factor) go_long = crossover(close, ema_1) and crossover(close, ema_2) and crossover(close, ema_3) closeLong = close > longTakeProfit or crossunder(close, vStop) //Entry strategy.entry(id="long", long = true, when = go_long and window()) //Exit strategy.close("long", when = closeLong and window()) plot(vStop,"Vstop", color.black, linewidth=2) plot(ema_1,"EMA Short", color.green, linewidth=1) plot(ema_2,"EMA Mid", color.purple, linewidth=1) plot(ema_3,"EMA Long", color.red, linewidth=1)