Strategi Kombo Pembalikan Momentum Berbilang Faktor

Penulis:ChaoZhang, Tarikh: 2023-11-21 11:20:31
Tag:

img

Ringkasan

Strategi ini adalah strategi gabungan pelbagai faktor yang menggabungkan faktor pembalikan dan faktor momentum untuk menemui peluang pembalikan di pasaran. Strategi ini pertama menggunakan faktor pembalikan jangka panjang untuk mengenal pasti peluang pembalikan selepas penurunan terikat julat, dan kemudian menggunakan penunjuk momentum untuk pemeriksaan sekunder untuk menapis isyarat pembalikan palsu di bawah trend utama, untuk mengunci peluang arbitrage pembalikan jangka pendek.

Logika Strategi

Strategi ini terdiri daripada dua bahagian:

  1. 123 Faktor Pembalikan

    Bahagian ini menggunakan idea pembalikan intraday untuk menentukan hubungan antara harga penutupan hari sebelumnya dan harga penutupan 2 hari yang lalu untuk mengenal pasti peluang pembalikan dengan garis K yang perlahan. Logik tertentu adalah:

    • Isyarat beli: Selepas dua hari berturut-turut penurunan harga penutupan, jika harga penutupan meningkat pada hari semasa, dan garis K perlahan 9 hari adalah lebih rendah daripada 50, isyarat beli dihasilkan;

    • Isyarat jual: Selepas dua hari berturut-turut kenaikan harga penutupan, jika harga penutupan menurun pada hari semasa, dan garis K cepat 9 hari lebih tinggi daripada 50, isyarat jual dihasilkan.

  2. Ehlers Dynamic Momentum Oscillator (ETSI)

    Bahagian ini menggunakan tiga EMA metode momentum harga smoothing untuk membina penunjuk momentum.

    xPrice1 = close - close[1]
    xPrice2 = abs(close - close[1]) 
    xSMA_R = EMA(EMA(EMA(xPrice1,r), s), u)
    xSMA_aR = EMA(EMA(EMA(xPrice2, r), s), u) 
    xTSI = xSMA_R / xSMA_aR * 100
    xEMA_TSI = EMA(xTSI, N)
    

    Di mana xSMA_R adalah nilai rata EMA momentum harga, xSMA_aR adalah nilai rata EMA turun naik harga, xTSI adalah penunjuk momentum yang dibina dari nisbah kedua-dua, dan xEMA_TSI adalah penyelarasan EMA sekunder xTSI. Penunjuk menentukan arah isyarat dagangan berdasarkan hubungan antara xTSI dan xEMA_TSI.

Akhirnya, strategi ANDs isyarat dari kedua-dua bahagian, dan hanya mengeluarkan pesanan dagangan sebenar apabila isyarat dari kedua-dua faktor bersetuju.

Kelebihan Strategi

Kelebihan terbesar strategi ini terletak pada reka bentuk pelbagai faktornya, yang dapat menapis isyarat palsu dan menemui peluang perdagangan berkualiti tinggi.

  1. Faktor pembalikan 123 boleh mengenal pasti titik pemulihan jangka pendek selepas penurunan yang terikat julat.

  2. Penunjuk momentum Ehlers dapat menentukan arah trend utama dengan berkesan untuk mengelakkan isyarat pembalikan yang berlaku di bawah trend utama, dengan itu menapis isyarat palsu.

  3. Operasi AND pada kedua-dua bahagian isyarat boleh meningkatkan kualiti isyarat dan meningkatkan kestabilan strategi.

Risiko Strategi

Walaupun strategi ini menggunakan reka bentuk pelbagai faktor untuk mengawal risiko, masih terdapat risiko utama berikut:

  1. Isyarat pembalikan mungkin berlaku dalam trend berayun dan gagal mendapat keuntungan.

  2. Terdapat subjektiviti dalam tetapan parameter antara kedua-dua faktor, yang mungkin terlalu sesuai dengan produk tertentu.

  3. Risiko peningkatan kerugian selepas pembalikan harga berbalik lagi.

Risiko ini boleh dikurangkan dengan mengoptimumkan parameter untuk menyesuaikan diri dengan lebih banyak jenis, mengawal kedudukan selepas pembalikan, pemantauan masa nyata perubahan dalam hubungan penunjuk, dan cara lain.

Arahan pengoptimuman

Aspek utama untuk mengoptimumkan strategi ini termasuk:

  1. Menyesuaikan parameter dua faktor untuk mencari sampel data yang lebih sesuai.

  2. Meningkatkan strategi stop loss untuk mengawal kerugian tunggal.

  3. Menggunakan kombinasi parameter yang berbeza untuk varieti trend dan berayun.

  4. Meningkatkan mekanisme berat faktor untuk memberi faktor prestasi yang lebih baik berat yang lebih besar.

  5. Meningkatkan algoritma pembelajaran mesin untuk mencapai pengoptimuman automatik dan kemas kini parameter.

Kesimpulan

Strategi ini berjaya menggabungkan faktor pembalikan dan penunjuk momentum untuk mencapai reka bentuk yang dioptimumkan pelbagai faktor. Ia dapat mengenal pasti peluang pembalikan jangka pendek dengan berkesan dan menggunakan penunjuk momentum untuk menjalankan pengesahan sekunder isyarat, dengan itu meningkatkan kadar kemenangan strategi. Walaupun masih ada ruang untuk peningkatan dalam strategi, idea utamanya memberikan rujukan yang baik untuk reka bentuk strategi kuantitatif.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 30/07/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
// r - Length of first EMA smoothing of 1 day momentum        4
// s - Length of second EMA smoothing of 1 day smoothing      8    
// u- Length of third EMA smoothing of 1 day momentum         6  
// Length of EMA signal line                                  3
// Source of Ergotic TSI                                      Close
//
// This is one of the techniques described by William Blau in his book "Momentum,
// Direction and Divergence" (1995). If you like to learn more, we advise you to 
// read this book. His book focuses on three key aspects of trading: momentum, 
// direction and divergence. Blau, who was an electrical engineer before becoming 
// a trader, thoroughly examines the relationship between price and momentum in 
// step-by-step examples. From this grounding, he then looks at the deficiencies 
// in other oscillators and introduces some innovative techniques, including a 
// fresh twist on Stochastics. On directional issues, he analyzes the intricacies 
// of ADX and offers a unique approach to help define trending and non-trending periods.  
//
// 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


ETSI(r,s,u,SmthLen) =>
    pos = 0
    xPrice = close
    xPrice1 = xPrice - xPrice[1]
    xPrice2 = abs(xPrice - xPrice[1])
    xSMA_R = ema(ema(ema(xPrice1,r), s),u)
    xSMA_aR = ema(ema(ema(xPrice2, r), s),u)
    Val1 = 100 * xSMA_R
    Val2 = xSMA_aR
    xTSI = iff (Val2 != 0, Val1 / Val2, 0)
    xEMA_TSI = ema(xTSI, SmthLen)
    pos:= iff(xTSI > xEMA_TSI, 1,
    	   iff(xTSI < xEMA_TSI, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Ergodic TSI", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
r = input(4, minval=1)
s = input(8, minval=1)
u = input(6, minval=1)
SmthLen = input(3, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posETSI = ETSI(r,s,u,SmthLen)
pos = iff(posReversal123 == 1 and posETSI == 1 , 1,
	   iff(posReversal123 == -1 and posETSI == -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