¿Cómo se calcula el Rendimiento en el Screener?
Los datos relativos al rendimiento del screener se calculan utilizando la siguiente fórmula:
Java
Perf. = (currentClose – openDaysAgo) × 100 / abs(openDaysAgo)
Javadonde:
- currentClose — el último precio de cierre
- openDaysAgo — el precio de apertura de la barra pasada correspondiente, determinado por el intervalo seleccionado (por ejemplo, 1 semana, 3 meses, 365 días)
Ejemplo
Hoy es martes, calculemos Perf.W (rendimiento semanal):
- Tomamos el precio de cierre de hoy.
- Restamos el precio de apertura de la barra diaria del martes pasado.
- Multiplicamos la diferencia por 100.
- Dividimos el resultado por el valor absoluto del precio de apertura de la barra diaria del martes pasado.
A continuación se muestra una fórmula detallada para las resoluciones más utilizadas, que tiene en cuenta aspectos específicos como el número de días en un año bisiesto.
//@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 = openif year > year[1]
lastYearOpen := openrateOfreturn(lastYearOpen)fastSearchTimeIndex(x, maxbarsback) =>
mid = 0 * time[maxbarsback]
right = math.min(bar_index, maxbarsback)
left = 0if time < x 0elsefor i = 0 to 9 by 1
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)
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')
JavaNota: los valores de este script varían dependiendo de si se utilizan barras históricas o en tiempo real, debido al parámetro timenow. Para obtener más información, lea aquí.
Para la visualización, puede añadir este script a su gráfico a través del Editor de Pine utilizando el marco temporal diario del gráfico. Aparecerá un indicador en el gráfico, cuyas gráficas mostrarán los valores de cada tipo de rendimiento.
Cambio % vs. Rendimiento %:
Supongamos que hoy es martes.
El Cambio Semanal calcula la diferencia entre el cierre actual (martes) y el cierre de la última semana (el precio de cierre del viernes anterior).
Rendimiento semanal calcula la diferencia entre el cierre actual (martes) y el cierre de hace una semana exactamente (el martes anterior).