Strategi kuantitatif gabungan berdasarkan pembalikan dan kekuatan relatif


Tarikh penciptaan: 2023-12-13 17:17:10 Akhirnya diubah suai: 2023-12-13 17:17:10
Salin: 0 Bilangan klik: 370
1
fokus pada
1212
Pengikut

Strategi kuantitatif gabungan berdasarkan pembalikan dan kekuatan relatif

Gambaran keseluruhan

Strategi ini pertama kali digabungkan dengan Ulf Jensen dalam bukunya How I Triple My Money in the Futures Market (dalam bahasa Inggeris) pada halaman 183. Strategi ini digabungkan untuk mendapatkan isyarat yang lebih kuat.

Idea utama strategi ini adalah menggunakan beberapa faktor untuk membuat keputusan pada masa yang sama, menggabungkan faktor pembalikan dan kekuatan relatif kedua-dua isyarat, membeli atau menjual apabila kedua-dua isyarat dikeluarkan pada masa yang sama, untuk meningkatkan kestabilan strategi.

Prinsip Strategi

Bahagian pertama adalah strategi pembalikan. Strategi ini dilakukan dalam keadaan berikut: harga penutupan dua hari kebelakangan ini terus meningkat, dan pada hari ke-9 garis stochastic lambat berada di bawah 50. Syarat kedudukan kosong adalah: harga penutupan dua hari kebelakangan ini terus menurun, dan pada hari ke-9 garis stochastic cepat berada di atas 50.

Bahagian kedua adalah penunjuk kekuatan relatif. Penunjuk ini mengira purata bergerak perubahan harga penutupan N hari saham sasaran dengan indeks yang ditetapkan, dan membandingkannya dengan belon beli, belon jual dan belon simpanan yang ditetapkan sebelumnya. Apabila penunjuk di atas melakukan lebih banyak ketika memasuki belon beli, di bawah melakukan kosong ketika menjual belon kosong, di bawah melakukan posisi kosong ketika mengambil posisi kosong, di atas melakukan keadaan kosong ketika mengambil posisi kosong.

Strategi gabungan ini akan menilai kedua-dua bahagian isyarat pada masa yang sama, dan hanya apabila kedua-duanya mengeluarkan isyarat yang sama (dua kali membeli atau dua kali menjual), ia akan melakukan operasi membeli atau menjual yang sesuai.

Analisis kelebihan

Strategi ini menggabungkan faktor pembalikan dan faktor kekuatan relatif, yang dapat memanfaatkan kedua-duanya. Strategi pembalikan dapat menangkap titik-titik ekstrem dalam jangka pendek; Strategi kekuatan relatif dapat menangkap trend utama di pasaran besar. Kedua-duanya menghantar isyarat pada masa yang sama, yang dapat meningkatkan kebolehpercayaan isyarat, menyaring beberapa isyarat salah yang disebabkan oleh kebisingan.

Tambahan pula, penunjuk Stochastic sebagai penunjuk pembahagian overbought dan oversold lebih baik untuk menilai titik pembalikan. Kombinasi menggunakan penunjuk trend seperti purata bergerak juga boleh membentuk strategi gabungan yang lebih matang.

Analisis risiko

Risiko terbesar dalam strategi pembalikan adalah ketidakupayaan untuk menentukan kapan pasaran akan berbalik, dan kemungkinan untuk meneruskan pergerakan pembalikan selepas kerugian. Dalam kes ini, penunjuk kekuatan relatif boleh berfungsi untuk menentukan sama ada trend besar berubah.

Risiko strategi kekuatan relatif adalah bahawa parameter penunjuk tidak ditetapkan dengan betul, yang menyebabkan terlalu banyak isyarat yang salah. Dalam kes ini, strategi pembalikan dapat berfungsi sebagai penapis dan mengurangkan perdagangan yang tidak perlu.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dalam beberapa aspek:

  1. Uji lebih banyak faktor pembalikan untuk mencari strategi pembalikan yang lebih baik. Pada masa ini, hanya strategi statistik N hari baru tinggi / rendah baru yang digunakan.

  2. Untuk menguji dan mengoptimumkan parameter untuk penunjuk kekuatan relatif untuk mencari kombinasi parameter yang terbaik. Tetapan parameter semasa adalah subjektif dan mungkin tidak optimum.

  3. Tambah strategi berhenti rugi. Strategi ini tidak mempunyai set berhenti rugi, dan menambah berhenti rugi yang munasabah dapat mengawal risiko kerugian.

  4. Indeks dari pelbagai standard boleh diuji, kemudian kekuatan relatif dengan saham sasaran dikira untuk mencari indeks yang paling sesuai.

ringkaskan

Strategi ini menggabungkan faktor pembalikan dan faktor kekuatan relatif untuk berdagang, dapat memanfaatkan kelebihan kedua-duanya untuk meningkatkan kualiti isyarat, merupakan strategi gabungan yang lebih matang. Strategi ini masih mempunyai ruang untuk pengoptimuman yang besar, dan hasil yang lebih baik dapat diperoleh dengan pengoptimuman parameter, strategi stop-loss, dan penyesuaian kombinasi strategi.

Kod sumber strategi
/*backtest
start: 2022-12-06 00:00:00
end: 2023-12-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 30/10/2019
// 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
// Comparative Relative Strength Strategy for ES
//
// 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

CRS(a, b, len, BuyBand, SellBand, CloseBand) =>
    pos = 0.0
    as = security(a, timeframe.period, close) 
    bs = security(b, timeframe.period, close) 
    nRes = sma(as/bs, len)
    pos := iff(nRes > BuyBand, 1,
	         iff(nRes < SellBand, -1,
	          iff(pos[1] == 1 and nRes < CloseBand, 0,
    	       iff(pos[1] == -1 and nRes > CloseBand, 0, nz(pos[1], 0)))))
    pos

strategy(title="Combo Backtest 123 Reversal & Comparative Relative Strength", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
a = syminfo.tickerid 
b = input("BTC_USDT:swap", type=input.symbol) 
LengthCRS = input(10) 
BuyBand = input(0.9988, step = 0.0001)
SellBand = input(0.9960, step = 0.0001)
CloseBand = input(0.9975, step = 0.0001)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posCRS = CRS(a, b, LengthCRS, BuyBand, SellBand, CloseBand)
pos = iff(posReversal123 == 1 and posCRS == 1 , 1,
	   iff(posReversal123 == -1 and posCRS == -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 )