Chiến lược này là một chiến lược tối ưu hóa cải tiến dựa trên tốc độ thay đổi động lực (ROC).
Thông qua những phương pháp tối ưu hóa này, nhiều tín hiệu không hiệu quả có thể được lọc, giúp chiến lược trở nên ổn định và đáng tin cậy hơn.
Các chỉ số cốt lõi của chiến lược này là tỷ lệ thay đổi (ROC); ROC đo tỷ lệ thay đổi giá cổ phiếu trong một chu kỳ nhất định. Chiến lược này đầu tiên tính toán giá trị ROC dài 9 chu kỳ. Sau đó nó ghi lại giá trị tối đa của chỉ số ROC trong 200 chu kỳ trước đó và tính toán tỷ lệ ROC hiện tại chiếm tỷ lệ phần trăm của ROC lịch sử lớn nhất, để có được sức mạnh tương đối của động lực. Ví dụ, nếu ROC đạt mức cao nhất 100 trong 200 ngày trước, thì sức mạnh tương đối là 80% khi ROC của ngày đó là 80.
Mức độ tương đối được xử lý bằng đường SMA 10 chiều dài, lọc ra các biến động ngắn hạn và có được đường cong lỏng. Khi đường cong lỏng tăng 3 ngày liên tiếp và có giá trị dưới -80%, giá cổ phiếu bắt đầu giảm chậm lại, tạo ra dấu hiệu đáy, do đó làm nhiều; Khi đường cong lỏng giảm 3 ngày liên tiếp và có giá trị trên 80%, giá cổ phiếu bắt đầu tăng chậm lại, tạo ra dấu hiệu trên cùng, do đó ổn định.
Chiến lược này có những lợi thế quan trọng so với chiến lược ROC ban đầu:
Nhìn chung, chiến lược này đã thực hiện xử lý thứ hai hiệu quả cho chỉ số ROC, làm cho nó thích hợp hơn cho giao dịch thực tế.
Các chiến lược này có những rủi ro:
Để giảm rủi ro trên, bạn có thể xem xét kết hợp các chỉ số xu hướng để xác định xu hướng lớn; điều chỉnh các tham số ngưỡng, kiểm tra các tham số tối ưu; tối ưu hóa các tham số chu kỳ SMA.
Chiến lược này có thể được tối ưu hóa theo các hướng sau:
Chiến lược này là một chiến lược tối ưu hóa cho phát triển thứ cấp dựa trên chỉ số ROC. Nó giới thiệu các phương tiện như so sánh giá trị tối đa lịch sử, gọn gàng SMA và threshold bán bán, có thể lọc tín hiệu không hiệu quả, làm cho chiến lược ổn định hơn. Ưu điểm chính là chất lượng tín hiệu cao, phù hợp với thực tế.
/*backtest start: 2024-02-12 00:00:00 end: 2024-02-19 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title="Rate Of Change Mod Strategy", shorttitle="ROC", format=format.price, precision=2) //length = input.int(9, minval=1) //source = input(close, "Source") //roc = 100 * (source - source[length])/source[length] //plot(roc, color=#2962FF, title="ROC") //hline(0, color=#787B86, title="Zero Line") length = input.int(9, minval=1, title="Length") maxHistory = input(200, title="Max Historical Period for ROC") lenghtSmooth = input.int(10, minval=1, title="Length Smoothed ROC") lenghtBUY = input.int(-80, title="Buy Threshold") lenghtSELL = input.int(80, title="Buy Threshold") source = close roc = 100 * (source - source[length]) / source[length] // Calculate the maximum ROC value in the historical period maxRoc = ta.highest(roc, maxHistory) // Calculate current ROC as a percentage of the maximum historical ROC rocPercentage = (roc / maxRoc) * 100 rocPercentageS = ta.sma(rocPercentage, lenghtSmooth) if ta.rising(rocPercentageS, 3) and rocPercentageS < lenghtBUY strategy.entry("Buy", strategy.long) if ta.falling(rocPercentageS, 3) and rocPercentageS > lenghtSELL strategy.close("Buy") plot(rocPercentage, color=color.new(color.blue, 0), title="Percentage ROC") plot(rocPercentageS, color=color.new(#21f32c, 0), title="Percentage ROC") hline(0, color=color.new(color.gray, 0), title="Zero Line")