pablo nieto martín supervisor: dr. teodoro Álamo...

20
Resumen Las máquinas de vectores soporte (SVM) son un conjunto de algoritmos de aprendizaje supervisado que se engloba dentro de la disciplina de aprendizaje automático o Machine Learning. Este proyecto propone utilizar las máquinas de soporte vectorial (SVM) para realizar el análisis de un modelo de un sistema predictivo para el mercado de divisas. 1. Introducción Hoy en día, la economía mundial y las decisiones políticas están altamente influenciadas por la economía de mercado. Durante décadas, realizar predicciones fidedignas acerca de su comportamiento se ha convertido en un asunto que afrontar por profesionales de cada sector de las ciencias, con economistas o analistas financieros encabezando esta tendencia. Predecir el valor futuro de un activo implica procesos estadísticos y manejo de gran cantidad de datos, así como análisis técnico avanzado. Es por ello por lo que físicos, matemáticos, ingenieros y profesionales relacionados con las disciplinas más técnicas se han convertido en los mejores candidatos para trabajar en los mercados financieros. Hoy en día existe una tendencia en el uso de técnicas de aprendizaje automático para reducir el componente emocional en la toma de decisiones por parte de los agentes de bolsa. Un sistema automatizado de trading, está basado en una estrategia pre-programada para operar sobre distintos activos financieros a una velocidad que ningún ser humano podría acercarse. El principal objetivo de este proyecto es estudiar y analizar las diferentes estrategias usando datos históricos de los mercados para luego crear un sistema polivalente que pueda funcionar en tiempo real y proveer un alto rendimiento en la predicción de distintos activos. El sistema será capaz de tomar decisiones por sí mismo, usando diferentes algoritmos y estrategias de optimización, las cuales podrían ser aplicadas en otros sectores tales como la generación eléctrica, la distribución de suministro eléctrico o sectores derivados. Estará centrado en las opciones binarias como mecanismo de inversión. Las opciones binarias son similares a las opciones de inversión tradicionales, pero a diferencia de éstas, existe un riesgo fijo y predeterminado. Tanto el riesgo máximo como el beneficio potencial son conocidos, y no es posible perder más dinero que el que se invierte en cada opción. Se estudiará el impacto del modelo en los siete principales pares de divisas, majors y, posteriormente, se evaluará el rendimiento de éstos a lo largo de un periodo de inversión determinado. -Proyecto Fin de Carrera- “Aplicación de algoritmos de aprendizaje máquina para el análisis predictivo del mercado Forex” Pablo Nieto Martín Supervisor: Dr. Teodoro Álamo Cantarero

Upload: lythu

Post on 26-Sep-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Pablo Nieto Martín Supervisor: Dr. Teodoro Álamo …bibing.us.es/proyectos/abreproy/5730/fichero/Resumen+español+PFC... · el análisis predictivo del mercado Forex” ... aplicaciones

Resumen

Las máquinas de vectores soporte (SVM) son un conjunto de algoritmos de aprendizaje

supervisado que se engloba dentro de la disciplina de aprendizaje automático o Machine

Learning. Este proyecto propone utilizar las máquinas de soporte vectorial (SVM) para realizar

el análisis de un modelo de un sistema predictivo para el mercado de divisas.

1. Introducción

Hoy en día, la economía mundial y las decisiones políticas están altamente influenciadas por la economía de mercado. Durante décadas, realizar predicciones fidedignas acerca de su comportamiento se ha convertido en un asunto que afrontar por profesionales de cada sector de las ciencias, con economistas o analistas financieros encabezando esta tendencia.

Predecir el valor futuro de un activo implica procesos estadísticos y manejo de gran cantidad de datos, así como análisis técnico avanzado. Es por ello por lo que físicos, matemáticos, ingenieros y profesionales relacionados con las disciplinas más técnicas se han convertido en los mejores candidatos para trabajar en los mercados financieros. Hoy en día existe una tendencia en el uso de técnicas de aprendizaje automático para reducir el componente emocional en la toma de decisiones por parte de los agentes de bolsa. Un sistema automatizado de trading, está basado en una estrategia pre-programada para operar sobre distintos activos financieros a una velocidad que ningún ser humano podría acercarse.

El principal objetivo de este proyecto es estudiar y analizar las diferentes estrategias usando datos históricos de los mercados para luego crear un sistema polivalente que pueda funcionar en tiempo real y proveer un alto rendimiento en la predicción de distintos activos. El sistema será capaz de tomar decisiones por sí mismo, usando diferentes algoritmos y estrategias de optimización, las cuales podrían ser aplicadas en otros sectores tales como la generación eléctrica, la distribución de suministro eléctrico o sectores derivados.

Estará centrado en las opciones binarias como mecanismo de inversión. Las opciones binarias

son similares a las opciones de inversión tradicionales, pero a diferencia de éstas, existe un

riesgo fijo y predeterminado. Tanto el riesgo máximo como el beneficio potencial son

conocidos, y no es posible perder más dinero que el que se invierte en cada opción. Se

estudiará el impacto del modelo en los siete principales pares de divisas, majors y,

posteriormente, se evaluará el rendimiento de éstos a lo largo de un periodo de inversión

determinado.

-Proyecto Fin de Carrera-

“Aplicación de algoritmos de aprendizaje máquina para el análisis predictivo del mercado Forex”

Pablo Nieto Martín

Supervisor: Dr. Teodoro Álamo Cantarero

Page 2: Pablo Nieto Martín Supervisor: Dr. Teodoro Álamo …bibing.us.es/proyectos/abreproy/5730/fichero/Resumen+español+PFC... · el análisis predictivo del mercado Forex” ... aplicaciones

Aplicación de algoritmos de aprendizaje máquina para el análisis predictivo del mercado Forex

2

2. Obtención y tratamiento de datos históricos

La entrada de datos al modelo vendrá dada por registros de datos históricos de los mercados

financieros. Se ha escogido una plataforma de trading, Metatrader, como mecanismo para

obtener dichos registros, obteniendo una base de datos desde el 01/10/2008 hasta el

24/04/2015, compuesto por muestras de intervalos de duración de un minuto. No obstante,

habrá periodos en falta en dicha muestra ya que se trabaja con una versión demo de la

plataforma.

Para la definición y simulación del modelo se utilizará Matlab como herramienta de software.

Los diferentes cálculos de matrices y filas y/o columnas serán realizados mediante el uso de

esta herramienta debido al uso predeterminado de operaciones vectorizadas, que ayudará a

reducir el coste computacional del modelo. La funcionalidad de Matlab para el uso de

aplicaciones predefinidas por el fabricante es una de las claves que hace que Matlab sea la

herramienta elegida para este proyecto. Así pues, una vez los datos son importados en forma

de columnas a Matlab, se crea una matriz de datos estructurada de la siguiente forma:

Tabla 1. Especificaciones tabla de datos

Fecha Hora Precio Apertura

Precio máximo

Precio mínimo

Precio cierre

Volumen

Año/Mes/Día HoraMinSeg … … … … …

… … … … … … …

A continuación, se determina la diferencia entre periodos consecutivos y se trabajará con

aquellos intervalos que tengan una dimensión mayor o igual a 30 periodos sin ausencia de

datos en dicho intervalo. Esos treinta periodos son necesarios por la naturaleza de alguno de

los indicadores que veremos más adelante.

En un intervalo de tiempo del tamaño de la muestra con la que estamos trabajando, pueden

suceder acontecimientos económicos externos que influyan en el comportamiento de los

diferentes pares de divisas. El propósito de este proyecto es aislar dichos acontecimientos para

captar la esencia del comportamiento de dichos activos. Para ello, se analizarán los outliers, o

datos anómalos fuera de tendencia y se corregirán dichos valores. Se analizará tanto la media

como la distribución intercuartílica aplicando el método bining, consistente en reemplazar

