option
Cuestiones
ayuda
daypo
buscar.php

PROGRAMACION FINANCIERA

COMENTARIOS ESTADÍSTICAS RÉCORDS
REALIZAR TEST
Título del Test:
PROGRAMACION FINANCIERA

Descripción:
repaso M1-M2 (no examen)

Fecha de Creación: 2025/10/10

Categoría: Informática

Número Preguntas: 130

Valoración:(0)
COMPARTE EL TEST
Nuevo ComentarioNuevo Comentario
Comentarios
NO HAY REGISTROS
Temario:

Python es…. compilado y fuertemente tipado. interpretado y de alto nivel. solo para IA. de pago.

¿Qué imprime print(type(3.0))?. <class 'int'>. <class 'str'>. <class 'float'>. <class 'bool'>.

input() retorna por defecto…. int. str. float. bool.

La conversión de tipos explícita se llama…. casting. parsing. mapping. folding.

¿Qué operador es potencia en Python?. ^. **. //. %%.

¿Cuál de estos es un booleano válido?. TRUE. False. 0/1. Si/No.

PEP8 recomienda una línea máxima de…. 79 caracteres. 50 caracteres. 120 caracteres. 200 caracteres.

Para comentarios de documentación se usan…. /* */. <!-- -->. docstrings con triple comilla. //.

range(1,4) produce…. 1,2,3. 1,2,3,4. 0,1,2,3. 2,3,4.

La división entera es…. /. //. %. **.

¿Qué imprime 5 % 2?. 2. 1. 0. 5.

¿Qué hace 'and'?. Suma booleanos. Devuelve True si ambos son True. Niega un booleano. Compara identidad.

¿Qué hace not True?. True. False. Error. None.

print('edad') imprime…. el valor de la variable edad. la cadena literal edad. nada. error.

¿Qué significa tipado dinámico?. El tipo cambia solo durante ejecución. No se declara el tipo al asignar. No hay tipos. Tipos solo numéricos.

¿Qué es Python PATH?. Una función. Variable que permite ejecutar Python desde terminal. Un paquete. Una clase.

¿Qué entorno no requiere instalación local?. IDLE. VS Code. Google Colab. PyCharm.

¿Por qué preferir Python vs Excel en big data?. Mejores fuentes. Maneja millones de filas y automatiza. Es más caro. Tiene mejores colores.

Lista es…. ordenada y mutable. no ordenada. inmutable. solo números.

Tupla es…. mutable. inmutable y ordenada. clave:valor. sin índice.

Diccionario accede por…. índice. clave. posición. slice.

Conjunto (set) se caracteriza por…. duplicados. orden. elementos únicos. índices.

¿Qué hace .append() en una lista?. Añade al final. Quita al inicio. Ordena. Invierte.

¿Qué retorna una función sin return?. 0. None. ''. Error.

Lambda es…. función anónima. lista. clase. método privado.

Comprensión de listas sirve para…. leer CSV. crear listas de forma concisa. crear clases. manejar errores.

while se usa cuando…. hay # fijo de repeticiones. depende de una condición. nunca se detiene. no existen listas.

break sirve para…. terminar bucle. saltar a la siguiente iteración. imprimir. comentar.

En un dict, estudiante['nombre'] accede a…. clave. valor asociado a 'nombre'. índice 0. tipo.

¿Qué imprime sum([1,2,3])?. [1,2,3]. 6. Error. 123.

El operador 'in' chequea…. identidad. pertenencia. igualdad. orden.

elif permite…. múltiples ramas. suma. excepciones. decoradores.

type('5') es…. int. float. str. bool.

input() siempre retorna…. str. float. int. None.

range(5) genera…. 1..5. 5..10. vacío. 0..4.

¿Qué hace sorted([3,1,2])?. [3,1,2]. [2,1,3]. [1,2,3]. error.

En interés simple…. los intereses se capitalizan. solo mensual. la tasa varía siempre. no se capitalizan.

En compuesto…. no existe tasa. solo se calcula al final. sí hay reinversión de intereses. no hay reinversión.

Con cash variable, en simple…. todos ganan lo mismo. se ignoran aportes. cada aporte gana por su tiempo. error.

Con cash variable, en compuesto…. no cambia. cada nuevo aporte capitaliza desde que entra. solo el inicial capitaliza. se suma al final.

