
Strategi ini dinamakan strategi pembalikan kuantitatif untuk gabungan gabungan isyarat trend ganda. Ia menggabungkan dua isyarat strategi yang berbeza, satu isyarat pembalikan jangka pendek berdasarkan indikator rawak, dan yang lain isyarat trend jangka panjang berdasarkan jumlah transaksi, yang digabungkan untuk membentuk isyarat masuk yang stabil.
Strategi ini terdiri daripada dua bahagian. Bahagian pertama menggunakan indikator Stoch 9 hari untuk menghasilkan isyarat pembalikan jangka pendek. Secara khusus, jika harga penutupan meningkat lebih tinggi daripada hari sebelumnya, dan garis cepat 9 hari lebih rendah daripada 50 dan garis lambat lebih tinggi daripada 50, lakukan lebih banyak; jika harga penutupan rendah daripada hari sebelumnya, dan garis cepat 9 hari lebih tinggi daripada 50 dan garis lambat lebih rendah daripada 50 kosong.
Bahagian kedua menggunakan indeks jumlah dagangan negatif (NVI) untuk membentuk isyarat trend jangka panjang. Rumus pengiraan NVI adalah, jika jumlah dagangan pada hari itu kurang daripada hari sebelumnya, kadar perubahan harga penutupan hari itu akan ditambah; jika jumlah dagangan pada hari itu lebih besar atau sama dengan hari sebelumnya, nilai hari sebelumnya tidak akan berubah.
Akhirnya, strategi ini menggabungkan dua jenis isyarat. Isyarat masuk hanya akan terbentuk apabila isyarat pembalikan jangka pendek dan isyarat trend jangka panjang bersatu. Ini membantu menyaring isyarat palsu dan meningkatkan kestabilan.
Kelebihan terbesar strategi ini adalah kestabilan isyarat. Isyarat pembalikan jangka pendek dapat menangkap penyesuaian jangka pendek di pasaran, dan isyarat trend jangka panjang memastikan trend besar tidak berubah. Gabungan kedua-duanya meningkatkan kestabilan isyarat dan dapat menyaring isyarat jangka pendek yang lebih tinggi.
Selain itu, parameter strategi ini lebih sedikit dan mudah dioptimumkan. Pengguna hanya perlu menyesuaikan parameter NVI untuk menyesuaikan diri dengan ciri-ciri pasaran yang berbeza.
Risiko terbesar dalam strategi ini adalah bahawa mungkin terdapat perbezaan masa antara kedua-dua isyarat. Mungkin terdapat beberapa kelewatan antara isyarat pembalikan jangka pendek dan isyarat trend jangka panjang, yang akan menyebabkan dua isyarat tidak konsisten dalam jangka masa dan tidak dapat membentuk isyarat masuk yang stabil.
Selain itu, NVI juga lebih sensitif terhadap perubahan jumlah transaksi yang sangat besar, yang boleh menyebabkan penilaian trend jangka panjang yang salah.
Untuk mengurangkan risiko ini, anda boleh menyesuaikan parameter NVI atau menambah stop loss untuk mengawal kerugian tunggal.
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Mengoptimumkan parameter penunjuk Stoch untuk meningkatkan keupayaan menangkap balik.
Mengoptimumkan tempoh panjang NVI dan meningkatkan keupayaan untuk mengenal pasti trend jangka panjang.
Menambah syarat penapisan jumlah penghantaran untuk mengecualikan isyarat palsu yang tidak normal dalam jumlah penghantaran.
Tambah strategi hentikan kerugian dan kawal kerugian tunggal.
Strategi ini adalah berasaskan pembalikan jangka pendek dan rekaan trend jangka panjang untuk rekaan mekanisme kemasukan yang stabil, yang dapat mengawal kadar kesalahan dan meningkatkan kestabilan isyarat. Langkah seterusnya boleh dioptimumkan dari segi menyesuaikan parameter, menambah syarat penapisan, dan sebagainya untuk meningkatkan kestabilan 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 )