SQL-Server: Calcular el descuento racional

Siguiendo con la matemática financiera el otro día veíamos cómo calcular el descuento comercial en una consulta de SQL. Ahora vamos con otro tipo de descuento, el descuento racional.

El descuento racional se trata, al igual que el comercial, de una forma de descuento simple, pero tiene principalmente una diferencia con el descuento comercial: Su cálculo se efectúa a partir de la diferencia entre el monto a pagar o valor nominal y su valor actual, por lo que no se toma el valor nominal sino el valor real.Es decir, el descuento racional será igual a la cantidad a pagar menos el valor actual del capital. Es el descuento de su respectivo interés aplicado al valor nominal de un valor, calculado a partir de la tasa de interés nominal vencida o con la tasa de interés efectiva vencida.

La fórmula para obtener el descuento sería la siguiente:

D = ( C0 * d * t ) / (1 + d * t)

Siendo C0 es el capital inicial en el momento t=0, d la tasa de descuento que se aplicará y t el tiempo que dura la inversión. Por ejemplo, para 20000 euros a un 15% anual la fórmula sería:

D=(20000*0.15*1)/(1+0.15*1)

Entonces ¿cómo llevamos esto a una consulta SQL? Supongamos que, como en el ejemplo anterior, tenemos una tabla llamada TablaCreditos con los campos Valor (con el capital inicial en formato money), Descuento (en formato Numeric(5,2)) y Tiempo (en formato int). La consulta sería:

Select (Valor*(Descuento/100.00)*CONVERT(numeric(4,2),Tiempo))/(1.00+(Descuento/100.00)*CONVERT(numeric(4,2),Tiempo)) as DescuentoRacional from TablaCreditos
Anuncios

SQL-Server: Calcular el descuento comercial

La operación financiera de descuento es la inversa a la de capitalización (ya vimos en el pasado la capitalización simple y la compuesta). En este caso se calcula el capital equivalente en un momento anterior de un importe futuro.

Mientras que con la fórmula de la capitalización se calculan unos intereses que se añaden al importe principal, compensando el aplazamiento en el tiempo de su disposición, en las reglas de descuento se hace lo contrario: se calculan los intereses que hay que pagar por adelantar la disposición del capital.

La fórmula para obtener el descuento sería la siguiente:

D= N*d*t

Siendo D el descuento efectuado, N el valor nominal del crédito, d la tasa de descuento y t el tiempo. Por ejemplo, para 20000 euros a un 15% anual la fórmula sería:

D = 20000*0.15*1

Entonces ¿cómo llevamos esto a una consulta SQL? Supongamos que tenemos una tabla llamada TablaCreditos con los campos Valor (con el valor nominal en formato money), Descuento (en formato Numeric(5,2)) y Tiempo (en formato int). La consulta sería:

Select Valor*(Descuento/100.00)*CONVERT(numeric(4,2),Tiempo) as Descuento from TablaCreditos

Métodos del objeto Number en Javascript

El lenguaje Javascript tiene una serie de objetos básicos, que a su vez tienen propiedades y métodos. En próximas entradas iremos viendo distintos objetos, hoy vamos a empezar por los de Number, que tiene básicamente cinco métodos:

  • .toExponential(): Esta función nos devuelve una cadena representando el valor del número con el que trabajamos, pero representado en notación exponencial (también llamada notación científica). Opcionalmente puede recibir un parámetro donde le indiquemos el número de decimales que queremos.
  • .toFixed(): Esta función nos devuelve una cadena representando el valor del número con el que trabajamos, pero redondeando el número de decimales a la cantidad que le digamos. Si no recibe parámetro alguno lo interpretará como un 0 y nos dará un valor entero, si recibe parámetros mostrará tantos decimales como el parámetro indique, rellenando con ceros cuando sea necesario.
  • .toPrecision(): Esta función nos devuelve una cadena representando el valor del número con el que trabajamos, pero redondeado a la longitud que le pasemos como parámetro. Si no se le pasa parámetro alguno entonces devuelve el número entero, si el parámetro es mayor que la longitud del número añadirá un separador decimal seguido de ceros hasta complertar dicha longitud.
  • .toString(): Esta función nos devuelve una cadena representando el valor del número con el que trabajamos. Se le puede pasar como parámetro un valor entre 2 y 36, dicho valor es la base en la que queremos que se formatee el número (por ejemplo 16 para conseguir un resultado hexadecimal, 2 para un resultado binario,etc) .
  • .valueOf(): Esta función nos devuelve el tipo primitivo del objeto Number, es decir, un valor numérico. Es un método que generalmente se usa de forma interna en Javascript y pocas veces se invoca desde el código web.

