PRE-QUANt - Taller de Programación en Python para Finanzas

Imagen

¿A quién está dirigido?

A todos los inversores particulares, o administradores de fondos de terceros que quieran aprender desde cero a programar sus propios algoritmos para mejorar la performance de sus decisiones o que quieran empezar a meterse en el mundo del trading algorítmico.

¿Por qué este programa es importante?

Porque por un lado, el uso de algoritmos para reforzar el set de herramientas de un inversor, en un campo tan competitivo cono los mercados, hoy en día hace sin dudas una diferencia. Pero por otro lado, además, porque la programación en sí y la automatización de procesos mediante algoritmos es una realidad que se va imponiendo en todas las profesiones.

Profesor

Juan Pablo Pisano
Twitter: @JohnGalt_is_www
 

Modalidad de Cursada

Inicio: 12 de mayo
Cursada: martes de 18:30 a 21:30
Duración: 18 clases

Modalidad: online a través de Zoom

Para más información contactarse con:

Axel Godoy
ejecutivos@ucema.edu.ar

Enviar mail
 

Requerimientos

Es requisito que cada alumno concurra con su laptop, se utilizará software libre compatible con Windows.
Si bien hay alternativas para mac, por cuestiones de compatibilidad es recomendable usar una notebook con windows actualizado.

Estructura general de las clases:

Dado que el aprendizaje de programación es 80% práctica y 20% teoría, y dada la velocidad de avance de las herramientas informáticas, la idea general del curso es que los alumnos además de los contenidos dados en clase “aprendan a aprender” para ello estructuramos las clases de la siguiente forma:

20% del tiempo: Explicaciones teóricas del profesor en el pizarrón y demostración en vivo del funcionamiento del código.

60% del tiempo: Los alumnos prueban el ejemplo dictado por el profesor en sus computadoras y reciben el apoyo del profesor y/o ayudantes para solucionar los errores o dudas que surjan de este paso

20% del tiempo: Hackeamos lo aprendido: Los alumnos proponen modificaciones al código visto y empezamos a jugar con las posibilidades haciendo bifurcaciones personalizadas del código probado antes.

El curso está pensado para gente que nunca hizo nada en programación pero que si tiene un background de temas e instrumentos financieros.
 

Introducción a la programación aplicada a finanzas

  • Por qué Python? Estructura de los lenguajes, lenguajes de alto y bajo nivel, lenguajes principales y detalle de área y sector en el mundo financiero, tendencias a lo largo del tiempo.
  • Python, ventajas y desventajas de Python, Paradigmas soportados por Python
  • Las premisas básicas de la programación
  • Entornos de desarrollo: IDEs, consola python, editores (Atom, SublimeText), entornos con interprete online, jupyter notebooks, concepto de debug
  • Paquetes y librerías. Anaconda
  • Variables, tipos de variables, tipado dinámico
  • Primeras Librerias: (random, math)

Primeros Scripts

  • Tipos de datos de fecha y hora.
  • Listas, tuplas y diccionarios
  • Exresiones boooleanas, comparación, operadores lógicos
  • Decisiones consecutivas (elif), decisiones anidadas
  • Manejo de errores básico: Try, Except
  • Librerías basicas (datetime, random, calendar, sys)

Scripts con Ciclos Infinitos

  • Ciclos, ciclos definidos, ciclos infinitos, ciclos infinitos con corte, ciclos interactivos, ciclos con centinela. Comandos Break/Continue
  • Importacion de archivo de serie de precios histórica desde CSV, empezamos a trabajar con datos reales
  • Definicion de matriz de datos o DataFrame y manipulación de un DataFrame
  • Funciones Index, Tail, Head, Describe (cuartiles, desvio estándar, mediana, moda, etc). Dropna Fillna etc
  • Mas librerias (time, csv, pandas)

Funciones, reutilización del código

  • Graficos de series temporales, graficos de columnas, de tortas etc
  • Funciones, usos y ventajas
  • Parametrización de funciones. Ciclo de vida de las variables y argumentos de las funciones
  • Manejo de errores dentro de las funciones y el flujo de un script
  • Return de una función y devolución de errores
  • Mas librerias (matPlotLib)

JSON y estructura de datos. Recolección y manejo de datos Via API

  • Que es JSON, ¿por qué es tan útil en el mundo de los datos financieros?
  • Lectura y codificación de datos en JSON
  • Conexión a API de datos financieros y recolección de datos, guardado de datos en archivos de Excel, lectura de documentación de una API.
  • Mas librerías (requests, json)

APIs Financieras

Vista de documentación de las principales APIs financieras y testeo de cada una

APIs locales:

  • API oficial del BCRA
  • Datos de mercado de Rofex
  • Byma api

APIs internacionales:

  • IEX Cloud: RealTime y series EOD de acciones, bonos, opciones. Análisis fundamental.
  • AlphaVantage: Pares de FX, series intradiarias, indicadores de Analisis técnico
  • CryptoCompare: La mas completa api de criptomonedas
  • APIs pagas sugeridas: Listado de APIs profesionales del mundo financiero
  • Mas librerías (Yfinance, quandl)

Bases de Datos

Tipos de bases de datos, Nos enfocamos en las bases de datos relacionales, utilización de MySQL. Servidor de base de datos, acceso a base de datos en consola, GUI: Workbench/PhpMyAdmin

CRUD: Creación, lectura, modificación y eliminación de datos de una base de datos desde Python. Consultas de selección condicionadas, agrupamiento, unión de tablas, vistas y graficos en phpmyadmin

Objetos y clases

  • Paradigma Programacion orientada a objetos. Que es una clase y una instancia de esa clase
  • Conceptos de Herencia, Inicializacion de un objeto, acceso a atributos y funciones del objeto
  • Uso de una clase para querys a DDBB, requests a APIs, guardado de tablas en excels, etc..

