Hiệu suất được tính như thế nào trong Bộ lọc?

Dữ liệu hiệu suất của máy sàng lọc được tính bằng công thức:

Perf. = (currentClose – openDaysAgo) × 100 / abs(openDaysAgo)

trong đó:

  • currentClose — giá đóng cửa gần nhất
  • openDaysAgo — giá mở cửa của thanh giá tương ứng trong quá khứ, được xác định theo khoảng thời gian đã chọn (ví dụ: 1 tuần, 3 tháng, 365 ngày)

Ví dụ

Hôm nay là thứ Ba, hãy tính Perf.W:

  1. Lấy giá đóng cửa hôm nay.
  2. Trừ giá mở cửa của thanh giá hàng ngày của thứ Ba tuần trước
  3. Nhân hiệu số với 100
  4. Chia kết quả cho giá trị tuyệt đối của giá mở cửa của thanh giá hàng ngày của thứ Ba tuần trước

Dưới đây là công thức chi tiết cho các độ phân giải được sử dụng phổ biến nhất, có tính đến các thông số cụ thể như số ngày trong năm nhuận.

//@version=5
indicator(title="Screener Performance")

rateOfreturn(ref) =>
if ref < 0 and close > 0
na
else
(close - ref) * 100 / math.abs(ref)

rr(bb, maxbarsback) =>
open[maxbarsback] * 0 + bb == 0 ? na : rateOfreturn(open[bb])

perfYTD() =>
var lastYearOpen = open
if year > year[1]
lastYearOpen := open
rateOfreturn(lastYearOpen)

fastSearchTimeIndex(x, maxbarsback) =>
mid = 0 * time[maxbarsback]
right = math.min(bar_index, maxbarsback)
left = 0
if time < x
0
else
for i = 0 to 9 by 1
mid := math.ceil((left + right) / 2)
if left == right
break
else if time[mid] < x
right := mid
continue
else if time[mid] > x
left := mid
continue
else
break
mid

week1 = 7
week_ago = timenow - 1000 * 60 * 60 * 24 * week1
week_ago_this_bar = time - 1000 * 60 * 60 * 24 * week1
countOfBarsWeekAgo = fastSearchTimeIndex(week_ago, week1)

month1 = 30
month_ago = timenow - 1000 * 60 * 60 * 24 * month1
countOfBars1MonthAgo = fastSearchTimeIndex(month_ago, month1)

month3 = 90
months3_ago = timenow - 1000 * 60 * 60 * 24 * month3
countOfBars3MonthAgo = fastSearchTimeIndex(months3_ago, month3)

month6 = 180
months6_ago = timenow - 1000 * 60 * 60 * 24 * month6
countOfBars6MonthAgo = fastSearchTimeIndex(months6_ago, month6)

years1 = 365
oneYearAgo = timenow - 1000 * 60 * 60 * 24 * years1
barsCountOneYear = fastSearchTimeIndex(oneYearAgo, years1)

years3 = 365 * 3
years3_ago = timenow - 1000 * 60 * 60 * 24 * years3
countOfBars3YearAgo = fastSearchTimeIndex(years3_ago, years3)

years5 = 365 * 4 + 366
years5_ago = timenow - 1000 * 60 * 60 * 24 * years5
countOfBars5YearAgo = fastSearchTimeIndex(years5_ago, years5)

years10 = (365 * 4 + 366) * 2
years10_ago = timenow - 1000 * 60 * 60 * 24 * years10
countOfBars10YearAgo = fastSearchTimeIndex(years10_ago, years10)

perfYTD = perfYTD()
plot((close - open[4]) / open[4] * 100, title='Perf.5D')
plot(rr(countOfBarsWeekAgo, week1), title='Perf.W')
plot(rr(countOfBars1MonthAgo, month1), title='Perf.1M')
plot(rr(countOfBars3MonthAgo, month3), title='Perf.3M')
plot(rr(countOfBars6MonthAgo, month6), title='Perf.6M')
plot(rr(barsCountOneYear, years1), title='Perf.Y')
plot(rr(countOfBars3YearAgo, years3), title='Perf.3Y')
plot(rr(countOfBars5YearAgo, years5), title='Perf.5Y')
plot(rr(countOfBars10YearAgo, years10), title='Perf.10Y')
plot(perfYTD, title='Perf.YTD')

Lưu ý: giá trị tập lệnh này khác nhau theo lịch sử và thời gian thực vì timenow, hãy xem ở đây.

Để hiển thị trực quan, bạn có thể thêm tập lệnh này vào biểu đồ của mình thông qua Trình chỉnh sửa Pine thông bằng khung thời gian hàng ngày của biểu đồ. Một chỉ báo sẽ xuất hiện trên biểu đồ, các biểu đồ sẽ hiển thị các giá trị cho từng loại hiệu suất.

Thay đổi% so với% Hiệu suất:

Giả sử hôm nay là thứ Ba. 

Thay đổi hàng tuần tính toán chênh lệch giữa giá đóng cửa hiện tại (thứ Ba) và giá đóng cửa của tuần trước (giá đóng cửa của thứ sáu trước đó). 

Hiệu suất hàng tuần tính toán chênh lệch giữa đóng cửa hiện tại (Thứ Ba) và mở cửa chính xác từ một tuần trước (Thứ Ba trước đó).