El Bandcamp de la Quincena: Vítor Bacalhau – Cosmic Attraction

Vamos con una crítica que lleva meses en el tintero y que nos lleva de viaje al soleado sur de Portugal.

Si sois lectores asíduos de este blog el nombre de Vítor Bacalhau no es resultará totalmente desconocido, pues en un artículo que hice hace unos meses sobre rock portugués aparecía mencionado este guitarrista y vocalista. En el pasado mes de noviembre publicó este Cosmic Attraction, su segundo disco, que vamos a repasar a continuación.

Vítor Bacalhau

Innovación y experimentación no son palabras que uno vaya a pronunciar cuando se asoma a la música de este disco, aquí todo es clásico, todo sigue una fórmula de probada eficacia que tanto nos gusta a algunos. La formación es el siempre efectivo power-trio, con Vítor Bacalhau como voz, guitarra y frontman y acompañado por João Ventura a la batería y Luis Trinidade al bajo. De cálida distorsión, el guitarreo nos transporta a un viaje donde el rock y el blues se cogen de la mano en un maridaje cargado de energía vital. El disco pasa de momentos de espasmódica violencia como en la incial Happy Man, piezas más cadenciosas y sudorosas como en Old Soul,  ritmillo boogie para Let your soul go free, rendiciones bastante heavy-Deep-Purple-ianas en los temas Cosmic Attraction y Walk Through Fire, guiños al gospel en la íntima Shooting Star o un pecadillo más pegadizo, modernete y catchy en Dirty Little Girl que casi podría recordar a White Stripes o The Black Keys. Para los que ya conocían su primer disco y lo disfrutaron será una alegría ver que, a pesar de ser un poco más enérgico y oscuro en esta entrega, en líneas generales sigue la misma onda.

No se va por las ramas el grupo en este disco de temas directos y de sonoridad clásica que rápidamente trae aromas a los guitarristas del género más destacados de los últimos años, un sonido que es deudor de la etapa bluesera de Gary Moore, del omnipresente Joe Bonamassa, del Eric Sardinas más conservador o del lado más rockero de Stevie Ray Vaughan, que a ratos nos recuerda a formaciones como The Georgia Satellites, The Black Crowes o The Fabulous Thunderbirds.

Lo dicho, no hay que redescubrir el fuego ni reinventar la rueda, a veces, muchas veces, lo que vale es hacer bien lo que se quiere hacer, y Vítor Bacalhau lo hace en este Cosmic Attraction. Músico prometedor y disco interesante para seguidores del género que busquen nuevas bandas.

Premios Simpson NBA 2018

