스크리너에서 퍼포먼스는 어떻게 계산하나요?

스크리너 퍼포먼스 데이터는 다음 공식으로 계산됩니다:

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

여기서:

  • currentClose — 최신 종가
  • openDaysAgo — 선택한 기간(예: 1주, 3개월, 365일)에 해당하는 과거 바의 시가

예시

오늘이 화요일인 경우, Perf.W를 계산해 보겠습니다:

  1. 오늘의 종가를 취합니다.
  2. 지난 화요일 일봉의 시가를 뺀다
  3. 차이를 100으로 곱한다
  4. 결과를 지난 화요일 일봉 시가의 절댓값으로 나눈다

아래는 윤년의 일수 등 세부 사항을 고려한 가장 일반적으로 사용되는 해상도에 대한 상세한 공식입니다.

//@version=6
indicator("Screener Performance")// first bar's timestamp in pine history
var first_bar_time = time / 1000// Performance helper functions
rateOfreturn(ref) =>if ref < 0 and close > 0
        na
    else(close - ref) * 100 / math.abs(ref)
rr(bb, maxbarsback) =>nz(open[maxbarsback] * 0) + bb == 0 ? na : rateOfreturn(open[bb])
perfYTD() =>if year != year(timenow)
        na
    elsevar lastYearOpen = openif year > year[1]
            lastYearOpen := openrateOfreturn(lastYearOpen)fastSearchTimeIndex(x, maxbarsback) =>
    mid = 0 * time[maxbarsback]
    right = math.min(bar_index, maxbarsback)
    left = 0if x/1000 <= first_bar_time
        bar_index
    else if time < x
        0elsefor i = 0 to 10
            mid := math.ceil((left + right) / 2)if left == right
                breakelse if time[mid] < x
                right := mid
                continueelse if time[mid] > x
                left := mid
                continueelsebreak
        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)// Perf.<W | 1M | 3M | 6M | Y | 5Y | 10Y | YTD>
fiveDays = 5
fiveDaysAgo = timenow - 1000 * 60 * 60 * 24 * fiveDays
countOfBarsFiveDaysAgo = fastSearchTimeIndex(fiveDaysAgo, fiveDays)
perfYTD = perfYTD()
plot(rr(countOfBarsFiveDaysAgo, fiveDays), 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')
Java

참고: 이 스크립트의 값은 timenow 때문에 히스토리와 실시간에서 다릅니다. 자세한 내용은 여기를 참조하세요.

시각적 표시를 위해, 차트의 일간 시간대를 사용하여 파인 에디터를 통해 이 스크립트를 차트에 추가할 수 있습니다. 차트에 지표가 나타나며, 각 유형의 성과 값을 보여주는 플롯이 표시됩니다.

변화율(%) vs 성과율(%) 비교:

오늘이 화요일이라고 가정해 보겠습니다.

주간 변동률 - 현재 종가(화요일)와 지난주 종가(지난 금요일 종가)의 차이.

주간 성과율 - 현재 종가(화요일)와 정확히 일주일 전 개장가(지난 화요일)의 차이.