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.
Strategi ini berdasarkan kepada prinsip-prinsip berikut:
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
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 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 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.
Strategi ini mempunyai kelebihan berikut:
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.
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.
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.
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.
Strategi ini juga mempunyai risiko:
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.
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.
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:
Melepaskan keadaan pemicu isyarat kombinasi dengan betul untuk mengelakkan peluang yang terlewat
Menggabungkan regresi linear alternatif seperti indikator trend untuk mendapatkan penilaian trend yang lebih tepat pada masanya
Mengoptimumkan parameter dengan kaedah pembelajaran mesin dan lain-lain untuk meningkatkan pilihan parameter
Strategi ini boleh dioptimumkan dengan cara:
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.
Anda boleh menetapkan peraturan berhenti kerugian yang digabungkan dengan ATR, indikator trend, dan lain-lain untuk mengawal kerugian maksimum dalam satu perdagangan.
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.
Menggunakan teknologi pemprosesan bahasa semula jadi untuk menilai sentimen peserta pasaran dan membantu membuat keputusan perdagangan.
Menggunakan model pembelajaran mendalam seperti LSTM, GRU untuk membuat ramalan harga sebagai asas rujukan penting untuk membuat keputusan strategi.
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.
/*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 )