Strategi Mengikuti Trend Purata Pergerakan Dwi


Tarikh penciptaan: 2024-03-22 13:56:44 Akhirnya diubah suai: 2024-03-22 13:56:44
Salin: 1 Bilangan klik: 275
1
fokus pada
1166
Pengikut

Strategi Mengikuti Trend Purata Pergerakan Dwi

Gambaran keseluruhan

Strategi ini menggunakan persilangan dua rata-rata bergerak untuk menilai perubahan trend pasaran dan melakukan operasi beli dan jual mengikut trend. Berdagang lebih banyak apabila melintasi rata-rata jangka panjang di atas rata-rata jangka pendek dan kosong apabila melintasi rata-rata jangka panjang di bawah rata-rata jangka pendek untuk mengikuti arah trend.

Prinsip Strategi

Pusat strategi ini adalah dua purata bergerak: satu rata-rata cepat ((kelas default adalah 32) dan satu rata-rata perlahan ((kelas default adalah 32) yang boleh disesuaikan dengan parameter). Apabila harga penutupan naik / turun melalui saluran yang dibentuk oleh kedua-dua rata-rata, ini mewakili pembalikan trend, strategi ini menghasilkan isyarat jual beli:

  • Apabila anda melintasi garis rata laju, lakukan lebih banyak.
  • Apabila laju rata-rata di bawah laju rata-rata, buat ruang
  • Apabila telah memegang banyak pilihan, laju rata-rata di bawah garis laju rata-rata, rata-rata dan kosong
  • Apabila telah memegang tiket kosong, melalui laju rata-rata pada laju rata-rata, kosong dan lebih banyak

Dengan cara ini, strategi dapat mengikuti trend, memegang lebih banyak pilihan dalam trend menaik, memegang kosong dalam trend menurun, sehingga ada isyarat pembalikan trend.

Analisis Kelebihan

  1. Pengesanan Trend: Strategi ini dapat menangkap dan mematuhi trend utama pasaran dengan cara menilai trend dengan cara melintasi garis rata.
  2. Mudah digunakan: Logik strategi jelas, hanya menggunakan dua garis rata-rata, parameter yang ditetapkan mudah, mudah difahami dan dikuasai.
  3. Kebolehgunaan yang luas: Strategi ini mempunyai kebolehgunaan yang luas untuk pelbagai jenis dan kitaran, dan boleh digunakan di pelbagai pasaran.
  4. Hentikan Kerugian Pada Masa Yang Tepat: Apabila trend berbalik, strategi ini dapat menutup kedudukan pada masa yang tepat dan mengawal kerugian.

Analisis Risiko

  1. Pelaksanaan buruk dalam pasaran goyah: Apabila pasaran berada dalam pergerakan goyah, isyarat silang yang kerap akan menyebabkan lebih banyak kerugian daripada perdagangan yang kerap.
  2. Kegagalan dalam bertindak balas terhadap keadaan yang tidak dijangka: Dalam menghadapi keadaan yang melampau (seperti kenaikan atau penurunan yang cepat), strategi mungkin tidak bertindak balas dengan cepat, menyebabkan kerugian yang lebih besar.
  3. Kesukaran untuk mengoptimumkan parameter: pengoptimuman parameter garis purata memerlukan banyak data sejarah dan pengulangan, dan parameter mempunyai petunjuk yang terhad terhadap kesan masa depan.

Untuk menghadapi risiko di atas, anda boleh mempertimbangkan untuk menambah penapis yang sesuai, seperti penapis ATR atau purata gelombang nyata, untuk mengurangkan perdagangan berlebihan di pasaran yang bergolak; menetapkan hentian yang munasabah, mengawal kerugian tunggal; terus mengoptimumkan parameter untuk menyesuaikan diri dengan pasaran. Tetapi batasan strategi itu sendiri sukar untuk dielakkan sepenuhnya.

Arah pengoptimuman

  1. Pengesahan trend: Setelah menghasilkan isyarat perdagangan, anda boleh menambah beberapa penunjuk pengesahan trend, seperti MACD, DMI dan lain-lain, untuk menapis isyarat lebih lanjut.
  2. Hentian dinamik: Tetapkan titik hentian dinamik berdasarkan petunjuk seperti ATR, dan bukannya peratusan tetap atau harga berhenti, untuk mengawal risiko dengan lebih baik.
  3. Pengurusan kedudukan: mengikut kekuatan trend, kadar turun naik dan lain-lain indikator, menyesuaikan saiz kedudukan secara dinamik, meningkatkan kedudukan apabila trend kuat, mengurangkan kedudukan apabila trend lemah.
  4. Pelbagai peringkat pelbagai tempoh: mempertimbangkan sistem garis rata di beberapa peringkat, seperti garis siang + 4 jam, saling menapis dan mengesahkan, meningkatkan ketepatan trend.
  5. Penyesuaian parameter: memperkenalkan kaedah pengoptimuman parameter penyesuaian, seperti algoritma genetik dan sebagainya, supaya parameter strategi dapat menyesuaikan diri dengan keadaan pasaran yang berbeza.

Pengoptimuman di atas dapat meningkatkan keupayaan strategi untuk menghadapi pasaran yang kompleks, tetapi perlu diingat bahawa pengoptimuman berlebihan boleh menyebabkan kecocokan kurva dan menyebabkan prestasi masa depan yang buruk.

Ringkasan

Strategi pengesanan trend dua garis lurus menangkap trend dengan menyeberangi garis lurus, mempunyai ciri-ciri mudah digunakan dan mudah digunakan. Tetapi ia tidak berfungsi dengan baik di pasaran yang bergolak, tidak mencukupi untuk bertindak balas terhadap keadaan yang melampau, dan parameter pengoptimuman yang lebih sukar.

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

//@version=5

//study(title="Demo - SSL Basic", shorttitle="Demo - SSL Basic", overlay=true)
strategy(title='Demo - SSL Basic', shorttitle='Demo - SSL Basic', overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=100, commission_value=0.15)

// Backtest Date Range
start_date_long = input(title='Backtest Long Start Date', defval=timestamp('01 Jan 2018 00:00 +0530'))
end_date_long = input(title='Backtest Long End Date', defval=timestamp('25 Jan 2030 00:00 +0530'))
backtest_range = true

// Inputs
maType = input.string(title='SSL MA Type', options=['SMA', 'EMA', 'WMA'], defval='SMA')
sslLen = input(title='SSL Length', defval=32)
showCross = input(title='Show Crossover?', defval=true)
showEntry = input(title='Show Entry?', defval=true)
showTrend = input(title='Show Trend Colors?', defval=true)

// Calc MA for SSL Channel
calc_ma(close, len, type) =>
    float result = 0
    if type == 'SMA'  // Simple
        result := ta.sma(close, len)
        result
    if type == 'EMA'  // Exponential
        result := ta.ema(close, len)
        result
    if type == 'WMA'  // Weighted
        result := ta.wma(close, len)
        result    
    result

// Add SSL Channel
maHigh = calc_ma(high, sslLen, maType)
maLow = calc_ma(low, sslLen, maType)
Hlv = int(na)
Hlv := close > maHigh ? 1 : close < maLow ? -1 : Hlv[1]
sslDown = Hlv < 0 ? maHigh : maLow
sslUp = Hlv < 0 ? maLow : maHigh
ss1 = plot(sslDown, title='Down SSL', linewidth=2, color=showTrend ? na : color.red)
ss2 = plot(sslUp, title='Up SSL', linewidth=2, color=showTrend ? na : color.lime)

// Conditions
longCondition = ta.crossover(sslUp, sslDown)
shortCondition = ta.crossover(sslDown, sslUp)

// Strategy
if shortCondition
    strategy.close('Long', comment='Long Exit', alert_message='JSON')

if longCondition
    strategy.close('Short', comment='Short Exit', alert_message='JSON')

if backtest_range and longCondition
    strategy.entry('Long', strategy.long, comment='Long Entry', alert_message='JSON')

if backtest_range and shortCondition
    strategy.entry('Short', strategy.short, comment= 'Short Entry', alert_message='JSON')


// Plots
fill(ss1, ss2, color=showTrend ? sslDown < sslUp ? color.new(color.lime, transp=75) : color.new(color.red, transp=75) : na, title='Trend Colors')