Strategi ini menggabungkan strategi 123 reversal, strategi DMI, dan strategi moving average, yang memungkinkan penggabungan efektif dari berbagai jenis strategi, membentuk strategi kombinasi yang kuat. Strategi ini dapat melakukan operasi reversal pada titik perubahan tren, dan dapat melakukan operasi maju ketika tren berlanjut, dan juga menggunakan filter moving average, yang dapat secara efektif mengidentifikasi arah tren pasar, meningkatkan peluang strategi.
123 Strategi pembalikan: Ketika harga penutupan 2 hari berturut-turut di bawah harga penutupan hari sebelumnya dan berubah menjadi lebih tinggi dari harga penutupan hari sebelumnya, dan 9 hari K-line lambat di bawah 50 melakukan lebih banyak; Ketika harga penutupan 2 hari berturut-turut di atas harga penutupan hari sebelumnya dan berubah menjadi lebih rendah dari harga penutupan hari sebelumnya, dan 9 hari K-line cepat di atas 50 melakukan kosong.
Strategi DMI: Lakukan lebih banyak ketika + DI di jalur DI; kosongkan saat + DI di jalur DI.
Strategi Moving Average: Berinvestasi lebih banyak ketika Anda melewati Moving Average di atas harga close out; Berinvestasi lebih sedikit ketika Anda melewati Moving Average di bawah harga close out.
Tiga strategi sinyal yang dikirimkan untuk membuka posisi, atau posisi kosong.
Strategi ini menggabungkan strategi tren dan strategi reversal untuk menangkap peluang reversal harga tepat waktu tanpa melewatkan peluang untuk menjalankan tren. Filter rata-rata bergerak dapat mengurangi sinyal palsu. Berbagai strategi saling diverifikasi dapat meningkatkan keandalan sinyal.
Kombinasi berbagai strategi meningkatkan tingkat kemenangan. Strategi 123 berbalik menangkap titik balik, strategi DMI menangkap tren, dan rata-rata bergerak memfilter sinyal.
Strategi reversal dikombinasikan dengan strategi trend, yang dapat menangkap reversal dan juga trend, serta perdagangan yang elastis.
Penggunaan filter moving average dapat mengurangi sinyal palsu yang dihasilkan oleh pergerakan jangka pendek.
Kombinasi beberapa strategi dapat saling memverifikasi sinyal, menghindari kegagalan strategi tunggal karena pengaruh dari beberapa kondisi pasar.
Lebih banyak parameter strategi, Anda dapat menemukan kombinasi parameter terbaik dengan mengoptimalkannya, meningkatkan stabilitas strategi.
Strategi reversal mudah terjebak dalam tren bergolak. Strategi ini dapat dihindari dengan menggabungkan strategi tren.
Strategi DMI dapat melewatkan peluang di awal tren. Parameter DMI dapat disingkat sesuai untuk meningkatkan sensitivitas.
Rata-rata bergerak memiliki keterlambatan, yang dapat menunda sinyal yang dihasilkan. Periode dapat dipersingkat sesuai untuk mempercepat respons.
Kombinasi beberapa strategi dapat meningkatkan tingkat kemenangan, tetapi juga meningkatkan kompleksitas strategi. Perlu hati-hati menguji setiap parameter yang ditetapkan.
Strategi ini sensitif terhadap biaya transaksi. Disarankan untuk memperluas jangkauan stop loss yang tepat dan menghindari terlalu sering membuka posisi kosong.
Optimalkan setiap parameter kebijakan untuk menemukan kombinasi parameter terbaik.
Menambahkan sinyal filter indikator lain, seperti MACD, RSI, dan lain-lain, untuk meningkatkan stabilitas strategi lebih lanjut.
Meningkatkan strategi stop loss, seperti trend stop loss, shock stop loss, dan lain-lain, untuk mengendalikan risiko.
Mengoptimalkan manajemen posisi, seperti posisi tetap, posisi dinamis, dan lain-lain, meningkatkan tingkat keuntungan strategi.
Adaptasi strategi untuk menyesuaikan parameter untuk varietas tertentu.
Menambahkan model pembelajaran mesin untuk membantu pengambilan keputusan, memanfaatkan lebih banyak data historis untuk meningkatkan kinerja strategi.
Strategi ini membentuk strategi agregat yang fleksibel dan bervariasi dengan kombinasi efektif dari strategi reversal, strategi tren, dan filter rata-rata bergerak. Ini dapat menangkap titik-titik perubahan harga, tetapi juga dapat menangkap kelanjutan tren, meningkatkan stabilitas dan keandalan sinyal melalui kombinasi multi-strategi. Ada ruang untuk perbaikan lebih lanjut dalam hal parameter optimasi, strategi stop-loss, manajemen posisi, dan sebagainya.
/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-18 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 15/10/2019
// 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 related article is copyrighted material from Stocks & Commodities Aug 2009
//
// 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
fFilter(xSeriesSum, xSeriesV, Filter) =>
iff(xSeriesV > Filter, xSeriesSum, 0)
DMIMA(Length_MA, Length_DMI) =>
pos = 0.0
xMA = sma(close, Length_MA)
up = change(high)
down = -change(low)
trur = rma(tr, Length_DMI)
xPDI = fixnan(100 * rma(up > down and up > 0 ? up : 0, Length_DMI) / trur)
xNDI = fixnan(100 * rma(down > up and down > 0 ? down : 0, Length_DMI) / trur)
nPDI = xPDI
nNDI = xNDI
nMA = xMA
nPDI_1 = xPDI[1]
nNDI_1 = xNDI[1]
nMA_1 = xMA[1]
bMDILong = iff(nPDI > nNDI and nPDI_1 < nNDI_1, true,
iff(nPDI < nNDI and nPDI_1 > nNDI_1, false, false))
bMDIShort = iff(nPDI > nNDI and nPDI_1 < nNDI_1, false,
iff(nPDI < nNDI and nPDI_1 > nNDI_1, true, false))
bMALong = iff(close > nMA and close[1] < nMA_1, true,
iff(close < nMA and close[1] > nMA_1, false, false))
bMAShort = iff(close > nMA and close[1] < nMA_1, false,
iff(close < nMA and close[1] > nMA_1, true, false))
pos := iff(bMDILong and bMALong, 1,
iff(bMDIShort and bMAShort, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & DMI & Moving Average", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Length_MA = input(30, minval=1)
Length_DMI = input(14, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posDMIMA = DMIMA(Length_MA,Length_DMI)
pos = iff(posReversal123 == 1 and posDMIMA == 1 , 1,
iff(posReversal123 == -1 and posDMIMA == -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 )