Encabezado Facultad de Ciencias
Presentación

Actuaría (plan 2015) 2021-2

Optativas, Seminario de Finanzas I

Grupo 9276, 99 lugares. 48 alumnos.
Seminario de Finanzas I: Finanzas Cuantitativas con Python
Profesor Mauricio Labadie Martínez lu mi vi 9 a 10
Ayudante Jorge Macías Gómez ma ju 9 a 10
Ayudante Alejandro Hérnandez Cuevas ma ju 9 a 10
 

Seminario de Finanzas I: Finanzas Cuantitativas con Python

Aviso a todos los interesados:

  1. Las incripciones al seminario se han cerrado, tanto para inscritos como para oyentes.

Recursos didácticos:

  1. El curso se da en streaming en tiempo real por Twitch los Lunes, Miércoles y Viernes de 9 a 10 am: canal "mevaquant"
  2. Los videos de los streams se suben el mismo día a YouTube: canal "Finanzas Cuantitativas Py"
  3. Hay un servidor privado para el curso en Discord: ahí se encuentran todos los recursos necesarios (chats en tiempo real, links, material del curso, etc)
  4. Los archivos de código en Python y de datos de mercado en csv están en GitHub: canal "finanzascuantitativasfc"

Criterio de evaluación:

  1. Cinco tareas prácticas de programación en Python
  2. Cada tarea contará 20% de la nota final
  3. No se aceptan tareas extemporáneas y no hay ni reposiciones ni examen final

Objetivos:

  1. Aprender a programar y a hacer análisis de datos con Python
  2. Aplicar conocimientos de Finanzas Cuantitativas, en especial la optimización de portafolios, en el ámbito práctico de la modelación financiera en Python

Asignaturas antecedentes obligatorias. El seminario es mínimo de quinto semestre y exige las siguientes materias:

  1. Algebra Lineal I
  2. Cálculo Diferencial e Integral III / Matemáticas para Ciencias Aplicadas II
  3. Probabilidad II / Física Estadística
  4. Programación
  5. Matemáticas Financieras

Asignaturas antecedentes recomendadas. Llevar el seminario en séptimo semestre es ideal por las materias siguentes:

  1. Inferencia Estadística / Estadística I
  2. Mercados Financieros y Valuación de Instrumentos
  3. Métodos Cuantitativos en Finanzas
  4. Procesos Estocásticos I
  5. Carteras de Inversión

