
Triple EMA overlapping breakout strategi menggunakan triple indeks bergerak rata-rata petunjuk untuk menentukan arah trend pasaran, di mana trend breakout entry. Strategi ini juga digabungkan dengan K line bentuk keputusan isyarat yang baik dan buruk.
Strategi ini berdasarkan kepada prinsip-prinsip berikut:
Menggunakan tiga garis EMA dengan tempoh yang berbeza (garis 200, 50, dan 20) untuk menentukan trend utama, trend pertengahan, dan trend jangka pendek.
Apabila trend jangka pendek EMA ((20 hari garis) ke atas memecahkan EMA pertengahan ((50 hari garis) menghasilkan isyarat beli; apabila ke bawah memecahkan, menghasilkan isyarat menjual
Gabungan dengan bentuk garis K, menilai kebolehpercayaan isyarat penembusan. Ia hanya dianggap sebagai penembusan yang boleh dipercayai apabila harga penutupan garis K kedua lebih tinggi daripada (<) harga tertinggi (<) harga terendah pada hari sebelumnya.
Tetapkan titik hentian untuk mengelakkan risiko di luar julat turun naik yang munasabah.
Menggunakan pelbagai indikator EMA untuk menilai trend, meningkatkan ketepatan penilaian.
Gabungan penapis bentuk K dengan isyarat yang mengelirukan, mengelakkan risiko perdagangan yang tidak perlu.
Tetapkan titik hentian untuk mengawal kerugian tunggal secara berkesan.
Dalam keadaan yang tidak menentu, EMA menghasilkan banyak isyarat yang salah dan tidak dapat menentukan pergerakan pasaran dengan berkesan.
Kaedah gabungan satu-satunya indikator mudah, penilaian yang lebih buruk terhadap situasi yang rumit.
Tidak mengambil kira kos urus niaga, ia mungkin tidak menguntungkan dalam pasaran bayaran tinggi.
Indikator lain seperti MACD, KDJ dan lain-lain boleh diperkenalkan untuk membentuk gabungan indikator dan meningkatkan ketepatan penilaian.
Ujian boleh dioptimumkan mengikut parameter varieti dan kitaran yang berbeza, menjadikan parameter strategi lebih sesuai dengan ciri varieti tersebut.
Indeks jumlah dagangan boleh diperkenalkan untuk mengelakkan isyarat palsu yang rendah.
EMA tiga berlainan strategi strategi penembusan keseluruhan jelas dan mudah difahami, melalui EMA menilai trend utama pasaran, dan mencari masa masuk apabila trend bertukar. Tetapi strategi ini mempunyai batasan tertentu, tidak dapat menangani keadaan yang rumit dengan baik, disarankan untuk digunakan dengan kombinasi indikator lain, dan melakukan pengoptimuman parameter, untuk menyesuaikan diri dengan keadaan pasaran yang lebih luas.
/*backtest
start: 2022-12-21 00:00:00
end: 2023-12-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("GHG RETRACEMENT MODE 1", overlay=true)
entryLevel1 = input(0.5, "ENTRY LEVEL 1")
entryLevel2 = input(0.25, "ENTRY LEVEL 2")
entryLevel3 = input(0.0, "ENTRY LEVEL 3")
stopLevel = input(-0.35, "STOP LEVEL")
tpLevel = input(0.88, "TP LEVEL")
dontUseEma = input(false, "Don't Use EMA")
get_level(level, level100, level0) =>
level * (level100 - level0) + level0
buySignal = close[2] < open[2] and close[1] > open[1] and close[0] > open[0] and high[0] > open[2] and high[1] < high[2]
sellSignal = close[2] > open[2] and close[1] < open[1] and close[0] < open[0] and low[0] < open[2] and low[1] > low[2]
if buySignal and (close[0] > ta.ema(close, 200) or dontUseEma)
l = label.new(bar_index, na)
entryPrice1 = get_level(entryLevel1, high[0], low[2])
entryPrice2 = get_level(entryLevel2, high[0], low[2])
entryPrice3 = get_level(entryLevel3, high[0], low[2])
exitPrice = get_level(tpLevel, high[0], low[2])
stopPrice = get_level(stopLevel, high[0], low[2])
strategy.order("BUY 1", strategy.long, comment="BUY 1", limit=entryPrice1)
strategy.exit("exit", "BUY 1", limit=high[0], stop=stopPrice)
strategy.order("BUY 2", strategy.long, comment="BUY 2", limit=entryPrice2)
strategy.exit("exit", "BUY 2", limit=high[0], stop=stopPrice)
label.set_text(l, "Buy => " + str.tostring(close[2]) + "\nSL=> " + str.tostring(stopPrice) + "\nTP => " + str.tostring(exitPrice) )
label.set_color(l, color.green)
label.set_yloc(l, yloc.belowbar)
label.set_style(l, label.style_label_up)
if sellSignal and (close[0] < ta.ema(close, 200) or dontUseEma)
a = label.new(bar_index, na)
entryPrice1 = get_level(entryLevel1, low[0], high[2])
entryPrice2 = get_level(entryLevel2, low[0], high[2])
entryPrice3 = get_level(entryLevel3, low[0], high[2])
exitPrice = get_level(tpLevel, low[0], high[2])
stopPrice = get_level(stopLevel,low[0], high[2])
strategy.order("SELL 1", strategy.short, comment="SELL 1", limit=entryPrice1)
strategy.exit("exit", "SELL 1", limit=low[0], stop=stopPrice)
strategy.order("SELL 2", strategy.short, comment="SELL 2", limit=entryPrice2)
strategy.exit("exit", "SELL 2", limit=low[0], stop=stopPrice)
label.set_text(a,"Sell => " + str.tostring(close[2]) + "\nSL=> " + str.tostring(stopPrice) + "\nTP => " + str.tostring(exitPrice) )
label.set_color(a, color.red)
label.set_yloc(a, yloc.abovebar)
label.set_style(a, label.style_label_down)