Strategi jangka pendek regresi linier dan rata-rata bergerak ganda

Penulis:ChaoZhang, Tanggal: 2024-01-26 12:33:14
Tag:

img

Gambaran umum

Strategi ini menggabungkan indikator regresi linier dan rata-rata bergerak eksponensial ganda untuk menerapkan operasi pelacakan jangka pendek. Strategi ini menetapkan posisi pendek ketika harga menerobos rel atas dan bawah, dan menutup posisi ketika harga menerobos lagi. Pada saat yang sama, strategi ini juga menggunakan rata-rata bergerak eksponensial ganda untuk menentukan tren harga sebagai kondisi tambahan untuk menetapkan posisi.

Prinsip Strategi

Strategi ini terutama menggunakan indikator regresi linier untuk menentukan price breakout. Indikator regresi linier dihitung berdasarkan harga tertinggi dan terendah selama periode tertentu menggunakan regresi linier untuk mendapatkan rel atas dan bawah. Ketika harga pecah dari rel atas atau pecah dari rel bawah, kami percaya itu adalah sinyal perdagangan.

Selain itu, strategi ini juga memperkenalkan rata-rata bergerak eksponensial ganda untuk menentukan tren sementara. Rata-rata bergerak eksponensial ganda dapat merespons perubahan harga lebih cepat. Ketika harga pecah dari rel atas, jika rata-rata bergerak eksponensial ganda sudah di atas harga pada saat ini, itu menunjukkan bahwa saat ini sedang dalam tren menurun. Kami akan menetapkan posisi pendek. Ketika harga menerobos rel atas lagi atau menerobos rata-rata bergerak eksponensial ganda, kami akan meratakan posisi.

Secara khusus, poin-poin utama dari strategi ini meliputi:

  1. Menghitung regresi linier rel atas dan bawah
  2. Menghitung dua eksponensial rata-rata bergerak
  3. Ketika harga pecah dari rel atas dan rata-rata bergerak eksponensial ganda berada di atas harga, mendirikan posisi pendek
  4. Ketika harga menembus rel atas lagi atau berada di atas rata-rata bergerak eksponensial ganda, posisi pendek rata

Analisis Keuntungan

Dibandingkan dengan rata-rata bergerak tradisional dan indikator lainnya, strategi ini memiliki keuntungan berikut:

  1. Indikator regresi linier dapat menangkap perubahan harga lebih cepat dan lebih efektif sebagai sinyal masuk
  2. Rata-rata bergerak eksponensial ganda menentukan tren dengan lebih sensitif dan dapat menghindari pecah palsu
  3. Menggabungkan indikator dan kondisi ganda dapat menyaring beberapa kebisingan dan membuat perdagangan lebih stabil

Analisis Risiko

Strategi ini juga memiliki beberapa risiko yang perlu dicatat:

  1. Indikator regresi linier sensitif terhadap parameter dan siklus yang berbeda dapat menghasilkan hasil yang berbeda
  2. Rata-rata bergerak eksponensial ganda dapat menyimpang dan menilai salah
  3. Strategi terobosan dapat meningkatkan risiko slippage
  4. Pembukaan dan penutupan posisi yang sering dapat terjadi di pasar yang volatile

Untuk risiko di atas, kita dapat menyelesaikannya dengan optimasi parameter, stop loss yang ketat, meringankan amplitudo terobosan, dll.

Arahan Optimasi

Strategi ini juga dapat dioptimalkan dalam aspek berikut:

  1. Mengoptimalkan siklus regresi linier dan siklus rata-rata bergerak eksponensial ganda untuk menemukan kombinasi parameter terbaik
  2. Tambahkan penilaian volatilitas harga untuk menghindari kesalahan yang disebabkan oleh terobosan harga kecil
  3. Meningkatkan kondisi tambahan seperti volume perdagangan untuk memastikan efektivitas terobosan
  4. Atur tingkat stop loss untuk mengurangi kerugian tunggal
  5. Sesuaikan parameter untuk varietas tertentu

Ringkasan

Strategi ini secara komprehensif menggunakan indikator regresi linier dan rata-rata bergerak eksponensial ganda, yang memiliki keuntungan tertentu dalam teori dan praktek. Perbaikan lebih lanjut dalam stabilitas dan hasil strategi dapat dicapai melalui optimasi dan penyesuaian berkelanjutan. Strategi ini cocok untuk operasi jangka pendek dan dapat membawa alpha yang baik kepada pedagang kuantitatif.


/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy('LR&SSL_Short', overlay=true)
startP = timestamp(input(2017, "Start Year"), input(12, "Month"), input(17, "Day"), 0, 0)
end   = timestamp(9999,1,1,0,0)
_testPeriod() => true

len = input(title="Period", defval=89)
smaHigh = linreg(high, len, 0)
smaLow = linreg(low, len, -1)
Hlv = 0.0
Hlv := close > smaHigh ? 1 : close < smaLow ? -1 : Hlv[1]
sslDown = Hlv < 0 ? smaHigh : smaLow
sslUp = Hlv < 0 ? smaLow : smaHigh

plot(sslDown, linewidth=2, color=color.red)
plot(sslUp, linewidth=2, color=color.lime)



length = input(200, title="DEMA") 
d1 = ema(close, length)                                               
d2 = 2 * d1 - ema(d1, length)                                         
trendColour = d2 > d1 ? #AAFFAA : #FFAAAA 
dema=sma(d2,length) 

turnGreen = d2 > d1 and d2[1] <= d1[1]  
turnRed   = d2 <= d1 and d2[1] > d1[1]  

up =turnGreen 
down=turnRed 
  
plotshape(down, title="down", style=shape.triangledown,location=location.abovebar, color=color.red, transp=0, size=size.small) 
plotshape(up,  title="up", style=shape.triangleup,location=location.belowbar, color=color.green, transp=0, size=size.small) 
plot(dema, color = trendColour,linewidth=3 ,transp = 0)
bgcolor(close > dema ? color.green : color.red)

strategy.entry("short", strategy.short, when= crossunder(sslUp, sslDown) and dema > close and _testPeriod())
strategy.close("short", when = crossover(sslUp, sslDown) or crossover(close, dema))


Lebih banyak