Para 6% anual, tasa decimal es…. 6. 0.6. 0.06. 0.006.

En script de simple, se suele acumular…. nada. solo último aporte. solo capital inicial. intereses por aporte.

Efecto típico del compuesto vs simple a plazos largos…. menor. igual. mayor por interés sobre interés. no definible.

Para validar, conviene…. no testear. probar casos cortos. ignorar tipos. duplicar loops.

La lista de aportes…. no importa su largo. siempre vacía. representa periodos. solo 1 elemento.

Capital inicial muy bajo/alto puede…. ignorar. generar advertencias/reglas de negocio. romper Python. cambiar PEP8.

Resultado compuesto se calcula…. sumando intereses. restando tasa. iterando saldo y multiplicando (1+tasa). sin bucles.

Interés simple de $1000 al 10% por 2 años…. $100. $200. $1200. $210.

NumPy provee…. DataFrames. operaciones vectorizadas en arrays. gráficos. APIs.

pandas provee…. Series/DataFrames. solo matrices. redes neuronales. render 3D.

matplotlib sirve para…. análisis estadístico. scraping. visualización 2D. APIs.

df.pct_change() calcula…. precios. rendimientos. logaritmos. medianas.

Preferir precios…. no ajustados. aleatorios. bid/ask. ajustados por eventos.

np.log(precios).diff() aproxima…. rendimiento simple. rendimiento logarítmico. media móvil. Z-score.

groupby sirve para…. combinar columnas. agrupar y agregar. ordenar. filtrar nulos.

dropna()…. rellena. elimina nulos. convierte tipos. descarga datos.

corr() calcula…. covarianza. regresión. correlación. desviación.

rolling(21).std() es…. promedio simple. volatilidad móvil aprox. mediana. desvío total.

matplotlib plot()…. crea gráficos. lee CSV. entrena modelos. hace joins.

to_numpy()…. convierte a dict. grafica. descarga. convierte a NumPy array.

merge() / join()…. eliminan filas. combinan DataFrames. ajustan inflación. crean clases.

fillna()…. descarga datos. ordena columnas. convierte fechas. reemplaza nulos.

iloc vs loc…. dos gráficos. dos APIs. posiciones vs etiquetas. dos paquetes.

Seaborn agrega…. visualización estadística amigable. optimización. ARIMA. backtesting.

statsmodels destaca por…. gráficos 3D. compilar C++. diagnósticos y modelos econométricos. APIs.

scipy.optimize se usa para…. ajustar curvas/optimizar funciones. comentarios. plot interactivo. leer Excel.

self referencia…. la clase. la superclase. el módulo. la instancia actual.

__init__ es…. destructor. decorador. constructor. getter.

Atributo de clase…. compartido por instancias. único por objeto. privado. siempre numérico.

Polimorfismo permite…. decorar. compilar. cambiar tipos. métodos con mismo nombre y distinto comportamiento.

Encapsulación busca…. exponer todo. ocultar detalles internos. evitar herencia. compilar rápido.

PEP8 recomienda…. 2 espacios. tabs. 4 espacios. sin espacios.

Importaciones según PEP8…. al inicio del archivo. al final. aleatorio. en docstrings.

Docstrings sirven para…. estilo. compilar. documentar funciones/clases. comprimir.

Notebooks en producción…. sin control de versiones. no documentar. mezclar todo en una celda. separar bloques y modularizar.

Herencia…. duplica código. reutiliza y extiende comportamiento. rompe métodos. evita polimorfismo.

Excepciones try/except…. ocultan todo. solo en C++. no sirven. manejan errores controladamente.

Decoradores…. modifican funciones sin cambiar su código. compilan. descargan datos. grafican.

yfinance permite…. backtesting. diagnósticos ARIMA. descargar precios de Yahoo Finance. dibujar redes.

pandas_datareader accede a…. PDFs. Blockchain. Imagen satelital. FRED/World Bank.

zipline se usa para…. compilar C. backtesting de estrategias. descargar FX. graficar 3D.

pyfolio sirve para…. descargar datos. optimizar carteras. métricas y reportes de cartera. IA generativa.

TA-Lib calcula…. regresión OLS. ARIMA. indicadores técnicos. VAR.

quantlib es útil para…. APIs sociales. EDA web. OCR. derivados y curvas.

