Escolar Documentos
Profissional Documentos
Cultura Documentos
ABSTRACT
In this thesis we have developed a methodology to obtain
automatic trading systems based on a technical analysis approach by
using artificial neural networks.
The dissertation begins with a study of the different
components of technical analysis (moving averages, oscillators,
reversal days) and with an explanation of their use to take
investing decisions. According to this analysis we formulate a model
for developing automatic trading systems based in artificial neural
networks. This model takes elements from technical analysis in order
to generate input variables and produces outputs that support
adopting long or short positions. The development of this model
requires a clear definition of the input signals, the output signals, the
indicators and the objective function.
The input signals are criteria that permit the identification of
market situations in which it might be a chance to open a new
position. The output signals indicate the price at which the positions
should be closed. The indicators are explanatory variables that we
use to decide whether an input signal should be executed. The
objective function is a function that models the profit that is obtained
by opening a contract with an input signal and closing it with an
output signal.
In this fashion, a functional approximation problem is
formulated. We shall try to set up a relationship between a set of
selected indicators and an objective function evaluated at the time an
input signal is detected.
In order to solve this functional approximation problem we
have used an artificial neural network, in particular a Multilayer
Perceptron. We have proposed two different approaches in order to
guide the training process of the Multilayer Perceptron: the
minimization of the mean quadratic error or the maximization of the
operation average profit.
To facilitate the utilization of this kind of neural network a
library coded in Visual Basic has been implemented; it incorporates a
low memory Quasi-Newton algorithm to adjust the network
weights.
The automatic trading systems obtained with this technology
have offered positive results during periods not explicitly considered
in the training process. This implies that it is possible to obtain
profits in financial markets using technical analysis with this
procedure. Nevertheless, positive results of these automatic trading
systems can not be guaranteed in the future.
The key drawback that has been detected in the development
of this thesis has been that, while the results obtained in one period
improve during the optimization process, the results in other periods
worsen.
The application developed can represent graphics especially
designed for technical analysis studies and can obtain automatic
trading systems. Additionally, the application incorporates a visual
interface that supports real-time investing decisions through a Web
page.
Nunca ser suficiente agradecimiento escribir aqu estos nombres, pero no habra podido
empezar y acabar este proyecto si no fuera por
Mi familia, lvaro Ballo, Grabiel Desmonts, Leonora Jimnez, Elisa Lpez y Jess Peco
Contenido
1 INTRODUCCIN........................................................................................................ 5
5.1 Conclusiones.................................................................................101
5.2 Futuros desarrollos ......................................................................102
6 APROXIMACIN FUNCIONAL MEDIANTE REDES NEURONALES
ARTIFICIALES ......................................................................................................... 105
6.1 Introduccin..................................................................................105
6.2 Aproximacin funcional .............................................................105
6.3 Redes neuronales artificiales ......................................................109
6.3.1 Definicin y caractersticas de una red neuronal artificial .................... 110
6.3.2 Paradigmas de aprendizaje .................................................................... 111
6.3.3 Principales estructuras conexionistas.................................................... 113
Captulo 1
Introduccin
1 Introduccin 5
1 Introduccin
Por otro lado, son muchos los investigadores que afirman que los
mercados financieros s evolucionan siguiendo unos determinados
patrones o tendencias, pudindose deducir reglas a partir de las que se
podrn establecer estrategias con las que, tericamente, se obtendran
beneficios. En este proyecto se emplear un enfoque que trata de
determinar estas reglas a partir de la evolucin de los precios: el anlisis
tcnico.
6 1.2 Introduccin
1.2 Objetivos
Por otra parte se quieren explorar las posibilidades ofrecidas por una
rama de la inteligencia artificial, las redes neuronales artificiales, as como
desarrollar unas libreras que permitan utilizar esta tecnologa de una
forma sencilla.
Captulo 2
Anlisis tcnico
2 Anlisis tcnico 9
2 Anlisis tcnico
Aunque las ideas principales son las mismas para todos los inversores
que aplican los conceptos del anlisis tcnico, no siempre se aborda el
2 Anlisis tcnico 11
El primer grupo est formado por aquellos inversores que usan como
herramienta principal los grficos. Sus mtodos se basan en identificar en
los grficos figuras o patrones que se han repetido a lo largo de la historia.
El anlisis que desarrollan estos inversores es subjetivo; el xito depende en
gran medida de la habilidad y experiencia del tcnico analizando los
grficos.
Charles Dow y Edward Jones fundaron Dow Jones and Company en 1882
y, todava hoy en da, la mayora de los sistemas de inversin basados en el
12 2.3 Anlisis tcnico
Posteriormente tiene lugar una fase en la que operan los inversores que
se basan en algn sistema de seguimiento de tendencias. En esta fase el
precio avanza rpidamente y mejoran las noticias del estado del
mercado en los medios de comunicacin.
Dow expres esta idea refirindose a los ndices, creados por Dow Jones
and Company, en los que se reflejaba la fuerza de los sectores industrial y del
ferrocarril de EEUU (Industrial and Rail Averages). Postula que, para que un
movimiento alcista sea importante, debera apreciarse en ambos ndices,
aunque no necesariamente de forma simultnea, un patrn con picos y
valles ascendentes. Cuanto ms cerca estn las seales de ambos ndices,
ms significativo ser este indicador.
Una tendencia no termina hasta que se detecta una seal definitiva de que el
mercado ha cambiado de direccin
Los soportes y las resistencias ofrecen claras seales de giro cuando son
violados. Si, en una tendencia alcista, el precio desciende por debajo de un
16 2.4 Anlisis tcnico
Por otro lado, los toques en una lnea de tendencia son puntos en los que
puede interesar entrar en el mercado, puesto que se prev que si no se ha
roto la lnea de tendencia el precio mantendr la tendencia actual.
i Vj
MM i (n) =
j = i n +1 n
i
Slo con este concepto un inversor podra elaborar una parte importante
de un sistema de trading simple: las seales de entrada en el mercado. En
este caso, las nicas variables de decisin que necesitaramos definir para
generar las seales de compra seran el nmero de das que se emplearan
en el clculo de la media mvil y, en caso de que quisiramos esperar a que
la inclinacin de la media superase un determinado valor, el valor crtico
de inclinacin de la media mvil.
Ilustracin 2.7. Uso de una media mvil de 10 das para producir seales de compra
Ilustracin 2.8. Comparacin entre las medias mviles de 50 das (naranja) y 10 das (negro)
24 2.4 Anlisis tcnico
Ilustracin 2.9. Uso de las medias mviles de 20 das (azul) y 5 das (rojo)
Ilustracin 2.10. Uso de tres medias mviles: 4 das (negro), 9 das (verde) y 18 das (rojo)
2.4.5 Osciladores
2.4.5.1 Momento
M i (n) = Vi Vi n i
V
M i (n) = 100 i i
Vi n
100
RSI i (n) = 100 i
Media Ganancias n barras anteriores
1+
Media Prdidas n barras anteriores
Vi Li ,n
% K i (n) = 100 i
H i ,n Li ,n
Con las frmulas anteriores se obtienen dos curvas que oscilan entre 0 y
100. Suele considerarse que el mercado est sobrecomprado si el valor del
estocstico lento est por encima de 80 y que el mercado est sobrevendido
si el valor del estocstico lento est por debajo de 20. Estas curvas pueden
emplearse para generar seales de compra o venta: si el valor del
estocstico lento est por encima de 80 se generar una seal de venta
cuando la curva de %K corte a la curva %D. En la Ilustracin 2.13 se
muestra un ejemplo en el que las flechas sealan los puntos en los que el
inversor debera operar (las flechas de color rojo indican seales de venta y
las flechas de color azul indican seales de compra).
30 2.4 Anlisis tcnico
Los das de giro son patrones formados por las cotizaciones de uno o
ms das en los que se supone que el precio podra formar una resistencia o
soporte significativo. Los das de giro son seales diseadas
especficamente para comprar muy cerca de los soportes y vender muy
cerca de las resistencias.
Por ltimo, para que una sesin sea considerada da de giro externo
clave, debe cumplir ser simultneamente un da de giro clave y un da de
giro externo.
2.5.1 Introduccin
Ilustracin 2.19. El patrn bsico [A. J. Frost and Robert Prechter, Elliot Wave Principle]
Por otra parte, como Elliott pensaba que todos los movimientos tenan
que seguir estos patrones defini nueve tipos de tendencia en funcin de la
duracin de los mismos, siendo ms importantes los ciclos que persistan
durante ms tiempo. Adems, las ondas de cada ciclo pueden subdividirse
a su vez en ms ondas del nivel siguiente, como se muestra en las
siguientes ilustraciones:
36 2.5 Anlisis tcnico
3 A. J. Frost and Robert Prechter, Elliot Wave Principle, Key to Stock Market Profiles, New
2 Anlisis tcnico 37
La sucesin de Fibonacci
an = an1 + an2
a0 = 1
a1 = 1
an 1 1 2 3 5 8 13 21 34 55 89 144 233
an-1/an 1,000 0,500 0,667 0,600 0,625 0,615 0,619 0,618 0,618 0,618 0,618 0,618
an/an-1 1,000 2,000 1,500 1,667 1,600 1,625 1,615 1,619 1,618 1,618 1,618 1,618
an-2/an 0,500 0,333 0,400 0,375 0,385 0,381 0,382 0,382 0,382 0,382 0,382
an/an-2 2,000 3,000 2,500 2,667 2,600 2,625 2,615 2,619 2,618 2,618 2,618
El tiempo
Captulo 3
Por otra parte, tambin tenemos que determinar unas seales de salida
del mercado, que nos obligan a cerrar una posicin abierta anteriormente.
i Vj
MM i (n) =
j = i n +1 n
i
Vi Vi n
MM i (n) = MM i 1 (n) + i
n
Ecuacin 3.2. Definicin alternativa de la media mvil simple de n barras
Vi n nMM i 1 (n)
Vi = i
1 n
Ecuacin 3.3. Valor de cruce de la media mvil simple de n barras con el precio
Ilustracin 3.1. Seales de compra generadas a partir del cruce de la media mvil de 13 das con el
precio
Vi n Vi m
MMBi 1 (m) MMAi 1 (n) +
Vi = n m
1 1
n m
Ecuacin 3.5. Valor del precio para que se produzca el cruce de las medias mviles de n y m das
Ilustracin 3.2. Seales de compra a partir de los cruces de dos medias mviles
Ilustracin 3.3. Uso de la proteccin de stop-loss de 35 puntos para generar seales de compra
52 3.3 Diseo de un sistema de trading
5 Se dice que el inversor adopta una posicin larga si su saldo neto es comprador y corta
si su saldo neto es vendedor
54 3.3 Diseo de un sistema de trading
Osciladores
Volumen
misma forma se puede aplicar esta teora a las tendencias bajistas, si los
mximos descienden varios das seguidos.
6 Stan Weinstein. Los secretos para ganar dinero en los mercados alcistas y bajistas. 1991.
GESMOVASA
3 Diseo de un sistema de trading 59
Ilustracin 3.10. Diferencias de precios en las correcciones obtenidas con stop-loss opuesto de 35
puntos
60 3.3 Diseo de un sistema de trading
Ilustracin 3.11. Duraciones de las correcciones obtenidas con stop-loss opuesto de 35 puntos
Ilustracin 3.12. Funcin objetivo para las operaciones largas con una proteccin de stop-loss de
35 puntos
Para poder encontrar una relacin entre los valores de los indicadores
tcnicos y la funcin objetivo se va a generar un conjunto de ejemplos
emparejados que, supondremos, se distribuir segn la frecuencia con la
que aparezcan en el mercado. Para generar este conjunto de muestras
emparejadas se seleccionarn: un rango temporal del que se obtendrn los
ejemplos, un conjunto de seales de entrada, un conjunto de indicadores y
un valor para la proteccin de stop-loss (se emplear para construir la
funcin objetivo).
N
1
=
N
( y( x[i]) f [i])
i =1
y [0,1]
N 2
1
=
N
( y ( x[i ]) f [i ] )
i =1
Captulo 4
Una vez analizado todos los elementos que se han utilizado para la
realizacin de este proyecto, se va a describir la aplicacin informtica que
se ha desarrollado, llamada RNA Trading, capaz de gestionar las
cotizaciones de diferentes series, representar grficos y disear,
implementar y evaluar sistemas automticos de trading.
8 http://es.finance.yahoo.com
68 4.2 Herramienta informtica para la obtencin de sistemas de trading: RNA Trading
El usuario puede escoger entre dos tipos de grficos para representar las
cotizaciones:
Grfico de barras
4.3.3 Ejemplo A
Utilizaremos una red neuronal con una capa oculta y 2 neuronas en una
capa oculta (el problema planteado resulta ser bastante sencillo), que
ser entrenada con el algoritmo Quasi-Newton.
Podemos concluir que ste es un sistema de trading que opera con poca
frecuencia y que no ofrece demasiadas garantas. Los resultados obtenidos
con los conjuntos empleados para ajustar los pesos, y en especial los
obtenidos durante el periodo de entrenamiento, son aceptables, pero el
sistema no funciona correctamente en el periodo de validacin. Se puede
deducir que los conjuntos son muy distintos, es decir, que el nico
indicador que hemos seleccionado (la media mvil de 20 das) no es
suficiente para decidir si las seales de entrada son vlidas.
4 Herramienta informtica para la obtencin de sistemas de trading: RNA Trading 83
Como en este caso los resultados obtenidos con los dos modelos son
muy parecidos, nicamente se adjunta una ilustracin con el
funcionamiento durante los tres periodos (entrenamiento, test y
validacin).
84 4.3 Herramienta informtica para la obtencin de sistemas de trading: RNA Trading
4.3.4 Ejemplo B
Se utilizar una red neuronal con una capa oculta con 3 neuronas en la
misma, que maximizar el beneficio medio por operacin. Se emplear
el algoritmo Quasi-Newton para realizar el proceso de optimizacin.
4.3.5 Ejemplo C
Se utilizar una red neuronal con una capa oculta con 10 neuronas en la
misma, que minimizar el error cuadrtico medio. Se emplear el
algoritmo Quasi-Newton para realizar el proceso de optimizacin.
Captulo 5
Conclusiones y futuros
desarrollos
5 Conclusiones y futuros desarrollos 101
5.1 Conclusiones
Por otra parte, podra intentar darse otro enfoque al proyecto, utilizando
las redes neuronales para reconocer patrones en el precio e identificar
figuras conocidas, como hombro-cabeza-hombro. Una forma de realizar
esta aproximacin sera recopilar una coleccin de figuras encontradas en
distintas series financieras y plantear un problema de clasificacin, de
forma que una red neuronal sea capaz de distinguir entre ellas.
Anexo I
Aproximacin funcional
mediante redes neuronales
artificiales
6 Aproximacin funcional mediante redes neuronales artificiales 105
6.1 Introduccin
Ecuacin 6.1.
{
F = y = f h ( x, w) / x n , y m , w Wh , h = 1,..., H }
Ecuacin 6.2. Definicin general de aproximador funcional
{
F = y = f ( x, w ) / x 3 , y 2 , w 24 }
y1 = w11 x1 + w12 x2 + w13 x3 + w14
y2 = w21 x1 + w22 x2 + w23 x3 + w24
relacin entre un los vectores de salida deseados y los que se obtienen con
el aproximador funcional, denominada funcin de discrepancia.
forma que las diferencias entre los vectores de salida deseados y obtenidos
sea lo menor posible, ponderando de manera ms significativa los casos
ms frecuentes. Adems, es importante notar que, si f h ( x , w ) es derivable
N
1
Remp (h, w) =
N
L(d [i], f h ( x[i], w))
i =1
El inters por las redes neuronales artificiales surgi por la eficacia del
cerebro humano resolviendo algunos problemas, como por ejemplo el
reconocimiento de patrones, que eran difcilmente resolubles con un
ordenador. Esto es debido a que la arquitectura de un ordenador y la
arquitectura del cerebro son completamente distintas. Puede decirse que el
110 6.3 Aproximacin funcional mediante redes neuronales artificiales
10 Ben J.A. Krse and P. Patrik van der Smagt. An introduction to neural
networks. Univ. Amsterdam. 1996. Disponible en:
http://www.robotic.dlr.de/Smagt/books/
6 Aproximacin funcional mediante redes neuronales artificiales 111
Por una parte podemos encontrar redes que se pueden emplear para
resolver problemas de aproximacin funcional, reconocimiento de patrones
y prediccin de series temporales. Su objetivo es asociar pares de vectores
de entrada y de salida y, por ese motivo, normalmente utilizan como
paradigma de aprendizaje el aprendizaje supervisado o el aprendizaje
hbrido. Destacamos el Perceptrn Multicapa (MP) y las Redes Neuronales
de Base Radial (RBFN).
Por otra parte, se han diseado redes neuronales que pueden emplearse
para la optimizacin de ciertos problemas matemticos. Destacamos la Red
de Hopfield y la Mquina de Boltzmann.
Multicapa, de los pesos de las distintas uniones entre neuronas y del vector
de entradas externas x m .
11 http://www.vias.org/tmdatanaleng/cc_ann_bp_function.html
116 6.4 Aproximacin funcional mediante redes neuronales artificiales
n
s = w0 + wi xi
i =1
n
y = w0 + wi xi
i =1
Funcin Hiperblica
1.5
0.5
0
-10 -8 -6 -4 -2 0 2 4 6 8 10
-0.5
-1
-1.5
1
Funcin Sigmoidal (s) =
1 + e s
118 6.4 Aproximacin funcional mediante redes neuronales artificiales
Funcin Sigmoidal
1.2
0.8
0.6
0.4
0.2
0
-10 -8 -6 -4 -2 0 2 4 6 8 10
m 2
L(d [i ], f h ( x[i ], w )) = e[i ] = ( d a [i ] f a ,h ( x[i ], w ) )
a =1
N N m 2
1 1
Remp (h, w ) =
N
e[i] = N
( da [i] f a,h ( x[i], w ) )
i =1 i =1 a =1
m
L(d [i ], f h ( x[i ], w )) = [i ] = ( f a ,h ( x[i ], w )d a [i ])
a =1
N N m
1 1
Remp (h, w ) =
N
[i] = N f a,h ( x[i], w )da [i]
i =1 i =1 a =1
R(h, w ) 1 N
e[n] 1 N nc yca [n]
wijk
=
N
n =1 wijk
=
N
2(d a yca [n])
wijk
n =1 a =1
R(h, w ) 1 N
[n] 1 N nc
yca [n]
wijk
=
N
n =1 wijk
=
N
d
n =1 a =1
a
wijk
Ecuacin 6.15
yca [n] yca [n] sca [n] yc 1,b [n] sc 1,b [n]
=
wc 1bk sca [n] yc 1,b [n] sc 1,b [n] wc 1bk
Ecuacin 6.16
yca [n]
= 'ca ( sca [n])wcab 'c 1b ( sc 1b [n]) yc 2, k [n]
wc 1bk
Ecuacin 6.17
En la capa de salida:
n( i +1)
1
ij =
N
h =1
'ij ( sij ) w( i +1) hj
( i +1) h
Ecuacin 6.19
En la capa de salida:
1
cj = d j 'cj ( scj )
N
Ecuacin 6.20
n( i +1)
1
ij =
N
h =1
'ij ( sij ) w( i +1) hj
( i +1) h
Ecuacin 6.21
0,8
0,6
0,4
0,2
0
0 0,5 1 1,5 2 2,5 3 3,5 4 4,5 5
-0,2
-0,4
-0,6
-0,8
-1
0,8
0,6
0,4
0,2
0
0 0,5 1 1,5 2 2,5 3 3,5 4 4,5 5
-0,2
-0,4
-0,6
-0,8
-1
0,8
0,6
0,4
0,2
0
0 0,5 1 1,5 2 2,5 3 3,5 4 4,5 5
-0,2
-0,4
-0,6
-0,8
-1
Sobreentrenamiento
los puntos que se han seleccionado para desarrollar este ejemplo, siendo los
puntos azules los pertenecientes al conjunto de entrenamiento y los puntos
rojos los pertenecientes al conjunto de test.
5
4
3
2
1
0
-1 0 0.2 0.4 0.6 0.8 1
-2
-3
-4
-5
reproducir esta recta de la mejor forma posible bastara emplear una nica
neurona en la capa oculta. Procediendo de esta forma se consigue la
aproximacin representada en la Ilustracin 6.8.
130 6.4 Aproximacin funcional mediante redes neuronales artificiales
5
4
3
2
1
0
-1 0 0.2 0.4 0.6 0.8 1
-2
-3
-4
-5
Ilustracin 6.8. Aproximacin mediante una red neuronal con una neurona en la capa oculta
0
0 0.2 0.4 0.6 0.8 1
-2
-4
-6
-8
x
x =
Ecuacin 6.22. Normalizacin estadstica
N N m N m 2
1 1 k
Remp (h, w ) =
N
[i] = N ( f a,h ( x[i], w )da [i]) N ( fa,h ( x[i], w ) 0.5)
i =1 i =1 a =1 i =1 a =1