Strategi Regresi Linear Reverse

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

img

Gambaran umum

Strategi regresi linier terbalik adalah strategi perdagangan reversal yang didasarkan pada fluktuasi harga. Ini menggabungkan analisis regresi linier dan indikator AVERAGE TRUE RANGE, menetapkan kondisi untuk K-line yang meningkat berturut-turut atau K-line yang turun berturut-turut, dan mengambil operasi reversal ketika analisis regresi linier menilai pembalikan harga.

Prinsip Strategi

Strategi ini pertama-tama menghitung kemiringan regresi linier. Ketika kemiringan regresi linier lebih besar atau sama dengan 0, ini menunjukkan bahwa harga berada dalam tren kenaikan; ketika kurang dari 0, ini menunjukkan tren penurunan harga. Pada saat yang sama, dikombinasikan dengan perbandingan antara harga penutupan dan harga pembukaan garis K terakhir, dinilai apakah garis K terakhir naik atau turun. Ketika kemiringan regresi linier lebih besar atau sama dengan 0 dan harga penutupan garis K terakhir lebih rendah dari harga pembukaan, sinyal beli dihasilkan; ketika kemiringan regresi linier kurang dari 0 dan harga penutupan garis K terakhir lebih tinggi dari harga pembukaan, sinyal jual dihasilkan.

Dengan mengatur jumlah K-line yang berturut-turut naik dan jumlah K-line yang berturut-turut turun, frekuensi perdagangan dapat dikontrol. Ketika ditentukan bahwa jumlah K-line yang berturut-turut naik mencapai angka yang ditetapkan, sinyal jual dihasilkan dengan syarat bahwa kemiringan regresi linier kurang dari 0 untuk mencapai perdagangan pembalikan di dekat titik tinggi; ketika ditentukan bahwa K-line yang berturut-turut turun mencapai Penentuan jumlah, ketika kemiringan regresi linier lebih besar dari atau sama dengan 0, sinyal beli dihasilkan untuk mencapai perdagangan pembalikan di dekat titik rendah.

Analisis Keuntungan

Strategi ini menggabungkan perdagangan tren dan perdagangan pembalikan, dan dapat melakukan operasi pembalikan pada titik kritis, sehingga mendapatkan keuntungan setelah penyesuaian harga. Analisis regresi linier menyediakan sarana untuk menentukan tren keseluruhan harga dan menghindari membalikkan posisi pendek atau panjang ketika harga masih naik atau turun. Kondisi K-line berturut-turut mengontrol frekuensi perdagangan dan beroperasi pada titik pembalikan kritis.

Dibandingkan dengan strategi pembalikan sederhana, strategi ini menggabungkan beberapa indikator teknis untuk mengontrol waktu transaksi dengan lebih akurat, yang secara efektif dapat menghindari risiko pemutusan palsu dan meningkatkan profitabilitas.

Analisis Risiko

Risiko utama yang dihadapi oleh strategi ini adalah kegagalan pembalikan. Jika dinilai bahwa sinyal pembalikan harga, harga terus mempertahankan tren asli, itu akan menyebabkan kerugian. Selain itu, pengaturan parameter analisis regresi linier dan indikator ATR juga akan mempengaruhi pendapatan strategi.

Stop loss dapat digunakan untuk mengendalikan kerugian tunggal. Mengevaluasi frekuensi fluktuasi pasar secara wajar, menyesuaikan jumlah K-line berturut-turut dengan tepat, dan mengurangi frekuensi perdagangan. Mengoptimalkan parameter siklus regresi linier dan parameter ATR untuk membuatnya lebih sesuai dengan karakteristik varietas yang berbeda.

Arah Optimalisasi

Strategi dapat dioptimalkan dalam aspek berikut:

  1. Tambahkan indikator teknis lainnya untuk meningkatkan akurasi penilaian.

  2. Meningkatkan komponen pembelajaran mesin untuk optimasi parameter otomatis dan penyesuaian dinamis aturan perdagangan.

  3. Menggabungkan mekanisme manajemen risiko seperti manajemen modal dan strategi stop loss untuk mengendalikan risiko perdagangan.

  4. Optimalisasi portofolio yang menggabungkan strategi dengan strategi lain yang tidak terkait untuk mengurangi penarikan keseluruhan dan meningkatkan stabilitas.

  5. Mengembangkan lebih banyak varietas, mengevaluasi pengaturan parameter untuk varietas yang berbeda untuk membuat strategi lebih serbaguna.

Ringkasan

Strategi regresi linier terbalik mengintegrasikan beberapa indikator teknis dan mengambil operasi terbalik saat menilai waktu pembalikan harga. Ini adalah strategi perdagangan pembalikan yang efektif. Melalui optimasi parameter dan manajemen risiko yang ditingkatkan, strategi dapat lebih memperluas margin keuntungan dan memiliki potensi peningkatan yang besar. Sebagai ide strategi pembalikan yang khas, ini memberi kita referensi 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 banyak