Trading con Python y MT5: Crea tu propio Framework
Sección 1: Presentación del Curso y del Framework
1.1 – Presentación y Esquema del Curso
1.2 – ¡Únete a la comunidad privada de Quantdemy!
Sección 2: Los fundamentos del Framework que vamos a construir
2.1 – Entendiendo el Trading por Eventos
2.2 – Los 5 Eventos Fundamentales del Framework
2.3 – Los módulos del Framework – Parte 1
2.4 – Los módulos del Framework – Parte 2
Sección 3: Creación del entorno de Trading Algorítmico con Python y MetaTrader 5
3.1 – Instalación de Anaconda
3.2 Creación del entorno virtual de Python mediante Conda
3.3 – Instalación y configuración de Visual Studio Code (VSCode)
3.4 – Instalación unificada de dependencias mediante requirements.txt
3.5 – Instalación de la plataforma MetaTrader 5
3.6 – Cómo crear una cuenta DEMO pese a la restricción de la CNMV (solo para España)
Sección 4: Módulo Platform Connector
4.1 – Presentación del Módulo Platform Connector
4.2 – Exploración de los métodos de la API MT5 para el Platform Connector
4.4 – Creación de la clase PlatformConnector e investigación del __init__ de MT5
4.5 – Creación del fichero .env para guardar las credenciales de conexión a MT5
4.6 – Cómo solucionar el IPC Error si te aparece en el futuro
4.7 – Carga de credenciales e inicialización de MetaTrader 5 + Solución del IPC Error si te aparece
4.8 – Creación de nuestra Trading App y lanzamiento de MT5 desde Python
4.9 – Creación de una capa de seguridad para cuentas LIVE (Capital Real)
4.10 – Comprobación que el Trading Algorítmico está activado en MetaTrader 5
4.11 – Comprobación y adición de los símbolos al MarketWatch
4.12 – Acceso e impresión de la información de la cuenta
Sección 5: Módulo Data Provider
5.1 – Presentación del Módulo Data Provider
5.2 – Obtención de datos de Mercado – Parte 1: Preparación del método
5.3 – Obtención de datos – Parte 2: Índices de velas y transformación de formato
5.4 – Mapeado de Timeframes a nuestro Dominio
5.5 – Usamos Pandas para terminar el método de obtención de la última vela
5.6 – Creación del método para obtener los datos de las últimas N velas
5.7 – Obtención de los datos del último Tick disponible de un instrumento
5.8 – Detección de actualizaciones en los datos del Mercado
5.9 – Creación de nuestro primer Evento de Dominio: la clase DataEvent
5.10 – La Events Queue: el corazón del Framework
5.11 – Colocación del DataEvent en la Events Queue
5.12 – Creación del Trading Director: el módulo que lo organiza todo
5.13 – Orquestación eficiente del procesado de Eventos
5.14 – Debugging en VSCode: Localizando y solucionando un error (bug)
5.15 – Resumen de todo lo que hemos creado hasta ahora
Sección 6: Módulo Signal Generator
6.1 – Presentación del Módulo Signal Generator
6.2 – Creación del Signal Event
6.3 – Creación de la interfaz ISignalGenerator con su Protocolo
6.4 – Gestión de los imports relativos en Python para Interfaces
6.5 – Exploración detallada del método super() en la herencia de clases
6.6 – Diseño de la lógica de entrada – Parte 1: Obteniendo datos
6.7 – Diseño de la lógica de entrada – Parte 2: Optimizando la ejecución de cálculos
6.8 – Diseño de la lógica de entrada – Parte 3: Evaluando si existe una señal MAC
6.9 – Integración del SignalEvent en la Events Queue
6.10 – Incorporación del Signal Generator al Trading Director
6.11 – Implementación y ejecución del Signal Generator en la Trading App
6.12 – Aclaración de un detalle sobre la clase anterior
Sección 7: Módulo Position Sizer
7.1 – Presentación del Módulo Position Sizer
7.2 – Creación del Sizing Event
7.3 – Creación de la interfaz IPositionSizer
7.4 – Mejora de la interfaz IPositionSizer
7.5 – Creación del Min Size Position Sizer
7.6 – Creación del Fixed Size Position Sizer y de las primeras Properties
7.7 – Creación del Risk Percentage Sizing – Parte 1: Información del símbolo
7.8 – Creación del Risk Percentage Sizing – Parte 2: Obtención del precio de entrada
7.9 – Creación del Risk Percentage Sizing – Parte 3: Obtención de valores de cálculo
7.10 – Creación del Risk Percentage Sizing – Parte 4: Cálculo del volumen
7.11 – BONUS: Tick Value, Tick Size y Contract Size – Explicación detallada
7.12 – Clase Utils: Conversión de una divisa a otra mediante métodos estáticos
7.13 – Clase Utils: Hacemos efectiva la conversión de divisas
7.14 – Corrección de un error futuro
7.15 – Creación del Risk Percentage Sizing – Parte 4: Finalización del método
7.16 – Creación del Sizing Event y colocación en la Events Queue
7.17 – Orquestación de las llamadas de los Position Sizers – Parte 1
7.18 – Orquestación de las llamadas de Position Sizers – Parte 2
7.19 – Aplicación del control de seguridad al volumen del Position Sizer
7.20 – Incorporación del Position Sizer al Trading Director
7.21 – Configuración y prueba del Position Sizer en la Trading App
Sección 8: Módulo Global Portfolio
8.1 – Presentación del Módulo Portfolio
8.2 – Obtención de las posiciones de la cuenta filtradas por estrategia
8.3 – Obtención de las posiciones abiertas según el instrumento financiero
8.4 – Incorporación del Portfolio a la Trading App y aplicación del Magic Number
8.5 – Actualización de la estrategia MAC usando el Módulo del Portfolio
Sección 9: Módulo Risk Manager
9.1 – Presentación del Módulo Risk Manager
9.2 – Creación del Order Event
9.3 – Creación de la interfaz IRiskManager
9.4 – Creación de las Properties para el Risk Manager
9.5 – Creación del Max Leverage Risk Manager
9.6 – BONUS: Explicación en profundidad del Apalancamiento en el Trading con Margen
9.7 – Cálculo del Leverage Factor
9.8 – Verificación del cumplimiento del Leverage Factor para la nueva posición
9.9 – Creación del servicio del Risk Manager
9.10 – Implementación del método principal del Risk Manager
9.11 – Colocación del Order Event en la Events Queue
9.12 – Cálculo del valor de una posición en la divisa de la cuenta – Parte 1
9.13 – Cálculo del valor de una posición en la divisa de la cuenta – Parte 2
9.14 – Finalización del método principal del Risk Manager
9.15 – Incorporación del Risk Manager al Trading Director
9.16 – Configuración y prueba del Risk Manager en la Trading App
Sección 10: Módulo Order Executor
10.1 – Presentación del Módulo Order Executor
10.2 – Creación de la clase Execution Event
10.3 – Explicación del funcionamiento de Orders, Deals y Posiciones en MetaTrader 5
10.4 – Creación del Módulo Order Executor
10.5 – Creación del método para ejecutar Market Orders en MetaTrader 5
10.6 – Nota importante sobre el Filling Type de las órdenes y los Brokers
10.7 – Creación de la Trade Request para Market Orders
10.8 – NOTA: Modificación del trade request para órdenes en cuenta DEMO de MetaQuotes
10.9 – Ejecución de nuestra primera Market Order en MetaTrader 5 desde Python
10.10 – Verificación del resultado de la ejecución de la Market Order
10.11 – NOTA: Variación IMPORTANTE para la operativa en REAL
10.12 – Construcción del Execution Event – Parte 1: Estructura del evento
10.13 – Construcción del Execution Event – Parte 2: obtención del Deal Info
10.14 – Creación del método para enviar Pending Orders en MetaTrader 5
10.15 – Creación de la clase del Placed Pending Order Event
10.16 – Creación del método para Cerrar Posiciones por Ticket
10.17 – Creación del método para cerrar todos los Longs o los Shorts
10.18 – Creación del método para cancelar órdenes pendientes
10.19 – Incorporación del Order Executor al Trading Director
10.20 – Configuración del Order Executor en la Trading App
10.21 – Prueba del módulo Order Executor en la Terminal MetaTrader 5
Sección 11: Actualización de la Estrategia MAC
11.1 – Actualización y prueba de la estrategia Moving Average Crossover
Sección 12: Módulo Telegram Notifications
12.1 – Presentación del Módulo Telegram Notifications
12.2 – Creación de un Bot de Telegram
12.3 – Obtención del Chat ID de Telegram
12.4 – Inversión e inyección de dependencias
12.5 – Creación de la estructura del módulo de notificationes
12.6 – Finalización del módulo de notificationes con AsyncIO
12.7 – Notificaciones a grupos y reformulación de mensajes
12.8 – Envío de Órdenes Pendientes y recepción de notificaciones
Sección 13: Refactoring del Signal Generator
13.1 – Explicación del Refactoring del Signal Generator
13.2 – Refactoring de la interfaz ISignalGenerator
13.3 – Creación de las Properties para el Signal Generator
13.4 – Refactoring de la Clase SignalMACrossover
13.5 – Creación del Servicio para el Signal Generator
13.6 – Configuración del Signal Generator en la Trading App y prueba final
Sección 14: Finalización del Framework
14.1 – Conversión del dateprint a un método estático global de la clase Utils
14.2 – Gestión de Eventos None & Unknown en el Trading Director
14.3 – Corregimos un mensaje en la colocación de Órdenes Pendientes
Sección 15: BONUS - Despliegue en AWS + Estrategia Mean Reversion
15.1 – Presentación del Despliegue del Framework en AWS
15.2 – Creación de un VPS en AWS mediante Elastic Compute Cloud (EC2)
15.3 – Configurando el VPS para Trading Algorítmico
15.4 – Explicacion de la estrategia y la fórmula para el RSI que ejecutaremos en AWS
15.5 – Cálculo del RSI con NumPy
15.6 – Implementación de la lógica de entrada (y corrección de un pequeño error)
15.7 – Creación de instancias t2.micro y t2.small para comparar rendimientos
15.8 – Especificación de versiones de dependencias
15.9 – Ejecución de la estrategia RSI y optimización de MT5 para el cloud
15.10 – Optimización de rendimiento de EC2 y explicación de los créditos de CPU
15.11 – Estrategia de Recuperación de Desastres (Disaster Recovery) para EC2
15.12 – ¿Cómo recuperar una instancia EC2 a partir de una AMI?
Sección 16: BONUS: Mejores prácticas en desarrollo de estrategias de trading
16.1 – Mejores prácticas de software para desarrollo de estrategias de trading
Sección 17: Zona de Descargas
17.1 – Descarga aquí todo el código del Curso
Sección 18: Clausura del Curso
18.1 – ¡Felicidades por terminar el Curso!
Anterior Lección
Siguiente Lección
2.1 – Entendiendo el Trading por Eventos
Trading con Python y MT5: Crea tu propio Framework
2.1 – Entendiendo el Trading por Eventos
Anterior Lección
Volver al Curso
Siguiente Lección
Iniciar sesión
Para acceder a este curso es necesario iniciar sesión. ¡Introduce tus credenciales a continuación!
Nombre de usuario o correo electrónico
Contraseña
Recuérdame
¿Has olvidado tu contraseña?
Regístrate
¿No tiene una cuenta? ¡Crea una!
Registra tu cuenta