Strategi Combinasi Pembalikan dan Regresi Linear

Penulis:ChaoZhang, Tarikh: 2023-09-26 15:56:48
Tag:

Ringkasan

Strategi ini menggabungkan strategi pembalikan 123 dan strategi pencegatan regresi linear untuk melaksanakan strategi perdagangan gabungan yang didorong oleh pelbagai faktor. Strategi pembalikan 123 menilai hubungan harga antara dua hari perdagangan terakhir dan menggabungkan penunjuk Stoch untuk menentukan isyarat pembalikan. Strategi pencegatan regresi linear menggunakan analisis regresi linear untuk menilai hubungan antara harga dan garis trend dan menghasilkan isyarat perdagangan. Kedua-dua strategi mengesahkan satu sama lain dan dapat menapis isyarat palsu dengan berkesan.

Prinsip Strategi

123 Strategi Pembalikan

Strategi ini berdasarkan prinsip-prinsip berikut:

  1. Jika hubungan harga penutupan antara dua hari dagangan terakhir adalah harga penutupan hari ini lebih tinggi daripada semalam, dan garis cepat Stoch lebih rendah daripada garis perlahan, ia dianggap bahawa terdapat isyarat pembalikan menaik

  2. Jika hubungan harga penutupan antara dua hari dagangan terakhir adalah harga penutupan hari ini lebih rendah daripada semalam, dan garis cepat Stoch lebih tinggi daripada garis perlahan, ia dianggap bahawa terdapat isyarat pembalikan menurun

Peraturan penghakiman adalah seperti berikut:

  • Jika harga penutupan hari ini > harga penutupan semalam dan garis pantas Stoch < garis perlahan Stoch dan garis pantas Stoch > parameter set, menjana isyarat beli

  • Jika harga penutupan hari ini < harga penutupan semalam dan garis pantas Stoch > garis perlahan Stoch dan garis pantas Stoch < parameter set, menjana isyarat jual

Strategi ini perlu menetapkan parameter penunjuk Stoch, termasuk: K kitaran garis Panjang untuk pengiraan Stoch, kitaran smoothing KS smoothing untuk Stoch garis pantas, kitaran smoothing DLength untuk Stoch garis perlahan, ambang tahap untuk Stoch keputusan garis pantas.

Strategi Pemangkasan Regresi Linear

Strategi ini berdasarkan analisis regresi linear untuk menilai hubungan antara harga dan garis trend regresi linear.

  • Jika harga penutupan adalah lebih besar daripada retresi linear, isyarat beli dihasilkan

  • Jika harga penutupan adalah kurang daripada retresi linear penyambungan, isyarat jual dihasilkan

Strategi ini perlu menetapkan kitaran regresi linear LengthLRI dan sumber data input regresi linear xSeria.

Strategi Kombo

Strategi combo memerlukan isyarat beli / jual serentak dari kedua-dua strategi pembalikan 123 dan strategi penyingkiran regresi linear untuk menjana pesanan dagangan sebenar, yang berkesan menapis isyarat palsu dan meningkatkan prestasi dagangan.

Analisis Kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Diarahkan oleh pelbagai faktor, menapis isyarat palsu dengan berkesan dan meningkatkan kualiti isyarat

Gabungan dua jenis strategi yang berbeza memerlukan isyarat dari kedua-dua strategi untuk benar-benar meletakkan pesanan. Mekanisme pengesahan pelbagai faktor ini dapat menapis isyarat yang salah sesekali dari strategi, mengurangkan perdagangan yang tidak perlu, dan meningkatkan kualiti isyarat dengan berkesan.

  1. Pemantauan masa nyata hubungan harga dan trend mengelakkan terperangkap

Penyambungan regresi linear boleh mencerminkan hubungan antara harga dan garis trend dalam masa nyata. Jika harga menyimpang dengan ketara dari trend, ia akan segera mendorong strategi untuk menyesuaikan arah kedudukan. Ini membolehkan stop loss tepat pada masanya dan mengelakkan terperangkap dalam trend sejarah.

  1. Mempertimbangkan peluang perdagangan untuk kedua-dua trend dan pembalikan

