Chiến lược tối ưu hóa tốc độ thay đổi

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

img

Tổng quan

Chiến lược này tối ưu hóa chiến lược Rate of Change (ROC) ban đầu. So với chiến lược ROC ban đầu, chiến lược này có các tối ưu hóa sau:

  1. Đưa ra giá trị ROC lịch sử tối đa để so sánh động với ROC hiện tại để có được giá trị động lực tương đối.
  2. Làm mịn giá trị động lượng tương đối để tạo ra tín hiệu.
  3. Thêm ngưỡng tín hiệu mua và bán.

Thông qua các biện pháp tối ưu hóa này, nhiều tín hiệu không hợp lệ có thể được lọc ra để làm cho chiến lược ổn định và đáng tin cậy hơn.

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

Chỉ số cốt lõi của chiến lược này là Tỷ lệ thay đổi (ROC). ROC đo lường tỷ lệ thay đổi giá cổ phiếu trong một khoảng thời gian nhất định. Chiến lược này đầu tiên tính toán giá trị ROC trong một khoảng thời gian 9. Sau đó nó ghi lại giá trị tối đa của chỉ số ROC này trong 200 khoảng thời gian qua và tính toán ROC hiện tại bằng tỷ lệ phần trăm của ROC lịch sử tối đa để có được sức mạnh tương đối của đà. Ví dụ, nếu ROC cao nhất trong 200 ngày qua đạt 100, thì sức mạnh tương đối là 80% khi ROC ngày hôm nay là 80.

Sức mạnh tương đối được làm mịn bằng đường SMA 10 giai đoạn để lọc ra các biến động ngắn hạn và có được đường cong mịn. Khi đường cong mịn tăng liên tục trong 3 ngày và giá trị dưới -80%, nó được coi là giá cổ phiếu giảm bắt đầu chậm lại và dấu hiệu đáy xuất hiện, do đó đi dài; khi đường cong mịn giảm liên tục trong 3 ngày và giá trị trên 80%, nó được coi là giá cổ phiếu tăng bắt đầu chậm lại và dấu hiệu trên xuất hiện, vì vậy vị trí gần.

Phân tích lợi thế

So với chiến lược ROC ban đầu, chiến lược này có những lợi thế chính sau:

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

Nói chung, chiến lược này xử lý hiệu quả chỉ số ROC để làm cho nó phù hợp hơn cho giao dịch trực tiếp.

Phân tích rủi ro

Những rủi ro chính của chiến lược này là:

  1. Chỉ số ROC không thể xác định xu hướng thị trường và có một số sai lầm. Chiến lược có thể thất bại khi gặp một giai đoạn chuyển tiếp tăng-gấu.
  2. Các ngưỡng mua và bán không hoàn hảo. Đặt các ngưỡng quá cao hoặc quá thấp sẽ ảnh hưởng đến hiệu suất chiến lược.
  3. Cài đặt tham số SMA không chính xác cũng sẽ ảnh hưởng đến kết quả chiến lược.

Để giảm các rủi ro trên, hãy xem xét kết hợp các chỉ số xu hướng để xác định xu hướng chính; điều chỉnh các thông số ngưỡng và kiểm tra các thông số tối ưu; tối ưu hóa các thông số chu kỳ SMA.

Hướng dẫn tối ưu hóa

Chiến lược có thể được tối ưu hóa theo những cách sau:

  1. Kết hợp các chỉ số xu hướng để xác định hướng thị trường tổng thể và tránh thất bại trong quá trình chuyển đổi bò-gấu.
  2. Kiểm tra các thông số chiều dài ROC và các thông số ngưỡng mua và bán để tìm kết hợp các thông số tối ưu.
  3. Tối ưu hóa các thông số làm mịn SMA để tìm các thông số tốt nhất.
  4. Tăng cơ chế dừng lỗ.

Tóm lại

Đây là một chiến lược tối ưu hóa dựa trên sự phát triển thứ cấp của 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ử, làm mịn SMA và mua và bán ngưỡng để lọc ra các tín hiệu không hợp lệ và 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 giao dịch trực tiếp.


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


Thêm nữa