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
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).
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.
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.
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.
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.
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.
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.
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
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
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.
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.
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.
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.
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
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.
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.
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
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.
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.