dichos valores por la media del valor previo y consecutivo al dato anómalo.

Para la detección de dichos outliers, los datos tienen que cumplir dos condiciones. La primera

es que el volumen contratado en un periodo determinado debe ser mayor o igual a la media

de dicho periodo para ser considerado como outlier. La segunda es que la variación de precio

entre periodos consecutivos se enmarcará fuera de los límites inferior y superior del recorrido

intercuartilítico. Para que un periodo determinado sea considerado como outlier, deberá

satisfacer ambas condiciones. Como vemos en la Figura 1, en la parte superior se ha calculado

la media del precio de cierre en dicho periodo y se ha marcado mediante una línea verde

transversal. En la figura inferior se ha marcado mediante dos líneas horizontales el límite

inferior y superior del recorrido intercuartílico y se observa que sólo existen tres puntos en

este intervalo que satisfacen ambas condiciones (marcados en rojo).

Page 3: Pablo Nieto Martín Supervisor: Dr. Teodoro Álamo …bibing.us.es/proyectos/abreproy/5730/fichero/Resumen+español+PFC... · el análisis predictivo del mercado Forex” ... aplicaciones

Aplicación de algoritmos de aprendizaje máquina para el análisis predictivo del mercado Forex

3

Tras aplicar el método de bining, podemos ver en la Figura 2 la transformación del precio de

cierre en este periodo. Este mismo razonamiento se aplicará a lo largo del proyecto para los

datos recopilados de los siete pares de divisas, AUD/USD, CAD/USD, EUR/USD, GBP/USD,

USD/CHF,USD/JPY, USD/NZD.

Figura 1. (izq.) y Figura 2 (dcha.). Identificación de outliers de AUD/USD 05/08/2015 desde las 13:00 a las 13:29

4. Indicadores

Se trata de herramientas matemáticas de las que dispone el usuario que le permiten

determinar características de los datos en tiempo real. Permitiendo obtener diferentes

características basadas en los datos: precio de cierre, apertura, máximo, mínimo o volumen. A

lo largo de este proyecto se utilizarán distintos tipos de indicadores. Estos indicadores serán

usados como entradas para el modelo de sistema predictivo que vamos a utilizar.

Tabla 2. Indicadores empleados

Indicador Fórmula Variables Descripción

SMA (X) SMAi =∑ xi

ni=1

n

xi: Variable a la que hacer la media en el periodo i

n: número de periodos SMAi: Media Aritmética.

Realiza un suavizado de los

datos mediante una media de n-

periodos

EMA (X)

Para i=1: EMAi =∑ xi

ni=1

n

Para 1< i <∞: C= 2

𝑛+1

EMAi = (xi -EMAj) . C + EMAj

xi: Variable a la que hacer la media en el periodo i.

n: número de periodos C:Coeficiente multiplicador

EMAi: Media móvil exponencial del periodo actual.

EMAj: Media móvil exponencial del periodo actual.

Realiza un suavizado de los

datos mediante una media de n-

periodos y aplica una mayor

ponderación a los periodos recientes.

ADX

cond1=highi- highj cond2=lowj-lowi

DM+i= max(cond1,0) si cond1>cond2 DM+i=0 caso contrario

DM-i= max(cond2,0) si cond2>cond1 DM-i=0 caso contrario

TRi = Máx (TR1,TR2,TR3)

TR1 = highi - lowi

TR2 =|highi - closej|

TR3 = |closej - lowi|

TR141 = ∑ TRi14i=1

TR14i = TR14j - TR14j

14+ TRi para i≠1

NOTA: Los subíndices “i” y “j” se

corresponden con los periodos actual y

anterior respectivamente

high : Precio máximo del periodo

low : Precio mínimo del periodo

close : Precio de cierre del periodo

DM+: Positive Directional

Movement del periodo.

TR:True Range del periodo.

TR14: Valor del True Range

suavizado de los últimos 14

periodos.

-DM14: Valor del Negative

Directional Movement suavizado de

los últimos 14 periodos.

+DM14: Valor del Positive

Directional Movement suavizado de

los últimos 14 periodos.

ADX, -DI y +DI son indicadores de

movimiento. ADX mide la fuerza de la tendencia mientras

que los otros dos indicadores, -DI y

+DI definen la dirección de esa

tendencia.

Page 4: Pablo Nieto Martín Supervisor: Dr. Teodoro Álamo …bibing.us.es/proyectos/abreproy/5730/fichero/Resumen+español+PFC... · el análisis predictivo del mercado Forex” ... aplicaciones

Aplicación de algoritmos de aprendizaje máquina para el análisis predictivo del mercado Forex

4

+DI14𝑖 =+DM

TR14

−DI14𝑖 =−DM

TR14

-DM141 = ∑ −DMi14i=1

-DM14i = -DM14j - −DM14j

14+ −DMi para i≠1

+DM141 = ∑ +DMi14i=1

+DM14i = +DM14j - +DM14j

14+ +DMi para i≠1

+DX14i = |+DM− −DI|

+DI14+ −DI14

ADX141 = SMA(+DX14) para n=14

ADX14i =(𝐴𝐷𝑋14𝑗 ∙13)+𝐷𝑋𝑖

14

+DI14: Valor del Positive Directional Indicator suavizado de los últimos

14 periodos. +DX14: Valor del Positive

Directional Index suavizado de los últimos 14 periodos.

ADX14: Valor del Average Directional Index suavizado de los

últimos 14 periodos.

CCI

TPi =∑ highi + lowi + closei

ni=1

n

CCIi =TPi − SMAi

0.015 ∙ DT20

highi: Precio máximo del periodo

actual. lowi: Precio mínimo del periodo

actual. closei: Precio de cierre del periodo

actual. n: número de periodos

DT20: Desviación típica de 20 periodos.

Indicador usado para la

identificación de nuevas tendencias o la identificación de

condiciones de sobrecompra o sobreventa de

activos.

MACD MACDi=EMA12(close)i - EMA26(close)i

SIGNAL= EMA9(MACD)

EMA12 (close): Media móvil

exponencial de 12 periodos del precio de cierre.

EMA26 (close): Media móvil exponencial de 26 periodos del

precio de cierre. EMA9(MACD): Media móvil

exponencial de 9 periodos del MACD.

Indicador de momentum.

Convierte dos medias móviles en

un oscilador de momento.

RSI

Gain1̅̅ ̅̅ ̅̅ ̅ =

∑ Gaini14i=1

14

Gaini̅̅ ̅̅ ̅̅ ̅ =

13 ∙ Gainj̅̅ ̅̅ ̅̅ ̅ + Gaini

14

Loss1̅̅ ̅̅ ̅̅ ̅ =

∑ Lossi14i=1

14

Lossi̅̅ ̅̅ ̅̅ ̅ =

13 ∙ Lossj̅̅ ̅̅ ̅̅ ̅ + Lossi

14

RSi =Gaini̅̅ ̅̅ ̅̅ ̅

Lossi̅̅ ̅̅ ̅̅ ̅

RSIi = 100 −100

1 + RSi

𝐆𝐚𝐢𝐧̅̅ ̅̅ ̅̅ ̅: Ganancias medias. 𝐋𝐨𝐬𝐬̅̅ ̅̅ ̅̅ ̅: Pérdidas medias.

RS: Fuerza relativa de cada periodo. RSI: Índice de Fuerza Relativa de

cada periodo.

Compara la magnitud de las

ganancias recientes frente a la magnitud

de las pérdidas recientes.

Stocastic Oscillator

%k =closei − minlow

maxhigh − minlow

%d=SMA3(%k)

closei:Precio de cierre del periodo

actual. minlow: El mínimo de los precios

mínimos del periodo estudiado (14 muestras).

maxhigh: El máximo de de los precios máximos del periodo

estudiado (14 muestras). SMA3(%k): Media de los últimos 3

