Strategi Gabungan Pintasan Regresi Pembalikan dan Linear


Tarikh penciptaan: 2023-09-26 15:56:48 Akhirnya diubah suai: 2023-09-26 15:56:48
Salin: 1 Bilangan klik: 703
1
fokus pada
1617
Pengikut

Gambaran keseluruhan

Strategi ini menggunakan strategi 123 reversal dan strategi linear regression intersection, untuk mewujudkan strategi perdagangan gabungan yang didorong oleh pelbagai faktor. Strategi 123 reversal menilai hubungan harga dua hari perdagangan terakhir, digabungkan dengan indikator Stoch untuk menentukan isyarat pembalikan. Strategi linear regression intersection menggunakan analisis regresi linear untuk menentukan hubungan harga dengan garis trend, menghasilkan perdagangan.

Prinsip Strategi

123 Strategi Pembalikan

Strategi ini berdasarkan kepada prinsip-prinsip berikut:

  1. Jika hubungan harga penutupan dua hari perdagangan terakhir adalah harga penutupan hari ini lebih tinggi daripada semalam, dan garis pantas Stoch lebih rendah daripada garis perlahan, maka ada isyarat pembalikan bullish

  2. Jika hubungan harga penutupan dua hari perdagangan terakhir adalah harga penutupan hari ini lebih rendah daripada semalam, dan garis pantas Stoch lebih tinggi daripada garis perlahan, ada isyarat pembalikan turun

Peraturan penghakiman adalah seperti berikut:

  • Jika harga penutupan hari ini> harga penutupan semalam dan garisan pantas Stoch parameter yang ditetapkan, menghasilkan isyarat beli

  • Jika harga penutupan hari ini < harga penutupan semalam dan garis cepat Stoch > garis perlahan Stoch dan garis cepat Stoch < parameter yang ditetapkan, menghasilkan isyarat menjual

Strategi ini memerlukan parameter penunjuk Stoch, termasuk: mengira Stoch K-Line Cycle Length, Stoch K-Line Smoothing Cycle K-Smoothing, Stoch D-Line Smoothing Cycle D-Length, dan Stoch K-Line Judgment Threshold Level.

Strategi pengurangan jarak regresi linear

Strategi ini berdasarkan pada analisis regresi linear untuk menilai hubungan harga dengan garis trend regresi linear, dengan peraturan penilaian sebagai berikut:

  • Jika harga penutupan lebih besar daripada jarak pemotongan regresi linear, ia akan menghasilkan isyarat beli

  • Jika harga penutupan lebih kecil daripada jarak pemotongan regresi linear, ia akan menghasilkan isyarat jual

Strategi ini memerlukan pengaturcaraan kitaran kemerosotan linear LengthLRI, dan input kemerosotan linear sumber data xSeria.

Strategi gabungan

Strategi gabungan ini memerlukan isyarat beli / jual yang memenuhi strategi 123 reversal dan strategi penarikan balik linear secara serentak untuk menghasilkan arahan perdagangan yang sebenarnya, yang dapat menghapuskan isyarat palsu dan meningkatkan keberkesanan perdagangan.

Analisis kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Pemandu pelbagai faktor, menghapuskan isyarat palsu dengan berkesan, meningkatkan kualiti isyarat

Gabungan dua jenis strategi yang berbeza, kedua-dua strategi mesti menghasilkan isyarat pada masa yang sama, untuk benar-benar memesan. Mekanisme pengesahan pelbagai faktor ini dapat menyaring isyarat salah yang dihasilkan oleh strategi tertentu, mengurangkan transaksi yang tidak perlu, dan meningkatkan kualiti isyarat dengan berkesan.

  1. Pemantauan harga dan trend dalam masa nyata untuk mengelakkan terkurung

Jarak regresi linear dapat mencerminkan hubungan harga dengan garis trend dalam masa nyata, dan memberi isyarat kepada strategi untuk menyesuaikan arah kedudukan jika harga telah jauh dari trend. Ini dapat menghentikan kerugian tepat pada masanya dan mengelakkan terjebak dalam trend sejarah.

  1. Mengambil Trend dan Peluang Pertukaran

Strategi regresi linear lebih baik dalam mengenal pasti titik jual beli trend. Strategi 123 berbalik fokus pada pengenalan titik balik. Kedua-dua strategi dapat menggabungkan kelebihan perdagangan trend dan perdagangan berbalik dengan baik.

  1. Kombinasi optimum yang boleh disesuaikan dengan parameter dasar

Kedua-dua strategi ini menyediakan parameter tertentu untuk disesuaikan, parameter yang boleh dioptimumkan untuk pelbagai jenis dan trend yang berbeza, untuk mengoptimumkan kesan strategi gabungan.

Analisis risiko

Strategi ini juga mempunyai risiko:

  1. Penggerak pelbagai faktor mungkin terlepas beberapa peluang

