Tài nguyên đang được tải lên... tải...

Xu hướng tối ưu hóa tham số theo chiến lược định lượng

Tác giả:ChaoZhang, Ngày: 2024-01-02 11:01:22
Tags:

img

Tổng quan

Ý tưởng chính của chiến lược này là đánh giá và theo dõi xu hướng giá bằng cách kết hợp chỉ số tỷ lệ phần trăm và tối ưu hóa tham số.

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

Chiến lược này sử dụng chỉ số %rank để xác định xu hướng giá. %rank đại diện cho sức mạnh tương đối của giá hiện tại trong khoảng thời gian xem.

Phạm vi giá trị phần trăm xếp hạng là từ 0 đến 100. Khi giá trị phần trăm xếp hạng gần 0, điều đó có nghĩa là giá hiện tại gần với giá thấp nhất trong khoảng thời gian xem và ở trong một khu vực bị đánh giá thấp. Khi gần 100, điều đó có nghĩa là giá hiện tại gần với giá cao nhất trong khoảng thời gian xem và ở trong một khu vực được đánh giá quá cao.

Chiến lược cũng giới thiệu một tham số thang đo như một sự dịch chuyển để di chuyển phạm vi từ 0 đến 100 đến phạm vi thang đo 100+. Hai đường tín hiệu level_1 và level_2 cũng được thiết lập, trong đó level_1 chỉ ra mức dài và level_2 chỉ ra mức ngắn.

Khi chỉ số tỷ lệ phần trăm giá vượt qua level_1 lên, một tín hiệu dài được tạo ra. Khi nó vượt qua level_2 xuống, một tín hiệu ngắn được tạo ra. Các điều kiện thoát là đối diện với các tín hiệu nhập cảnh.

Ưu điểm của Chiến lược

  1. Sử dụng chỉ số tỷ lệ phần trăm để xác định sức mạnh của xu hướng giá, tránh bị mắc kẹt hoặc theo đuổi mức cao nhất
  2. Áp dụng các phương pháp tối ưu hóa tham số để điều chỉnh thang điểm dịch chuyển và ngưỡng đường tín hiệu cho các sản phẩm và chu kỳ khác nhau để cải thiện sự ổn định
  3. Kết hợp các ý tưởng giao dịch theo xu hướng và đảo ngược trung bình để theo dõi xu hướng kịp thời sau khi phá vỡ đường tín hiệu

Phân tích rủi ro

  1. Đánh giá sai về xu hướng dẫn đến tổn thất không cần thiết
  2. Có xu hướng tạo ra tín hiệu sai khi biến động giá và xu hướng không rõ ràng
  3. Cài đặt tham số không chính xác có thể dẫn đến giao dịch quá thường xuyên hoặc khối lượng giao dịch không đủ

Để giải quyết các rủi ro trên, các tham số như len, quy mô, mức có thể được điều chỉnh để tối ưu hóa.

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

Có chỗ cho việc tối ưu hóa thêm chiến lược:

  1. Các điểm dừng lỗ có thể được giới thiệu để giảm lỗ giao dịch duy nhất
  2. Các chỉ số như trung bình động có thể được kết hợp để xác nhận để lọc ra một số tín hiệu sai
  3. Các phương pháp học máy có thể được sử dụng để tự động tối ưu hóa các thông số
  4. Có thể chạy song song trên nhiều khung thời gian

Kết luận

Ý tưởng tổng thể của chiến lược là rõ ràng, áp dụng các phương pháp định lượng tối ưu hóa tham số để đánh giá và theo dõi xu hướng giá. Nó có một số giá trị thực tế nhưng vẫn cần thử nghiệm và tối ưu hóa thêm để giảm rủi ro và cải thiện lợi nhuận ổn định.


/*backtest
start: 2023-12-02 00:00:00
end: 2024-01-01 00:00:00
period: 4h
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/
// © Alex_Dyuk

//@version=4
strategy(title="percentrank", shorttitle="percentrank")
src = input(close, title="Source")
len = input(title="lookback - Период сравнения", type=input.integer, defval=10, minval=2)
scale = input(title="scale offset - смещение шкалы", type=input.integer, defval=50, minval=0, maxval=100)
level_1 = input(title="sygnal line 1", type=input.integer, defval=30)
level_2 = input(title="sygnal line 2", type=input.integer, defval=-30)

prank = percentrank(src,len)-scale
plot(prank, style = plot.style_columns)
plot(level_2, style = plot.style_line, color = color.red)
plot(level_1, style = plot.style_line, color = color.green)

longCondition = (crossunder(level_1, prank) == true)
if (longCondition)
    strategy.entry("Long", strategy.long)
longExitCondition = (crossover(level_2, prank) == true)
if (longExitCondition)
    strategy.close("Long")
    
shortCondition = (crossover(level_2, prank) == true)
if (shortCondition)
    strategy.entry("Short", strategy.short)
shortexitCondition = (crossunder(level_1, prank) == true)
if (shortexitCondition)
    strategy.close("Short")

    

Thêm nữa