periodos del oscilador %k

Muestra la localización del precio actual en

comparación con el máximo o el mínimo

alcanzado en periodos previos.

Page 5: Pablo Nieto Martín Supervisor: Dr. Teodoro Álamo …bibing.us.es/proyectos/abreproy/5730/fichero/Resumen+español+PFC... · el análisis predictivo del mercado Forex” ... aplicaciones

Aplicación de algoritmos de aprendizaje máquina para el análisis predictivo del mercado Forex

5

Como entradas al modelo, se estudiarán además algunas entradas derivadas del análisis

chartista. En concreto, la diferencia entre índices direccionales, la diferencia entre el precio de

cierre de cada periodo y la media móvil simple, la diferencia entre el MACD y el índice SIGNAL

y la diferencia entre %k y %d.

Tabla 3. Entradas al modelo de la SVM

Número Entrada Descripción

1 Closej Precio de cierre del periodo previo

2 Openj Precio de aperture del periodo previo

3 Highj Precio máximo del periodo previo

4 Lowj Precio de aperture del periodo previo

5 SMAj SMA de los últimos 14 periodos

6 ADX14j ADX de los últimos 14 periodos

7 DI+14j DI+ de los últimos 14 periodos

8 DI-14j DI- de los últimos 14 periodos

9 CCIj CCI de los últimos 14 periodos

10 MACDj MACD del último periodo

11 SIGNALj SIGNAL del último periodo

12 RSIj RSI del último periodo

13 %Kj %k del último periodo

14 %Dj %d del último periodo

15 difDIj Diferencia entre DI+14 y DI-14 del último periodo

16 difcloseSMAj Diferencia entre precio cierre y SMA del último periodo

17 difMACDSIGNALj Diferencia entre MACD y SIGNAL del último periodo

18 difstochj Diferencia entre %k y %d del último periodo

5. Máquinas de soporte vectorial (SVM)

También conocidas por sus siglas en inglés, SVM ,Support Vector Machine. Las máquinas de

soporte vectorial usan modelos lineales para representar una frontera de decisión no lineal en

el espacio origen. El algoritmo de la SVM construye un modelo que clasificará un nuevo juego

de datos en base a los datos originales para, después, construir un clasificador binario no

probabilístico y clasificar la nueva muestra de datos.

Para clasificar dicha muestra de datos, será necesario determinar un hiperplano para su

ordenación. Siendo a1, a2, …, an escalares distintos a cero, el espacio S consistente en aquellos

vectores X=[X1, X2, … Xn ] en el espacio Rd tal que, siendo c una constante, se clasifica como

hiperplano, cualquier subespacio en Rn que cumpla:

a1 x1 + a2 x2 + … + anxn = c

Para ser capaces de trabajar con una SVM, es necesario realizar un proceso de aprendizaje, el

cual radica en encontrar el hiperplano h(x)=0 que separe el espacio muestral X ∈ Rd según la

clasificación y ∈ {1,-1}. Este hiperplano será el que maximice la distancia al punto más cercano

de cada clase.

Tras este proceso de aprendizaje, es necesario evaluar el error cometido en la predicción. Para

ello se determina un conjunto de datos de test, que no hayan sido empleados en el proceso de

aprendizaje automático de la máquina de soporte vectorial y se comparan los resultados

obtenidos teóricos frente a los resultados prácticos.

Page 6: Pablo Nieto Martín Supervisor: Dr. Teodoro Álamo …bibing.us.es/proyectos/abreproy/5730/fichero/Resumen+español+PFC... · el análisis predictivo del mercado Forex” ... aplicaciones

Aplicación de algoritmos de aprendizaje máquina para el análisis predictivo del mercado Forex

6

El proyecto usará como mecanismo de inversión las opciones binarias, para las que se dan dos

posibles escenarios, la opción call, aplicable cuando el inversor vaticina que el precio del activo

subirá, y la opción put, donde el usuario cree que el activo disminuirá su valor. Para adecuar

las tres opciones que tiene un activo a lo largo del horizonte temporal, subir, bajar, o

permanecer constante, se denotarán dos sucesos. El suceso A, donde el precio subirá o

permanecerá constante con un aumento o una estabilidad de la cantidad invertida, y el suceso

B, donde el precio disminuye y, por tanto, una pérdida de la inversión por parte del usuario.

Una vez el espacio muestral puede ser discretizado en dos estados binarios, suceso A y B,

puede desarrollarse la etapa de aprendizaje de la SVM. Existen diferentes tipos de SVM a

emplear dependiendo del tipo de datos con los que se está trabajando, SVM de clasificación

lineal, empleada cuando los datos son separables mediante una línea recta de separación, es

decir, cuando la frontera de decisión del hiperplano cumple: 𝑥 𝜔𝑇𝑥 + 𝑏 = 0, las SVM con

margen de separación blando, donde debido al ruido que puedan tener los datos, o a errores

humanos en la toma de datos, no se exige que la SVM se adapte por completo a los datos, sino

que se dota a ésta de cierto margen para determinar el hiperplano separador que mejor se

adapta a estos datos. Por último, existen las SVM para clasificación no lineal de los datos.

Existen ciertos casos, donde los datos de entrada no pueden ser clasificados mediante una

función lineal.

Para trabajar con ese tipo de datos, será necesario transformar esos datos en un espacio de

dimensión mayor al muestral. Para ello se utilizará una función tal que Φ: ℜ𝑑 → 𝜁 y 𝑥 →

Φ(x). Las funciones que son capaces de realizar esta transformación se denominan funciones

kernel y, para poder obtener la frontera de separación se necesitará modificar obtener la

función resultado de la SVM de clasificación lineal para el hiperplano de separación máxima: h

(x)= ∑ yi ∝i xiT x n

i=1 + b por h (x)= ∑ yi ∝i K(𝑥𝑖 , x)𝑛𝑖=1 + b donde se sustituye el producto

vectorial xiT x por el espacio definido por la función kernel empleada.

En concreto, como funciones kernel, se emplearán:

Polynomial

K(x, x’) = (xT . x’ + c)

d

c ∈ ℜ, d ∈ ℵ Equation 1

Gaussian

K(x, x’) =𝑒−‖𝑥−𝑥´‖2

2𝜎2

σ > 0 Equation 2

Sigmoid

K(x, x¢) = tanh (s(xT ∙x’)+ r) s, r ∈ ℜ Equation 3

Según la función kernel empleada, y el valor de dichos parámetros, se obtendrán

diferentes fronteras de decisión. En el apartado de resultados de este proyecto, se

evaluará el modelo realizado aplicando distintas SVM, basadas en las diferentes funciones

kernel descritas y modificando los parámetros de éstas, se evaluará el escenario óptimo de

actuación para el posterior diseño del sistema de inversión. Para el entrenamiento de la

SVM, se empleará una función predefinida de la librería Matlab llamada fitcsvm.

Page 7: Pablo Nieto Martín Supervisor: Dr. Teodoro Álamo …bibing.us.es/proyectos/abreproy/5730/fichero/Resumen+español+PFC... · el análisis predictivo del mercado Forex” ... aplicaciones

Aplicación de algoritmos de aprendizaje máquina para el análisis predictivo del mercado Forex

7

Esta función entrena una SVM binaria y devuelve un modelo de SVM entrenado con sus

etiquetas y vectores de soporte. Como estructura, presenta la definida en la Figura 3,

donde la matriz X, es la matriz de entrada de datos, el vector Y es una fila con la

clasificación binaria de cada muestra, y la función kernel empleada.

Figura 4.Esquema de entradas y salidas de la función de entrenamiento de la SVM.

Se realizará una estandarización de los datos de entrada al modelo. Las entradas al modelo de

una muestra, tienen unas dimensiones muy dispares, por ello, es necesario realizar esta

