Chiến lược này sử dụng một sự kết hợp của nhiều chỉ số động lực như chỉ số động lực Chande, chỉ số RMI, Triple HMA RSI, Double EVW RSI, Triple EMA RSI để xác định xu hướng và tham gia khi tất cả các chỉ số phát tín hiệu cùng một lúc. Đây là một chiến lược thử nghiệm đa yếu tố.
Tính toán chỉ số động lượng Chande và thiết lập đường mua bán của nó.
Tính toán RMI, Triple HMA RSI, Double EVW RSI, Triple EMA RSI và nhiều chỉ số khác nhau.
Đặt đường mua và đường bán cho mỗi chỉ số.
Khi chỉ số động lượng Chande xảy ra trên đường mua, hãy kiểm tra xem các chỉ số khác có nằm dưới đường mua của họ không. Nếu tất cả các chỉ số đáp ứng các điều kiện cùng một lúc, sẽ tạo ra tín hiệu mua.
Ngược lại, nếu các chỉ số khác vượt qua các đường bán hàng của mình cùng một lúc, sẽ tạo ra tín hiệu bán hàng.
Một số chỉ số có thể được kết hợp với nhau để kiểm chứng và tránh sai lầm.
Chỉ số động lực Chande nhạy cảm với sự thay đổi xu hướng và có thể nắm bắt hiệu quả các biến đổi.
Chỉ số RMI có thể cho thấy mức độ động lực, đánh giá quá mua quá bán.
Các chỉ số HMA RSI, EVW RSI và các chỉ số khác nhau được thử nghiệm để tính toán RSI.
Phương pháp kết hợp đa chỉ số cho phép kiểm tra hiệu quả của chỉ số một cách linh hoạt.
Các yêu cầu về kết hợp đa chỉ số khó đáp ứng, có ít tín hiệu và có thể bỏ lỡ cơ hội.
Không có phương tiện kiểm soát rủi ro như dừng lỗ.
Hiệu quả của chỉ số phụ thuộc vào thời gian và có thể không nhạy cảm với các chu kỳ khác nhau.
Không có tham số tối ưu hóa, các tham số chỉ số có thể không đúng.
Không có dữ liệu phản hồi đầy đủ để xác minh chiến lược.
Giải pháp tương ứng:
Giảm giá chỉ số một cách thích hợp, cung cấp nhiều cơ hội giao dịch hơn.
Thêm dừng di động hoặc dừng cứng để kiểm soát tổn thất đơn lẻ.
Thử nghiệm trong các chu kỳ và giống khác nhau để tìm các tham số tối ưu.
Sử dụng phương pháp học máy hoặc tìm kiếm lưới để tối ưu hóa tham số.
Các chiến lược này sẽ được thực hiện trong nhiều thị trường khác nhau để đảm bảo tính bền vững của chiến lược.
Kiểm tra các thiết lập tham số chỉ số khác nhau để tìm cấu hình tối ưu.
Tăng cường khả năng tự điều chỉnh theo nhiều thang thời gian
Tiếp theo, các nhà đầu tư có thể sử dụng các giao dịch theo xu hướng khác nhau.
Sử dụng học máy để tăng trọng lượng phân bố đa chỉ số.
Có một hệ thống thống nhất định, thay đổi thời gian vào sân.
Chiến lược này cố gắng tìm ra điểm chuyển hướng đáng tin cậy hơn bằng cách kết hợp nhiều chỉ số động lực. Ý tưởng chiến lược đa dạng này có khả năng mở rộng và tối ưu hóa mạnh mẽ, có thể bắt đầu từ lựa chọn tham số, trọng số chỉ số, kiểm soát rủi ro, v.v., để có được nhiều cơ hội giao dịch phù hợp với logic của hệ thống với điều kiện đảm bảo chất lượng tín hiệu.
/*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")