Strategi ini adalah kombinasi dari dua strategi perdagangan kuantitatif yang bertujuan untuk menghasilkan sinyal perdagangan yang lebih akurat dan dapat diandalkan. Strategi pertama didasarkan pada reversal harga, dan strategi kedua didasarkan pada analisis volume transaksi.
Strategi ini terdiri dari dua bagian:
Gunakan indikator STO untuk menilai sinyal reversal. Lakukan over jika harga close out naik dua hari dan garis lambat STO di bawah 50; kosongkan jika harga close out turun dua hari dan garis cepat STO di atas 50.
Hitung rasio volume transaksi dalam periode tertentu, menilai arah polygon, dan melakukan pengolahan rata-rata.
Kedua bagian strategi ini sama yaitu lebih banyak berarti lebih banyak, dan sama artinya kosong berarti kosong.
Sinyal kombinasi meningkatkan kualitas sinyal, dan kemungkinan munculnya sinyal palsu akan berkurang secara signifikan.
Langkah-langkah berikut dapat mengurangi risiko:
Strategi ini dapat dioptimalkan dalam beberapa hal:
Menyesuaikan parameter K, D, dan lain-lain untuk menemukan kombinasi terbaik
Menambahkan penilaian tambahan untuk MACD, BOLL, dan lainnya
Pengujian parameter siklus yang berbeda memberikan penilaian yang lebih stabil
Misalnya, kembali ke permainan saat terjadi defisiensi.
Parameter yang berbeda tidak selalu sama, perlu diuji secara terpisah
Strategi ini menggunakan kombinasi reversal dan volume transaksi dua jenis strategi yang berbeda, saling memverifikasi, yang dapat secara efektif meningkatkan kualitas dan akurasi sinyal. Tetapi juga perlu memperhatikan optimasi parameter, indikator teknis tambahan, dan lain-lain untuk meningkatkan efektivitas strategi. Kita dapat mendapatkan strategi kombinasi yang benar-benar stabil dan andal dengan terus menguji hasil pengembalian, menyesuaikan aturan parameter, dan memverifikasi di lapangan.
/*backtest
start: 2023-09-13 00:00:00
end: 2023-09-20 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 21/10/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
// This is another version of FVE indicator that we have posted earlier
// in this forum.
// This version has an important enhancement to the previous one that`s
// especially useful with intraday minute charts.
// Due to the volatility had not been taken into account to avoid the extra
// complication in the formula, the previous formula has some drawbacks:
// The main drawback is that the constant cutoff coefficient will overestimate
// price changes in minute charts and underestimate corresponding changes in
// weekly or monthly charts.
// And now the indicator uses adaptive cutoff coefficient which will adjust to
// all time frames automatically.
//
// 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
FVI(Samples,Perma,Cintra,Cinter) =>
pos = 0
xhl2 = hl2
xhlc3 = hlc3
xClose = close
xIntra = log(high) - log(low)
xInter = log(xhlc3) - log(xhlc3[1])
xStDevIntra = stdev(sma(xIntra, Samples) , Samples)
xStDevInter = stdev(sma(xInter, Samples) , Samples)
xVolume = volume
TP = xhlc3
TP1 = xhlc3[1]
Intra = xIntra
Vintra = xStDevIntra
Inter = xInter
Vinter = xStDevInter
CutOff = Cintra * Vintra + Cinter * Vinter
MF = xClose - xhl2 + TP - TP1
FveFactor = iff(MF > CutOff * xClose, 1,
iff(MF < -1 * CutOff * xClose, -1, 0))
xVolumePlusMinus = xVolume * FveFactor
Fvesum = sum(xVolumePlusMinus, Samples)
VolSum = sum(xVolume, Samples)
xFVE = (Fvesum / VolSum) * 100
xEMAFVE = ema(xFVE, Perma)
pos :=iff(xFVE > xEMAFVE, 1,
iff(xFVE < xEMAFVE, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & Volatility Finite Volume Elements", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Samples = input(22, minval=1)
Perma = input(40, minval=1)
Cintra = input(0.1)
Cinter = input(0.1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posFVI = FVI(Samples,Perma,Cintra,Cinter)
pos = iff(posReversal123 == 1 and posFVI == 1 , 1,
iff(posReversal123 == -1 and posFVI == -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 )