estandarización para que contribuyan de igual modo al análisis ya que las entradas no se

miden en la misma escala.

Tabla 4. Ejemplo de magnitud de entradas al modelo para una muestra del USD/CHF

Close

price

t-1

Open

price

t-1

High

price t-1

Low

price

t-1

SMA t-1 ADX14

t-1 DI+14 t-1 DI-14 t-1 CCI t-1 MACD

SIGNAL

t-1

1.1199 1.12 1.12 1.1199 1.11941 37.32591 43.07253 12.07695 155.68627 0.76187 0.91935

Una vez termina el proceso de aprendizaje de la SVM, se compacta ésta para disminuir el

tamaño de la máquina de soporte vectorial. Un modelo más compacto de ésta, usará menos

espacio que la SVM, siendo ésta, la que alberga los datos. Una vez se ha compactado la SVM,

se desarrolla el proceso de predicción. Para ello, se utilizará la función predefinida por Matlab

llamada predict, la cual tiene como argumento de entrada la SVM creada y una nueva muestra

de datos de estructura y tamaño idénticos al empleado en la etapa de aprendizaje de la SVM.

Como salidas, arrojará la etiqueta de cada nueva muestra, bien sea un carácter, un número

lógico o un vector. Se programó la función para que devolviera el estado “u” si el activo se

prevé que crezca o mantenga su valor, o “d” si se prevé que el activo disminuya su valor.

Page 8: Pablo Nieto Martín Supervisor: Dr. Teodoro Álamo …bibing.us.es/proyectos/abreproy/5730/fichero/Resumen+español+PFC... · el análisis predictivo del mercado Forex” ... aplicaciones

Aplicación de algoritmos de aprendizaje máquina para el análisis predictivo del mercado Forex

8

Figura 5.Esquema de entradas y salidas de la función de predicción de la SVM.

Se da otro parámetro como salida de la función, el valor score devuelve un valor numérico

computado mediante la función de clasificación de la SVM de entrenamiento

f(x)=∑ αjyjG (xj, x) + bni=1 donde (α1, …, αn, b) son los parámetros estimados de la SVM y

G (xj, x) es el producto vectorial en el espacio entre x y los vectores de soporte y la suma de

éstos, incluye el conjunto de aprendizaje de las observaciones. Por defecto, el software

computa la probabilidad posterior óptima mediante el uso del método de Platt, consistente

en: realizar en primer lugar una validación cruzada en 10 iteraciones. Luego, se ajustan los

parámetros de la función sigmoidea a aquellos valores obtenidos en la validación cruzada y,

finalmente, se estiman las probabilidades posteriores introduciendo los valores de la

validación cruzada en la función sigmoidea ajustada.

7. Programa de inversión

Los mercados de divisas funcionan durante los cinco días laborables las 24 horas del día. El

modelo realizado está diseñado para muestras de intervalos de un minuto cada uno. Por lo

que, cada día, trabajaría con 1440 muestras y con 28800 muestras cada mes, asumiendo que

cada mes tiene 4 semanas laborables. Asimismo se establece una ratio de 1:3 para el periodo

de aprendizaje de la SVM, con lo que se emplearán 7200 muestras para el periodo de

aprendizaje de la SVM.

Para la gestión de la cantidad de dinero invertida, se utilizará la probabilidad condicionada de

un suceso. En la Teoría de la Probabilidad, la probabilidad condicional mide la probabilidad de

un evento dado, sabiendo que ha ocurrido otro inmediatamente anterior con el que guarda

relación.

Así pues la probabilidad de que ocurra un evento A, sabiendo que ha sucedido un evento B,

vendrá determinada por la probabilidad conjunta de que ocurran ambos sucesos dividido

entre la probabilidad de que ocurriera B. Matemáticamente, P(A|B)= P(A∩B)/ P(B). Así pues, y,

como punto de partida, para la primera inversión se obtendrá un 50% de probabilidad de error

o de acierto. Tras esta inversión inicial, las inversiones consecutivas serán ligeramente

diferentes. Hay dos escenarios. El primero de ellos, donde la predicción inicial ha sido correcta.

En ese caso, aplicando el criterio de porcentaje de acierto previsto (56.08%) y el concepto de

probabilidad condicionada, en esta segunda inversión habrá un 4/9 (44.44%) de probabilidad

de acierto.

Page 9: Pablo Nieto Martín Supervisor: Dr. Teodoro Álamo …bibing.us.es/proyectos/abreproy/5730/fichero/Resumen+español+PFC... · el análisis predictivo del mercado Forex” ... aplicaciones

Aplicación de algoritmos de aprendizaje máquina para el análisis predictivo del mercado Forex

9

Por otro lado, en el caso de que la predicción inicial fuese errónea, la probabilidad de acierto

en este caso serán de 5/9 (55.56%). Para valores consecutivos se continuará utilizando este

procedimiento como se puede observar en el ejemplo de la tabla 5.

Tras analizar la oferta de brókers de opciones binarias disponibles, se establece para el

proyecto un beneficio del 70% sobre el capital invertido, es decir, si se invierten 5 €, y la

predicción resulta favorable, se recuperan los 5 € y se obtienen 3.5€ de beneficio. Por otro

lado, en el supuesto que la inversión fuera desfavorable, se perdería la inversión inicial de 5 €.

Tabla 5. Ejemplo de inversión.

NZD/USD (Rendimiento esperado=56.08%)

Mejor SVM=Polinómica grado 1, 6º escenario (15 entradas)

Muestra Etiqueta esperada Probabilidad Etiqueta real Ganancias (€)

1 'u' 5/10 'u’ +3.5

2 'u' 4/9 'd' -5

3 'u' 4/8 'u' +3.5

4 'u' 3/7 'd' -5

5 'u' 3/6 'u' +3.5

6 'd' 2/5 'u' -5

7 'u' 2/4 'd' -5

8 'd' 2/3 'u' -5

9 'd' 2/2 'd' +3.5

10 'u' 1/1 'u' +3.5

Balance (€ ) -7.5

Es por ello por lo que la gestión de la cantidad invertida resulta tan importante, especialmente

cuando se comercia con operaciones binarias. Como se ve en el ejemplo a continuación, donde

se constata los beneficios/pérdidas obtenidos en una muestra de 10 unidades, se puede

comprobar en el balance total, última fila, que, por debajo de 6 aciertos en una muestra de 10

unidades, el balance resultante es negativo. Para ello, se diseña una fórmula con la que se

gestionen los activos de manera apropiada para minimizar las pérdidas del inversor.

Tabla 6. Número de aciertos en una muestra de 10 unidades

Dicha fórmula presenta las siguientes variables: en primer lugar, se definen los subíndices z,

con 1 ≤ z ≤7, en función del par de divisas que se trate, y, k, 7501 ≤ k ≤ 28800, que identifica el

periodo del periodo de predicción sobre el que se está tratando.

Aciertos 10 9 8 7 6 5 4 3 2 1 0

3,5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5

3,5 3,5 -5 -5 -5 -5 -5 -5 -5 -5 -5

3,5 3,5 3,5 -5 -5 -5 -5 -5 -5 -5 -5

3,5 3,5 3,5 3,5 -5 -5 -5 -5 -5 -5 -5

3,5 3,5 3,5 3,5 3,5 -5 -5 -5 -5 -5 -5

3,5 3,5 3,5 3,5 3,5 3,5 -5 -5 -5 -5 -5

3,5 3,5 3,5 3,5 3,5 3,5 3,5 -5 -5 -5 -5

3,5 3,5 3,5 3,5 3,5 3,5 3,5 3,5 -5 -5 -5

3,5 3,5 3,5 3,5 3,5 3,5 3,5 3,5 3,5 -5 -5

3,5 3,5 3,5 3,5 3,5 3,5 3,5 3,5 3,5 3,5 -5

