Strategi jangka pendek regresi linear dan purata bergerak berganda

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

img

Ringkasan

Strategi ini menggabungkan penunjuk regresi linear dan purata bergerak eksponensial berganda untuk melaksanakan operasi penjejakan jangka pendek. Strategi ini menubuhkan kedudukan pendek apabila harga memecahkan rel atas dan bawah, dan menutup kedudukan apabila harga memecahkan lagi. Pada masa yang sama, strategi ini juga menggunakan purata bergerak eksponensial berganda untuk menentukan trend harga sebagai syarat tambahan untuk menubuhkan kedudukan.

Prinsip Strategi

Strategi ini terutamanya menggunakan penunjuk regresi linear untuk menentukan penembusan harga. Penunjuk regresi linear dikira berdasarkan harga tertinggi dan terendah dalam tempoh tertentu menggunakan regresi linear untuk mendapatkan rel atas dan bawah. Apabila harga pecah dari rel atas atau pecah dari rel bawah, kami percaya ia adalah isyarat perdagangan.

Di samping itu, strategi ini juga memperkenalkan purata bergerak eksponensial berganda untuk menentukan trend sementara. purata bergerak eksponensial berganda boleh bertindak balas dengan lebih cepat terhadap perubahan harga. Apabila harga pecah dari rel atas, jika purata bergerak eksponensial berganda sudah di atas harga pada masa ini, ia menunjukkan bahawa ia sedang dalam trend menurun. Kami akan menubuhkan kedudukan pendek. Apabila harga memecahkan rel atas lagi atau memecahkan purata bergerak eksponensial berganda, kami akan meratakan kedudukan.

Khususnya, perkara utama strategi termasuk:

  1. Mengira regresi linear rel atas dan bawah
  2. Mengira purata bergerak eksponensial berganda
  3. Apabila harga merosot dari rel atas dan purata bergerak eksponensial berganda berada di atas harga, mewujudkan kedudukan pendek
  4. Apabila harga memecahkan rel atas lagi atau berada di atas purata bergerak eksponensial berganda, posisi pendek rata

Analisis Kelebihan

Berbanding dengan purata bergerak tradisional dan penunjuk lain, strategi ini mempunyai kelebihan berikut:

  1. Penunjuk regresi linear boleh menangkap perubahan harga lebih cepat dan lebih berkesan sebagai isyarat kemasukan
  2. Purata bergerak eksponensial berganda menentukan trend dengan lebih sensitif dan boleh mengelakkan pecah palsu
  3. Menggabungkan penunjuk dan keadaan dua boleh menapis beberapa bunyi bising dan menjadikan perdagangan lebih stabil

Analisis Risiko

Strategi ini juga mempunyai beberapa risiko untuk diperhatikan:

  1. Penunjuk regresi linear sensitif kepada parameter dan kitaran yang berbeza boleh menghasilkan hasil yang berbeza
  2. purata bergerak eksponensial berganda mungkin menyimpang dan menilai salah
  3. Strategi terobosan boleh meningkatkan risiko tergelincir
  4. Pembukaan dan penutupan kedudukan yang kerap boleh berlaku di pasaran yang tidak menentu

Untuk risiko di atas, kita boleh menyelesaikan mereka dengan pengoptimuman parameter, kehilangan berhenti yang ketat, dengan selesa melonggarkan amplitud terobosan, dll.

Arahan pengoptimuman

Strategi ini juga boleh dioptimumkan dalam aspek berikut:

  1. Mengoptimumkan kitaran regresi linear dan kitaran purata bergerak eksponensial berganda untuk mencari kombinasi parameter terbaik
  2. Tambah penilaian turun naik harga untuk mengelakkan kesilapan yang disebabkan oleh terobosan harga yang kecil
  3. Meningkatkan keadaan tambahan seperti jumlah dagangan untuk memastikan keberkesanan terobosan
  4. Tetapkan paras stop loss untuk mengurangkan kerugian tunggal
  5. Sesuaikan parameter untuk jenis tertentu

Ringkasan

Strategi ini secara komprehensif menggunakan penunjuk regresi linear dan purata bergerak eksponensial berganda, yang mempunyai kelebihan tertentu dalam teori dan amalan. Penambahbaikan lebih lanjut dalam kestabilan dan hasil strategi dapat dicapai melalui pengoptimuman dan penyesuaian berterusan. Strategi ini sesuai untuk operasi jangka pendek dan dapat membawa alpha yang baik kepada peniaga 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 lanjut