
Strategi ini disebut dengan strategi reversal yang mengacu pada pengkuantifikasian sinyal tren ganda. Strategi ini menggabungkan dua jenis sinyal strategi yang berbeda, salah satunya adalah sinyal reversal jangka pendek yang didasarkan pada indikator acak, dan yang lainnya adalah sinyal tren jangka panjang yang didasarkan pada volume transaksi, keduanya digabungkan untuk membentuk sinyal masuk yang stabil.
Strategi ini terdiri dari dua bagian. Bagian pertama menggunakan indikator Stoch 9 hari untuk menghasilkan sinyal reversal jangka pendek. Secara khusus, jika harga close-out naik lebih tinggi dari hari sebelumnya, sementara garis cepat 9 hari lebih rendah dari 50 dan garis lambat lebih tinggi dari 50, maka lakukan over; jika harga close-out naik lebih rendah dari hari sebelumnya, sementara garis cepat 9 hari lebih tinggi dari 50 dan garis lambat lebih rendah dari 50 dan kosong. Dengan demikian, gunakan indikator Stoch untuk menghasilkan sinyal reversal jangka pendek.
Bagian kedua menggunakan indeks volume transaksi negatif (NVI) untuk membentuk sinyal tren jangka panjang. Rumus perhitungan NVI adalah, jika volume transaksi pada hari itu kurang dari hari sebelumnya, maka perubahan harga penutupan hari itu akan ditambahkan; jika volume transaksi pada hari itu lebih besar dari atau sama dengan hari sebelumnya, maka nilai hari sebelumnya tidak akan berubah.
Akhirnya, strategi ini menggabungkan dua jenis sinyal. Hanya ketika sinyal pembalikan jangka pendek dan sinyal tren jangka panjang diarahkan, sinyal masuk akan terbentuk. Ini membantu memfilter sinyal palsu dan meningkatkan stabilitas.
Keuntungan terbesar dari strategi ini adalah stabilitas sinyal. Sinyal pembalikan jangka pendek dapat menangkap penyesuaian jangka pendek dari pasar, dan sinyal tren jangka panjang memastikan bahwa tren besar tidak berubah. Kombinasi keduanya sangat meningkatkan stabilitas sinyal dan dapat secara efektif menyaring sinyal jangka pendek dengan tingkat kesalahan yang lebih tinggi.
Selain itu, strategi ini memiliki parameter yang lebih sedikit dan mudah dioptimalkan. Pengguna hanya perlu menyesuaikan parameter NVI untuk menyesuaikan karakteristik pasar yang berbeda.
Risiko terbesar dari strategi ini adalah bahwa mungkin ada perbedaan waktu antara dua jenis sinyal. Mungkin ada beberapa keterlambatan antara sinyal pembalikan jangka pendek dan sinyal tren jangka panjang, yang akan menyebabkan dua jenis sinyal tidak konsisten dalam beberapa waktu dan tidak dapat membentuk sinyal masuk yang stabil.
Selain itu, indikator NVI juga lebih sensitif terhadap perubahan volume transaksi yang sangat besar, yang dapat menyebabkan penilaian tren jangka panjang yang salah.
Untuk mengurangi risiko ini, parameter indikator NVI dapat disesuaikan dengan tepat, atau stop loss dapat ditambahkan untuk mengendalikan kerugian tunggal.
Strategi ini dapat dioptimalkan dalam beberapa hal:
Mengoptimalkan parameter indikator Stoch untuk meningkatkan kemampuan reverse capture.
Mengoptimalkan siklus panjang indikator NVI dan meningkatkan kemampuan untuk mengidentifikasi tren jangka panjang.
Meningkatkan kondisi penyaringan lalu lintas untuk menghindari sinyal palsu yang tidak normal.
Meningkatkan strategi stop loss untuk mengendalikan kerugian tunggal.
Strategi ini didasarkan pada pola pikir reversal jangka pendek dan tren jangka panjang untuk merancang mekanisme masuk yang stabil, yang dapat secara efektif mengontrol tingkat kesalahan, meningkatkan stabilitas sinyal. Langkah selanjutnya dapat dioptimalkan dari penyesuaian parameter, menambahkan kondisi filter, dan lain-lain, untuk meningkatkan stabilitas strategi.
/*backtest
start: 2023-12-18 00:00:00
end: 2023-12-21 05:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 29/03/2021
// 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 theory behind the indexes is as follows: On days of increasing
// volume, you can expect prices to increase, and on days of decreasing
// volume, you can expect prices to decrease. This goes with the idea of
// the market being in-gear and out-of-gear. Both PVI and NVI work in similar
// fashions: Both are a running cumulative of values, which means you either
// keep adding or subtracting price rate of change each day to the previous day`s
// sum. In the case of PVI, if today`s volume is less than yesterday`s, don`t add
// anything; if today`s volume is greater, then add today`s price rate of change.
// For NVI, add today`s price rate of change only if today`s volume is less than
// yesterday`s.
//
// 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
NVI(EMA_Len) =>
pos = 0.0
nRes = 0.0
xROC = roc(close, EMA_Len)
nRes := iff(volume < volume[1], nz(nRes[1], 0) + xROC, nz(nRes[1], 0))
nResEMA = ema(nRes, EMA_Len)
pos := iff(nRes > nResEMA, 1,
iff(nRes < nResEMA, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Negative Volume Index", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- Negative Volume Index ----")
EMA_Len = input(50, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posNVI = NVI(EMA_Len)
pos = iff(posReversal123 == 1 and posNVI == 1 , 1,
iff(posReversal123 == -1 and posNVI == -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 )