Balance 35 26,5 18 9,5 1 -7,5 -16 -24,5 -33 -41,5 -50

Page 10: Pablo Nieto Martín Supervisor: Dr. Teodoro Álamo …bibing.us.es/proyectos/abreproy/5730/fichero/Resumen+español+PFC... · el análisis predictivo del mercado Forex” ... aplicaciones

Aplicación de algoritmos de aprendizaje máquina para el análisis predictivo del mercado Forex

10

Una vez definidos los subíndices, se definen las variables, Az, o acierto teórico del par de

divisas “z”, Rz o acierto real del par de divisas “z”, Fz o acierto real del par de divisas “z”. Como

contador, se definirá r100, un contador de iteraciones que se reseteará a uno una vez alcance

el valor 100. Asimismo, se define la probabilidad Pkz, que es la probabilidad condicional de la

muestra “k” del par de divisas “z”.

Pkz =AZ − RZ

10 − r100 + 1

Equation 3

Sin embargo, esta fórmula va a ser ligeramente modificada. El acierto teórico, el acierto real y

el contador de las iteraciones empleado para contabilizar las iteraciones del bucle, van a ser

suavizados para obtener una fuente de información más fiable. Por ejemplo, y según lo visto

en la Tabla 5, imaginemos que NZD/USD tiene un rendimiento del 56.08% según lo expuesto

anteriormente. Si este valor es redondeado, se puede decir que se espera que acierte 56 de

cada 100 veces, asumiendo un error de 0.1%. Sin embargo, trabajando sobre diez muestras y

redondeando dicho valor, se puede decir que la SVM será válida 6 de cada 10 veces,

incurriendo en un error del 7 por ciento. Es por ello por lo que se realiza un suavizado de estos

valores, quedando del siguiente modo:

Pkz =

AZ10 −

RZ10

10 −r10010

+ 1 Equation 4

Esta fórmula se aplicará a partir del periodo 7501 en adelante, hasta el 28800. En el primer

periodo de testeo del modelo, se realizará la inversión mínima en los siete pares de divisas ya

que no existen datos previos para aplicar la probabilidad condicional. Así pues, se define como

constantes del modelo, Imin que representa la inversión mínima establecida y C0 que se trata de

un coeficiente unitario. Más adelante, se estudiará el impacto que tiene la variación de este

coeficiente en el rendimiento final del modelo y se obtendrá el óptimo para un intervalo dado.

Así pues, la cantidad invertida en cada periodo queda definida del siguiente modo:

Imin si ((Fj/10)-(R j/10))<0

Imin + Co ∙ (((Fj

10) − (

Rj

10)) ∙ 0.7 ∙ Imin) * c.c.

El modelo programado funcionará del siguiente modo: en primer lugar, los datos son

recolectados. Cuando esto está hecho, se entrenará una SVM para cada par de divisas.

si Pkz>0.5

Iij

0 c.c.

*c.c = caso contrario

Page 11: Pablo Nieto Martín Supervisor: Dr. Teodoro Álamo …bibing.us.es/proyectos/abreproy/5730/fichero/Resumen+español+PFC... · el análisis predictivo del mercado Forex” ... aplicaciones

Aplicación de algoritmos de aprendizaje máquina para el análisis predictivo del mercado Forex

11

Entonces, se tendrán siete SVM disponibles para comenzar a trabajar en el modelo predictivo.

Cada SVM ofrecerá una predicción para cada muestra de 1 minuto de valor. Cuando se termina

esta parte del proceso, el programa creado, probobtention.m ha terminado. La siguiente etapa

es determinar la etiqueta para muestra. Para ello, se crea checky.m, el cual recoge los datos de

cada par de divisas y analiza el mismo periodo que la etiqueta predicha anteriormente. Estos

valores, serán usados como entrada del programa moneyin.m, el cual es responsable de

determinar la cantidad de dinero comerciada en cada transacción.

Figura 6.Esquema de entradas y salidas de la función de predicción de la SVM.

8. Resultados

La siguiente tabla muestra el rendimiento obtenido de cada SVM. Esta tabla está orientada a

determinar cuál es la función kernel que mejor se adapta al comportamiento de cada par de

divisas. Estos resultados son los obtenidos introduciendo como datos de entrada las 18

variables expuestas en el apartado 4. A continuación se mostrarán los resultados obtenidos

reduciendo esas 18 entradas al modelo. En caso de que una reducción del número de entradas

no tenga un impacto directo en el rendimiento del modelo, se empleará el escenario con un

menor número de entradas para reducir el coste computacional del modelo.

Tabla 7. Número de aciertos en una muestra de 10 unidades

GAUSSIAN LINEAR POLYNOMIAL Sigmoid

EUR/USD 52.60% 56.08% 56.08% 56.04%

USD/JPY 50.52% 56.16% 55.76% 55.76%

USD/CHF 52.48% 57.08% 57.80% 57.56%

GBP/USD 53.48% 54.08% 53.60% 54.24%

USD/CAD 50.44% 60.48% 60.48% 60.48%

NZD/USD 52.48% 55.64% 55.64% 55.68%

AUD/USD 51.76% 51.88% 55.44% 55.44%

Para evaluar el impacto de la reducción del número de entradas al modelo, se emplearán los

siguientes 9 escenarios: En primer lugar, el primer escenario estará compuesto por las

variables: Open price t-1, high price t-1, low price t-1, close price t-1, SMA, ADX14, DI + 14, DI-

14. El segundo escenario estará compuesto por todas las anteriores más el CCI. Al tercero, se le

añadirán los indicadores MACD y SIGNAL, mientras que al cuarto, se le añadirá el RSI.

Page 12: Pablo Nieto Martín Supervisor: Dr. Teodoro Álamo …bibing.us.es/proyectos/abreproy/5730/fichero/Resumen+español+PFC... · el análisis predictivo del mercado Forex” ... aplicaciones

Aplicación de algoritmos de aprendizaje máquina para el análisis predictivo del mercado Forex

12

El quinto escenario estará compuesto por todos los anteriores y los indicadores estocásticos,

%k y %d. En el sexto escenario se añadirá la diferencia entre indicadores direccionales,

mientras que en el séptimo se añadirá la diferencia entre el precio de cierre y la media móvil

simple. El octavo escenario tendrá como entradas todas las descritas anteriormente más la

diferencia entre el MACD y el SIGNAL. Por último, el noveno escenario añadirá la diferencia

entre %k y %d. A continuación se procede a lanzar el modelo para la función kernel gaussiana y

se evalúa el rendimiento en cada uno de los 9 escenarios y para los siete pares de divisas.

Figura 7.Diagrama sombreado del rendimiento de la función gaussiana.

De acuerdo a la escala de color, el mejor escenario se obtendría para el par EUR/USD

obteniendo un 55.72% en el primer escenario, con 8 entradas al modelo.

Por otro lado, se puede constatar un valle abrupto, donde el rendimiento cae por debajo del

50 por ciento (49.32%). En la Figura 7, se detalla el diagrama del rendimiento de la función

lineal. Esta función muestra un porcentaje bastante similar a lo largo de los 9 escenarios para

los 7 pares de divisas.

Figura 7.Diagrama sombreado del rendimiento de la función gaussiana.

Por ello, se decide evaluar la diferencia entre el valor mínimo y el máximo para cada par de

divisas. En los pares de divisas cuya diferencia sea menor al 1% se tomará el escenario donde

el coste computacional sea menor, es decir, un menor número de entradas.

Page 13: Pablo Nieto Martín Supervisor: Dr. Teodoro Álamo …bibing.us.es/proyectos/abreproy/5730/fichero/Resumen+español+PFC... · el análisis predictivo del mercado Forex” ... aplicaciones

Aplicación de algoritmos de aprendizaje máquina para el análisis predictivo del mercado Forex

13

