Strategi ini secara eksperimen menggunakan kombinasi pelbagai indikator momentum seperti Chande Momentum Indicator, RMI Indicator, Triple HMA RSI, Double EVW RSI, Triple EMA RSI, dan lain-lain untuk menentukan arah trend dan masuk apabila semua indikator memberi isyarat pada masa yang sama.
Hitung Indeks Kemajuan Chande dan Sediakan Garis Jual Beli
Mengira RMI, Triple HMA RSI, Double EVW RSI, Triple EMA RSI dan banyak lagi.
Tetapkan garis beli dan jual untuk setiap indikator.
Apabila penunjuk pergerakan Chande berlaku ke atas melintasi garis beli, periksa sama ada penunjuk lain juga berada di bawah garis beli masing-masing. Jika semua penunjuk memenuhi syarat pada masa yang sama, isyarat beli dihasilkan.
Sebaliknya, jika Chande melintasi garis jual di bawah indikator momentum, dan indikator lain pada masa yang sama melebihi garis jual masing-masing, maka ia menghasilkan isyarat jual.
Terdapat pelbagai kombinasi indikator yang boleh saling disahkan untuk mengelakkan salah faham.
Indeks Kinerja Chande sensitif terhadap perubahan trend dan dapat menangkap perubahan dengan berkesan.
Indeks RMI boleh menunjukkan tahap momentum untuk menilai pembelian dan penjualan yang berlebihan.
Penunjuk seperti HMA RSI, EVW RSI menguji cara RSI yang berbeza.
Kaedah gabungan pelbagai indikator dapat menguji keberkesanan indikator secara fleksibel.
Keperluan gabungan pelbagai indikator lebih sukar dipenuhi, kurang isyarat, dan kemungkinan kehilangan peluang.
Tidak ada kawalan risiko seperti stop loss.
Kesan penunjuk bergantung pada tempoh masa dan mungkin tidak sensitif terhadap kitaran yang berbeza.
Tanpa optimasi parameter, parameter penunjuk mungkin tidak betul.
Tidak cukup data pengesanan untuk mengesahkan strategi sepenuhnya.
Penyelesaian:
Menurunkan nilai indeks dengan sewajarnya untuk menyediakan lebih banyak peluang perdagangan.
Tambahkan stop loss bergerak atau stop loss keras untuk mengawal kerugian tunggal.
Uji pada kitaran dan varieti yang berbeza untuk mencari parameter terbaik.
Pengoptimuman parameter menggunakan pembelajaran mesin atau carian grid.
Ia juga akan memberi peluang kepada peniaga untuk mendapatkan lebih banyak peluang untuk membeli barangan dan membeli barangan.
Uji parameter penunjuk yang berbeza untuk mencari konfigurasi yang optimum.
Menambah penunjuk momentum pelbagai skala masa yang disesuaikan.
Memperkenalkan pengesanan trend dan mengelakkan dagangan berlawanan arah.
Menggunakan pembelajaran mesin untuk meningkatkan penimbang berat pelbagai indikator.
Berpadu dengan sistem linear, pilihan masa masuk ke lapangan akan berubah.
Strategi ini cuba mencari titik perubahan trend yang lebih dipercayai dengan menggabungkan beberapa penunjuk momentum. Pemikiran strategi pelbagai ini mempunyai ruang pengembangan dan pengoptimuman yang kuat, boleh bermula dari pilihan parameter, berat penunjuk, dan kawalan risiko, untuk mendapatkan lebih banyak peluang perdagangan yang sesuai dengan logik sistem dengan syarat memastikan kualiti isyarat.
/*backtest
start: 2023-08-24 00:00:00
end: 2023-09-23 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © burgercrisis
//@version=4
strategy("RMI + Triple HMRSI + Double EVWRSI + TERSI Strategy")
//* Backtesting Period Selector | Component *//
//* https://www.tradingview.com/script/eCC1cvxQ-Backtesting-Period-Selector-Component *//
//* https://www.tradingview.com/u/pbergden/ *//
//* Modifications made *//
testStartYear = input(2021, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(999999, "Backtest Stop Year")
testStopMonth = input(9, "Backtest Stop Month")
testStopDay = input(26, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
testPeriod() => true
/////////////// END - Backtesting Period Selector | Component ///////////////
src = input(close, "Price", type = input.source)
CMOlength = input(9, minval=1, title="Alpha Chande Momentum Length")
//CMO
momm = change(src)
f1(m) => m >= 0.0 ? m : 0.0
f2(m) => m >= 0.0 ? 0.0 : -m
m1 = f1(momm)
m2 = f2(momm)
sm1 = sum(m1, CMOlength)
sm2 = sum(m2, CMOlength)
percent(nom, div) => 100 * nom / div
chandeMO = percent(sm1-sm2, sm1+sm2)
plot(chandeMO, "Chande MO", color=color.blue)
//RMI
// Copyright (c) 2018-present, Alex Orekhov (everget)
// Relative Momentum Index script may be freely distributed under the MIT license.
length3 = input(title="RMI Length", type=input.integer, minval=1, defval=30)
momentumLength3 = input(title="RMI Momentum ", type=input.integer, minval=1, defval=25)
up3 = rma(max(change(src, momentumLength3), 0), length3)
down3 = rma(-min(change(src, momentumLength3), 0), length3)
rmi3 = (down3 == 0 ? 100 : up3 == 0 ? 0 : 100 - (100 / (1 + up3 / down3)))-50
//
//
// end RMI, end Alex Orekhov copywrite
//
//
lengthMA = input(7)
lengthRSI = input(14)
thrsi = hma(hma(hma(rsi(src, lengthRSI), lengthMA), lengthMA), lengthMA)
thrsi1 = (thrsi-50)*10
lengthMA2 = input(7)
lengthRSI2 = input(14)
devwrsi = ((ema(ema(vwma(rsi(src, lengthRSI2), lengthMA2), lengthMA2), lengthMA2))-50)*5
lengthMA3 = input(7)
lengthRSI3 = input(14)
tersi = ((ema(ema(ema(rsi(src, lengthRSI3), lengthMA3), lengthMA3), lengthMA3))-50)*10
rmirsi = ((thrsi*rmi3/25))
//Boundary Lines
obLevel1 = input(0, title="Chande Sellline")
osLevel1 = input(0, title="Chande Buyline")
hline(obLevel1, color=#0bc4d9)
hline(osLevel1, color=#0bc4d9)
obLevel2 = input(0, title="Triple HMRSI Sellline")
osLevel2 = input(0, title="Triple HMRSI Buyline")
hline(obLevel2, color=#5a0bd9)
hline(osLevel2, color=#5a0bd9)
obLevel3 = input(0, title="DEVWRSI Sellline")
osLevel3 = input(0, title="DEVWRSI Buyline")
hline(obLevel3, color=#5a0bd9)
hline(osLevel3, color=#5a0bd9)
obLevel4 = input(0, title="TERSI Sellline")
osLevel4 = input(0, title="TERSI Buyline")
hline(obLevel4, color=#5a0bd9)
hline(osLevel4, color=#5a0bd9)
obLevel5 = input(0, title="RMI Sellline")
osLevel5 = input(0, title="RMI Buyline")
hline(obLevel5, color=#5a0bd9)
hline(osLevel5, color=#5a0bd9)
obLevel6 = input(0, title="RMI*RSI Sellline")
osLevel6 = input(0, title="RMI*RSI Buyline")
hline(obLevel6, color=#5a0bd9)
hline(osLevel6, color=#5a0bd9)
plot((thrsi1), title="THRSI")
plot(devwrsi, color=color.red, title="DEVWRSI")
plot(tersi, color=color.yellow, title="TERSI")
plot(rmirsi, color=color.purple, title="RMI*HMRSI")
plot(rmi3, color=color.orange, title="RMI")
longcondition1 = crossover(chandeMO, osLevel1)
shortcondition1 = crossunder(chandeMO, obLevel1)
longcondition2 = rmirsi<osLevel6 and rmi3<osLevel5 and tersi<osLevel4 and devwrsi<osLevel3 and thrsi1<osLevel2 and longcondition1
shortcondition2 = rmirsi>obLevel6 and rmi3>obLevel5 and tersi>obLevel4 and devwrsi>obLevel3 and thrsi1>obLevel2 and shortcondition1
if testPeriod()
if longcondition2
strategy.entry("Buy", strategy.long)
if shortcondition2
strategy.entry("Sell", strategy.short)
hline(0, color=#C0C0C0, linestyle=hline.style_dashed, title="Zero Line")