Rendimiento logarítmico se calcula con…. np.log(P_t/P_t-1). pct_change(). rolling(). corr().

Ajuste por inflación real ≈. nominal+inflación. nominal-inflación. (1+nominal)/(1+inflación)-1. nominal*inflación.

Outliers con 3-sigmas: valor fuera de…. μ±σ. μ±3σ. μ±0.5σ. μ±10σ.

Preferir precios…. Aleatorios. Promedios. Ajustados por splits/dividendos. Brutos.

plotly+cufflinks aporta…. SQL. compilación. descarga. interactividad.

statsmodels OLS ofrece…. solo clustering. coeficientes y diagnósticos completos. solo gráfico. solo CSV.

Tenés precios diarios de 5 acciones bajados de distintas fuentes y al unirlos aparecen muchos NaN desalineados. ¿Qué hacés para corregirlo?. Rellenar todos los NaN con 0 y seguir. Ordenar por fecha, usar la fecha como índice y hacer una unión 'inner' (o dropna) para quedarte con fechas comunes. Convertir cada columna a lista y pegarlas una al lado de la otra. Borrar las fechas que tengan valores repetidos y quedarte con la primera.

Al calcular rendimientos usaste una list comprehension [p[i+1]/p[i]-1 ...] y después no podés agregar la columna al DataFrame. ¿Cuál es la causa y la solución correcta?. La lista está en formato string; convertir a float. Los rendimientos deben calcularse con diferencias, no con cocientes. El DataFrame no permite nuevas columnas; crear uno nuevo. La lista tiene n−1 elementos; usar pct_change() o shift(1) para mantener la alineación y luego dropna().

Descargaste precios con yfinance y ves saltos enormes por splits/dividendos. ¿Cómo preparás los datos para análisis de retornos?. Usar la columna 'Adj Close' o auto_adjust=True al descargar. Eliminar todas las fechas con saltos grandes. Aplicar un suavizado con media móvil de 50 días. Ordenar por volumen descendente.

Querés comparar el riesgo de dos acciones en el último año hábil. ¿Qué métrica usás?. La media de los precios. La varianza de los precios. La desviación estándar de los rendimientos diarios anualizada (std * sqrt(252)). La covarianza de precios.

Al generar reportes, tu función falla cuando el usuario tipea un ticker inexistente. ¿Qué patrón aplicás?. Convertir el ticker a minúsculas para evitar errores. Validar: if ticker in df.columns, o usar df.get(ticker) y manejar el caso None con un mensaje claro. Acceder a df[ticker] y dejar que explote para avisar el error. Forzar siempre AAPL si no coincide.

Necesitás correlacionar 6 acciones. ¿Qué pasos son correctos antes de calcular corr()?. Calcular rendimientos (simple o log), alinear fechas comunes y luego corr(). Normalizar cada serie dividiendo por su precio inicial. Ordenar alfabéticamente los tickers. Usar precios sin transformar.

Querés mensualizar la volatilidad. ¿Cuál es una manera correcta?. std diaria * sqrt(21) directamente, sin más pasos. Sumar los retornos diarios y dividir por 21. Resamplear precios a fin de mes, calcular retornos mensuales y luego std mensual. Calcular la desviación estándar de los precios mensuales.

Para un panel de precios y un mapa de correlación, ¿qué combinación de librerías usás?. matplotlib para series y seaborn heatmap para la correlación. yfinance para gráficos interactivos. pandas solamente, sin librerías de gráficos. numpy para descargar y graficar.

Durante la descarga con yfinance la conexión falla intermitentemente. ¿Qué harías?. Reintentos con try/except y backoff + cache local (CSV/Parquet) si no hay datos frescos. Abortar todo el proceso inmediatamente. Reemplazar la serie con números aleatorios. Seguir con NaN sin avisar.

Necesitás un acumulado de rendimiento desde el inicio del período. ¿Qué fórmula usás con rendimientos simples r?. np.exp(r.cumsum()). r.cumsum(). (1 + r).cumprod() - 1. r.rolling(252).mean().

Unís precios de USA y de Europa y aparecen días hábiles desfasados. ¿Qué hacés antes de calcular métricas?. Eliminar los fines de semana solamente. Rellenar faltantes con la media de cada columna. Forward-fill en todas las columnas. Seleccionar intersección de fechas (inner join / dropna()) y luego calcular.