Tabla 8. Diferencia entre rendimiento máximo y mínimo para cada par de divisas de la función lineal

Máximo Mínimo Diferencia

EUR/USD 54.20% 56.04% 0.16%

USD/JPY 56.92% 55.72% 1.20%

USD/CHF 57.64% 57.08% 0.56%

GBP/USD 54.44% 53.40% 1.04%

USD/CAD 60.48% 60.28% 0.20%

NZD/USD 56.00% 55.40% 0.60%

AUD/USD 56.28% 55.64% 0.64%

A continuación, se evaluará el rendimiento de la función polinómica. Matlab, por defecto,

asocia una función polinómica de orden tres, con lo que en primer lugar se evaluará esta

función, y, posteriormente, se evaluará el rendimiento obtenido modificando el orden de esa

función para los pares de divisas estudiados. Como se puede ver en la Figura 8, se muestra un

rendimiento final de la cartera bastante homogéneo. No obstante, el par USD/CAD es el que

alcanza un mayor valor de hasta el 60.56% en el primer escenario, 8 entradas al modelo,

mientras que el par AUD/USD presenta el mínimo de la muestra, con un 46.20%.

Figura 8.Diagrama sombreado del rendimiento de la función polinómica.

Por último queda evaluar el rendimiento en la distribución sigmoidea. Esta función presenta el

mismo valor a lo largo de los 9 escenarios estudiados, por tanto, se puede decir que, para

nuestro modelo, no existe una relación clara entre el número de entradas y el rendimiento

final de nuestro modelo. Por tanto, se utilizarán los valores del primer escenario de cada par

de divisas para disminuir el coste computacional del modelo.

Figura 9.Diagrama sombreado del rendimiento de la función sigmoidea.

Page 14: Pablo Nieto Martín Supervisor: Dr. Teodoro Álamo …bibing.us.es/proyectos/abreproy/5730/fichero/Resumen+español+PFC... · el análisis predictivo del mercado Forex” ... aplicaciones

Aplicación de algoritmos de aprendizaje máquina para el análisis predictivo del mercado Forex

14

Una vez se repite el proceso de evaluación del rendimiento obtenido en la función polinómica,

estudiando el comportamiento de ésta para los grados del uno al 5, se obtienen los siguientes

valores como óptimos de la SVM implementada para nuestro modelo. Estos valores serán los

que definirán los aciertos teóricos, Az, que se aplicarán en la fórmula de gestión de capital

invertido.

Tabla 9. Mejor escenario de trabajo de la SVM para los pares de divisas estudiados

Mejor escenario obtenido

Par de divisas Rendimiento Función kernel Escenario de

entradas

EUR/USD 56.48% Polinómica gr.1 #1

JPY/USD 56.72% Lineal #1

USD/CHF 57.80% Polinómica gr.3 #8

GBP/USD 54.64% Polinómica gr.2 #6

USD/CAD 60.72% Polinómica gr.2 #6

NZD/USD 56.08% Polinómica gr.1 #6

AUD/USD 56.28% Lineal #5

8.1. Rendimiento obtenido

Para evaluar el rendimiento del modelo, se va a estudiar el periodo del 16 de Febrero de 2009

al 20 de Marzo de 2009. Para ello, se invertirá inicialmente una cantidad de 1000 €, y se

establecerán 5 € como la mínima inversión. El resultado obtenido es el que se muestra en la

Figura 10. Se puede apreciar una tendencia alcista, con dos máximos que destacan sobre el

global de la gráfica, un máximo local y un máximo absoluto. El 18 de Marzo, alcanza el valor

máximo de 2245.90 €, antes de empezar a decrecer ligeramente hasta el valor final de los

1742.09 €, equivalente a un beneficio del 74.21% sobre el total.

Figura 10.Valor de la cartera de inversión a lo largo del periodo de inversión

En el gráfico se han identificado 6 periodos, al principio de la etapa de predicción del

modelo, existe una ligera bajada desde los 1000 € iniciales hasta los 888.1 €. En este

intervalo, compuesto por 487 periodos, las pérdidas alcanzan una valor de 0.23€/minuto

de media.

Page 15: Pablo Nieto Martín Supervisor: Dr. Teodoro Álamo …bibing.us.es/proyectos/abreproy/5730/fichero/Resumen+español+PFC... · el análisis predictivo del mercado Forex” ... aplicaciones

Aplicación de algoritmos de aprendizaje máquina para el análisis predictivo del mercado Forex

15

0

10441

5405

677 1430 999

2135

0

2000

4000

6000

8000

10000

12000

AUD/USD USD/CAD USD/CHF EUR/USD GBP/USD USD/JPY USD/NZD

Número de posiciones tomadas

56,09% 51,75%

79,91% 81,47%

51,95% 51,05%

43,91% 48,25%

20,09% 18,53%

48,05% 48,95%

0%

20%

40%

60%

80%

100%

USD/CAD USD/CHF EUR/USD GBP/USD USD/JPY USD/NZD

Distribución de error y acierto ErrorAcierto

Posteriormente, revierte la tendencia, y comienza un corto periodo abrupto de subida,

durante 121 periodos, donde alcanza la cota de los 1089.9 €, subida relativa del 22.72% en

este periodo. A continuación, sigue una tendencia lateral decreciente durante 3235

muestras, con unas pérdidas por valor de -0.04€/minuto. Seguidamente, comienza una

escalada en el valor de la cartera, hasta alcanzar el máximo relativo del periodo, 2072.2 €

desde los 968.8€ de partida de ese periodo, subida equivalente al 113.89% en dicho

periodo. Seguidamente, revierte esta tendencia cayendo hasta los 1372.5 € a final del periodo.

Finalmente, alcanza el máximo absoluto, con un incremento del valor de la cartera del 63.63%

desde los 1372.5 € iniciales hasta los 2245.8 € del punto máximo del intervalo. Concluye este

periodo con una ligera bajada, donde alcanza el valor final de los 1742.1€ al terminar este

rango, lo que supone un incremento absoluto del 74.21% del total, desde los 1000 € hasta los

1742.1 €. Anteriormente ya vimos que, en función de la probabilidad obtenida, el modelo

seleccionaba en qué par de divisas invertir seleccionando el par con una mayor probabilidad

de acierto e invirtiendo en él.

Figura 11.Valor de la cartera de inversión a lo largo del periodo de inversión

En la Figura 11, se muestran el número de posiciones tomadas por el modelo según el par de

divisas. Se indica que el modelo, en ninguna de las muestras del periodo de predicción ha

tomado la posición del par de divisas AUD/USD, lo que significa que, a lo largo de dicha etapa

nunca ha sido el par de divisas con mayor probabilidad que el resto. Sobresale con diferencia el

par USD/CAD con cerca de la mitad de posiciones tomadas del total, lo cual tiene sentido ya

que es el par con un mayor rendimiento teórico, y por tanto, un numerador mayor en el

cociente determinado de la probabilidad condicional. En segundo lugar, se encuentra el

USD/CHF, el segundo par de divisas con mayor rendimiento teórico y a mucha distancia se

encuentra el resto de pares de divisas. No sólo resulta interesante cuántas veces ha

intervenido el modelo en cada par de divisas sino cuál ha sido la eficiencia de estas posiciones.

Figura 12. Porcentaje de error y acierto obtenido para cada par de divisas

Page 16: Pablo Nieto Martín Supervisor: Dr. Teodoro Álamo …bibing.us.es/proyectos/abreproy/5730/fichero/Resumen+español+PFC... · el análisis predictivo del mercado Forex” ... aplicaciones

Aplicación de algoritmos de aprendizaje máquina para el análisis predictivo del mercado Forex

16

Como se puede ver en la Figura 12, todos los porcentajes de acierto de los siete pares de

divisas son mayores que el 50%. El porcentaje de acierto mayor lo representa el par GBP/USD