Hasta que no acabe la temporada la NBA no repartirá sus premios oficiales, pero ya sabéis que este blog durante los playoff reparte los PREMIOS SIMPSON NBA 2018!!!! En este enlace podéis ver a los ganadores del año pasado… y aquí van los de esta temporada regular:

  • Premio anual Montgomery Burns por su sobresaliente labor en el campo de la Excelencia: El año pasado le veía un poco perdido tras abandonar Atlanta, donde había discurrido toda su carrera. Pero este año Al Horford se ha reconvertido en un jugador clave para los Celtics similar a lo que ha sido Draymond Green en los Warriors: defiende posiciones interiores y exteriores, es el Celtic que más tiros sale a defender, cierra a los rivales para permitir el rebote de sus compañeros, en ataque es capaz de generar juego y situaciones de ventaja como si de un base se tratara… Dejo de lado los números clásicos, para mi Horford ha sido el jugador de la campaña.

  • Premio Matlock: Va a cumplir 41 años en julio y nos volvemos a preguntar ¿Habrá visto esta temporada su último Maaaaatlock Manu Ginobili? Pues esperemos que no, porque a pesar de los años y la pérdida de físico que implican él sigue siendo un jugador productivo en ambos lados de la cancha: por su técnica, por su inteligencia táctica, por su intensidad. El propio Kerr se lo pidió en los Play off, queremos un año más de Manu.

  • Premio Hank Scorpio: Danny Ainge. Personalmente, creo que lo que le hizo a Isaiah Thomas estuvo mal viéndolo desde el punto de vista personal, pero desde el punto de vista del negocio le salió redondo: se hizo con una estrella de la liga como Irving sacrificando a un Thomas muy tocado físicamente y a un buen jugador como Crowder,  en el mercado de agentes libres también pescó bien con Hayward (aunque se lesionara en el primer partido, pero eso ya escapa del control de la dirección deportiva), apostó por Rozier y Smart para no hipotecarse con la renovación de Avery Bradley y le traspasó por un Morris que ha rendido bien, y finalmente la jugada de intercambiar puestos en el draft con los Sixers también parece que de momento ha sido muy inteligente (Tatum liderando en anotación al equipo en playoff vs un Fultz que se pasó más de medio año con problemas de espalda y que ha sembrado dudas).
  • Premio yo me llamo Ralph: En este vídeo hay un pase de Julius Randle que… en fin, judgad vosotros mismos.

  • Premio a la persona que menos se ha esforzado para llegar hasta aquí: John-Blair “J. B.” Bickerstaff se encontró con un equipo plagado de lesiones y un proyecto que se caía a pedazos tras la destitución del mediocre Fizdale. ¿Qué se le exigía al joven JB? Perder todo lo posible de cara al draft. Y así lo hizo, presión 0.
  • Premio Tiborowski: Repite el ganador del año pasado, Giannis Antetokounmpo ha firmado otro año para estar en las quinielas por el MVP y ha sido el jugador nacido fuera de los EEUU con mejor rendimiento, una bestia capaz de finalizar (el mejor anotador hoy por hoy cerca del aro), generar juego, rebotear y defender. Un jugador de impacto en ambos lados de la pista. Parece que sus Bucks no acaban de despegar ¿Acabará cambiando de aires o llegará algún entrenador (o entrenadora) que cambie el rumbo mediocre y desencantado que marcó la era Kidd para este joven equipo?

  • Premio Nelson Muntz: Todavía está fresca en mi retina la imagen de Marcus Smart echándose al cuello de JR Smith tras una falta flagrante muy fea del jugador de Cavs sobre Al Horford. Ramón trecet llama a Smart “el centurión de los Celtics”, siempre presto a defender a sus compañeros y con una actitud irreprochable en defensa. Es cierto que como finalizador en ataque es muy flojo pero ¿se acuerda alguien de sus bajos porcentajes cuando salta a intentar un tapón a dos manos? ¿cuando maltrata su propio cuerpo para defender a jugadores más altos y pesados en situaciones de pick&roll? ¿cuando persigue como un perro de presa a su rival? Smart no es un estilista, pero es un tío cuyo juego se basa en la entrega y la dureza, como lo fueron en el pasado gente como Dennis Rodman o un Tony Allen de quien sería justo sucesor cuando se retire.

  • Premio Bombardeo: Dos años seguidos el premio se lo ha llevado Brad Stevens, pero esta temporada dejamos Boston para irnos a Utah a reconocer el trabajo del coach Quin Snyder. Un alumno aventajado de leyendas como Mike Krzyzewski, a quien asistió en Duke, Ettore Messina, con quien trabajó en el CSKA, o Greg Popovich, de quien no fue asistente pero sí aprendió sus métodos durante su paso por la liga de desarrollo entrenando a los Austin Spurs. Este año el papel era complicado, tras la marcha de Hayward y Georghe Hill había quien decía que no tenían potencial para alcanzar los playoff en el Oeste… y al final no solo entraron sino que se cargaron a Oklahoma. Un equipo donde la estrella es un pivot especialista en defensa, el peso anotador recae sobre un novato y donde la manija ha caído en la mano de un Ricky Rubio que ha tenido que reconvertir su juego de forma exitosa.
  • Premio Homero: Cambiaba de aires Ricky Rubio en un fichaje no exento de polémica, era un jugador muy querido en Minneapolis por su trabajo comunitario, y en ese traslado a Salt Lake City veía un cambio de filosofía al jugar para un entrenador muy distinto a Thibodeau. Este cambio nos ha mostrado a un Ricky que ha firmado sus peores números en asistencias y robos, dos categorías donde acostumbraba a estar entre los cinco mejores de la liga, pero que a su vez ha logrado sus mejores dígitos en anotación y porcentaje de tiro. Y que la bajada numérica en asistencias y robos no resulte engañosa: ha estado mejor tanto a la hora de manejar el ritmo de los partidos y distribuir juego como en defensa, más agresivo y sólido (recordemos aquí lo que hablábamos en el artículo sobre el porcentaje de robos.)

  • Los Excitantes de Springfield: Hemos quitado este año el premio Qué Homer he Tenido a la canasta más afortunada y añadimos el quinteto que formará Los Excitantes de Springfield. Este año es evidente que empezamos con el ganador del Premio anual Montgomery Burns por su sobresaliente labor en el campo de la Excelencia: Al Horford, que sería el pivot e iría acompañado en mi quinteto por Giannis Antetokounmpo y Kevin Durant en los aleros y por el rejuvenecido Chris Paul y el salto de calidad de Victor Oladipo en las posiciones exteriores.

