Strategi Regresi Linear Balik

Penulis:ChaoZhang, Tarikh: 2023-12-29 17:15:07
Tag:

img

Ringkasan

Strategi regresi linear terbalik adalah strategi perdagangan pembalikan berdasarkan turun naik harga. Ia menggabungkan analisis regresi linear dan indikator RANGE SEJADI AVERAGE, menetapkan syarat untuk garis K yang meningkat berturut-turut atau garis K yang jatuh berturut-turut, dan mengambil operasi terbalik apabila analisis regresi linear menilai pembalikan harga.

Prinsip Strategi

Strategi ini mula-mula mengira cerun regresi linear. Apabila cerun regresi linear lebih besar atau sama dengan 0, ia menunjukkan bahawa harga berada dalam trend menaik; apabila kurang dari 0, ia menunjukkan trend penurunan harga. Pada masa yang sama, digabungkan dengan perbandingan antara harga penutupan dan harga pembukaan K-line terakhir, ia dinilai sama ada K-line terakhir naik atau jatuh. Apabila cerun regresi linear lebih besar atau sama dengan 0 dan harga penutupan K-line terakhir lebih rendah daripada harga pembukaan, isyarat beli dihasilkan; apabila cerun regresi linear kurang dari 0 dan harga penutupan K-line terakhir lebih tinggi daripada harga pembukaan, isyarat jual dihasilkan.

Dengan menetapkan bilangan K-garis yang berturut-turut meningkat dan bilangan K-garis berturut-turut jatuh, kekerapan dagangan dapat dikawal. Apabila ditentukan bahawa bilangan K-garis berturut-turut meningkat mencapai nombor yang ditetapkan, isyarat jual dihasilkan dengan syarat kemiringan regresi linear kurang dari 0 untuk mencapai perdagangan pembalikan berhampiran titik tinggi; apabila ditentukan bahawa K-garis berturut-turut jatuh mencapai Penentuan nombor, apabila kemiringan regresi linear lebih besar daripada atau sama dengan 0, isyarat beli dihasilkan untuk mencapai perdagangan pembalikan berhampiran titik rendah.

Analisis Kelebihan

Strategi ini menggabungkan perdagangan trend dan perdagangan pembalikan, dan boleh menjalankan operasi pembalikan pada titik kritikal, dengan itu memperoleh kelebihan selepas penyesuaian harga. Analisis regresi linear menyediakan cara untuk menentukan trend keseluruhan harga dan mengelakkan membalikkan kedudukan pendek atau panjang apabila harga masih meningkat atau jatuh. Keadaan K-line berturut-turut mengawal kekerapan perdagangan dan beroperasi pada titik pembalikan kritikal.

Berbanding dengan strategi pembalikan yang mudah, strategi ini menggabungkan beberapa penunjuk teknikal untuk mengawal masa transaksi dengan lebih tepat, yang dapat dengan berkesan mengelakkan risiko pemutusan palsu dan meningkatkan keuntungan.

Analisis Risiko

Risiko utama yang dihadapi oleh strategi ini adalah kegagalan pembalikan. Jika dinilai bahawa isyarat pembalikan harga, harga terus mengekalkan trend asal, ia akan menyebabkan kerugian. Di samping itu, penetapan parameter analisis regresi linear dan penunjuk ATR juga akan mempengaruhi pendapatan strategi.

Stop loss boleh digunakan untuk mengawal kerugian tunggal. Menilai kekerapan turun naik pasaran dengan munasabah, menyesuaikan bilangan K-line berturut-turut dengan sewajarnya, dan mengurangkan kekerapan perdagangan. Mengoptimumkan parameter kitaran regresi linear dan parameter ATR untuk menjadikannya lebih sesuai dengan ciri-ciri pelbagai jenis.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dalam aspek berikut:

  1. Tambah penunjuk teknikal lain untuk meningkatkan ketepatan penilaian. Sebagai contoh, MACD, Bollinger Band, dll.

  2. Meningkatkan komponen pembelajaran mesin untuk pengoptimuman parameter automatik dan pelarasan dinamik peraturan perdagangan.

  3. Menggabungkan mekanisme pengurusan risiko seperti pengurusan modal dan strategi stop loss untuk mengawal risiko perdagangan.

  4. Pengoptimuman portfolio yang menggabungkan strategi dengan strategi lain yang tidak berkaitan untuk mengurangkan pengeluaran keseluruhan dan meningkatkan kestabilan.

  5. Memperluas kepada lebih banyak jenis, menilai tetapan parameter untuk pelbagai jenis untuk membuat strategi lebih serba boleh.

Ringkasan

Strategi regresi linear terbalik mengintegrasikan beberapa penunjuk teknikal dan mengambil operasi terbalik ketika menilai masa pembalikan harga. Ia adalah strategi perdagangan pembalikan yang berkesan. Melalui pengoptimuman parameter dan pengurusan risiko yang dipertingkatkan, strategi ini dapat memperluaskan margin keuntungan dan mempunyai potensi peningkatan yang besar. Sebagai idea strategi pembalikan biasa, ia memberikan kita rujukan yang berharga.


/*backtest
start: 2023-12-21 00:00:00
end: 2023-12-28 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Reverse Up/Down Strategy", currency=currency.USD, initial_capital=1000, pyramiding=2, default_qty_type=strategy.percent_of_equity, default_qty_value=100,overlay=true)

//User Options
consecutiveBarsUp   = input(title="Sell after how many bars up?",   type=input.integer, minval=1, defval=1)
consecutiveBarsDown = input(title="Buy after how many bars down?",  type=input.integer, minval=1, defval=1)
atrLength           = input(title="ATR Length",                     type=input.integer, minval=1, defval=14)
atrMult             = input(title="ATR Multiplier",                 type=input.float,   minval=0.1, defval=2.33)

//ATR Channel
adjustedATR     = sma(atr(atrLength),atrLength) * atrMult
longATR         = low - adjustedATR
shortATR        = high + adjustedATR
plot(shortATR,  title="Short ATR",  color=color.red)
plot(longATR,   title="Long ATR",   color=color.lime)


// This is the true linear regression slope rather than an approximation given by numerical differentiation
src = hlc3
len = input(defval=14, minval=1, title="Slope Length")
lrc = linreg(src, len, 0)
lrc1 = linreg(src, len,1)
lrs = (lrc-lrc1)

//Check if last candle was up or down
priceOpen = open
priceClose = close
longCondition = priceOpen > priceClose
shortCondition = priceOpen < priceClose
ups = 0.0
dns = 0.0

ups := shortCondition ? nz(ups[1]) + 1 : 0
dns := longCondition ? nz(dns[1]) + 1 : 0

if (shortCondition)
    strategy.close("buy", qty_percent=100, comment="Close")
    if (ups >= consecutiveBarsUp and lrs <= 0)
    	strategy.entry("sell", strategy.short, comment="Sell")
    	

if (longCondition)
    strategy.close("sell", qty_percent=100, comment="Close")
    if (dns >= consecutiveBarsDown and lrs >= 0)
	    strategy.entry("buy", strategy.long, comment = "Buy")


Lebih lanjut