Strategi Pengesanan Pembalikan Rata-rata Faktor Dua

Penulis:ChaoZhang, Tarikh: 2023-12-19 11:09:20
Tag:

img

Ringkasan

Strategi ini tergolong dalam strategi pengesanan pembalikan dua faktor dalam bidang perdagangan kuantitatif. Ia mengintegrasikan strategi pembalikan 123 dan strategi saluran Keltner dengan dua faktor, bertujuan untuk menemui isyarat pembalikan dan merealisasikan idea perdagangan membeli rendah dan menjual tinggi.

Prinsip

Strategi ini terdiri daripada dua sub-strategi. Sub-strategi pertama adalah strategi pembalikan 123. Ia menilai sama ada pasaran berada di titik pembalikan dengan mengira perubahan harga penutupan selama dua hari perdagangan sebelumnya dan menggabungkan penunjuk Stochastic. Khususnya, apabila harga penutupan meningkat selama dua hari berturut-turut dan penunjuk Stochastic di bawah 50, isyarat beli dikeluarkan; Apabila harga penutupan jatuh selama dua hari berturut-turut dan penunjuk Stochastic di atas 50, isyarat jual dikeluarkan.

Strategi sub kedua adalah strategi saluran Keltner. Strategi ini mengira purata pergerakan harga biasa dan julat turun naik selama n hari perdagangan yang paling baru. Apabila harga mendekati rel atas atau bawah, isyarat perdagangan terbalik dikeluarkan. Apabila harga berada di bawah rel bawah, pergi pendek; apabila di atas rel atas, pergi panjang.

Akhirnya, dengan menilai arah isyarat kedua-dua sub-strategi, strategi mengira isyarat kedudukan akhir. Apabila isyarat kedua-dua sub-strategi konsisten, pesanan dagangan sebenar dikeluarkan, jika tidak, tiada transaksi dibuat untuk mencapai tujuan pengesahan faktor dua.

Analisis Kelebihan

Kelebihan terbesar dari strategi pengesanan pembalikan purata faktor dua ini adalah bahawa ia dapat merebut peluang pada waktunya apabila pasaran berbalik dan merealisasikan idea perdagangan membeli rendah dan menjual tinggi. Pada masa yang sama, mekanisme pengesahan faktor dua dapat mengurangkan isyarat palsu hingga tahap tertentu dan meningkatkan kualiti isyarat.

Secara khusus, tetapan parameter penunjuk Stochastic dalam strategi pembalikan 123 agak konservatif, yang dapat menapis pembalikan palsu dalam pasaran yang berayun. Dan idea saluran Keltner yang mengesan pita Bollinger juga dapat merebut peluang pembalikan apabila harga memecahkan rel atas dan bawah. Kedua-duanya saling melengkapi untuk mengurangkan transaksi yang tidak perlu dan dengan itu mendapatkan kadar kemenangan yang lebih tinggi.

Analisis Risiko

Risiko utama strategi ini adalah bahawa masa isyarat pembalikan adalah penting. Jika pembalikan palsu berterusan berlaku atau masa isyarat pembalikan tidak dipilih dengan betul, ia akan menyebabkan kegagalan untuk mengekalkan trend yang lengkap, dengan itu mempengaruhi pulangan akhir.

Di samping itu, strategi faktor dua mempunyai kesukaran yang lebih besar dalam pemilihan parameter dan pengoptimuman daripada strategi faktor tunggal. Ujian dan penilaian komprehensif parameter kedua-dua sub-strategi diperlukan, jika tidak, kegagalan juga sangat mungkin.

Akhirnya, perdagangan terbalik itu sendiri mempunyai nisbah risiko-balasan yang tidak seimbang. Keadaan pasaran yang tidak normal dapat dengan mudah membawa kepada pembubaran. Ini perlu dielakkan dengan stop loss yang ketat.

Arahan pengoptimuman

Menurut analisis risiko di atas, strategi ini boleh dioptimumkan dalam aspek berikut:

  1. Uji tetapan yang berbeza parameter penunjuk pembalikan untuk mencari kombinasi dengan toleransi kesalahan yang lebih tinggi dan isyarat palsu yang kurang
  2. Cuba nilai parameter panjang kitaran yang berbeza untuk mencari nilai yang menangkap pembalikan lebih tepat
  3. Tambah modul stop loss untuk mengawal kerugian maksimum setiap perdagangan dengan ketat
  4. Uji kesan tempoh penahan yang berbeza untuk mencari titik keluar yang lebih sesuai dengan logik strategi
  5. Meningkatkan bilangan kedudukan terbuka atau menambah modul kawalan kedudukan untuk menjadikan nisbah risiko-balasan yang lebih munasabah

Ringkasan

Sebagai strategi pengesanan pembalikan purata dua faktor yang tipikal, dengan mengintegrasikan pembalikan 123 dan sub-strategi saluran Keltner, strategi ini bertujuan untuk menangkap dengan lebih tepat masa membeli rendah dan menjual tinggi pada titik pembalikan pasaran. Dengan pengoptimuman parameter dan kawalan risiko yang betul, strategi sedemikian dapat memperoleh alpha yang agak besar. Tetapi peniaga masih perlu memberi perhatian kepada keunikan perdagangan terbalik dan mencegah pengembangan kerugian yang disebabkan oleh keadaan pasaran yang tidak normal.


/*backtest
start: 2023-11-18 00:00:00
end: 2023-12-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 09/12/2020
// 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
// The Keltner Channel, a classic indicator 
// of technical analysis developed by Chester Keltner in 1960. 
// The indicator is a bit like Bollinger Bands and Envelopes.
//
// 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

KeltnerChn(nPeriod) =>
    pos = 0.0
    xPrice = sma(hlc3, nPeriod)
    xMove = sma(high - low, nPeriod)
    reverse = input(false, title="Trade reverse")
    xUpper = xPrice + xMove
    xLower = xPrice - xMove
    pos := iff(close < xLower, -1,
             iff(close > xUpper, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Keltner Channel", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
nPeriod = input(title="Period", defval=10, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posKeltnerChn = KeltnerChn(nPeriod)
pos = iff(posReversal123 == 1 and posKeltnerChn == 1 , 1,
	   iff(posReversal123 == -1 and posKeltnerChn == -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