Querés simular trayectorias de precios para stress testing. ¿Qué generador de shocks usás?. np.random.normal para shocks gaussianos y construir un MBG. np.mean para obtener el promedio. np.cov para correlaciones dinámicas. np.linspace para tiempos equiespaciados (y nada más).

Para un diseño POO tenés un método común calcular_retornos() y en una subclase internacional necesitás aplicar conversión FX. ¿Diseño correcto?. Duplicar el método en cada subclase. Heredar de una clase base y sobreescribir calcular_retornos() en la subclase aplicando FX; usar super() si corresponde. Poner toda la lógica en funciones sueltas. Evitar atributos de instancia para simplificar.

Tus retornos tienen outliers puntuales por errores de dato. ¿Qué estrategia básica aplicás primero?. Interpolar sin revisar. Aplicar un z-score y eliminar todo lo que supere 1 desviación. Eliminar toda la serie del ticker. Investigar el origen y, si corresponde, reemplazar ese dato por NaN y recalcular.

Necesitás rendimiento logarítmico acumulado. ¿Qué hacés?. np.log(precios / precios.shift(1)).cumsum(). (1 + precios.pct_change()).cumprod() - 1. precios.diff().cumsum(). np.sqrt(precios).diff().cumsum().

El usuario pide ver 'volatilidad anual 60d rolling'. ¿Cómo la calculás desde rendimientos diarios?. r.rolling(60).mean() * (252**0.5). precios.rolling(60).std(). r.std() * (252**0.5) y repetir el valor en todas las filas. r.rolling(60).std() * (252**0.5).

Tenés millones de filas en CSV. ¿Cómo optimizás la carga inicial con pandas?. Leer sin opciones y filtrar después. Usar usecols, dtype específicos y parse_dates para columnas de fecha. Convertir el CSV a XLSX antes. Leer con open() y parsear a mano.

Luego de mergear, querés calcular métricas sin sesgo por NaN. ¿Qué paso aplicás?. fillna(method='ffill') en todo. fillna(0) y seguir. dropna() para quedarte con fechas comunes antes de las métricas. Nada, pandas ignora los NaN automáticamente en todo.

Necesitás un reporte reproducible que otros puedan revisar. ¿Qué flujo recomendás?. Prints en consola y listo. Solo scripts .py sin documentación. Notebook con celdas de código + Markdown + gráficos; guardar resultados a CSV/Parquet y versionar. Capturas de pantalla de la consola.

Al unir series por símbolos, los nombres de columnas son poco claros. ¿Qué hacés?. Dejarlos como vienen para no romper nada. Poner números 1..N como nombres. Renombrar columnas con tickers claros y consistentes (rename/concat con dict). Pasar todo a minúsculas sin más.

Tenés fechas como strings con distintos formatos ('2024/01/05', '05-01-2024'). ¿Qué hacés para evitar errores de ordenamiento y slicing temporal?. Ordenar alfabéticamente la columna. Dejar como strings y confiar en loc. Convertir a números con int. Usar parse_dates en lectura o pd.to_datetime y setear como índice de tipo datetime.

Necesitás retornos **semanales** a partir de precios diarios. ¿Cuál es un enfoque correcto?. Resamplear a 'W-FRI' tomando el último precio y luego pct_change(). Tomar cada 5to valor con iloc. Hacer un promedio diario y multiplicar por 5. Usar rolling(5).sum() sobre precios.

Al calcular rolling(20).mean() recibís SettingWithCopyWarning. ¿Qué corregís?. Asegurar asignación con .loc sobre el DataFrame original y evitar vistas encadenadas. Ignorarlo siempre. Cambiar a listas de Python. Usar inplace=True en todo.

Tu función tarda mucho con bucles sobre filas. ¿Cómo la acelerás?. Pasarte a C++ inmediatamente. Vectorizar operaciones con pandas/numpy y evitar loops Python. Usar time.sleep para repartir el costo. Guardar a CSV más seguido.

Querés comparar tendencias de precio y volumen en un solo gráfico. ¿Qué técnica aplicás?. Normalizar ambos por el máximo y usar el mismo eje. Dibujar ambos en el mismo eje Y. Multiplicar el volumen por 1000 para que se vea. Usar ejes gemelos (twinx) para escalas distintas.

