SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
Trabajo fin de grado
Desarrollo de un software de predicción financiera
Murcia, Junio 2015
D. José Carlos Cano Lorente
https://www.flickr.com/photos/125992663@N02/14597682251/
Dr. D. José María Cecilia Canales
Dr. D. Horacio Pérez Sánchez
Dr. D. Sergio Navarro (FX Talentum)
Autor:
Directores:
Agenda
2Desarrollo de un software de predicción financiera
1. Motivaciones del proyecto
2. Objetivos
3. Solución técnica
4. Metodología
5. Descripción de la aplicación
6. Conclusiones y vías futuras
3
5
5
7
8
16
(2 slides)
(1 slide)
(1 slide)
(1 slide)
(8 slides)
(1 slide)
Motivaciones del proyecto (1/2)
3Desarrollo de un software de predicción financiera
tiempo
precio
!! La rentabilidad de la compra y venta de valores financieros
depende del momento en el que se realizan las operaciones !!
La empresa Artificial Intelligence Talentum nos pide la creación de una
aplicación de simulación de operaciones en mercados financieros
Motivaciones del proyecto (2/2)
4Desarrollo de un software de predicción financiera
• El trading es la compra o venta de valores en un mercado
financiero: el objetivo es ganar dinero
Discrecional Algorítmico
No hay reglas fijas
Componente emocional
Reglas predefinidas
Automatizable
Se buscan estrategias que se basen en reglas (matemáticas, algorítmicas o gráficas) que
definan la forma de operar y eliminar el componente humano en la toma de decisiones
Se ponen a prueba con datos históricos: backtesting
Objetivos del proyecto (1/1)
5
• Desarrollo de una aplicación que:
o Lea un conjunto de datos históricos de precios
o Calcule indicadores técnicos (fórmulas estadísticas que se
aplican a los precios, por ejemplo, una media móvil)
o Permita al usuario definir reglas que determinen si se debe
realizar una u otra operación
o Calcule el beneficio / pérdida de cada operación
o Elabore un informe final y gráficos con los resultados de
cada simulación, ordenados por algún criterio
• Intensivo en cálculos numéricos  debe ser eficiente y
scriptable para poder ejecutarse en grandes computadoras
Desarrollo de un software de predicción financiera
La empresa Talentum podrá usar la salida de esta aplicación
para estudiar y seleccionar las mejores estrategias de trading
Solución técnica (1/1)
6
• Por rapidez y eficiencia se ha seleccionado el lenguaje de
programación C para el desarrollo de la aplicación
• Orientado a entornos Linux
• La ejecución es gestionada por archivos de configuración
• Usamos las siguiente librerías:
o Libconfig para leer e interpretar ficheros de configuración
o TALib para el cálculo de indicadores técnicos
o Matplotlib para la creación de gráficos financieros, con
creación dinámica en base a parámetros
• Se ha desarrollado un analizador sintáctico de expresiones
para que el usuario pueda incorporar sus propias fórmulas de
decisión en las estrategias de trading
Desarrollo de un software de predicción financiera
Desarrollo del proyecto (1/1)
7Desarrollo de un software de predicción financiera
Sprint 6Sprint 5Sprint 4Sprint 3Sprint 2Sprint 1
Sprint Planning
Sprint Review
• Hemos seguido la metodología SCRUM, complementado con un
tablero Kanban, entregando versiones del producto en iteraciones
de cuatro semanas
• La duración del proyecto ha sido de 6 Sprints
• Se ha usado subversion como herramienta de control de
versiones, pudiendo acceder la empresa Talentum al código
Imagen SCRUM team: http://blog.presentationload.com/develop-software-products-scrum-2/
Descripción de la aplicación (1/8): visión general del proceso
8Desarrollo de un software de predicción financiera
Config.cfg
[ Datos históricos ]
[ Mapeo de columnas ]
[ Filtro desde-hasta ]
Input 1 Input nInput 2
Date Time 1
Date Time 2
Date Time 3
Date Time 4
Date Time n-2
Date Time n-1
Indicador Indicador Indicador
Cada escenario define:
• Los indicadores técnicos y parámetros que se van a
aplicar al conjunto de datos
• La definición del gráfico de salida
• Las fórmulas que el trader usará para:
o Decidir si el mercado está en un momento alcista o
bajista
o Calcular el volumen a invertir
o Asignar el máximo de ganancia (Take Profit) y la
máxima pérdida admisible (Stop Loss)
Descripción de la aplicación (2/8): ejecución de escenarios
9Desarrollo de un software de predicción financiera
Redimensionar arrays para albergar
nuevos indicadores
2
Preparar todas las combinaciones
de parámetros
3 - Ordenación de rentabilidades
- Salida a LOG
- Salida a gráfico best-n
5
Escenarios
- Leer los Indicadores y parámetros
- Leer las fórmulas de cálculo: comprar
/ vender / StopLoss / TakeProfit
1
Indicador Indicador IndicadorIndicador
0.334
0.335
0.323
0.345
0.323
0.299
Indicador
0.332
0.345
0.329
0.333
0.322
0.301
Indicador
0.322
0.321
0.323
0.345
0.378
0.399
Valores separados por comas
Rangos DESDE – HASTA- SALTO
- Llamada a TA-Lib y actualizar arrays
- Parse y ejecución de fórmulas
- Decidir compra/venta
4
Descripción de la aplicación (3/8): salida gráfica
10Desarrollo de un software de predicción financiera
Escenarios
Gráficos
[Variables]
[Opciones]
#0
#1
#2
#n
Barra / Área / Curva
Etiqueta
Color
Número de ventana
Escenarios ordenados por beneficio
3
Parámetros en cada iteraciónProcesoValor
Escenario con mejor resultado
Descripción de la aplicación (4/8): LOG del proceso, resultados
11Desarrollo de un software de predicción financiera
Configuración leída y carga de datos
1
Tiempo de ejecución parciales
2
Tiempo total de ejecución
4
Descripción de la aplicación (5/8): registro de operaciones
12Desarrollo de un software de predicción financiera
• La aplicación conserva las operaciones de entrada y salida del
mercado de cada simulación
• Esta información también se muestra en los gráficos
Descripción de la aplicación (6/8): reutilización de variables
13Desarrollo de un software de predicción financiera
Config.cfg scenario.cfg
Descripción de la aplicación (7/8): proceso de decisión
14Desarrollo de un software de predicción financiera
¿Hay
señal
alcista?
Parse: condition de
alcista/bajista
¿Hay
órdenes
abiertas?
Si
¿Hay
órdenes
abiertas?
No
Abrir orden «larga»
Precio de entrada: openPrice
Cantidad: Parse formula
Abrir orden «corta»
Precio de entrada: closePrice
Cantidad: Parse formula
No
No
¿Es una
orden
«corta»?
Si
Cerrar la orden «corta»
openPricePrecio de salida:
Precio de entrada:
Profit = entrada - salida
ClosePrice
¿Es una
orden
«larga»?
Si
Cerrar la orden »larga»
closePricePrecio de salida:
Precio de entrada:
Profit = entrada - salida
openPrice
Si
Si
¿Hay
señal
bajista?
Si
No
Descripción de la aplicación (8/8): Take Profit / Stop Loss
15Desarrollo de un software de predicción financiera
¿Tiene
TakeProfit
informado?
¿La orden es
larga?
Cerrar la orden »larga»
TakeProfit
Cerrar la orden «corta»
OpenPrice
¿Tiene
StopLoss
informado?
¿La orden
larga?
Cerrar la orden »larga»
OpenPrice
Cerrar la orden «corta»
OpenPrice
Si
No
Si
Si
Si
Si No No
¿Hay
órdenes
abiertas?
Precio de salida:
Precio de entrada:
Precio de salida:
Precio de entrada:
Precio de salida:
Precio de entrada:
Precio de salida:
Precio de entrada:
Profit = entrada - salida Profit = entrada - salidaProfit = salida - entradaProfit = salida - entrada
OpenPrice OpenPriceOpenPrice OpenPrice
¿ OpenPrice >= TakeProfit ?
Si
¿ OpenPrice <= TakeProfit ? ¿ OpenPrice <= StopLoss ? ¿ OpenPrice >= StopLoss ?
Si Si Si
Orden «larga»
Orden «larga»Orden «corta» Orden «corta»
Conclusiones y vías futuras
16Desarrollo de un software de predicción financiera
• El software desarrollado tiene una aplicación real, permitiendo a
un inversor, aficionado o experto, probar estrategias usando datos
históricos de dominio público
• Una estrategia, debidamente probada, puede implementarse en
un ordenador que ejecute órdenes directamente en los mercados
(trading automático)
• La empresa Talentum podrá crear una aplicación que permita a un
usuario no experto construir escenarios con un interfaz gráfico,
llamando a nuestra aplicación e interpretando los ficheros de
salida
• Futuras versiones del software podrían crearse como librerías que
pudieran enlazarse con otros desarrollos
• Otras mejoras a nivel funcional: manejo de comisiones y slippage,
y nuevos ratios para el cálculo de la eficacia de la estrategia
17Desarrollo de un software de predicción financiera
http://pixabay.com/es/pregunta-signo-de-interrogaci%C3%B3n-298479/
Murcia, Junio 2015
ESCUELA UNIVERSITARIA POLITECNICA
Departamento de Ciencias Politécnicas
Grado en Ingeniería Informática
Trabajo Fin de Grado Desarrollo de un software de predicción financiera
Autor D. José Carlos Cano Lorente
Directores Dr. D. José María Cecilia Canales
Dr. D. Horacio Pérez Sánchez
Dr. D. Sergio Navarro (FX Talentum)
technicalIndicators = (
{
indicatorName = "MA90";
functionName = "MA";
indicatorParameters = (
{parameterName="startIdx"; parameterValue=(""); parameterDirection="i"; ParameterFormat="i";},
{parameterName="endIdx"; parameterValue=(""); parameterDirection="i"; ParameterFormat="i";},
{parameterName="inReal"; parameterValue=("openPrice"); parameterDirection="i"; ParameterFormat="Mf";},
{parameterName="optInTimePeriod"; parameterValue=("90"); parameterDirection="i"; ParameterFormat="i";},
{parameterName="optInMAType"; parameterValueRange=("2","3","1"); parameterDirection="i"; ParameterFormat="i";},
{parameterName="outBegIdx"; parameterValue=(""); parameterDirection="o"; ParameterFormat="i";},
{parameterName="outNBElement"; parameterValue=(""); parameterDirection="o"; ParameterFormat="i";},
{parameterName="outMa90"; parameterValue=(""); parameterDirection="o"; ParameterFormat="Mf";}
);
},
Escenarios
Los escenarios especifican qué indicadores técnicos y parámetros se van a aplicar al conjunto de datos.
Los parámetros se pueden indicar explícitamente como valores o bien en un rango numérico from-to-step
El nombre de función y el nombre de los parámetros de entrada deben existir en el fichero functions.cfg, que contiene la lista de indicadores TA-Lib disponibles
Ejemplo:
Indicador 1
Descripción
Función TA-Lib
Parámetros
Nombre
Valor
Dirección
Formato
i (entrada) o (salida)
i (entero) f (float) Mi (array de enteros) Mf (array de float) S (texto)
Valores separados por comas Rango: DESDE – HASTA- SALTO
Funciones
19

Más contenido relacionado

Similar a TFG predicción y optimización de sistemas de trading automáticos en mercados de futuros y forex

Aplicación de Extreme Programming
Aplicación de Extreme ProgrammingAplicación de Extreme Programming
Aplicación de Extreme ProgrammingPatricio Bevaqua
 
Análisis de técnicas modernas de presupuestación en la construcción (1)
Análisis de técnicas modernas de presupuestación en la construcción (1)Análisis de técnicas modernas de presupuestación en la construcción (1)
Análisis de técnicas modernas de presupuestación en la construcción (1)Daniel Nieto
 
Solucion guia mapa de procesos
Solucion guia mapa de procesosSolucion guia mapa de procesos
Solucion guia mapa de procesosWilson Bautista
 
Planeacion O Preanalisis- INGENIERIA DE SOFTWARE I
Planeacion O Preanalisis- INGENIERIA DE SOFTWARE IPlaneacion O Preanalisis- INGENIERIA DE SOFTWARE I
Planeacion O Preanalisis- INGENIERIA DE SOFTWARE IJuan Raul Vergara
 
En foco: ERP para manufactura
En foco: ERP para manufacturaEn foco: ERP para manufactura
En foco: ERP para manufacturaEvaluandoSoftware
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmosomarzon
 
Wea para el resumen
Wea para el resumenWea para el resumen
Wea para el resumenjFernando095
 
Machine Learning en Inversiones 20210414
Machine Learning en Inversiones 20210414Machine Learning en Inversiones 20210414
Machine Learning en Inversiones 20210414Gerard Alba
 
Business Intelligence Open Source Solutions
Business Intelligence Open Source Solutions Business Intelligence Open Source Solutions
Business Intelligence Open Source Solutions Stratebi
 
Estimación del esfuerzo y costo necesarios para el desarrollo de un proyecto ...
Estimación del esfuerzo y costo necesarios para el desarrollo de un proyecto ...Estimación del esfuerzo y costo necesarios para el desarrollo de un proyecto ...
Estimación del esfuerzo y costo necesarios para el desarrollo de un proyecto ...Software Guru
 
Estudio tecnico fep
Estudio tecnico fepEstudio tecnico fep
Estudio tecnico fepYazmin Waldo
 
Planteamiento del caso de negocio Ingenieria Electrica
Planteamiento del caso de negocio Ingenieria ElectricaPlanteamiento del caso de negocio Ingenieria Electrica
Planteamiento del caso de negocio Ingenieria ElectricaFabiola Trejo Gómez
 
0001-Informe de Factibilidad de Proyecto (1).docx
0001-Informe de Factibilidad de Proyecto (1).docx0001-Informe de Factibilidad de Proyecto (1).docx
0001-Informe de Factibilidad de Proyecto (1).docxBrayanPUMAVILLA
 
Analisis Final 2
Analisis Final 2Analisis Final 2
Analisis Final 2teresita185
 
Analisis Final 2
Analisis Final 2Analisis Final 2
Analisis Final 2teresita185
 
Tablero de control
Tablero de controlTablero de control
Tablero de controlKarvira
 
Tablero de control
Tablero de controlTablero de control
Tablero de controlvanny07
 
Tablero de control
Tablero de controlTablero de control
Tablero de controlvanny07
 

Similar a TFG predicción y optimización de sistemas de trading automáticos en mercados de futuros y forex (20)

Aplicación de Extreme Programming
Aplicación de Extreme ProgrammingAplicación de Extreme Programming
Aplicación de Extreme Programming
 
Análisis de técnicas modernas de presupuestación en la construcción (1)
Análisis de técnicas modernas de presupuestación en la construcción (1)Análisis de técnicas modernas de presupuestación en la construcción (1)
Análisis de técnicas modernas de presupuestación en la construcción (1)
 
Solucion guia mapa de procesos
Solucion guia mapa de procesosSolucion guia mapa de procesos
Solucion guia mapa de procesos
 
Planeacion O Preanalisis- INGENIERIA DE SOFTWARE I
Planeacion O Preanalisis- INGENIERIA DE SOFTWARE IPlaneacion O Preanalisis- INGENIERIA DE SOFTWARE I
Planeacion O Preanalisis- INGENIERIA DE SOFTWARE I
 
En foco: ERP para manufactura
En foco: ERP para manufacturaEn foco: ERP para manufactura
En foco: ERP para manufactura
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Wea para el resumen
Wea para el resumenWea para el resumen
Wea para el resumen
 
Stratebi
StratebiStratebi
Stratebi
 
Machine Learning en Inversiones 20210414
Machine Learning en Inversiones 20210414Machine Learning en Inversiones 20210414
Machine Learning en Inversiones 20210414
 
Business Intelligence Open Source Solutions
Business Intelligence Open Source Solutions Business Intelligence Open Source Solutions
Business Intelligence Open Source Solutions
 
Clase 6, 5/9/2007
Clase 6, 5/9/2007Clase 6, 5/9/2007
Clase 6, 5/9/2007
 
Estimación del esfuerzo y costo necesarios para el desarrollo de un proyecto ...
Estimación del esfuerzo y costo necesarios para el desarrollo de un proyecto ...Estimación del esfuerzo y costo necesarios para el desarrollo de un proyecto ...
Estimación del esfuerzo y costo necesarios para el desarrollo de un proyecto ...
 
Estudio tecnico fep
Estudio tecnico fepEstudio tecnico fep
Estudio tecnico fep
 
Planteamiento del caso de negocio Ingenieria Electrica
Planteamiento del caso de negocio Ingenieria ElectricaPlanteamiento del caso de negocio Ingenieria Electrica
Planteamiento del caso de negocio Ingenieria Electrica
 
0001-Informe de Factibilidad de Proyecto (1).docx
0001-Informe de Factibilidad de Proyecto (1).docx0001-Informe de Factibilidad de Proyecto (1).docx
0001-Informe de Factibilidad de Proyecto (1).docx
 
Analisis Final 2
Analisis Final 2Analisis Final 2
Analisis Final 2
 
Analisis Final 2
Analisis Final 2Analisis Final 2
Analisis Final 2
 
Tablero de control
Tablero de controlTablero de control
Tablero de control
 
Tablero de control
Tablero de controlTablero de control
Tablero de control
 
Tablero de control
Tablero de controlTablero de control
Tablero de control
 

Último

Venezuela Entorno Social y Económico.pptx
Venezuela Entorno Social y Económico.pptxVenezuela Entorno Social y Económico.pptx
Venezuela Entorno Social y Económico.pptxJulioFernandez261824
 
Análisis de la Temporada Turística 2024 en Uruguay
Análisis de la Temporada Turística 2024 en UruguayAnálisis de la Temporada Turística 2024 en Uruguay
Análisis de la Temporada Turística 2024 en UruguayEXANTE
 
44 RAZONES DE PORQUE SI ESTAMOS MAL (1).pdf
44 RAZONES DE PORQUE SI ESTAMOS MAL (1).pdf44 RAZONES DE PORQUE SI ESTAMOS MAL (1).pdf
44 RAZONES DE PORQUE SI ESTAMOS MAL (1).pdflupismdo
 
TEMA 3 DECISIONES DE INVERSION Y FINANCIACION UNIVERISDAD REY JUAN CARLOS
TEMA 3 DECISIONES DE INVERSION Y FINANCIACION UNIVERISDAD REY JUAN CARLOSTEMA 3 DECISIONES DE INVERSION Y FINANCIACION UNIVERISDAD REY JUAN CARLOS
TEMA 3 DECISIONES DE INVERSION Y FINANCIACION UNIVERISDAD REY JUAN CARLOSreyjuancarlosjose
 
LOS MIMBRES HACEN EL CESTO: AGEING REPORT.
LOS MIMBRES HACEN EL CESTO: AGEING  REPORT.LOS MIMBRES HACEN EL CESTO: AGEING  REPORT.
LOS MIMBRES HACEN EL CESTO: AGEING REPORT.ManfredNolte
 
Sistema de Control Interno aplicaciones en nuestra legislacion
Sistema de Control Interno aplicaciones en nuestra legislacionSistema de Control Interno aplicaciones en nuestra legislacion
Sistema de Control Interno aplicaciones en nuestra legislacionPedroSalasSantiago
 
Politicas publicas para el sector agropecuario en México.pptx
Politicas publicas para el sector agropecuario en México.pptxPoliticas publicas para el sector agropecuario en México.pptx
Politicas publicas para el sector agropecuario en México.pptxvladisse
 
mercado de capitales universidad simon rodriguez - guanare (unidad I).pdf
mercado de capitales universidad simon rodriguez - guanare (unidad I).pdfmercado de capitales universidad simon rodriguez - guanare (unidad I).pdf
mercado de capitales universidad simon rodriguez - guanare (unidad I).pdfGegdielJose1
 
41 RAZONES DE PORQUE SI ESTAMOS MAL EN MÉXICO
41 RAZONES DE PORQUE SI ESTAMOS MAL EN MÉXICO41 RAZONES DE PORQUE SI ESTAMOS MAL EN MÉXICO
41 RAZONES DE PORQUE SI ESTAMOS MAL EN MÉXICOlupismdo
 
puntos-clave-de-la-reforma-pensional-2023.pdf
puntos-clave-de-la-reforma-pensional-2023.pdfpuntos-clave-de-la-reforma-pensional-2023.pdf
puntos-clave-de-la-reforma-pensional-2023.pdfosoriojuanpablo114
 
Principios de economia Mankiw 6 edicion.pdf
Principios de economia Mankiw 6 edicion.pdfPrincipios de economia Mankiw 6 edicion.pdf
Principios de economia Mankiw 6 edicion.pdfauxcompras5
 
PRUEBA PRE ICFES ECONOMIA. (4) - copia.doc
PRUEBA PRE ICFES ECONOMIA. (4) - copia.docPRUEBA PRE ICFES ECONOMIA. (4) - copia.doc
PRUEBA PRE ICFES ECONOMIA. (4) - copia.docmilumenko
 
METODOS ESCALA SALARIAL EN ESTRUCTURAS.PPT
METODOS ESCALA SALARIAL EN ESTRUCTURAS.PPTMETODOS ESCALA SALARIAL EN ESTRUCTURAS.PPT
METODOS ESCALA SALARIAL EN ESTRUCTURAS.PPTrodrigolozanoortiz
 
Compañías aseguradoras presentacion power point
Compañías aseguradoras presentacion power pointCompañías aseguradoras presentacion power point
Compañías aseguradoras presentacion power pointAbiReyes18
 
El cheque 1 y sus tipos de cheque.pptx
El cheque  1 y sus tipos de  cheque.pptxEl cheque  1 y sus tipos de  cheque.pptx
El cheque 1 y sus tipos de cheque.pptxNathaliTAndradeS
 
ejemplo de tesis para contabilidad- capitulos
ejemplo de tesis para contabilidad- capitulosejemplo de tesis para contabilidad- capitulos
ejemplo de tesis para contabilidad- capitulosguillencuevaadrianal
 

Último (17)

Venezuela Entorno Social y Económico.pptx
Venezuela Entorno Social y Económico.pptxVenezuela Entorno Social y Económico.pptx
Venezuela Entorno Social y Económico.pptx
 
Análisis de la Temporada Turística 2024 en Uruguay
Análisis de la Temporada Turística 2024 en UruguayAnálisis de la Temporada Turística 2024 en Uruguay
Análisis de la Temporada Turística 2024 en Uruguay
 
44 RAZONES DE PORQUE SI ESTAMOS MAL (1).pdf
44 RAZONES DE PORQUE SI ESTAMOS MAL (1).pdf44 RAZONES DE PORQUE SI ESTAMOS MAL (1).pdf
44 RAZONES DE PORQUE SI ESTAMOS MAL (1).pdf
 
TEMA 3 DECISIONES DE INVERSION Y FINANCIACION UNIVERISDAD REY JUAN CARLOS
TEMA 3 DECISIONES DE INVERSION Y FINANCIACION UNIVERISDAD REY JUAN CARLOSTEMA 3 DECISIONES DE INVERSION Y FINANCIACION UNIVERISDAD REY JUAN CARLOS
TEMA 3 DECISIONES DE INVERSION Y FINANCIACION UNIVERISDAD REY JUAN CARLOS
 
LOS MIMBRES HACEN EL CESTO: AGEING REPORT.
LOS MIMBRES HACEN EL CESTO: AGEING  REPORT.LOS MIMBRES HACEN EL CESTO: AGEING  REPORT.
LOS MIMBRES HACEN EL CESTO: AGEING REPORT.
 
Sistema de Control Interno aplicaciones en nuestra legislacion
Sistema de Control Interno aplicaciones en nuestra legislacionSistema de Control Interno aplicaciones en nuestra legislacion
Sistema de Control Interno aplicaciones en nuestra legislacion
 
Politicas publicas para el sector agropecuario en México.pptx
Politicas publicas para el sector agropecuario en México.pptxPoliticas publicas para el sector agropecuario en México.pptx
Politicas publicas para el sector agropecuario en México.pptx
 
Mercado Eléctrico de Ecuador y España.pdf
Mercado Eléctrico de Ecuador y España.pdfMercado Eléctrico de Ecuador y España.pdf
Mercado Eléctrico de Ecuador y España.pdf
 
mercado de capitales universidad simon rodriguez - guanare (unidad I).pdf
mercado de capitales universidad simon rodriguez - guanare (unidad I).pdfmercado de capitales universidad simon rodriguez - guanare (unidad I).pdf
mercado de capitales universidad simon rodriguez - guanare (unidad I).pdf
 
41 RAZONES DE PORQUE SI ESTAMOS MAL EN MÉXICO
41 RAZONES DE PORQUE SI ESTAMOS MAL EN MÉXICO41 RAZONES DE PORQUE SI ESTAMOS MAL EN MÉXICO
41 RAZONES DE PORQUE SI ESTAMOS MAL EN MÉXICO
 
puntos-clave-de-la-reforma-pensional-2023.pdf
puntos-clave-de-la-reforma-pensional-2023.pdfpuntos-clave-de-la-reforma-pensional-2023.pdf
puntos-clave-de-la-reforma-pensional-2023.pdf
 
Principios de economia Mankiw 6 edicion.pdf
Principios de economia Mankiw 6 edicion.pdfPrincipios de economia Mankiw 6 edicion.pdf
Principios de economia Mankiw 6 edicion.pdf
 
PRUEBA PRE ICFES ECONOMIA. (4) - copia.doc
PRUEBA PRE ICFES ECONOMIA. (4) - copia.docPRUEBA PRE ICFES ECONOMIA. (4) - copia.doc
PRUEBA PRE ICFES ECONOMIA. (4) - copia.doc
 
METODOS ESCALA SALARIAL EN ESTRUCTURAS.PPT
METODOS ESCALA SALARIAL EN ESTRUCTURAS.PPTMETODOS ESCALA SALARIAL EN ESTRUCTURAS.PPT
METODOS ESCALA SALARIAL EN ESTRUCTURAS.PPT
 
Compañías aseguradoras presentacion power point
Compañías aseguradoras presentacion power pointCompañías aseguradoras presentacion power point
Compañías aseguradoras presentacion power point
 
El cheque 1 y sus tipos de cheque.pptx
El cheque  1 y sus tipos de  cheque.pptxEl cheque  1 y sus tipos de  cheque.pptx
El cheque 1 y sus tipos de cheque.pptx
 
ejemplo de tesis para contabilidad- capitulos
ejemplo de tesis para contabilidad- capitulosejemplo de tesis para contabilidad- capitulos
ejemplo de tesis para contabilidad- capitulos
 

TFG predicción y optimización de sistemas de trading automáticos en mercados de futuros y forex

  • 1. Trabajo fin de grado Desarrollo de un software de predicción financiera Murcia, Junio 2015 D. José Carlos Cano Lorente https://www.flickr.com/photos/125992663@N02/14597682251/ Dr. D. José María Cecilia Canales Dr. D. Horacio Pérez Sánchez Dr. D. Sergio Navarro (FX Talentum) Autor: Directores:
  • 2. Agenda 2Desarrollo de un software de predicción financiera 1. Motivaciones del proyecto 2. Objetivos 3. Solución técnica 4. Metodología 5. Descripción de la aplicación 6. Conclusiones y vías futuras 3 5 5 7 8 16 (2 slides) (1 slide) (1 slide) (1 slide) (8 slides) (1 slide)
  • 3. Motivaciones del proyecto (1/2) 3Desarrollo de un software de predicción financiera tiempo precio !! La rentabilidad de la compra y venta de valores financieros depende del momento en el que se realizan las operaciones !!
  • 4. La empresa Artificial Intelligence Talentum nos pide la creación de una aplicación de simulación de operaciones en mercados financieros Motivaciones del proyecto (2/2) 4Desarrollo de un software de predicción financiera • El trading es la compra o venta de valores en un mercado financiero: el objetivo es ganar dinero Discrecional Algorítmico No hay reglas fijas Componente emocional Reglas predefinidas Automatizable Se buscan estrategias que se basen en reglas (matemáticas, algorítmicas o gráficas) que definan la forma de operar y eliminar el componente humano en la toma de decisiones Se ponen a prueba con datos históricos: backtesting
  • 5. Objetivos del proyecto (1/1) 5 • Desarrollo de una aplicación que: o Lea un conjunto de datos históricos de precios o Calcule indicadores técnicos (fórmulas estadísticas que se aplican a los precios, por ejemplo, una media móvil) o Permita al usuario definir reglas que determinen si se debe realizar una u otra operación o Calcule el beneficio / pérdida de cada operación o Elabore un informe final y gráficos con los resultados de cada simulación, ordenados por algún criterio • Intensivo en cálculos numéricos  debe ser eficiente y scriptable para poder ejecutarse en grandes computadoras Desarrollo de un software de predicción financiera La empresa Talentum podrá usar la salida de esta aplicación para estudiar y seleccionar las mejores estrategias de trading
  • 6. Solución técnica (1/1) 6 • Por rapidez y eficiencia se ha seleccionado el lenguaje de programación C para el desarrollo de la aplicación • Orientado a entornos Linux • La ejecución es gestionada por archivos de configuración • Usamos las siguiente librerías: o Libconfig para leer e interpretar ficheros de configuración o TALib para el cálculo de indicadores técnicos o Matplotlib para la creación de gráficos financieros, con creación dinámica en base a parámetros • Se ha desarrollado un analizador sintáctico de expresiones para que el usuario pueda incorporar sus propias fórmulas de decisión en las estrategias de trading Desarrollo de un software de predicción financiera
  • 7. Desarrollo del proyecto (1/1) 7Desarrollo de un software de predicción financiera Sprint 6Sprint 5Sprint 4Sprint 3Sprint 2Sprint 1 Sprint Planning Sprint Review • Hemos seguido la metodología SCRUM, complementado con un tablero Kanban, entregando versiones del producto en iteraciones de cuatro semanas • La duración del proyecto ha sido de 6 Sprints • Se ha usado subversion como herramienta de control de versiones, pudiendo acceder la empresa Talentum al código Imagen SCRUM team: http://blog.presentationload.com/develop-software-products-scrum-2/
  • 8. Descripción de la aplicación (1/8): visión general del proceso 8Desarrollo de un software de predicción financiera Config.cfg [ Datos históricos ] [ Mapeo de columnas ] [ Filtro desde-hasta ] Input 1 Input nInput 2 Date Time 1 Date Time 2 Date Time 3 Date Time 4 Date Time n-2 Date Time n-1 Indicador Indicador Indicador Cada escenario define: • Los indicadores técnicos y parámetros que se van a aplicar al conjunto de datos • La definición del gráfico de salida • Las fórmulas que el trader usará para: o Decidir si el mercado está en un momento alcista o bajista o Calcular el volumen a invertir o Asignar el máximo de ganancia (Take Profit) y la máxima pérdida admisible (Stop Loss)
  • 9. Descripción de la aplicación (2/8): ejecución de escenarios 9Desarrollo de un software de predicción financiera Redimensionar arrays para albergar nuevos indicadores 2 Preparar todas las combinaciones de parámetros 3 - Ordenación de rentabilidades - Salida a LOG - Salida a gráfico best-n 5 Escenarios - Leer los Indicadores y parámetros - Leer las fórmulas de cálculo: comprar / vender / StopLoss / TakeProfit 1 Indicador Indicador IndicadorIndicador 0.334 0.335 0.323 0.345 0.323 0.299 Indicador 0.332 0.345 0.329 0.333 0.322 0.301 Indicador 0.322 0.321 0.323 0.345 0.378 0.399 Valores separados por comas Rangos DESDE – HASTA- SALTO - Llamada a TA-Lib y actualizar arrays - Parse y ejecución de fórmulas - Decidir compra/venta 4
  • 10. Descripción de la aplicación (3/8): salida gráfica 10Desarrollo de un software de predicción financiera Escenarios Gráficos [Variables] [Opciones] #0 #1 #2 #n Barra / Área / Curva Etiqueta Color Número de ventana
  • 11. Escenarios ordenados por beneficio 3 Parámetros en cada iteraciónProcesoValor Escenario con mejor resultado Descripción de la aplicación (4/8): LOG del proceso, resultados 11Desarrollo de un software de predicción financiera Configuración leída y carga de datos 1 Tiempo de ejecución parciales 2 Tiempo total de ejecución 4
  • 12. Descripción de la aplicación (5/8): registro de operaciones 12Desarrollo de un software de predicción financiera • La aplicación conserva las operaciones de entrada y salida del mercado de cada simulación • Esta información también se muestra en los gráficos
  • 13. Descripción de la aplicación (6/8): reutilización de variables 13Desarrollo de un software de predicción financiera Config.cfg scenario.cfg
  • 14. Descripción de la aplicación (7/8): proceso de decisión 14Desarrollo de un software de predicción financiera ¿Hay señal alcista? Parse: condition de alcista/bajista ¿Hay órdenes abiertas? Si ¿Hay órdenes abiertas? No Abrir orden «larga» Precio de entrada: openPrice Cantidad: Parse formula Abrir orden «corta» Precio de entrada: closePrice Cantidad: Parse formula No No ¿Es una orden «corta»? Si Cerrar la orden «corta» openPricePrecio de salida: Precio de entrada: Profit = entrada - salida ClosePrice ¿Es una orden «larga»? Si Cerrar la orden »larga» closePricePrecio de salida: Precio de entrada: Profit = entrada - salida openPrice Si Si ¿Hay señal bajista? Si No
  • 15. Descripción de la aplicación (8/8): Take Profit / Stop Loss 15Desarrollo de un software de predicción financiera ¿Tiene TakeProfit informado? ¿La orden es larga? Cerrar la orden »larga» TakeProfit Cerrar la orden «corta» OpenPrice ¿Tiene StopLoss informado? ¿La orden larga? Cerrar la orden »larga» OpenPrice Cerrar la orden «corta» OpenPrice Si No Si Si Si Si No No ¿Hay órdenes abiertas? Precio de salida: Precio de entrada: Precio de salida: Precio de entrada: Precio de salida: Precio de entrada: Precio de salida: Precio de entrada: Profit = entrada - salida Profit = entrada - salidaProfit = salida - entradaProfit = salida - entrada OpenPrice OpenPriceOpenPrice OpenPrice ¿ OpenPrice >= TakeProfit ? Si ¿ OpenPrice <= TakeProfit ? ¿ OpenPrice <= StopLoss ? ¿ OpenPrice >= StopLoss ? Si Si Si Orden «larga» Orden «larga»Orden «corta» Orden «corta»
  • 16. Conclusiones y vías futuras 16Desarrollo de un software de predicción financiera • El software desarrollado tiene una aplicación real, permitiendo a un inversor, aficionado o experto, probar estrategias usando datos históricos de dominio público • Una estrategia, debidamente probada, puede implementarse en un ordenador que ejecute órdenes directamente en los mercados (trading automático) • La empresa Talentum podrá crear una aplicación que permita a un usuario no experto construir escenarios con un interfaz gráfico, llamando a nuestra aplicación e interpretando los ficheros de salida • Futuras versiones del software podrían crearse como librerías que pudieran enlazarse con otros desarrollos • Otras mejoras a nivel funcional: manejo de comisiones y slippage, y nuevos ratios para el cálculo de la eficacia de la estrategia
  • 17. 17Desarrollo de un software de predicción financiera http://pixabay.com/es/pregunta-signo-de-interrogaci%C3%B3n-298479/
  • 18. Murcia, Junio 2015 ESCUELA UNIVERSITARIA POLITECNICA Departamento de Ciencias Politécnicas Grado en Ingeniería Informática Trabajo Fin de Grado Desarrollo de un software de predicción financiera Autor D. José Carlos Cano Lorente Directores Dr. D. José María Cecilia Canales Dr. D. Horacio Pérez Sánchez Dr. D. Sergio Navarro (FX Talentum)
  • 19. technicalIndicators = ( { indicatorName = "MA90"; functionName = "MA"; indicatorParameters = ( {parameterName="startIdx"; parameterValue=(""); parameterDirection="i"; ParameterFormat="i";}, {parameterName="endIdx"; parameterValue=(""); parameterDirection="i"; ParameterFormat="i";}, {parameterName="inReal"; parameterValue=("openPrice"); parameterDirection="i"; ParameterFormat="Mf";}, {parameterName="optInTimePeriod"; parameterValue=("90"); parameterDirection="i"; ParameterFormat="i";}, {parameterName="optInMAType"; parameterValueRange=("2","3","1"); parameterDirection="i"; ParameterFormat="i";}, {parameterName="outBegIdx"; parameterValue=(""); parameterDirection="o"; ParameterFormat="i";}, {parameterName="outNBElement"; parameterValue=(""); parameterDirection="o"; ParameterFormat="i";}, {parameterName="outMa90"; parameterValue=(""); parameterDirection="o"; ParameterFormat="Mf";} ); }, Escenarios Los escenarios especifican qué indicadores técnicos y parámetros se van a aplicar al conjunto de datos. Los parámetros se pueden indicar explícitamente como valores o bien en un rango numérico from-to-step El nombre de función y el nombre de los parámetros de entrada deben existir en el fichero functions.cfg, que contiene la lista de indicadores TA-Lib disponibles Ejemplo: Indicador 1 Descripción Función TA-Lib Parámetros Nombre Valor Dirección Formato i (entrada) o (salida) i (entero) f (float) Mi (array de enteros) Mf (array de float) S (texto) Valores separados por comas Rango: DESDE – HASTA- SALTO Funciones 19