Comment la performance est-elle calculée dans le Screener?
Les données relatives aux performances du screener sont calculées à l'aide de la formule suivante :
Perf. = (currentClose – openDaysAgo) × 100 / abs(openDaysAgo)
Javaoù:
- currentClose — le dernier cours de clôture
- openDaysAgo — le cours d'ouverture de la barre correspondante passée, déterminé par l'intervalle sélectionné (par exemple, 1 semaine, 3 mois, 365 jours)
Exemple
Nous sommes mardi, calculons Perf.W :
- Prenez le cours de clôture d'aujourd'hui.
- Soustrayez le cours d'ouverture de la barre quotidienne de mardi dernier.
- Multipliez la différence par 100.
- Divisez le résultat par la valeur absolue du cours d'ouverture de la barre quotidienne de mardi dernier.
Vous trouverez ci-dessous une formule détaillée pour les résolutions les plus couramment utilisées, tenant compte de spécificités telles que le nombre de jours dans une année bissextile.
//@version=6indicator("Screener Performance")// first bar's timestamp in pine historyvar first_bar_time = time / 1000// Performance helper functionsrateOfreturn(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 midweek1 = 7week_ago = timenow - 1000 * 60 * 60 * 24 * week1week_ago_this_bar = time - 1000 * 60 * 60 * 24 * week1countOfBarsWeekAgo = fastSearchTimeIndex(week_ago, week1)month1 = 30month_ago = timenow - 1000 * 60 * 60 * 24 * month1countOfBars1MonthAgo = fastSearchTimeIndex(month_ago, month1)month3 = 90months3_ago = timenow - 1000 * 60 * 60 * 24 * month3countOfBars3MonthAgo = fastSearchTimeIndex(months3_ago, month3)month6 = 180months6_ago = timenow - 1000 * 60 * 60 * 24 * month6countOfBars6MonthAgo = fastSearchTimeIndex(months6_ago, month6)years1 = 365oneYearAgo = timenow - 1000 * 60 * 60 * 24 * years1barsCountOneYear = fastSearchTimeIndex(oneYearAgo, years1)years3 = 365 * 3years3_ago = timenow - 1000 * 60 * 60 * 24 * years3countOfBars3YearAgo = fastSearchTimeIndex(years3_ago, years3)years5 = 365 * 4 + 366years5_ago = timenow - 1000 * 60 * 60 * 24 * years5countOfBars5YearAgo = fastSearchTimeIndex(years5_ago, years5)years10 = (365 * 4 + 366) * 2years10_ago = timenow - 1000 * 60 * 60 * 24 * years10countOfBars10YearAgo = fastSearchTimeIndex(years10_ago, years10)// Perf.<W | 1M | 3M | 6M | Y | 5Y | 10Y | YTD>fiveDays = 5fiveDaysAgo = timenow - 1000 * 60 * 60 * 24 * fiveDayscountOfBarsFiveDaysAgo = 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')
JavaRemarque : les valeurs de ce script sont différentes dans l'historique et en temps réel en raison de timenow, voir ici.
Pour les affichages visuels, vous pouvez ajouter ce script à votre graphique via l'éditeur Pine en utilisant la période quotidienne du graphique. Un indicateur apparaîtra sur le graphique, dont les tracés montreront les valeurs pour chaque type de performance.
Variation % vs Performance %:
Disons que nous sommes mardi aujourd'hui.
Variation hebdomadaire - la différence entre la clôture actuelle (mardi) et la clôture de la semaine dernière (le cours de clôture du vendredi précédent).
Performance hebdomadaire - la différence entre la clôture actuelle (mardi) et l'ouverture d'il y a exactement une semaine (le mardi précédent).