Strategi pelacakan tren jangka panjang berdasarkan kombinasi rata-rata pergerakan


Tanggal Pembuatan: 2024-02-23 14:54:34 Akhirnya memodifikasi: 2024-02-23 14:54:34
menyalin: 1 Jumlah klik: 612
1
fokus pada
1617
Pengikut

Strategi pelacakan tren jangka panjang berdasarkan kombinasi rata-rata pergerakan

Ringkasan

Strategi ini menghasilkan sinyal beli ketika garis rata-rata cepat naik ke garis rata-rata lambat dari bawah; menghasilkan sinyal jual ketika garis rata-rata cepat naik ke garis rata-rata lambat dari atas.

Prinsip Strategi

  1. Perhitungan rata-rata EMA 7 kelompok cepat pada 3/6/9/12/15/18/21
  2. Hitung EMA rata-rata 14 kelompok pada 24/27/30/…/200
  3. Set fast EMA uniform line color judgement rule: naik ke garis 3 hari berarti naik, set ke biru; turun berarti turun, set ke oranye.
  4. Setting Slow EMA Uniform Line Color Judgment Rule: 24th line onward 25th line representing uptrend, set to green; downtrend representing downtrend, set to red。
  5. Ketika grup EMA cepat melintasi grup EMA lambat dari bawah ke atas, sinyal beli dihasilkan, yang berarti bahwa tren berubah ke atas.
  6. Ketika grup EMA cepat melewati grup EMA lambat dari atas ke bawah, sinyal jual dihasilkan, yang berarti bahwa tren berubah ke bawah.

Kombinasi dari garis rata-rata yang cepat dan lambat dapat secara efektif mengidentifikasi perubahan tren garis tengah dan panjang, untuk melacak garis panjang.

Keunggulan Strategis

  1. Garis rata-rata cepat dan lambat bekerja sama, kemampuan untuk mengidentifikasi perubahan tren yang kuat. Garis rata-rata cepat dapat mengidentifikasi tren jangka pendek, filter rata-rata lambat disusun, penggunaan kombinasi dapat meningkatkan akurasi pengidentifikasi.
  2. Kombinasi beberapa garis rata-rata, menilai sinyal lebih jelas dan dapat diandalkan, menghindari sinyal palsu.
  3. Menggunakan parameter siklus EMA yang berbeda, dapat mengidentifikasi tren garis tengah panjang pada tingkat yang berbeda, siklus operasi yang fleksibel.
  4. Strategi pelacakan jangka panjang, sesuai dengan model yang digunakan oleh sebagian besar dana investasi swasta, yang beroperasi dalam jangka panjang.

Risiko Strategis

  1. Pelacakan terlalu lama dan mungkin melewatkan peluang perdagangan short-line.
  2. Kombinasi EMA rata-rata tidak cocok untuk menangkap fluktuasi harga jangka pendek. Bila terjadi rangkuman dengan harga yang bergejolak, mungkin akan menghasilkan sinyal perdagangan yang tidak perlu.
  3. Setting parameter yang tidak tepat dapat menyebabkan sinyal perdagangan terlalu sering atau konservatif, disarankan untuk menguji parameter dan memverifikasi secara real-time.

Saran untuk optimasi strategi

  1. Meningkatkan jumlah grup rata-rata cepat dan mengatur lebih banyak EMA periode pendek, meningkatkan kemampuan untuk menilai tren garis pendek.
  2. Meningkatkan jumlah kelompok rata-rata lambat, mengatur lebih banyak EMA periode menengah dan panjang, meningkatkan kemampuan untuk menilai tren garis menengah dan panjang.
  3. Menambahkan konfirmasi sinyal MA, dan memeriksa dukungan MA pada saat EMA sedang mengirimkan sinyal, dapat mengurangi sinyal palsu.
  4. Analisis multi-halangan dengan volume perdagangan, untuk menghindari sinyal yang salah dalam kasus pemalsuan harga yang bergejolak.

Meringkaskan

Strategi ini adalah strategi yang khas untuk melacak posisi dengan membangun kombinasi sistem rata-rata cepat dan rata-rata lambat, mengidentifikasi perubahan tren garis panjang dalam harga saham. Ada banyak ruang untuk pengoptimalan dalam pemilihan parameter dan penyaringan sinyal, dan investor dapat menyesuaikan dengan gaya mereka sendiri untuk menyesuaikan diri dengan situasi yang berbeda.

Kode Sumber Strategi
/*backtest
start: 2023-02-16 00:00:00
end: 2024-02-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("CM Super Guppy ala WY", pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=99, overlay=true)


///////////////////////////////////////////////
//* Backtesting Period Selector | Component *//
///////////////////////////////////////////////

//* https://www.tradingview.com/script/eCC1cvxQ-Backtesting-Period-Selector-Component *//
//* https://www.tradingview.com/u/pbergden/ *//
//* Modifications made *//