Isyarat dagangan yang mesti dipenuhi oleh kedua-dua strategi akan kehilangan sebahagian peluang untuk mendapat keuntungan dengan hanya bergantung pada satu strategi. Jika salah satu strategi melemahkan keberkesanan, ia akan menjejaskan keberkesanan dagangan keseluruhan.

  1. Regresen linear mempunyai keterlambatan

Regresi linear memerlukan data sejarah tertentu untuk dikira, tidak dapat bertindak balas secara langsung terhadap peristiwa mendadak, terdapat keterlambatan tertentu. Jika harga melompat tinggi, garis trend regresi linear memerlukan masa untuk disesuaikan, masa ini mungkin menghasilkan isyarat yang salah.

  1. Optimasi parameter yang munasabah

Kedua-dua strategi memerlukan pilihan parameter yang sesuai, dan parameter mungkin perlu disesuaikan secara bebas untuk beberapa jenis. Jika parameter dipilih dengan tidak betul, ia akan mengurangkan kesan strategi.

Risiko ini dapat dikurangkan dengan:

  1. Melepaskan keadaan pemicu isyarat kombinasi dengan betul untuk mengelakkan peluang yang terlewat

  2. Menggabungkan regresi linear alternatif seperti indikator trend untuk mendapatkan penilaian trend yang lebih tepat pada masanya

  3. Mengoptimumkan parameter dengan kaedah pembelajaran mesin dan lain-lain untuk meningkatkan pilihan parameter

Arah pengoptimuman

Strategi ini boleh dioptimumkan dengan cara:

  1. Optimasi parameter menggunakan kaedah pembelajaran mesin

Anda boleh mengumpul data sejarah, merancang sasaran pengoptimuman parameter, dan menggunakan algoritma pembelajaran mesin untuk mencari kombinasi parameter terbaik seperti algoritma genetik, pengoptimuman Bayesian dan sebagainya.

  1. Meningkatkan mekanisme kawalan kerugian

Anda boleh menetapkan peraturan berhenti kerugian yang digabungkan dengan ATR, indikator trend, dan lain-lain untuk mengawal kerugian maksimum dalam satu perdagangan.

  1. Mengoptimumkan logik masuk dan keluar

Syarat-syarat tambahan untuk masuk ke pasaran seperti penapis garis rata, penghakiman Brin dan sebagainya boleh ditambah berdasarkan isyarat perdagangan, mengurangkan kekerapan penyesuaian kedudukan, dan mengelakkan terikat.

  1. Analisis Sentimen

Menggunakan teknologi pemprosesan bahasa semula jadi untuk menilai sentimen peserta pasaran dan membantu membuat keputusan perdagangan.

  1. Menambah modul ramalan pembelajaran mesin

Menggunakan model pembelajaran mendalam seperti LSTM, GRU untuk membuat ramalan harga sebagai asas rujukan penting untuk membuat keputusan strategi.

ringkaskan

Strategi ini menggunakan gabungan strategi 123 reversal dan strategi cut-off regresi linear, untuk mencapai perdagangan kuantitatif yang didorong oleh pelbagai faktor, mekanisme pengesahan dapat menyaring isyarat palsu dengan berkesan, sambil menangkap peluang perdagangan reversal dan trend. Tetapi strategi ini juga mempunyai risiko keterbelakangan tertentu, perlu memberi perhatian kepada pengoptimuman parameter dan memperluas mekanisme kawalan angin, untuk meningkatkan kestabilan strategi.

Kod sumber strategi
/*backtest
start: 2023-09-18 00:00:00
end: 2023-09-19 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 25/01/2021
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// Linear Regression Intercept is one of the indicators calculated by using the 
// Linear Regression technique. Linear regression indicates the value of the Y 
// (generally the price) when the value of X (the time series) is 0. Linear 
// Regression Intercept is used along with the Linear Regression Slope to create 
// the Linear Regression Line. The Linear Regression Intercept along with the Slope 
// creates the Regression line.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos

LRI(Length,xSeria) =>
    pos = 0.0
    xX = Length * (Length - 1) * 0.5
    xDivisor = xX * xX - Length * Length * (Length - 1) * (2 * Length - 1) / 6
    xXY = 0.0
    for i = 0 to Length-1
    	xXY := xXY + (i * xSeria[i])
    xSlope = (Length * xXY - xX * sum(xSeria, Length)) / xDivisor
    xLRI = (sum(xSeria, Length) - xSlope * xX) / Length
    pos:= iff(close > xLRI, 1,
           iff(close < xLRI, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Line Regression Intercept", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- Line Regression Intercept ----")
LengthLRI = input(14, minval=1)
xSeria = input(title="Source", type=input.source, defval=close)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posLRI = LRI(LengthLRI,xSeria)
pos = iff(posReversal123 == 1 and posLRI == 1 , 1,
	   iff(posReversal123 == -1 and posLRI == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )