Strategi Arah Kenaikan Purata Pergerakan Berbilang


Tarikh penciptaan: 2024-01-22 12:04:05 Akhirnya diubah suai: 2024-01-22 12:04:05
Salin: 0 Bilangan klik: 661
1
fokus pada
1617
Pengikut

Strategi Arah Kenaikan Purata Pergerakan Berbilang

Gambaran keseluruhan

Strategi trend multi-arah adalah strategi pemantauan trend yang membina keputusan berdasarkan purata bergerak indeks ((EMA) dari beberapa tempoh yang berbeza. Ia akan melakukan lebih banyak apabila harga menembusi EMA 10 hari dan garis EMA lain yang lebih lama mempunyai susunan multi-arah; dan kemudian menggunakan stop loss 8% untuk mengunci keuntungan.

Prinsip Strategi

Strategi ini menggunakan enam garis EMA dengan tempoh yang berbeza iaitu 10, 20, 50, 100, 150 dan 200 hari. Garis EMA ini digunakan untuk menentukan tahap kitaran pasaran semasa. Apabila garis EMA jangka pendek (seperti garis 10 hari) melintasi garis EMA yang lebih lama (seperti garis 20 hari, 50 hari), ia dianggap sebagai tahap markup di mana pasaran memasuki trend berbilang arah.

Secara khusus, strategi ini membuka lebih banyak kedudukan apabila syarat-syarat berikut dipenuhi:

  1. EMA 10 lebih tinggi daripada EMA 20
  2. EMA 20 lebih tinggi daripada EMA 50
  3. EMA 100 hari lebih tinggi daripada EMA 150 hari
  4. EMA 150 hari lebih tinggi daripada EMA 200 hari
  5. EMA 10 hari pada harga penutupan

Selepas membuka lebih banyak kedudukan, strategi akan menggunakan 8% trailing stop loss untuk mengunci keuntungan. Iaitu, selagi harga saham tidak jatuh lebih dari 8% daripada harga pembelian, maka ia akan terus memegang kedudukan tersebut.

Secara keseluruhan, idea utama strategi ini adalah: menggunakan EMA pelbagai syarat penyaringan untuk menentukan masuk ke dalam trend berbilang arah, dan kemudian berhenti untuk mengunci keuntungan.

Analisis kelebihan

Strategi trend berbilang arah ini mempunyai beberapa kelebihan utama:

  1. Ia boleh menyaring penembusan palsu dengan berkesan, memastikan tahap markup kitaran harga ditangkap, dan mengurangkan jumlah transaksi yang tidak perlu.
  2. Pelbagai penapisan pada EMA dapat mengurangkan kemungkinan stop loss akan ditembusi, dan boleh membuat kedudukan lebih selamat.
  3. Stop loss 8% tidak terlalu ketat atau terlalu longgar, baik untuk mengunci keuntungan dan mengelakkan stop loss yang terlalu kerap.
  4. Strategi ini mempunyai fleksibiliti untuk menyesuaikan parameter, untuk mencari kombinasi parameter yang terbaik mengikut varieti yang berbeza.

Analisis risiko

Strategi ini juga mempunyai risiko yang perlu diperhatikan:

  1. Urutan EMA tidak dapat menentukan trend pasaran, tetapi ia boleh menjadi pilihan.
  2. Hentian 8% boleh menyebabkan sebahagian daripada keuntungan anda hilang dalam keadaan yang teruk.
  3. Sistem EMA sendiri berlainan dengan perubahan harga, dan mungkin akan berlainan sedikit pada titik perubahan.

Untuk risiko di atas, kita boleh mengoptimumkan dan memperbaiki dengan menyesuaikan parameter kitaran EMA atau memperkenalkan petunjuk lain sebagai penilaian tambahan.

Arah pengoptimuman

Mengambil kira ciri-ciri strategi ini, ia boleh dioptimumkan pada masa akan datang dalam beberapa aspek:

  1. Uji kombinasi EMA yang berbeza dan parameter kitaran untuk mencari parameter yang optimum.
  2. Menambah indeks volatiliti untuk menilai kekuatan trend, mengelakkan kedudukan yang tidak perlu.
  3. Tambah lebih banyak penapis seperti MACD, KDJ dan lain-lain untuk menilai pelbagai baris.
  4. Memperkenalkan algoritma pembelajaran mesin untuk mencapai kemusnahan dinamik.

ringkaskan

Strategi trend pelbagai garis rata-rata adalah strategi trend yang lebih kukuh dan boleh dipercayai secara keseluruhan. Ia menggabungkan penilaian trend dan kawalan risiko. Terdapat banyak ruang untuk penambahbaikan melalui penyesuaian parameter dan pengoptimuman algoritma.

Kod sumber strategi
/*backtest
start: 2023-01-15 00:00:00
end: 2024-01-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('SirSeff\'s EMA Rainbow', overlay=true)
// Testing Start dates
testStartYear = input(2000, 'Backtest Start Year')
testStartMonth = input(1, 'Backtest Start Month')
testStartDay = input(1, 'Backtest Start Day')
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0)
//Stop date if you want to use a specific range of dates
testStopYear = input(2100, 'Backtest Stop Year')
testStopMonth = input(12, 'Backtest Stop Month')
testStopDay = input(30, 'Backtest Stop Day')
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)

testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false
// Component Code Stop

//TSP
trailStop = input.float(title='Long Trailing Stop (%)', minval=0.0, step=0.1, defval=8) * 0.01

longStopPrice = 0.0
longStopPrice := if strategy.position_size > 0
    stopValue = close * (1 - trailStop)
    math.max(stopValue, longStopPrice[1])
else
    0

//PLOTS
plot(series=strategy.position_size > 0 ? longStopPrice : na, color=color.new(color.red, 0), style=plot.style_linebr, linewidth=1, title='Long Trail Stop', offset=1, title='Long Trail Stop')
plot(ta.ema(close, 20))
plot(ta.ema(close, 50))
plot(ta.ema(close, 100))
plot(ta.ema(close, 150))
plot(ta.ema(close, 200))

//OPEN
longCondition =  ta.ema(close, 10) > ta.ema(close, 20) and ta.ema(close, 20) > ta.ema(close, 50) and ta.ema(close, 100) > ta.ema(close, 150) and ta.ema(close, 150) > ta.ema(close, 200)
if longCondition and ta.crossover(close,ta.ema(close,10)) and testPeriod()
    strategy.entry("BUY1", strategy.long)
    
if longCondition and ta.crossover(ta.ema(close,10),ta.ema(close,20)) and testPeriod()
    strategy.entry("BUY2'", strategy.long)

//CLOSE @ TSL
if strategy.position_size > 0 and testPeriod()
    strategy.exit(id='TSP', stop=longStopPrice)