Al unir 10 tickers, algunas columnas quedan con pocos datos por inicios distintos. ¿Qué unión te conviene para un análisis conservador?. Outer join y fillna(0). Left join con el primer ticker. Inner join (o dropna total) para quedarte sólo con fechas comunes. Concatenar precios y no mirar los NaN.

Necesitás la **rentabilidad esperada anual** a partir de retornos diarios `r`. ¿Qué cálculo usás?. `r.mean()` directamente. `r.cumsum()`. `r.mean()*252` (aprox. días hábiles). `(1+r).cumprod()`.

Querés decidir entre **covarianza** y **correlación**. ¿Cuándo preferís correlación?. Cuando querés una medida **adimensional** comparable entre activos. Cuando todas las series están en la misma moneda. Cuando los precios son muy altos. Nunca; sólo usar covarianza.

Después de concatenar, el índice tiene **fechas duplicadas**. ¿Qué hacés?. Resetear el índice a números. Ignorar duplicados. Usar `~index.duplicated(keep='last')` o agrupar por índice y quedarte con el último. Ordenar por columna de cierre.

Armás una **cartera** con pesos `w` y rendimientos diarios en DataFrame `R`. ¿Cómo obtenés el retorno diario de la cartera?. `(R * w).sum(axis=1)`. `R.sum(axis=1) / len(w)`. `R.dot(w).mean()`. `w.dot(R.T)` y tomar la diagonal.

Necesitás una **regla simple**: si r_t > 0, estar invertido; si no, en efectivo. ¿Implementación vectorizada?. `np.where(r>0, 1, 0)` y luego multiplicar por el retorno del activo. For sobre cada día y if/else. Usar apply fila por fila. Copiar y pegar el vector manualmente.

Tus series incluyen feriados. ¿Cómo garantizás un índice de **días hábiles**?. Rellenar fines de semana con forward-fill. Reindexar a un calendario 'B' de pandas (BusinessDay) o usar el índice original de mercado. Eliminar todos los lunes. Interpolar con método cúbico.

Querés **estandarizar** retornos para comparabilidad en un gráfico. ¿Qué hacés?. Dividir cada serie por su máximo. Usar min-max scaling entre 0 y 1 siempre. Restar la media y dividir por la desviación estándar (z-score). Nada; no es posible.

Estás armando un pipeline reproducible. ¿Qué práctica mejora **claridad** y mantenimiento?. Encadenar operaciones con `.assign()` y métodos, dejando pasos nombrados. Muchas variables intermedias sin nombres claros. Código en celdas desordenadas. Comentarios mínimos o inexistentes.

Guardás datos intermedios muy grandes. ¿Formato recomendado por **velocidad/espacio**?. CSV siempre. TXT separado por espacios. JSON puro. Parquet (columnar, comprimible y rápido con pandas).

¿Cómo evitás **look-ahead bias** al calcular métricas rolling?. Usar ventanas **hacia atrás** (por defecto) y no incluir el futuro. Usar ventanas centradas. Calcular con precios futuros para 'dar contexto'. Ordenar por ticker.

Querés testear que el índice esté ordenado y sin duplicados antes de métricas. ¿Qué hacés?. Confiar en que ya viene ordenado. Ordenar por valores de cierre. Assert: `assert df.index.is_monotonic_increasing and not df.index.has_duplicates. Nada, pandas corrige solo.

Tenés una función que acepta lista de tickers y período; querés **reutilización**. ¿Qué patrón aplicás?. Hardcodear tickers para asegurarte resultados. Parametrizar (tickers, fecha_inicio, fecha_fin/period) y documentar con docstring. Separar en múltiples scripts sin parámetros. Esconder parámetros en variables globales.

Notebooks con mucho `print()`. ¿Qué alternativa **profesional** para trazas y auditoría?. Usar `logging` a nivel INFO/DEBUG y escribir a archivo. Dejar los prints. Quitar toda salida. Meter prints en un try/except.

¿Cómo **validás** que `yfinance` devolvió datos útiles antes de continuar?. Asumir que siempre trae datos. Chequear `df is not None and not df.empty` y lanzar error claro si no. Si está vacío, seguir con 0s. Ignorar la validación para no frenar el pipeline.

Denunciar Test