Strategi regresi linear lebih baik dalam mengenal pasti titik beli dan jual trend. Sementara strategi pembalikan 123 memberi tumpuan kepada mengenal pasti titik pembalikan. Kedua-dua strategi ini dapat menggabungkan kelebihan perdagangan trend dan perdagangan pembalikan.

  1. Pengoptimuman parameter strategi yang boleh disesuaikan

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

Analisis Risiko

Strategi ini juga mempunyai risiko berikut:

  1. Pemandu pelbagai faktor mungkin kehilangan beberapa peluang

Keperluan untuk memenuhi isyarat perdagangan kedua-dua strategi akan kehilangan beberapa peluang yang boleh menguntungkan hanya bergantung pada satu strategi.

  1. Regresi linear mempunyai lag

Regresi linear memerlukan beberapa data sejarah untuk pengiraan dan tidak dapat bertindak balas dalam masa nyata terhadap peristiwa tiba-tiba, mengakibatkan beberapa kelewatan.

  1. Pengoptimuman parameter yang munasabah diperlukan

Kedua-dua strategi memerlukan pemilihan parameter yang sesuai, yang mungkin perlu diselaraskan secara bebas untuk beberapa jenis.

Risiko boleh dikurangkan melalui kaedah berikut:

  1. Melancarkan keadaan isyarat combo dengan betul untuk mengelakkan kehilangan terlalu banyak peluang

  2. Menggabungkan penunjuk trend untuk menggantikan regresi linear untuk mendapatkan lebih banyak penilaian trend masa nyata

  3. Menggunakan kaedah pembelajaran mesin untuk membantu pengoptimuman parameter dan meningkatkan pemilihan parameter

Arahan pengoptimuman

Strategi ini boleh dioptimumkan lagi dengan cara berikut:

  1. Gunakan kaedah pembelajaran mesin untuk pengoptimuman parameter

Mengumpul data sejarah, matlamat pengoptimuman parameter reka bentuk, dan menggunakan algoritma pembelajaran mesin seperti algoritma genetik dan pengoptimuman Bayesian untuk mencari kombinasi parameter terbaik.

  1. Tambahkan mekanisme stop-loss

Peraturan stop-loss boleh ditetapkan berdasarkan ATR, penunjuk trend, dan lain-lain untuk mengawal kerugian maksimum setiap perdagangan.

  1. Mengoptimumkan logik masuk dan keluar

Syarat-syarat tambahan seperti penapis purata bergerak dan Bollinger Bands boleh ditambah berdasarkan isyarat perdagangan untuk mengurangkan kekerapan penyesuaian kedudukan dan mengelakkan terperangkap.

  1. Menggabungkan analisis sentimen

Menggunakan teknik pemprosesan bahasa semula jadi untuk menentukan sentimen peserta pasaran dan membantu keputusan perdagangan.

  1. Tambah modul ramalan pembelajaran mesin

Gunakan model pembelajaran mendalam seperti LSTM dan GRU untuk meramalkan harga sebagai rujukan penting untuk keputusan strategi.

Ringkasan

Strategi ini menggabungkan strategi pembalikan 123 dan strategi penyingkiran regresi linear untuk melaksanakan perdagangan kuantitatif yang didorong oleh pelbagai faktor. Mekanisme pengesahan dapat menapis isyarat palsu dengan berkesan dan menangkap peluang perdagangan pembalikan dan trend. Tetapi terdapat juga risiko kelewatan tertentu dalam strategi yang memerlukan perhatian kepada pengoptimuman parameter dan pengembangan mekanisme kawalan risiko untuk meningkatkan kestabilan strategi. Menggabungkan pembelajaran mesin dan teknologi lain untuk pengoptimuman parameter dan pengembangan ciri adalah arah pengoptimuman lanjut yang bermanfaat untuk strategi untuk diterokai.


/*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 )

Lebih lanjut