Strategi Mengikuti Tren Rata-rata Pergerakan Ganda


Tanggal Pembuatan: 2024-03-22 13:56:44 Akhirnya memodifikasi: 2024-03-22 13:56:44
menyalin: 1 Jumlah klik: 501
1
fokus pada
1617
Pengikut

Strategi Mengikuti Tren Rata-rata Pergerakan Ganda

Keterangan umum

Strategi ini menggunakan persilangan dua rata-rata bergerak untuk menilai pergeseran tren pasar dan melakukan perdagangan berdasarkan tren. Perdagangan dilakukan ketika rata-rata jangka pendek melintasi rata-rata jangka panjang dan kosong ketika rata-rata jangka pendek melintasi rata-rata jangka panjang untuk mengikuti arah tren.

Prinsip Strategi

Inti dari strategi ini adalah dua rata-rata bergerak: satu rata-rata cepat (default period 32), dan satu rata-rata lambat (default period 32), yang dapat disesuaikan dengan parameter. Ketika harga close out menembus / menembus saluran yang dibentuk oleh kedua rata-rata, ini berarti bahwa tren telah berbalik, dan strategi ini menghasilkan sinyal jual beli:

  • Ketika Anda melewati garis rata-rata cepat, lakukan lebih banyak.
  • Bila kecepatan rata-rata melewati kecepatan rata-rata, kosongkan
  • Ketika telah memegang banyak opsi, cepat rata-rata di bawah garis melewati lambat rata-rata, rata-rata dan kosong
  • Ketika sudah memegang tiket kosong, melewati garis rata-rata cepat dengan garis rata-rata lambat, kosong dan lakukan lebih banyak

Dengan cara ini, strategi dapat mengikuti tren, memegang lebih banyak opsi dalam tren naik, memegang kosong dalam tren turun, sampai ada sinyal pembalikan tren.

Analisis Keunggulan

  1. Pelacakan tren: Strategi ini dapat menangkap dan mengikuti tren utama pasar dengan cara menilai tren secara horizontal.
  2. Sederhana dan mudah digunakan: logika strategi yang jelas, hanya menggunakan dua garis rata-rata, pengaturan parameter yang sederhana, mudah dipahami dan dikuasai.
  3. Terapan luas: Strategi ini dapat diterapkan pada berbagai varietas dan siklus, dan dapat digunakan di berbagai pasar.
  4. Stop loss tepat waktu: Strategi ini memungkinkan Anda untuk menutup posisi tepat waktu dan mengendalikan kerugian ketika tren berbalik.

Analisis Risiko

  1. Performa buruk di pasar yang bergoyang: Ketika pasar berada dalam pergerakan yang bergoyang, sinyal silang yang sering terjadi dapat menyebabkan strategi yang lebih sering diperdagangkan dan lebih banyak kerugian.
  2. Kurangnya respons terhadap situasi darurat: Dalam menghadapi situasi ekstrem (seperti kenaikan atau penurunan yang cepat), strategi mungkin tidak bereaksi dengan cepat dan menyebabkan kerugian yang lebih besar.
  3. Optimasi parameter sangat sulit: Optimasi parameter rata-rata membutuhkan banyak data historis dan pengujian ulang, dan parameter memiliki panduan terbatas untuk efek masa depan.

Untuk menghadapi risiko di atas, Anda dapat mempertimbangkan untuk menambahkan filter yang tepat, seperti ATR atau filter rata-rata real bandwidth, untuk mengurangi overtrading di pasar yang bergolak; mengatur stop loss yang masuk akal, untuk mengendalikan kerugian satu kali; terus mengoptimalkan parameter untuk menyesuaikan diri dengan pasar. Namun, keterbatasan strategi itu sendiri sulit untuk dihindari sepenuhnya.

Arah Optimasi

  1. Konfirmasi tren: Setelah menghasilkan sinyal perdagangan, Anda dapat menambahkan beberapa indikator konfirmasi tren, seperti MACD, DMI, dan lain-lain, untuk memfilter sinyal lebih lanjut.
  2. Stop loss dinamis: Mengatur stop loss dinamis berdasarkan indikator seperti ATR, bukan persentase atau stop loss harga yang tetap, dapat mengontrol risiko dengan lebih baik.
  3. Manajemen Posisi: Sesuai dengan kekuatan tren, volatilitas dan indikator lainnya, ukuran posisi disesuaikan secara dinamis, meningkatkan posisi saat tren kuat, mengurangi posisi saat tren lemah.
  4. Multi-siklus multi-tingkat: Mengingat sistem garis rata-rata dari beberapa tingkat, seperti garis matahari + 4 jam, saling memfilter dan mengkonfirmasi, meningkatkan akurasi trend.
  5. Adaptasi parameter: memperkenalkan metode optimasi parameter adaptasi, seperti algoritma genetik, dan sebagainya, sehingga parameter strategi dapat beradaptasi dengan kondisi pasar yang berbeda.

Optimasi di atas dapat meningkatkan kemampuan strategi untuk menghadapi pasar yang kompleks, tetapi perlu diperhatikan bahwa optimasi berlebihan dapat menyebabkan kurva fit, yang menyebabkan kinerja yang buruk di masa depan.

Singkatnya

Strategi pelacakan tren linier ganda menangkap tren dengan melintasi garis lurus, memiliki karakteristik sederhana, mudah digunakan, dan luas. Namun, kinerja yang buruk di pasar yang bergoyang, kurangnya respons terhadap situasi ekstrem, dan parameter yang sulit untuk dioptimalkan. Strategi dapat dioptimalkan dengan memperkenalkan lebih banyak metode penyaringan, stop loss dinamis, manajemen posisi, kombinasi siklus ganda, dan penyesuaian parameter.

Kode 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')