Takipçi'de Performans nasıl hesaplanır?
Takipçi Performans verileri şu formül kullanılarak hesaplanır:
Perf. = (mevcutKapanış – günÖncekiAçılış) × 100 / abs(günÖncekiAçılış)burada:
- mevcutKapanış — en son kapanış fiyatı
- günÖncekiAçılış — seçilen aralığa göre belirlenen ilgili geçmiş çubuğun açılış fiyatı (örneğin, 1 hafta, 3 ay, 365 gün)
Örnek
Bugün Salı, Perf.H'yi hesaplayalım:
- Bugünün kapanış fiyatını alın.
- Geçen Salı gününün günlük çubuğunun açılış fiyatını çıkarın
- Farkı 100 ile çarpın
- Sonucu geçen Salı gününün günlük çubuk açılış fiyatının mutlak değerine bölün
Aşağıda, artık yıldaki gün sayısı gibi özellikleri de dikkate alan, en sık kullanılan çözünürlükler için ayrıntılı bir formül bulunmaktadır.
//@version=6
indicator("Takipçi Performansı")
// pine geçmişindeki ilk çubuğun zaman damgası
var first_bar_time = time / 1000
// Performans yardımcı fonksiyonları
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
else
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 x/1000 <= first_bar_time
bar_index
else if time < x
0
else
for i = 0 to 10
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)
// Perf.
fiveDays = 5
fiveDaysAgo = timenow - 1000 * 60 * 60 * 24 * fiveDays
countOfBarsFiveDaysAgo = fastSearchTimeIndex(fiveDaysAgo, fiveDays)
perfYTD = perfYTD()
plot(rr(countOfBarsFiveDaysAgo, fiveDays), title='Perf.5G')
plot(rr(countOfBarsWeekAgo, week1), title='Perf.H')
plot(rr(countOfBars1MonthAgo, month1), title='Perf.1A')
plot(rr(countOfBars3MonthAgo, month3), title='Perf.3A')
plot(rr(countOfBars6MonthAgo, month6), title='Perf.6A')
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')Not: Bu komut dosyasının değerleri, timenow nedeniyle geçmişte ve gerçek zamanlı olarak farklıdır: Buradan bakınız.
Görsel gösterimler için, bu komut dosyasını grafiğin günlük zaman dilimini kullanarak Pine Düzenleyici aracılığıyla grafiğinize ekleyebilirsiniz. Grafikte, çizimleri her bir performans türü için değerleri gösterecek bir gösterge belirecektir.
Değişim % vs Performans %:
Bugünün Salı olduğunu varsayalım.
Haftalık Değişim - mevcut kapanış (Salı) ile geçen haftanın kapanışı (önceki Cuma gününün kapanış fiyatı) arasındaki fark.
Haftalık Performans - mevcut kapanış (Salı) ile tam olarak bir hafta önceki açılış (önceki Salı) arasındaki fark.