Conocimientos previos:

  1. Es indispensable una primera experiencia en programación (Python, Java, C#, C++) y/o manejo de software científico (R, Matlab, Octave)
  2. Pero no es necesario que el alumno conozca Python de antemano
  3. Cálculo 3, Algebra Lineal 1 y Probabilidad 2 son requisitos no negociables: el enfoque geométrico y estadístico del curso asume total dominio de estas tres asignaturas
  4. Si el alumno no ha cursado Matemáticas Financieras, es necesario que tenga (o cubra por su cuenta) conocimientos básicos de los mercados financieros: bolsa de valores, acciones, inversiones, portafolios, rendimientos, volatilidad, tasas de interés, etc

Temario:

  1. Introducción a Python:
    1. Instalación de Python: Anaconda, Spyder y librerías utiles
    2. Cómo correr programas en Python: “hello world”
    3. Generar vectores aleatorios con Numpy
  2. Distribuciones en Python:
    1. Visualización de datos en Python: histogramas
    2. Cálculo de funciones estadísticas, momentos, percentiles y Valor en Riesgo (VaR)
    3. Tests de Normalidad o Gaussianidad: Jarque-Bera
    4. Los límites del p-value y los tests estadísticos: cuando una distribución normal falla su test de normalidad
  3. Datos de mercado en Python:
    1. Recuperar datos de mercado: descargar series de tiempo
    2. Operaciones con series de tiempo: dataframes y rendimientos
    3. Distribuciones empíricas de activos financieros reales: los rendimientos no son normales y presentan colas largas
  4. Funciones y clases en Python:
    1. Utilizar funciones en Python para evitar código repetido
    2. Los principios de la programación orientada objeto: A-PIE (abstraction, polymorphism, inheritance, encapsulation)
    3. El arte del refactoring y de la programación “minimalista”: re-escribir el código utilizado anteriormente en unas pocas líneas
  5. Betas y Capital Asset Pricing Model (CAPM) en Python:
    1. Regresiones lineales de activos financieros en Python: alfas, betas y r cuadrada
    2. Operaciones con dos series de tiempo: sincronización y cálculo de betas vs benchmark
    3. Visualización de datos en Python: plots de series de tiempo de precios y scatterplots de rendimientos
    4. Análisis de sensibilidades: comparación de betas vs diferentes benchmarks; caso de VIX vs S&P 500
  6. Algoritmos de optimización y de cobertura de portafolios en Python:
    1. Aprender a utilizar el método “minimize” de la librería scipy.optimize
    2. Crear funciones de costo con parámetros: ejemplo de test unitario
    3. Crear un algoritmo de cobertura de portafolios beta-neutral y delta-neutral con datos de mercado reales
  7. Matriz de Varianza-Covarianza en Python:
    1. Matrices simétricas: vectores propios, valores propios, ortogonalidad
    2. Matriz de varianza-covarianza y Análisis de Componentes Principales (PCA)
    3. Cálculo de la matriz de varianza-covarianza con datos reales: ejemplo de inestabilidad
    4. Gestión de activos: cálculo de portafolios de mínima varianza y PCA
  8. Optimización de portafolios y Asset Allocation en Python:
    1. Problema de minimización de la varianza con restricciones: multiplicadores de Lagrange
    2. Utilizar el método scipy.optimize.minimize con restricciones
    3. Calcular portafolios con restricciones: Markowitz, long-only
    4. Calcular portafolios clásicos de la gestión de activos: equi-ponderado y ponderado por volatilidad
  9. Frontera Eficiente en Python:
    1. Teoría Moderna de Portafolios: optimización mean-variance y análisis de portafolios admisibles
    2. Cálculo y plot de la frontera eficiente para portafolios de Markowitz
  10. Valuación de opciones en Python:
    1. Movimiento Browniano y procesos estocásticos
    2. Ecuación y fórmula de Black-Scholes para opciones vainilla
    3. Creación de un pricing en Python i.e. un programa en Python que calcule el precio de una opción vainilla
  11. Simulaciones de Montecarlo:
    1. Principios básicos de las simulaciones de Monte Carlo: Ley de los Grandes Números, Teorema de Límite Central, intervalos de confianza
    2. Comparación de dos métodos de pricing de opciones: fórmula cerrada de Black-Scholes vs simulaciones de Monte Carlo

Tareas prácticas:

Se le facilitará al alumno el código de base en Python, así como los datos de entrada necesarios para las tareas. Se le pedirá al alumno que escriba algunas líneas de código y se calificará que el resultado sea el esperado.

Referencias básicas:

  1. Hilpisch. Python for Finance. O’Reilly
  2. Mood, Graybill, Boes. Introduction to the theory of statistics. McGraw-Hill

Referencias complementarias:

  1. Elton, Grube, Brown, Goetzmann. Modern Portfolio Theory and Investment. Wiley
  2. Hull. Options, Futures and Other Derivatives. Pearson
  3. Shreve, Stochastic Calculus for Finance II. Continuous-Time Models. Springer
  4. Wilmott. Quantitative Finance. Wiley

 


Hecho en México, todos los derechos reservados 2011-2016. Esta página puede ser reproducida con fines no lucrativos, siempre y cuando no se mutile, se cite la fuente completa y su dirección electrónica. De otra forma requiere permiso previo por escrito de la Institución.
Sitio web administrado por la Coordinación de los Servicios de Cómputo de la Facultad de Ciencias. ¿Dudas?, ¿comentarios?. Escribenos. Aviso de privacidad.