Backtesting de Estrategia de Inversión – Ejecución del backtest

Como desafío de esta clase, y basados en los conocimientos de las clases anteriores vamos a realizar el siguiente script en python:

1- Definición de una estrategia de inversión

2- Recogida de datos históricos

3- Guardado en base de datos de la serie

4- Lectura de la serie guardada y Calculo de indicadores o señales de compra y venta

5- Guardado en una base de datos de los trades realizados

Backtesting de Estrategia de Inversión – Análisis del backtest

Partiendo de los datos del capítulo anterior hacemos el análisis de los trades

6- Cálculo de % de trades positivos y negativos

7- Esperanza matemática del método

8- Histograma de rendimientos

9- Agrupación de trades por años, mes etc,

10- Ratios de riesgo (sharpe, sortino, etc),

11- Rendimiento acumulado y comparación vs Benchmark, gráficas etc.

Análisis de portabilidad de las estrategias

Partimos de la base de la estrategia analizada en el capítulo anterior, y analizamos su portabilidad

  1. Definimos un diccionario de activos similares
  2. Definimos función que devuelva solo los resultados del capiítulo anterior pasando como argumento el ticker
  3. Recorremos el diccionario para generar los returns de todos los ticker y guardamos en BBDD
  4. Leemos los resultados de todos los ticker y analizamos las metricas, sobre todo la media de la esperanza matemática y sus máximos y mínimos según ticker

Bots de Trading en el Mercado Argentino por API REST

Bot por API REST

  • Lectura de datos en tiempo real
  • Lectura de datos historicos
  • Lectura de Portafolio y Estado de Cuenta
  • Envió/Cancelación de Ordenes
  • Lectura del estado de las ordenes enviadas

Bots de Trading en Nyse y Bots en Crypto

  • Explicación teórica del funcionamiento del protocolo FIX, y diferencias contra APIs REST
  • Lectura de la documentación de una API, tipos de autenticación, etc
  • Bots de Trading en el Mercado Crypto (Binance, Bittrex, etc). Diferentes APIs de distintos Exchanges Cryptos
  • Mercado de Opciones Crypto (deribit, quedex)
  • Bots en NYSE via API de Ameritrade o Tradier.com

Diagramas de flujo según los Tipos de Trading Algorítmico

Como este capítulo es más teórico pero muy necesario para seguir adelante con los objetivos del curso, vamos a ir viendo los distintos tipos de trading algorítmico y pensando en clase y diagramando junto a los alumnos el proceso de flujo de los algoritmos que realizan cada tipo de trading

  • Algoritmos para rebalanceo de cartera, FCI, ETF, etc
  • Algoritmos de colocación de grandes ordenes de compra o venta
  • Algoritmos de arbitrajes por mercados (1 subyacente en varios mercados)
  • Algoritmos de arbitrajes por instrumentos (Sintéticos o derivados en un mismo mercado)
  • Algoritmos de coberturas (derivados)
  • Algoritmos de arbitrajes estadísticos (basados regresión a la media)
  • Algoritmos especulativos de scalping o de swing trading
  • Algoritmos de screening

Ingeniería básica e infraestructura de un bot de Trading

  • Estructura cliente/servidor ¿Qué es la nube? ¿Qué es un servicio cloud? ¿Qué es un VPS?
  • Ventajas y desventajas de infraestructura cloud vs HardWare propietario. Costos de un sistema algoritmico
  • Registro como cliente en un proveedor de VPS. Deploy de una instancia en un VPS, administración de esa instancia, cuestiones básicas. Backups y snapshots de la instancia.
  • Distribuciones de Linux, Ubuntu, Debian, Centos, operaciones via SSH, Putty, PSCP, línea de comandos en Linux y Windows, comandos básicos consola (cd mkdir touch mv rm ls clear less) edicion con VIM
  • OutPut de un bot basico: Pusheo desde VPS Python hacia spreadSheet
  • ¿Que es un cronjob? Montaje de un bot en la instancia montada. Dominios, DNSs, FrontEnd, etc..

Inteligencia Artificial con Python, ¿aplicación al trading?

  • Explicación básica de que es y que no es la inteligencia artificial
  • Machine Learning vs Deep Learning. Explicación de redes neuronales
  • Cuales son los distintos tipos de algos de Inteligencia Artificial (agrupamiento o clustering, regresión, clasificacion, aprendizaje supervisado y no supervisado)
  • Cuáles y por qué son mas útiles en el mercado financiero. Ejemplos sencillos con algoritmos de correlación en el mercado financiero

Para más información contactarse con:

Axel Godoy
ejecutivos@ucema.edu.ar

Enviar mail

 

Proximos Seminarios

Publicaciones

Programas relacionados

Destacados

CONTACTOS ÚTILES

Admisiones e ingresantes a las carreras de grado:

grado@ucema.edu.ar

Celular...

El economista Juan Carlos de Pablo visitará de nuevo UCEMA, está vez invitado del ciclo Club de Finanzas Live, organizado por los integrantes del Club de Finazas UCEMA y con...

La Maestría en Finanzas (MFin) de la UCEMA incorporó en su cuerpo de profesores a Esteban Domecq (Presidente invecq Consulting),...

Las exigencias del Fondo Monetario Internacional, la economía post-cuarentena y el mercado cambiario. Tres preguntas a Fausto Spotorno.

Luego de tres...

La inflación en la Canasta del Profesional Ejecutivo (CPE) fue de 2% en julio de 2020 y registró una suba interanual de 40,5%. En el año acumula un alza de 15,...

Se ha cerrado el ciclo de renovación del equipo de inversiones del SMEF  (Student Management Endowment Fund) luego de una difícil decisión entre varios alumnos y ex alumnos que...