con un porcentaje superior al 80%. Previamente, el porcentaje de acierto teórico esperado

para este par de divisas era del 54.64%, lo que representa una mejora considerable. Asimismo,

el par EUR/USD está ligeramente por debajo del 80%, superando también el rendimiento

teórico esperado, que en su caso era del 56.48%. El resto de pares de divisas presenta un

porcentaje de acierto entre el 50% y el 60% y en todos los casos ligeramente inferior al

rendimiento teórico esperado, con desviaciones respecto a éste de entre el 8% y el 10%.

8.2. Optimización del rendimiento

Anteriormente, en el punto 7, se determinó un coeficiente, C0, unitario para el propósito de

cálculo del modelo inicial. Los resultados obtenidos se han dado mediante el uso de la

equivalencia de este coeficiente con la unidad. Sin embargo, de acuerdo a la fórmula

propuesta para la cantidad invertida en el caso que Pkz sea mayor que 0.5 y que (Fj -R j)≥0,

Imin + Co ∙ (((Fj

10) − (

Rj

10)) ∙ 0.7 ∙ Imin) se trata de un coeficiente multiplicador del segundo

sumando. Por ello, se pretende analizar cuál es el valor óptimo de dicho coeficiente. Para ello

se empleará un algoritmo llamado Búsqueda de la sección áurea. Dicho método se emplea

para encontrar el máximo o el mínimo de un intervalo. Su nombre radica en el hecho de que el

algoritmo mantiene los valores de la función para aquellos puntos cuya distancia forman la

sección áurea. Es un método de búsqueda de las raíces que divide un intervalo dado [a,b] para,

posteriormente, seleccionar el intervalo donde la raíz debe encontrarse.

Este método encuentra el factor de reducción óptimo para el intervalo estudiado y, para ello,

usa una condición de salida determinada por una tolerancia o una diferencia entre extremos

del intervalo introducida por el usuario. Para encontrar c y d dentro del rango estudiado [a,b],

existen dos casos posibles en un problema de minimización. En primer lugar, en caso que f(c) <

f(d) el rango [a,b] se convertirá en [a,d], con una reducción de intervalo equivalente a d =(1 -

ϕ).a + ϕ b. Por otro lado, si f(c) > f(d) el intervalo [a,b] pasa a ser [c,b] una reducción del

intervalo equivalente a: c = ϕ.a + (1 - ϕ)b . Si en lugar de trabajar con un problema de

minimización, se trabajase con un problema de maximización, seguiría el procedimiento

dual. Para determinar el valor de ϕ, se utilizará, a modo de ejemplo, un problema de

minimización en el rango [a,b]=[0,1]. En este supuesto, c=(1 - ϕ) y será necesario

determinar si d se ubica a la izquierda o a la derecha de este punto.

En primer lugar, se trabajará con la hipótesis en la cual d se ubica a la izquierda de c.

Sustituyendo en las ecuaciones determinadas arriba, 1 - ϕ = (1 - ϕ)·0 + ϕ.ϕ o lo que resulta

equivalente, ϕ2+ ϕ -1=0, donde la raíz positiva de esta ecuación cuadrática, será c =−1+ √5

2

lo que equivale a 0.6180. En el caso contrario, donde d se ubica a la derecha de c, 1 - ϕ = ϕ

·0 + (1 - ϕ)· ϕ, lo que equivale a (1- ϕ)2=0, la cual ofrece como valor de reducción la

unidad, el cual, no arroja ninguna reducción, así que se excluye esta posibilidad. Como

condición de salida del bucle, se iterará este método hasta conseguir una diferencia entre

los extremos de intervalo [a,b] menor o igual que 10-3.

Page 17: Pablo Nieto Martín Supervisor: Dr. Teodoro Álamo …bibing.us.es/proyectos/abreproy/5730/fichero/Resumen+español+PFC... · el análisis predictivo del mercado Forex” ... aplicaciones

Aplicación de algoritmos de aprendizaje máquina para el análisis predictivo del mercado Forex

17

Tabla 10. Resultados de la aplicación del método de búsqueda de la sección áurea

a b c f(c) d f(d) a-b

1,00000000 2,00000000 1,38196601 628,70 1,61803399 1387,10 1,00000000

1,38196601 2,00000000 1,61803399 1387,10 1,76393202 1947,20 0,61803399

1,61803399 2,00000000 1,76393202 1947,20 1,85410197 2274,20 0,38196601

1,76393202 2,00000000 1,85410197 2274,20 1,90983006 2449,50 0,23606798

1,85410197 2,00000000 1,90983006 2449,50 1,94427191 2550,90 0,14589803

1,90983006 2,00000000 1,94427191 2550,90 1,96555815 2638,00 0,09016994

1,94427191 2,00000000 1,96555815 2638,00 1,97871376 2690,90 0,05572809

1,96555815 2,00000000 1,97871376 2690,90 1,98684438 2710,80 0,03444185

1,97871376 2,00000000 1,98684438 2710,80 1,99186938 2716,10 0,02128624

1,98684438 2,00000000 1,99186938 2716,10 1,99497500 2716,10 0,01315562

1,98684438 1,99497500 1,98995000 2712,10 1,99186938 2716,10 0,00813062

1,98995000 1,99497500 1,99186938 2716,10 1,99305562 2716,10 0,00502500

1,98995000 1,99305562 1,99113624 2712,30 1,99186938 2716,10 0,00310562

1,99113624 1,99305562 1,99186938 2716,10 1,99232249 2716,10 0,00191938

1,99113624 1,99232249 1,99158935 2716,10 1,99186938 2716,10 0,00118624

1,99113624 1,99186938 1,99141628 2714,90 1,99158935 2716,10 0,00073314

Cuando el programa termina, se observa que la diferencia entre a y b es 7.3. 10-4 y el máximo

valor de C0 se encuentra emplazado entre 1.99141628 y 1.99158935. Se tomará la media

de ambos y se evaluará el valor de la función en dicho punto para determinar el máximo

obtenido. Así pues, para C0 = 1.99150282 el valor máximo obtenido es de 2714.90 €.

A lo largo de la definición del modelo se han definido varias constantes, tales como el

número de periodos estudiados, fijado en 14 periodos, la cantidad mínima de inversión,

5€, o la cantidad inicial de la cartera de inversión, fijada a 1000€ iniciales. No obstante, la

variación de éstas puede modificar el valor final de la cartera. Por ello, se va a evaluar el

modelo modificando estas variables.

En primer lugar, modificando el número de periodos, se obtiene el mismo valor final de la

cartera, 1742.1€ para un número de periodos estudiado de 9, 12, 14, 15, 18, 20 y 25

periodos. En cuanto la cantidad mínima invertida, denotada de aquí en adelante por “m”,

se evalúa el modelo para m=2, 3, 4, 5, 7, 10, 12, 15, 20, 30, 50, 100. El primer escenario no

consigue terminar la simulación. En el periodo 23244 alcanza un valor final de -1.2€ (<0)

con lo que finaliza la simulación. El segundo y tercer periodo, a pesar de conseguir

terminar la simulación, muestras rendimientos finales sobre el capital inicial invertido de -

77.69% y -1.29% respectivamente. Para los valores consecutivos, se dan porcentajes

positivos sobre la cantidad inicial invertida, los cuales se muestran en la gráfica.

Page 18: Pablo Nieto Martín Supervisor: Dr. Teodoro Álamo …bibing.us.es/proyectos/abreproy/5730/fichero/Resumen+español+PFC... · el análisis predictivo del mercado Forex” ... aplicaciones

Aplicación de algoritmos de aprendizaje máquina para el análisis predictivo del mercado Forex

18

-100

900

1900

2900

3900

4900

5900

6900

7900

8900

7500 9500 11500 13500 15500 17500 19500 21500 23500 25500 27500

Ren

dim

ien

to(%

)

