
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.
Strategi ini terdiri dari dua bagian:
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.
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 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:
123 Faktor reversal dapat mengidentifikasi titik rebound jangka pendek setelah penurunan.
Indikator dinamika Elgdic dapat secara efektif menentukan arah tren besar, menghindari sinyal pembalikan terjadi pada tren besar, sehingga memfilter sinyal palsu.
Dua bagian sinyal menggunakan operasi AND, yang dapat meningkatkan kualitas sinyal dan meningkatkan stabilitas strategi.
Meskipun strategi ini menggunakan desain multi-faktor untuk mengendalikan risiko, risiko utama adalah:
Sinyal pembalikan mungkin terjadi pada saat tren bergoyang dan tidak dapat menghasilkan keuntungan.
Pengaturan parameter antara kedua faktor bersifat subjektif dan mungkin terlalu cocok untuk varietas tertentu.
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.
Strategi ini dapat dioptimalkan dalam beberapa hal:
Menyesuaikan parameter dua faktor untuk mencari sampel data yang lebih cocok.
Meningkatkan strategi stop loss untuk mengendalikan kerugian tunggal.
Kombinasi parameter yang berbeda digunakan untuk varietas tren dan varietas getaran.
Meningkatkan faktor-faktor yang memiliki bobot yang lebih tinggi.
Menambahkan algoritma pembelajaran mesin untuk mengoptimalkan dan memperbarui parameter secara otomatis.
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.
/*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 )