Baloncesto y estadística: Consulta SQL para calcular el porcentaje de tapones de un jugador

Seguimos con el tema de la estadística baloncestística avanzada. Ya vimos cómo se calcula el PIE,también los porcentajes de tiro avanzado y real y hubo otra entrada sobre estadísticas de asistencias y sobre el porcentaje de robos. Hoy vamos con el porcentaje de robos.

¿Qué nos indica este porcentaje? Pues la cantida de tiros que un jugador tapona, pero teniendo en cuenta los minutos que juega y el ritmo de juego del rival. Es decir, se trata de una estadística “tempo-free”, ya que el número de minutos disputados y el ritmo de juego no afectan al jugador para esto.

¿La fórmula? Es la siguiente:
100*(Tapones*(Minutos de Partido))/(Minutos del jugador*(Tiros intentados por el rival-Triples intentados por el rival))

En una base de datos donde tuviéramos los campos Tapones,MinutosPartido,MinutosJugador, TirplesRival yTirosRival la consulta sería algo así:

Select 100.00*Convert(Numeric(4,2),Tapones)*Convert(Numeric(4,2),MinutosPartido)/Convert(Numeric(4,2),MinutosJugador)*(Convert(Numeric(4,2),TirosRival)-Convert(Numeric(4,2),TriplesRival)) as BlkPcnt

 
¿Qué se le objeta a esta estadística? Los triples: por una parte es muy complicado taponar tiros de tres, por lo que si estos se computaran bajarían mucho el porcentaje de todos los jugadores y por eso los han excluído, pero esto mismo provoca que si un jugador tapona un triple este quede sobrerrepresentado en su estadística: el tapón aparece en el numerador como tapón conseguido pero, a su vez el tiro no está contando en el denomiador al restarse igualmente por ser un triple.