Periodos

Evolución de la inversión mínima m=5

m=7

m=10

m=12

m=15

m=20

m=30

m=50

m=100

Figura 14. Rendimiento de la cartera para m=5 hasta m=100

Con estos datos, se puede demostrar que el rendimiento final de la cartera al final del periodo

de estudio con respecto a la cantidad mínima invertida en cada transacción sigue una relación

lineal según la curva y=74.455x – 293.06, siendo la coordenada de ordenadas el rendimiento

final de la cartera y la coordenada de abscisas la cantidad invertida en cada transacción. En

cuanto al valor inicial de la cartera, de aquí en adelante “n”, el cual se fijó inicialmente en

1000€, se evaluará para n=50, 100, 200, 250, 500, 750, 1000, 1500, 2000, 2500, 5000, 7500,

10000. Los dos primeros escenarios no consiguen terminar el periodo de simulación del

modelo, ambos pierden el capital inicial en los periodos 7670 y 7991 respectivamente. Sin

embargo, los escenarios consecutivos, muestran un rendimiento positivo al final del periodo

de simulación del modelo. Como se puede observar en la Figura 15, a medida que aumenta el

valor inicial de la cartera, el rendimiento final es menor. Para determinar cuál es exactamente

la relación entre la cantidad inicial invertida y el rendimiento final de la cartera, se comparan

los valores finales de ésta frente a la cantidad inicial invertida y se obtiene una relación de tipo

potencial que se ajusta a la curva y=74210x-1 donde la y representa el rendimiento final de la

cartera y la coordenada x el valor inicial de la cartera.

Figura 15. Rendimiento de la cartera para n=200 hasta n=1000

-50

50

150

250

350

450

550

650

7500 9500 11500 13500 15500 17500 19500 21500 23500 25500 27500

Pe

rfo

rman

ce(%

)

Periodos

Evolución del valor inicial de la cartera n=200

n=250

n=500

n=750

n=1000

n=1500

n=2000

n=2500

n=5000

n=7500

n=10000

Page 19: Pablo Nieto Martín Supervisor: Dr. Teodoro Álamo …bibing.us.es/proyectos/abreproy/5730/fichero/Resumen+español+PFC... · el análisis predictivo del mercado Forex” ... aplicaciones

Aplicación de algoritmos de aprendizaje máquina para el análisis predictivo del mercado Forex

19

9. Conclusiones

De los datos obtenidos pueden obtenerse conclusiones acerca de los parámetros más

indicados para el uso de SVM en nuestro modelo acerca del rendimiento de las funciones

kernel, el rendimiento teórico de éstas frente al real, o acerca del número óptimo de entradas

al modelo. En cuanto a las entradas usadas en el modelo teniendo en cuenta el escenario de la

SVM óptima para cada par de divisas, se observa, que, de media, se obtienen 13.3 entradas al

modelo frente a las 18 diseñadas, donde sólo un escenario, utiliza las 18 entradas al modelo

para obtener su mejor registro teórico. A excepción de este par de divisas, USD/CHF, la

diferencia entre el precio de cierre del periodo previo y la media móvil simple, la diferencia

entre el MACD y el SIGNAL, parecen tener bajo o ningún impacto en la predicción de nuestro

modelo.

La función kernel que ofreció el mejor escenario para un mayor número de pares de divisas fue

la función polinómica. Sin embargo, el grado de dicha función no fue homogéneo. Mientras

que la función polinómica de grado 1 y 2 representaron el mejor escenario en dos casos

respectivamente, el quinto escenario donde la función polinómica resultó ser la función kernel

que mejor rendimiento presentaba, fue de orden 3. En este modelo se analizaron hasta

funciones polinómicas de grado 5, no representando en ninguno de los siete pares de divisas el

escenario óptimo.

Resulta importante constatar, que, a lo largo del análisis de datos, se han encontrado algunas

limitaciones en la aplicabilidad de las máquinas de soporte vectorial en la predicción de

etiquetas futuras. Es necesario encontrar un compromiso de equilibrio entre el coste

computacional del modelo y la calidad de la predicción.

Asimismo se ha constatado que una gestión apropiada del dinero invertido en cada

transacción puede mejorar el rendimiento del modelo, minimizando las pérdidas y

maximizando las ganancias. Resulta evidente el impacto que tiene tanto la cantidad inicial con

la que el inversor debe empezar a invertir, en nuestro modelo; por debajo de 200€,

únicamente se obtendrían pérdidas, así como la cantidad comerciada en cada transacción,

donde ocurre lo mismo si se decide invertir menos de 5€ en cada opción binaria.

Es importante recordar el coste asociado a cada transacción cuando se manejan opciones

binarias. Las ventajas de este método de inversión fueron discutidas previamente, pero el alto

margen de pérdida en caso que la predicción fuera errónea frente al margen de ganancias en

caso de que fuera correcta, hace considerar otras opciones de inversión alternativas a las

usadas en este modelo para evaluar los resultados.

Una de las futuras líneas de continuación de este proyecto sería la búsqueda de una base de

datos alternativa y una validación cruzada de datos para completar esos periodos que

actualmente, la muestra con la que se ha trabajado, no tiene. Asimismo, se ha evaluado el

sistema creado para inversiones de un minuto y sería interesante investigar la fiabilidad del

sistema en otros rangos de tiempo, dentro del corto plazo, predicciones para 2, 5 y 10 minutos

podrían corroborar o contrastar los buenos resultados obtenidos en el modelo para muestras

de intervalos de un minuto.

Asimismo, comparar los resultados obtenidos mediante el uso de SVM frente a otros métodos

de Machine Learning como las redes neuronales, sería una futura línea de continuación del

proyecto.

Page 20: Pablo Nieto Martín Supervisor: Dr. Teodoro Álamo …bibing.us.es/proyectos/abreproy/5730/fichero/Resumen+español+PFC... · el análisis predictivo del mercado Forex” ... aplicaciones

Aplicación de algoritmos de aprendizaje máquina para el análisis predictivo del mercado Forex

20

10. Bibliografía

[1] Han, J. & Kamber, M. 2006, Data mining: concepts and techniques, 2ª edn, Morgan

Kaufmann, San Francisco.

[2] Arturo de la Escalera, 2001. Vision por Computador. Fundamentos y Metodos. 1st Edition.

Prentice Hall.

[3] Platt, J. 2000. “Probabilistic outputs for support vector machines and comparisons to

regularized likelihood methods”. In: Advances in Large Margin Classifiers. Cambridge, MA: The

MIT Press, 2000, pp. 61–74.

[4] Mark Levinson, 2004. Guide to Finantial Markets. The Economist.

[5] Kecman V., T. -M. Huang, and M. Vogt. “Iterative Single Data Algorithm for Training Kernel

Machines from Huge Data Sets: Theory and Performance.” In Support Vector Machines:

Theory and Applications.Edited by Lipo Wang, 255–274. Berlin: Springer-Verlag, 2005.

[6] Platt, J. Sequential Minimal Optimization: A Fast Algorithm for Training Support Vector

Machines, Microsoft Research Technical Report MSR-TR-98-14, 1998.

[8] Geral Appel, 2005. “Technical Analysis Power Tools for Active Investors”. Financial Times

Prentice Hall. J. Welles Wilder, 1978. “New Concepts in Technical Trading Systems, Trend

Research”

[9] Richard J. Bauer, 1999. “Technical Markets Indicators: Analysis & Performance”.Wiley

Trading Advantage.

[10] Nello Cristianini, 2004 . “Kernel Methods for Pattern Analysis”. Cambridge University Press

[11] Vapnik, V,1995. “Support-vector networks”. Springer S.R. Gunn, 1998. University of

Southhampton. “Support Vector Machines for Classification and Regression”. Faculty of

Engineering, Science and Mathematics School of Electronics and Computer Science.