
Chiến lược theo dõi xu hướng động lực (Momentum Trend Tracking Strategy) là một chiến lược sử dụng chỉ số cường độ tương đối (RSI), chỉ số ngẫu nhiên (Stochastic) và chỉ số động lực (Momentum) để xác định xu hướng. Nó kết hợp nhiều tín hiệu chỉ số, phản hồi hiệu quả tốt, phù hợp với việc giữ vị trí dài trung bình.
Chiến lược này đầu tiên tính RSI, Stochastic và Momentum với độ dài 9 chu kỳ. Sau đó nhân số Stochastic và RSI, sau đó chia cho Momentum, để có được một chỉ số tổng hợp, KNRP. Chỉ số này có thể phản ánh thông tin của nhiều chỉ số con cùng một lúc.
Sau đó, một trung bình di chuyển với độ dài 2 cho KNRP tạo ra tín hiệu giao dịch khi nó đi qua. Đó là, khi giá trị trung bình lớn hơn chu kỳ trước và trống hơn chu kỳ trước.
Ưu điểm lớn nhất của chiến lược này là thiết kế chỉ số hợp lý, kết hợp hiệu quả thông tin từ nhiều chỉ số kỹ thuật, có thể xác định chính xác xu hướng. So với chỉ số đơn lẻ, nó làm giảm khả năng tín hiệu sai và tăng độ tin cậy của tín hiệu.
Ngoài ra, chiến lược này dựa chủ yếu vào xu hướng là trung bình di chuyển của KNRP, tránh rủi ro theo đuổi cao và thấp, phù hợp với triết lý giao dịch theo xu hướng. Ngoài ra, cài đặt tham số linh hoạt, người dùng có thể điều chỉnh theo phong cách của riêng mình.
Rủi ro chính của chiến lược này nằm ở việc kết hợp nhiều chỉ số. Nếu kết hợp không đúng cách, có thể có xung đột giữa các chỉ số khác nhau. Điều này sẽ làm tăng tín hiệu sai và ảnh hưởng đến hiệu suất của chiến lược. Ngoài ra, cài đặt tham số không đúng cũng có thể ảnh hưởng lớn đến kết quả.
Để giảm rủi ro, khuyến nghị tối ưu hóa các tham số, kiểm tra ảnh hưởng của các tham số với độ dài và kết hợp khác nhau đối với các chỉ số chiến lược và kết quả tổng thể của phản hồi. Ngoài ra, cần chú ý đến ảnh hưởng của tình hình dài hạn đối với sự ổn định của tham số.
Chiến lược này có thể được tối ưu hóa từ các khía cạnh sau:
Kiểm tra nhiều loại chỉ số kỹ thuật để tìm cách đánh giá xu hướng hiệu quả hơn
Tối ưu hóa các tham số của chỉ số để tìm các giá trị phù hợp hơn với môi trường thị trường hiện tại
Thêm logic dừng lỗ để khóa lợi nhuận và giảm tổn thất
Thử nghiệm trên các chu kỳ thời gian dài hơn như đường mặt trời hoặc đường tròn để đánh giá hiệu quả của chiến lược đường dài trung bình
Thêm mô-đun quản lý vị trí để điều chỉnh vị trí theo thị trường
Chiến lược theo dõi xu hướng động lực là một chiến lược xu hướng ổn định và đáng tin cậy hơn. Nó giải quyết những nhược điểm của chỉ số đơn bị ảnh hưởng bởi tín hiệu giả, đánh giá xu hướng hiệu quả bằng cách tăng trọng lượng nhiều chỉ số.
/*backtest
start: 2022-12-28 00:00:00
end: 2024-01-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 27/07/2021
// To calculate the coordinates in which the kink of the line will cross,
//the standard Forex instruments are used - Relative Strenght Index, Stochastic and Momentum.
//It is very easy to optimize them for the existing trading strategy: they all have very
//flexible and easily customizable parameters. Signals to enter the market can be 2 situations:
// Change of color of the indicator line from red to blue. At the same time, it is worth entering into the purchase;
// Change of color of the indicator line from blue to red. In this case, it is worth entering for sale.
//The signals are extremely clear and can be used in practice even by beginners. The indicator
//itself shows when to make deals: the user only has to accompany them and set the values
//of Take Profit and Stop Loss. As a rule, the signal to complete trading is the approach of
//the indicator level to the levels of the maximum or minimum of the previous time period.
////////////////////////////////////////////////////////////
strategy(title="Kwan NRP Backtest", shorttitle="KNRP")
xPrice = open
Length_Momentum = input(9, minval=1)
Length_RSI = input(9, minval=1)
Length_Stoch = input(9, minval = 1)
Length_NRP = input(2, minval=1)
reverse = input(false, title="Trade reverse")
var xKNRP = array.new_float(1,na)
xMom = close / close[Length_Momentum] * 100
xRSI = rsi(xPrice, Length_RSI)
xStoch = stoch(xPrice, high, low, 9)
if xMom != 0
val=xStoch*xRSI/xMom
array.push(xKNRP,val)
nz(na)
avr = 0.0
if array.size(xKNRP) > Length_NRP
for i = array.size(xKNRP)-Length_NRP to array.size(xKNRP)-1
avr+= array.get(xKNRP, i)
nz(na)
avr := avr / Length_NRP
clr = avr > avr[1] ? color.blue : color.red
pos = iff(avr > avr[1] , 1,
iff(avr < avr[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 )
plot(avr, color=clr, title="RMI")