Strategi Perdagangan Purata Bergerak

Penulis:ChaoZhang, Tarikh: 2023-12-18 18:01:59
Tag:

img

Ringkasan

Strategi ini adalah strategi pengesanan trend yang menggabungkan penunjuk momentum dan purata bergerak. Ia menggunakan purata bergerak eksponensial sebagai alat penghakiman trend utama dan mengeluarkan isyarat beli dan jual dalam kombinasi dengan jumlah dagangan yang tinggi. Strategi ini sesuai untuk pegangan jangka menengah dan panjang untuk mengesan trend pasaran utama.

Prinsip Strategi

  1. Gunakan EMA 34 tempoh sebagai alat utama untuk penilaian trend. Apabila harga melintasi di atas EMA, ia adalah isyarat kenaikan, dan apabila ia melintasi di bawah, ia adalah isyarat penurunan.

  2. Bandingkan purata bergerak 21 hari jumlah dengan 1.5 kali purata baru-baru ini.

  3. Isyarat beli hanya dikeluarkan apabila harga melintasi EMA ke atas dan jumlahnya tinggi. Isyarat jual hanya dikeluarkan apabila harga melintasi EMA ke bawah dan jumlahnya tinggi.

  4. Selepas membuka kedudukan, tetapkan stop loss dan mengambil nisbah keuntungan, yang boleh disesuaikan.

Dengan mengambil kira faktor-faktor yang komprehensif seperti trend, momentum dan kawalan risiko, ia agak komprehensif dan stabil.

Analisis Kelebihan

  1. Menggunakan EMA untuk menentukan arah trend utama pasaran dapat dengan berkesan mengesan trend jangka sederhana dan panjang.

  2. Menggabungkan dengan jumlah perdagangan yang tinggi FILTER boleh mengelakkan ditipu oleh pecah palsu.

  3. Menetapkan nisbah stop loss dan mengambil keuntungan dapat mengawal risiko perdagangan tunggal dengan berkesan.

  4. Mengambil strategi pegangan jangka menengah dan panjang tidak dipengaruhi oleh bunyi bising pasaran frekuensi tinggi dan sentiasa menguntungkan.

Risiko dan Penyelesaian

  1. Kemungkinan tinggi untuk disesatkan oleh penyebaran palsu frekuensi tinggi.

  2. Pengepungan jangka menengah dan panjang meningkatkan pekerjaan modal.

  3. Strategi perdagangan purata bergerak mungkin ketinggalan dan terlepas peluang jangka pendek.

  4. Fluktuasi yang ketara dalam pasaran yang tidak menentu boleh membawa kepada kerugian besar.

Arahan pengoptimuman

  1. Uji kekuatan dan kelemahan parameter kitaran EMA yang berbeza untuk mencari parameter optimum.

  2. Uji kesan stop loss yang berbeza dan ambil parameter nisbah keuntungan pada pulangan strategi dan rintangan risiko.

  3. Cuba menggabungkan penunjuk lain seperti MACD dan KDJ untuk menentukan peluang jangka pendek.

  4. Mengoptimumkan strategi pengurusan modal seperti kawalan kedudukan dan kaedah stop loss dinamik.

Ringkasan

Secara keseluruhan, strategi ini adalah strategi pegangan jangka menengah dan panjang yang stabil. Ia dapat dengan berkesan mengesan trend pasaran utama dan menggunakan penunjuk jumlah untuk menapis isyarat yang mengelirukan. Pada masa yang sama, langkah stop loss dan mengambil keuntungan yang sesuai digunakan untuk mengawal risiko perdagangan tunggal. Ia boleh digambarkan sebagai kerja perdagangan trend maju dan ringan. Dengan pengoptimuman yang betul, saya percaya ia dapat mencapai kadar pulangan strategi yang lebih ideal.


