
Strategi regresi linear terbalik adalah strategi perdagangan terbalik berdasarkan pergerakan harga. Ia menggabungkan analisis regresi linear dan indikator AVERAGE TRUE RANGE, menetapkan syarat untuk K line naik secara berturut-turut atau K line turun secara berturut-turut, dan melakukan operasi terbalik apabila analisis regresi linear menilai harga berbalik.
Strategi ini mulakan dengan mengira kemerosotan pengembalian linier. Apabila kemerosotan pengembalian linier lebih besar daripada atau sama dengan 0, harga berada dalam trend naik; apabila kurang daripada 0, harga berada dalam trend turun. Di samping itu, perbandingan antara harga penutupan K terakhir dengan harga pembukaan K terakhir untuk menentukan sama ada K terakhir naik atau turun.
Dengan menetapkan nombor K yang terus naik dan nombor K yang terus turun, anda dapat mengawal frekuensi perdagangan. Apabila anda memutuskan bahawa K yang terus naik mencapai nombor yang ditetapkan, isyarat jual akan dihasilkan dengan kemiringan regresi linear kurang dari 0, dan perdagangan berbalik di dekat titik tinggi. Apabila anda memutuskan bahawa K yang terus turun mencapai nombor yang ditetapkan, isyarat beli akan dihasilkan dengan kemiringan regresi linear lebih besar daripada 0 dan perdagangan berbalik di dekat titik rendah.
Strategi ini menggabungkan perdagangan trend dan pembalikan, yang membolehkan anda melakukan operasi pembalikan berdekatan dengan titik-titik penting, untuk mendapatkan kelebihan selepas penyesuaian harga. Analisis regresi linear menyediakan cara untuk menilai trend harga secara keseluruhan, untuk mengelakkan pembalikan kosong atau berlebihan ketika harga masih terus naik atau turun.
Strategi ini menggabungkan pelbagai petunjuk teknikal untuk mengawal masa perdagangan dengan lebih tepat berbanding strategi pembalikan sederhana, yang dapat mengelakkan risiko penembusan palsu dan meningkatkan peluang keuntungan.
Strategi ini kebanyakannya menghadapi risiko kegagalan pembalikan. Jika harga terus beroperasi pada trend asal selepas keputusan bahawa isyarat pembalikan harga berlaku, ia akan menyebabkan kerugian. Di samping itu, analisis regresi linear dan parameter penyetempatan indikator ATR juga akan memberi kesan kepada hasil strategi.
Anda boleh mengawal kerugian tunggal dengan menghentikan kerugian. Anda boleh menilai frekuensi turun naik pasaran dengan wajar, menyesuaikan nombor K-line berturut-turut dengan betul, mengurangkan frekuensi perdagangan. Anda boleh mengoptimumkan parameter kitaran pulangan linear dan parameter ATR, menjadikannya lebih sesuai dengan ciri-ciri pelbagai jenis.
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Menambah penghakiman petunjuk teknikal lain, digabungkan dengan petunjuk kitaran masa yang berbeza, meningkatkan ketepatan penghakiman. Sebagai contoh, penambahan MACD, Bollinger Band dan lain-lain.
Menambah komponen pembelajaran mesin, mengoptimumkan parameter secara automatik melalui algoritma, dan menyesuaikan peraturan perdagangan secara dinamik.
Menyertai mekanisme pengurusan risiko, seperti pengurusan wang, strategi hentikan kerugian, dan lain-lain, untuk mengawal risiko perdagangan.
Mengoptimumkan gabungan, menggabungkan strategi dengan gabungan strategi lain yang tidak berkaitan, mengurangkan pengunduran keseluruhan, meningkatkan kestabilan.
Perluasan kepada lebih banyak varieti, menilai tetapan parameter untuk varieti yang berbeza, menjadikan strategi lebih universal.
Strategi kemerosotan linear terbalik mengintegrasikan pelbagai petunjuk teknikal, melakukan operasi terbalik ketika menentukan masa perubahan harga, merupakan strategi perdagangan terbalik yang berkesan. Strategi ini dapat memperluaskan ruang keuntungan dengan pengoptimuman parameter dan penguatan pengurusan risiko, dengan potensi peningkatan yang besar.
/*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")