Strategi kuantitatif gabungan berdasarkan pembalikan dan kekuatan relatif


Tanggal Pembuatan: 2023-12-13 17:17:10 Akhirnya memodifikasi: 2023-12-13 17:17:10
menyalin: 0 Jumlah klik: 617
1
fokus pada
1621
Pengikut

Strategi kuantitatif gabungan berdasarkan pembalikan dan kekuatan relatif

Ringkasan

Strategi ini pertama kali dikombinasikan dengan Ulf Jensen dalam bukunya How I Triple My Money in the Futures Market (halaman 183) untuk menggabungkan strategi reversal dengan indikator kekuatan relatif untuk mendapatkan sinyal yang lebih kuat. Strategi kombinasi ini disebut strategi kuantitatif berdasarkan reversal dan kekuatan relatif.

Ide utama dari strategi ini adalah menggunakan beberapa faktor untuk menilai secara bersamaan, menggabungkan dua sinyal, yaitu faktor pembalikan dan kekuatan relatif, untuk membeli atau menjual ketika keduanya mengirimkan sinyal secara bersamaan, untuk meningkatkan stabilitas strategi.

Prinsip Strategi

Bagian pertama adalah strategi reversal. Strategi ini dilakukan dengan kondisi berikut: harga penutupan dua hari terakhir terus meningkat, dan pada hari ke-9 garis stochastic lambat berada di bawah 50. Kondisi posisi terbuka adalah: harga penutupan dua hari terakhir terus menurun, dan pada hari ke-9 garis stochastic cepat berada di atas 50.

Bagian kedua adalah indikator kekuatan relatif. Indikator ini menghitung rata-rata bergerak dari perubahan harga N-hari penutupan saham target dengan indeks standar, dan dibandingkan dengan band pembelian, band penjualan, dan band posisi yang telah ditetapkan sebelumnya.

Strategi kombinasi ini akan menilai dua bagian sinyal secara bersamaan, dan hanya akan melakukan pembelian atau penjualan yang sesuai jika keduanya mengeluarkan sinyal yang sama (double buy atau double sell).

Analisis Keunggulan

Strategi ini menggabungkan faktor reversal dan faktor intensitas relatif, yang dapat memanfaatkan keuntungan dari keduanya. Strategi reversal dapat menangkap titik-titik ekstrem dalam jangka pendek; Strategi intensitas relatif dapat menangkap tren utama di pasar besar. Keduanya secara bersamaan mengirimkan sinyal, yang dapat meningkatkan keandalan sinyal dan menyaring sebagian dari sinyal salah yang disebabkan oleh kebisingan.

Selain itu, indikator Stochastic sebagai indikator overbought dan oversold yang lebih baik untuk menilai titik balik. Kombinasi menggunakan indikator tren seperti moving averages juga dapat membentuk strategi kombinasi yang lebih matang.

Analisis risiko

Risiko terbesar dari strategi pembalikan adalah ketidakmampuan untuk menilai kapan pasar berbalik, kemungkinan pergerakan berbalik yang berlanjut setelah terjadi kerugian. Pada saat ini, indikator kekuatan relatif dapat berperan untuk menentukan apakah tren besar berubah.

Risiko dari strategi relative strength adalah parameter indikator yang tidak tepat, yang menghasilkan terlalu banyak sinyal yang salah. Dalam hal ini, strategi inversi dapat berfungsi sebagai filter dan mengurangi transaksi yang tidak perlu.

Arah optimasi

Strategi ini dapat dioptimalkan dalam beberapa hal:

  1. Uji lebih banyak faktor reversal untuk mencari strategi reversal yang lebih baik. Saat ini hanya digunakan strategi statistik N-day new high/new low.

  2. Untuk menguji dan mengoptimalkan parameter dari indikator kekuatan relatif, untuk menemukan kombinasi parameter yang optimal. Pengaturan parameter saat ini lebih subjektif dan mungkin tidak optimal.

  3. Meningkatkan strategi stop loss. Strategi ini saat ini tidak memiliki set stop loss, meningkatkan stop loss yang wajar dapat mengontrol risiko kerugian.

  4. Indeks dari berbagai standar dapat diuji, lalu diperhitungkan kekuatan relatif terhadap saham target untuk mencari indeks yang paling cocok.

Meringkaskan

Strategi ini menggabungkan faktor reversal dan faktor kekuatan relatif untuk perdagangan, dapat memanfaatkan keuntungan dari keduanya untuk meningkatkan kualitas sinyal, merupakan strategi kombinasi yang relatif matang. Strategi ini masih memiliki ruang untuk optimasi yang besar, dengan parameter optimasi, stop loss strategi dan penyesuaian strategi kombinasi, juga dapat memperoleh efek yang lebih baik.

Kode 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 )