Chiến lược tối ưu hóa dựa trên tỷ lệ xung động động lực

Tác giả:ChaoZhang, Ngày: 2024-02-20 13:54:49
Tags:

基于动量震荡率优化策略

Thông tin chi tiết

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).

  1. Đưa vào giá trị ROC lịch sử lớn nhất, so sánh động lực ROC hiện tại với ROC lịch sử lớn nhất, lấy giá trị tương đối động lực.
  2. Xử lý mượt mà các giá trị tương đối của động lượng, tạo ra tín hiệu.
  3. Tham gia vào ngưỡng tín hiệu mua bán.

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.

Nguyên tắc chiến lược

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.

Phân tích ưu thế

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:

  1. Đưa ra so sánh giá trị tối đa ROC lịch sử, có thể đo lường tốt độ cao tương đối của chỉ số động lực, lọc các tín hiệu không hiệu quả không cao về giá trị tuyệt đối.
  2. Xử lý thanh lọc tiếng ồn mượt mà, giúp tín hiệu ổn định và đáng tin cậy hơn.
  3. Đặt ngưỡng mua bán và giảm giao dịch không hiệu quả.

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ế.

Phân tích rủi ro

Các chiến lược này có những rủi ro:

  1. Chỉ số ROC không thể xác định xu hướng thị trường và có một số sự sai lệch. Chiến lược này có thể thất bại nếu gặp phải thời kỳ chuyển đổi bò.
  2. Đặt ngưỡng mua bán quá cao hoặc quá thấp sẽ ảnh hưởng đến hiệu suất chiến lược.
  3. Việc cài đặt tham số SMA không đúng cũng ảnh hưởng đến hiệu quả chiến lược.

Để 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.

Định hướng tối ưu

Chiến lược này có thể được tối ưu hóa theo các hướng sau:

  1. Kết hợp với các chỉ số xu hướng, đánh giá xu hướng thị trường tổng thể, tránh thất bại trong quá trình chuyển đổi bò gấu.
  2. Kiểm tra các tham số chiều dài ROC khác nhau và các tham số ngưỡng mua bán để tìm sự kết hợp tốt nhất.
  3. Tối ưu hóa các tham số SMA để tìm các tham số tốt nhất.
  4. Các nhà nghiên cứu cho biết:

Tóm lại

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")


Nhiều hơn nữa