Strategi penjejakan arah aliran jangka panjang berdasarkan gabungan purata bergerak


Tarikh penciptaan: 2024-02-23 14:54:34 Akhirnya diubah suai: 2024-02-23 14:54:34
Salin: 1 Bilangan klik: 612
1
fokus pada
1617
Pengikut

Strategi penjejakan arah aliran jangka panjang berdasarkan gabungan purata bergerak

Gambaran keseluruhan

Strategi ini menghasilkan isyarat beli apabila garis rata-rata cepat bergerak ke atas dari bawah ke garis rata-rata perlahan; menghasilkan isyarat jual apabila garis rata-rata pantas bergerak ke atas dari atas ke bawah ke garis rata-rata perlahan.

Prinsip Strategi

  1. Hitung garis purata EMA pantas 7 kumpulan pada 3/6/9/12/15/18/21
  2. Hitung garis purata EMA perlahan 14 kumpulan pada 24/27/30/…/200
  3. Tetapkan peraturan penilaian warna EMA yang seragam dengan cepat: garis 3 hari di atas garis 6 hari mewakili kenaikan, ditetapkan sebagai biru; turun mewakili penurunan, ditetapkan sebagai oren.
  4. Tetapkan peraturan penilaian warna EMA rata-rata pada EMA perlahan: garis ke-25 pada hari ke-24 mewakili kenaikan, ditetapkan sebagai hijau; turun mewakili penurunan, ditetapkan sebagai merah
  5. Apabila kumpulan EMA cepat melintasi kumpulan EMA perlahan dari bawah ke atas, ia akan menghasilkan isyarat beli yang mewakili perubahan trend ke atas.
  6. Apabila kumpulan EMA cepat bergerak ke bawah melalui kumpulan EMA perlahan, ia akan menghasilkan isyarat jual, yang menunjukkan bahawa trend telah bertukar ke bawah.

Dengan pencocokan gabungan garis rata-rata, perubahan dalam trend garis tengah dan panjang dapat dikenal pasti dengan berkesan, untuk menjejaki garis panjang.

Kelebihan Strategik

  1. Garis purata perlahan dan cepat, keupayaan untuk mengenal pasti perubahan trend. Garis purata cepat dapat mengenal pasti trend jangka pendek, penapis garisan purata perlahan dan perlahan disusun, penggunaan gabungan dapat meningkatkan ketepatan pengenalan.
  2. Berbagai kombinasi garis rata, menilai isyarat lebih jelas dan boleh dipercayai, mengelakkan isyarat palsu.
  3. Menggunakan parameter kitaran EMA yang berbeza, dapat mengenal pasti trend garis tengah dan panjang pada tahap yang berbeza, dan mempunyai kitaran operasi yang fleksibel.
  4. Strategi pengesanan jangka panjang adalah sesuai dengan model yang digunakan oleh kebanyakan dana persendirian untuk beroperasi dalam jangka panjang.

Risiko Strategik

  1. Ia adalah salah satu cara yang paling popular untuk menjejaki peluang dagangan dalam talian pendek.
  2. EMA tidak sesuai untuk menangkap turun naik harga jangka pendek. Ia boleh menghasilkan isyarat perdagangan yang tidak diperlukan apabila terdapat pergerakan harga yang lebih besar.
  3. Penetapan parameter yang tidak betul boleh menyebabkan isyarat perdagangan terlalu kerap atau konservatif, disyorkan untuk menguji parameter dan mengesahkan secara langsung.

Cadangan untuk mengoptimumkan strategi

  1. Menambah jumlah kumpulan untuk garis rata-rata cepat, dan menetapkan lebih banyak EMA kitaran pendek, meningkatkan kefahaman mengenai trend garis pendek.
  2. Menambah jumlah kumpulan garis rata-rata perlahan dan menetapkan lebih banyak EMA jangka panjang dan sederhana, meningkatkan kefahaman mengenai trend garis panjang dan sederhana.
  3. Menambah pengesahan isyarat MA, memeriksa sokongan isyarat MA semasa isyarat EMA sedang, dapat mengurangkan isyarat palsu.
  4. Menggabungkan analisis pelbagai ruang dengan jumlah dagangan, untuk mengelakkan isyarat yang salah dalam keadaan pecah palsu dengan harga yang bergolak.

ringkaskan

Strategi ini adalah strategi khas untuk mengesan kedudukan dengan membina sistem gabungan rata-rata cepat dan rata-rata lambat, untuk mengenal pasti perubahan trend dalam harga saham. Terdapat banyak ruang untuk pengoptimuman dalam pemilihan parameter dan penapisan isyarat, dan pelabur dapat menyesuaikan diri dengan gaya mereka sendiri untuk menyesuaikan diri dengan keadaan yang berbeza.

Kod 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)