/*backtest
start: 2023-12-10 00:00:00
end: 2023-12-17 00:00:00
period: 3m
basePeriod: 1m
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/
// © TradingSignalHub

//@version=5
strategy("Di strategy ", overlay=true)

//date setting
fromDay = input(defval = 1, title = "Ngày bắt đầu", group = "Cài đặt thời gian")
fromMonth = input(defval = 1, title = "Tháng bắt đầu", group = "Cài đặt thời gian")
fromYear = input(defval = 2023, title = "Năm bắt đầu", group = "Cài đặt thời gian")

toDay = input(defval = 31, title = "Đến ngày", group = "Cài đặt thời gian")
toMonth = input(defval = 12, title = "Đến tháng", group = "Cài đặt thời gian")
toYear = input(defval = 2033, title = "Đến năm", group = "Cài đặt thời gian")

startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond() => 
    time >= startDate and time <= finishDate ? true : false

//snr setting
price = close
ema34     = input.int(34, minval=2, title="EMA 34", group = "Cài đặt EMA")
pacC        = ta.ema(close,ema34)
pacL        = ta.ema(low,ema34)
pacH        = ta.ema(high,ema34)
L =plot(pacL, color=color.rgb(3, 139, 251), linewidth=1, title="High EMA 34")
H =plot(pacH, color=color.rgb(3, 137, 247), linewidth=1, title="Low EMA 34")
C =plot(pacC, color=color.rgb(4, 138, 248), linewidth=1, title="Close EMA 34")
fill(L,H, color=color.rgb(33, 149, 243, 85),title="Fill dãi EMA 34")

//EMA full setting
ema89 =ta.ema(close,89)
DIema= ta.ema(close,458)
plot(DIema,title="DI_ema",color=color.rgb(247, 214, 3),linewidth=2)
plot(ema89,title="EMA 89",color=color.orange,linewidth=1)
//ema200= ta.ema(close,200)
//ema610= ta.ema(close,610)
//ema144= ta.ema(close,144)
//ema258= ta.ema(close,258)
//plot(ema200,title="EMA 200",color=color.purple,linewidth=2)
//plot(ema610,title="EMA 610",color=color.white,linewidth=2)
//plot(ema144,title="144Banker",color=color.green,linewidth=1)
//plot(ema258,title="258Banker",color=color.yellow,linewidth=1)

EMAbuy = ta.crossover(price, DIema)
EMAsell = ta.crossunder(price, DIema)

//volume setting
vol = (volume)
length = input(21, "Đường Trung Bình Vol", group = "Cài đặt Volume" )
div = input(1.5, "Mức trung bình", group = "Cài đặt Volume" )
up = close > open 
down = open>close
Volhigh = volume> (ta.ema(volume, length)*div)

//Cài đặt lệnh
longCondition = EMAbuy and Volhigh
if time_cond()
    if (longCondition)
        strategy.entry("Long", strategy.long)

shortCondition = EMAsell and Volhigh
if time_cond()
    if (shortCondition)
        strategy.entry("Sell", strategy.short)


stopPer = input.float(1.0, title="Stop Loss %", group = "Cài đặt TP & SL %" ) / 100
takePer = input.float(2.0, title="Take Profit %", group = "Cài đặt TP & SL %" ) / 100

// Determine where you've entered and in what direction
longStop = strategy.position_avg_price * (1 - stopPer)
shortStop = strategy.position_avg_price * (1 + stopPer)
shortTake = strategy.position_avg_price * (1 - takePer)
longTake = strategy.position_avg_price * (1 + takePer)

if strategy.position_size > 0 
    strategy.exit(id="Đóng Long", stop=longStop, limit=longTake)
if strategy.position_size < 0 
    strategy.exit(id="Đóng Sell", stop=shortStop, limit=shortTake)

alertcondition(longCondition, title = "Tín hiệu BUY", message = "Tín hiệu BUY")
alertcondition(shortCondition, title = "Tín hiệu SELL", message = "Tín hiệu SELL")
//PLOT FIXED SLTP LINE
//plotshape(strategy.position_size > 0 ? longStop : na, shape.labelup, color=color.rgb(34, 249, 6, 50), linewidth=1, title="Long SL")
//plot(strategy.position_size < 0 ? shortStop : na, style=plot.style_circles, color=color.rgb(250, 8, 8, 50), linewidth=1, title="Short SL")
//plot(strategy.position_size > 0 ? longTake : na, style=plot.style_linebr, color=color.rgb(59, 248, 7), linewidth=1, title="Long TP")
//plot(strategy.position_size < 0 ? shortTake : na, style=plot.style_linebr, color=color.rgb(247, 7, 7), linewidth=1, title="Short TP")


Lebih lanjut