Strategi kombinasi pembalikan momentum multi-faktor


Tanggal Pembuatan: 2023-11-21 11:20:31 Akhirnya memodifikasi: 2023-11-21 11:20:31
menyalin: 1 Jumlah klik: 603
1
fokus pada
1621
Pengikut

Strategi kombinasi pembalikan momentum multi-faktor

Ringkasan

Strategi ini adalah strategi kombinasi multi-faktor, yang menggabungkan penggunaan faktor reversal dan faktor momentum, yang bertujuan untuk menemukan peluang reversal di pasar. Strategi ini pertama-tama menggunakan faktor reversal negatif untuk mengidentifikasi peluang reversal setelah turun, kemudian menggunakan indikator momentum untuk melakukan pemfilteran kedua, memfilter sinyal reversal palsu di bawah tren besar, sehingga mengunci peluang reversal short-line.

Prinsip Strategi

Strategi ini terdiri dari dua bagian:

  1. 123 faktor pembalikan

Bagian ini menggunakan intraday reversal thinking untuk menilai hubungan antara harga penutupan hari sebelumnya dan harga penutupan dua hari sebelumnya, dengan identifikasi peluang reversal pada garis K yang lambat. Logika spesifiknya adalah:

  • Sinyal beli: Setelah dua hari berturut-turut penurunan harga penutupan, harga penutupan naik pada hari itu, dan garis K lambat selama sembilan hari di bawah 50, menghasilkan sinyal beli;

  • Sinyal jual: Setelah dua hari berturut-turut harga close-out naik, harga close-out turun pada hari itu, dan sembilan hari garis K cepat lebih tinggi dari 50, menghasilkan sinyal jual.

  1. Indikator Ergodic Dynamic Oscillation (ETSI)

Bagian ini menggunakan tiga EMA untuk membangun indikator dinamika. Rumus indikator adalah sebagai berikut:

   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 antaranya, xSMA_R adalah EMA smoothing dari pergerakan harga, xSMA_aR adalah EMA smoothing dari amplitudo pergerakan harga, xTSI adalah indikator dinamika yang terdiri dari perbandingan keduanya, dan xEMA_TSI adalah EMA smoothing lagi dari xTSI. Indikator ini menilai hubungan antara xTSI dan xEMA_TSI, sebagai sinyal arah perdagangan.

Akhirnya, strategi melakukan operasi AND pada dua bagian sinyal, dan hanya menghasilkan instruksi perdagangan yang sebenarnya ketika dua bagian faktor yang sama mengirimkan sinyal.

Keunggulan Strategis

Keunggulan terbesar dari strategi ini adalah desain multi-faktor yang dapat menyaring sinyal palsu dan menemukan peluang perdagangan berkualitas tinggi. Secara khusus, ada tiga poin utama:

  1. 123 Faktor reversal dapat mengidentifikasi titik rebound jangka pendek setelah penurunan.

  2. Indikator dinamika Elgdic dapat secara efektif menentukan arah tren besar, menghindari sinyal pembalikan terjadi pada tren besar, sehingga memfilter sinyal palsu.

  3. Dua bagian sinyal menggunakan operasi AND, yang dapat meningkatkan kualitas sinyal dan meningkatkan stabilitas strategi.

Risiko Strategis

Meskipun strategi ini menggunakan desain multi-faktor untuk mengendalikan risiko, risiko utama adalah:

  1. Sinyal pembalikan mungkin terjadi pada saat tren bergoyang dan tidak dapat menghasilkan keuntungan.

  2. Pengaturan parameter antara kedua faktor bersifat subjektif dan mungkin terlalu cocok untuk varietas tertentu.

  3. Jika harga kembali berbalik, maka risiko kerugian akan meningkat.

Risiko ini dapat diatasi dengan cara mengoptimalkan parameter untuk lebih banyak varietas, mengontrol waktu penyimpanan setelah pembalikan, dan memantau perubahan hubungan indikator secara real-time.

Optimasi Strategi

Strategi ini dapat dioptimalkan dalam beberapa hal:

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

  2. Meningkatkan strategi stop loss untuk mengendalikan kerugian tunggal.

  3. Kombinasi parameter yang berbeda digunakan untuk varietas tren dan varietas getaran.

  4. Meningkatkan faktor-faktor yang memiliki bobot yang lebih tinggi.

  5. Menambahkan algoritma pembelajaran mesin untuk mengoptimalkan dan memperbarui parameter secara otomatis.

Meringkaskan

Strategi ini berhasil menggabungkan faktor reversal dan momentum metrik untuk mencapai desain optimasi multi-faktor. Ini dapat secara efektif mengidentifikasi peluang reversal jangka pendek dan menggunakan momentum metrik untuk melakukan verifikasi kedua terhadap sinyal, sehingga meningkatkan peluang strategi. Meskipun strategi ini masih memiliki ruang untuk perbaikan tertentu, ide-ide intinya memberikan referensi yang baik untuk desain strategi kuantitatif.

Kode Sumber Strategi
/*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 )