Usted tiene un algoritmo que estima, dado un instante de tiempo \(\Delta t_1\), la variación de precio que tendrá una acción en la bolsa en los instantes \(\Delta t\) siguientes.
Una vez que corre el algoritmo recibe una sucesión de variaciones de precio. Un valor de +3 significa que el precio tendrá un incremento de 3 unidades monetarias, un valor de -5 significa que el precio decrece en 5 unidades monetarias. Empezando con un precio de $0, ¿cuál será el precio resultante de la acción después de que ocurran todas las variaciones?
La sucesión de variaciones dadas por el algoritmo se encuentra aquí.
Usted recuerda que un supuesto fuerte del análisis técnico de acciones es, palabras más palabras menos, que la historia siempre se repite. Por lo cual, como parte de su estrategia, y esperando tener cierta ventaja sobre el resto del mercado, se ve interesado en encontrar el primer precio que ocurre dos veces si las variaciones que obtuvo se repiten todo el tiempo.
Por ejemplo si las variaciones fueran +1, -2, +3, +1, se tendría:
¿Cuál es primer precio que ocurre dos veces dada esta lista de variaciones?
Note que la lista de variaciones puede repetirse a si misma muchas veces antes de encontrar el precio duplicado; además, el precio duplicado debe ser encontrado en medio del proceso de búsqueda y detenerlo.
Si hacemos una lista de los números naturales menores a 10 que son multiplos de 3 o 5 obtendremos 3, 5, 6, 9, la suma de esos multiplos es 23.
Encuentre la suma de todos los multiplos de 3 o 5 menores a 1000.
Usted trabaja en un casino donde existe el siguiente juego: un jugador lanza tres dados y gana 20 pesos por cada 6 que aparece, el costo de jugar es de 10 pesos.
Escriba una función que simule el juego y regrese la cantidad que se gana en cada juego i.e. ganancia - costo. Calcule la media y varianza al simular 100, 1000 y 10000 juegos.
Explique sus hallazgos al dueño del casino.
Adapte su función para que tome los argumentos: numero de juegos, dinero inicial, costo del juego, apuesta del juego y que devuelva una lista con:
Un data frame que tenga como columnas: la ganancia del i-ésimo juego y la ganancia acumulada hasta el juego i
Un grafico de la ganancia acumulada
Explore y explique las siguientes combinaciones para dinero inicial, costo del juego, apuesta del juego: (10,10,10), (10,2,5), (100, 10, 20), (1000, 5, 10).
El algoritmo de Luhn es muy popular en la validación de números de tarjetas de crédito/débito y funciona de la siguiente manera:
Empezando por la derecha, duplicar el valor de cada dígito cuya posición sea par.
Si al duplicar un número del paso anterior obtenemos un número de dos dígitos entonces sumamos esos digitos para obtener un número de un digito (12 -> 1+2 -> 3)
Sumamos todos los dígitos
Si el resultado es multiplo de 10 entonces el número es válido.
Implemente el algorítmo en una función y verifique la validéz de estos números de tarjeta.
¿Qué validaciones considera necesarias hacer al número antes de aplicar el algorítmo de Luhn? Implementelas en su función.
Nota: Los número válidos corresponden a tarjetas que el servició de desarrollo de paypal provee para pruebas.
Un banco ha decidido poner a prueba su sistema de atención en sucursal.
Cuando los clientes llegan a la sucursal registran en un dispositivo electrónico la actividad que van a realizar, este dispositivo asigna a cada cliente el tiempo necesario para completarla.
Escriba una función que calcule el tiempo necesario para atender a todos los clientes de una fila dada.
La función debe recibir un vector de tiempos (representando la fila) y un entero representando la cantidad de cajas abiertas para atender la fila.
Considere que solo hay una fila y la persona de adelante se dirije a la caja tan pronto esta se desocupa.
Si por ejemplo tenemos la fila 5, 3, 4, es decir, una fila de tres clientes donde el primero tarda cinco minutos, el segundo tres y el tercero cuatro; y en ese momento hay una sola caja abierta entonces el tiempo requerido para atender la fila es de 12.
Si tenemos la fila 10, 2, 3, 3 y en ese momento hay 2 cajas abiertas entonces el tiempo total de atención es de 10 (como hay dos cajas la primera atiende la persona 1 al mismo tiempo que las personas 2, 3, y 4 son atendidas por la caja dos)
Si tenemos la fila 2, 3, 10 y hay 2 cajas abiertas, el tiempo total de atención es de 12.
Uno de sus amigos le ha pedido asesoría pues quiere invertir una cantidad de dinero que ha estado ahorrando sin embargo le gustaría saber cuánto tiempo tiene que dejar su dinero en el instrumento para poder alcanzar cierta suma deseada.
Escriba una función que tome como paramétros el dinero inicial, la tasa de interés, la tasa de impuestos y la suma que se desea alcanzar y que devuelva el tiempo que se necesita dejar en el instrumento.
Considere que la tasa de interés se paga anualmente y que los impuestos se pagan sobre el interés ganado.
Por ejemplo si la cantidad inicial es de $1000, la taa de interés es de 0.05, la tasa de impuestos es de 0.18 y la suma que se desea alcanzar es 1100, entonces el tiempo que su amigo debe dejar el dinero en el instrumento es 3 años.
¿Cómo modificaría esta función si su amigo le dice que además de la cantidad ahorrada está dispuesto a invertir otra cantidad variable cada año?
Reflexione en qué es lo que tendría hacer para que su amigo pueda usar su función de una forma amigable.
Piense en una actividad cotidiana que potencialmente pueda automatizar o bien una para la cual quiera aplicar alguna técnica de analytics/data science.
Diseñe brevemente el plan de implementación.
¿En que parte del proceso usaria R y para qué?
¿Qué paquetes hay disponibles para poder llevar realizar la tarea?
¿Qué impacto tendría el automatizar o aplicar analytics/data science a esa tarea?
¿Quién(es) sería(n) el (los) usuario(s) final(es) de su trabajo?, ¿qué tendría que hacer para que su trabajo tenga un alcance inmediato/sencillo/amigable?