testStartYear = input(2017, "Backtest Start Year") 
testStartMonth = input(01, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(3, "Backtest Stop Month")
testStopDay = input(1, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

testPeriod() => true

///////////////////////////////////////////////

src = close, 
len1 = input(3, minval=1, title="Fast EMA 1")
len2 = input(6, minval=1, title="Fast EMA 2")
len3 = input(9, minval=1, title="Fast EMA 3")
len4 = input(12, minval=1, title="Fast EMA 4")
len5 = input(15, minval=1, title="Fast EMA 5")
len6 = input(18, minval=1, title="Fast EMA 6")
len7 = input(21, minval=1, title="Fast EMA 7")
//Slow EMA
len8 = input(24, minval=1, title="Slow EMA 8")
len9 = input(27, minval=1, title="Slow EMA 9")
len10 = input(30, minval=1, title="Slow EMA 10")
len11 = input(33, minval=1, title="Slow EMA 11")
len12 = input(36, minval=1, title="Slow EMA 12")
len13 = input(39, minval=1, title="Slow EMA 13")
len14 = input(42, minval=1, title="Slow EMA 14")
len15 = input(45, minval=1, title="Slow EMA 15")
len16 = input(48, minval=1, title="Slow EMA 16")
len17 = input(51, minval=1, title="Slow EMA 17")
len18 = input(54, minval=1, title="Slow EMA 18")
len19 = input(57, minval=1, title="Slow EMA 19")
len20 = input(60, minval=1, title="Slow EMA 20")
len21 = input(63, minval=1, title="Slow EMA 21")
len22 = input(66, minval=1, title="Slow EMA 22")
len23 = input(200, minval=1, title="EMA 200")

//Fast EMA
ema1 = ema(src, len1)
ema2 = ema(src, len2)
ema3 = ema(src, len3)
ema4 = ema(src, len4)
ema5 = ema(src, len5)
ema6 = ema(src, len6)
ema7 = ema(src, len7)

//Slow EMA
ema8 = ema(src, len8)
ema9 = ema(src, len9)
ema10 = ema(src, len10)
ema11 = ema(src, len11)
ema12 = ema(src, len12)
ema13 = ema(src, len13)
ema14 = ema(src, len14)
ema15 = ema(src, len15)
ema16 = ema(src, len16)
ema17 = ema(src, len17)
ema18 = ema(src, len18)
ema19 = ema(src, len19)
ema20 = ema(src, len20)
ema21 = ema(src, len21)
ema22 = ema(src, len22)

//EMA 200
ema23 = ema(src, len23)

//Fast EMA Color Rules
colfastL = (ema1 > ema2 and ema2 > ema3 and ema3 > ema4 and ema4 > ema5 and ema5 > ema6 and ema6 > ema7)
colfastS = (ema1 < ema2 and ema2 < ema3 and ema3 < ema4 and ema4 < ema5 and ema5 < ema6 and ema6 < ema7)
//Slow EMA Color Rules
colslowL = ema8 > ema9 and ema9 > ema10 and ema10 > ema11 and ema11 > ema12 and ema12 > ema13 and ema13 > ema14 and ema14 > ema15 and ema15 > ema16 and ema16 > ema17 and ema17 > ema18 and ema18 > ema19 and ema19 > ema20 and ema20 > ema21 and ema21 > ema22
colslowS = ema8 < ema9 and ema9 < ema10 and ema10 < ema11 and ema11 < ema12 and ema12 < ema13 and ema13 < ema14 and ema14 < ema15 and ema15 < ema16 and ema16 < ema17 and ema17 < ema18 and ema18 < ema19 and ema19 < ema20 and ema20 < ema21 and ema21 < ema22 
//Fast EMA Final Color Rules
colFinal = colfastL and colslowL? aqua : colfastS and colslowS? orange : gray
//Slow EMA Final Color Rules
colFinal2 = colslowL  ? lime : colslowS ? red : gray
//Fast EMA Plots
p1=plot(ema1, title="Fast EMA 1", style=line, linewidth=2, color=colFinal)
plot(ema2, title="Fast EMA 2", style=line, linewidth=1, color=colFinal)
plot(ema3, title="Fast EMA 3", style=line, linewidth=1, color=colFinal)
plot(ema4, title="Fast EMA 4", style=line, linewidth=1, color=colFinal)
plot(ema5, title="Fast EMA 5", style=line, linewidth=1, color=colFinal)
plot(ema6, title="Fast EMA 6", style=line, linewidth=1, color=colFinal)
p2=plot(ema7, title="Fast EMA 7", style=line, linewidth=2, color=colFinal)

//Slow EMA Plots
p3=plot(ema8, title="Slow EMA 8", style=line, linewidth=1, color=colFinal2)
plot(ema9, title="Slow EMA 9", style=line, linewidth=1, color=colFinal2)
plot(ema10, title="Slow EMA 10", style=line, linewidth=1, color=colFinal2)
plot(ema11, title="Slow EMA 11", style=line, linewidth=1, color=colFinal2)
plot(ema12, title="Slow EMA 12", style=line, linewidth=1, color=colFinal2)
plot(ema13, title="Slow EMA 13", style=line, linewidth=1, color=colFinal2)
plot(ema14, title="Slow EMA 14", style=line, linewidth=1, color=colFinal2)
plot(ema15, title="Slow EMA 15", style=line, linewidth=1, color=colFinal2)
plot(ema16, title="Slow EMA 16", style=line, linewidth=1, color=colFinal2)
plot(ema17, title="Slow EMA 17", style=line, linewidth=1, color=colFinal2)
plot(ema18, title="Slow EMA 18", style=line, linewidth=1, color=colFinal2)
plot(ema19, title="Slow EMA 19", style=line, linewidth=1, color=colFinal2)
plot(ema20, title="Slow EMA 20", style=line, linewidth=1, color=colFinal2)
plot(ema21, title="Slow EMA 21", style=line, linewidth=1, color=colFinal2)
plot(ema22, title="Slow EMA 22", style=line, linewidth=2, color=colFinal2)
p4=plot(ema23, title="EMA 200", style=line, linewidth=2)


// Strategy Center
enterLong = colfastL and colslowL
exitLong = not colfastL

if testPeriod()
    strategy.entry("WY Long", strategy.long, when=enterLong, comment="WY Long")
else
    strategy.cancel(id="WY Long")

if testPeriod()
    strategy.close("WY Long", when=exitLong)