Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1
=
2
= 1 = (
1
,
2
,
3
)
3
= 1
El DI se representar como por +DI si el valor se mueve al alza y por DI si el
valor se mueve a la baja (que se comprueba observando el signo del DM):
TR
DM
DI
+
= +
TR
DM
DI
=
J. Welles Wilder, inventor del ADX, recomienda trabajar con los 14 ltimos
periodos para poder obtener un resultado suficientemente representativo.
De este modo se calcula el +DM(14) como la suma de los +DM de los 14
ltimos periodos, y DM(14) como la suma de los DM de los catorce ltimos
periodos. Anlogamente, se tendr TR(14) como la suma de los rangos verdaderos de
los catorce ltimos periodos. +DI(14) y DI(14) se calcularan entonces como:
) 14 (
) 14 (
) 14 (
TR
DM
DI
+
= +
) 14 (
) 14 (
) 14 (
TR
DM
DI
=
Con +DI(14) y con DI(14) ya se podr obtener el indicador ADX(14) como:
)) 14 ( ( )) 14 ( (
)) 14 ( ( )) 14 ( (
) 14 (
DI DI
DI DI
ADX
+ +
+
=
El numerador de esta ecuacin representa la fuerza de la tendencia, ya que es la
diferencia entre las dos tendencias (alza y baja), y el denominador normaliza por el
nmero de periodos que se est trabajando.
38
Juan Hornedo Lpez-Ibor: Sistema de Inversin en Bolsa a Corto Plazo
Razonamiento econmico
Grfico 5: Ejemplo1 ADX (Fuente: www.stockcharts.com)
La siguiente figura muestra dos grficas: la superior indica el valor de la accin
de Intel a lo largo del tiempo, y la inferior que muestra los valores que van tomando
el ADX (negro), el +DI (verde) y el DI (rojo). Se observan dos periodos en los que
el ADX supera 40 luego identificamos dos fuertes tendencias.
A continuacin se va a explicar cmo esta informacin se puede traducir en
rdenes de compra y venta.
39
Juan Hornedo Lpez-Ibor: Sistema de Inversin en Bolsa a Corto Plazo
Grfico 6: Ejemplo2 ADX (Fuente: FxStreet)
La grfica de la parte inferior de esta figura, muestra los valores que van
tomando +DI, -DI y ADX, a lo largo de los periodos estudiados. Para explicar las
rdenes de compra-venta se va a estudiar las 4 zonas marcadas en la grfica.
- Zonas 1 y 3 rdenes de venta. -DI corta a +DI con un ADX superior al
25%, luego se puede deducir que va a empezar una tendencia bajista (ms
fortalecida en 3 que en 1). La accin correcta sera la de vender valores ya
que estos parece que van a bajar.
- Zona 2 rdenes de compra. +DI corta a DI y empieza a aumentar la
diferencia entre las dos curvas, esto unido a que la curva del ADX empieza a
aumentar, hace que se pueda deducir que se est ante una tendencia alcista
que se va fortaleciendo. La accin correcta sera la de comprar acciones.
- Zona 4 ADX>40. Cuando el ADX se mantiene un cierto tiempo por
encima del 40 nos da una seal de posible agotamiento del movimiento
direccional, ya que los mercados no son tan tendenciales durante mucho
tiempo.
40
Juan Hornedo Lpez-Ibor: Sistema de Inversin en Bolsa a Corto Plazo
Programacin
El valor que toma el ADX va a depender de la longitud de los periodos con los
que se est trabajando. Dependiendo del tipo de decisiones que se quieran tomar se
escoger un periodo u otro:
- Toma de decisiones a largo plazo periodos de 1 mes
- Toma de decisiones a medio plazo periodos de 1 semana 1 da
- Toma de decisiones a corto plazo periodos de 5 minutos
Como se estn realizando predicciones a corto plazo, se tomarn periodos de 5
minutos, por este motivo el ADX podr variar mucho en un da ya que este
contempla 103 periodos de 5 minutos.
Se ha programado en Matlab una funcin ADX de la forma:
Ilustracin 6: Funcin ADX
La ilustracin 6 representa el esquema de entradas y salidas de la funcin ADX.
Los tems verde y rojo representan respectivamente las entradas y las salidas de la
funcin; el tem central contiene el nombre de la funcin. Tambin se representa el
formato y la dimensin de las entradas y salidas.
M_datos(datos histricos)
ADX
M_Adx
Fecha Hora Open High Low Close Volume
##### #### ##.## ##.## ##.## ##.## ####
##### #### ##.## ##.## ##.## ##.## ####
fecha hora +DI(14) -DI(14) ADX
##### #### #### #### ####
##### #### #### #### ####
n-14 periodos
Periodo 1
Periodo n
Periodo 15
Periodo n
41
Juan Hornedo Lpez-Ibor: Sistema de Inversin en Bolsa a Corto Plazo
Este tipo de esquema se va a utilizar a lo largo de todo el documento cada vez
que se describa el esquema de entradas y salidas de una funcin.
Como se deduce del clculo para determinar el ADX de un periodo, es necesario
tener un mnimo de 14 periodos anteriores. Por esto la matriz de salida de la funcin
ADX no da resultados para los primeros 14 periodos de la matriz de datos que se
utiliza como entrada a la funcin.
Ejemplo
En este ejemplo vamos a representar las cotizaciones de Acerinox (ndice de
empresa 2) a lo largo de los das 14 y 15 de Enero contrastndolas con los valores
que ha ido tomando el indicador ADX.
Grfico 7: Ejemplo3 ADX en Acerinox (Elaboracin propia con Visual Chart)
En este ejemplo se observa que el estudio del ADX hubiese servido para la
prediccin de la bajada brusca que ocurre entre las horas 14:00 y 15:10 del 15 de
42
Juan Hornedo Lpez-Ibor: Sistema de Inversin en Bolsa a Corto Plazo
Febrero. A las 14:00 del 15 de Febrero, el ADX empieza a tomar valores por encima
de 40 y la cotizacin est bajando. Como el ADX est por encima de 40, estar
indicando una fuerte tendencia bajista. Esta tendencia de bajista la predecimos
mientras el ADX es mayor que 40. Se observa como a las 15:10 el ADX deja de ser
superior a 40 luego ya no se est en una tendencia fortalecida y no podemos predecir
si la accin va a seguir bajando.
Ntese que el ADX no ha identificado la tendencia bajista que se da al principio
del da 14 de Febrero. Esto se debe a que en muchas ocasiones los datos anteriores
que se utilizan en el clculo del ADX son muy voltiles y hacen que no se distingan
algunas tendencias.
MACD (convergencia-divergencia del promedio mvil)
Introduccin
El MACD (Moving Average Convergence/Divergence) es un indicador que trata
de identificar la tendencia en una cotizacin. Este indicador fue desarrollado por
Gerald Appel. Este indicador se vale de medias mviles para identificar la tendencia.
El MACD se representa grficamente mediante dos curvas: rpida y lenta.
Clculo
Su expresin estndar consiste en que la curva rpida (llamada MACD y
representada como una lnea continua) venga dada por la expresin:
) 12 .( . ) 26 .( . Exp Med Exp Med MACD =
Y la curva lenta (llamada Signal y representada por una lnea discontinua) venga
dada por la expresin:
)) 9 ( .( . MACD Exp Med Signal =
Donde:
Med.Exp. Media exponencial
Se utiliza la media exponencial, porque da ms importancia a los ltimos
valores. La expresin de la media exponencial es:
43
Juan Hornedo Lpez-Ibor: Sistema de Inversin en Bolsa a Corto Plazo
( )
) ( . ) , 0 .( .
_ _
_ 1
_
) , 1 .( .
1
2
) , 1 .( . ) ( ) , .( .
N Simple Med N Exp Med
periodos de nmero N
anterior periodo t
actual periodo t
N t Exp Med
N
N t Exp Med t precio N t Exp Med
=
+
|
.
|
\
|
+
=
Ejemplo: Med.Exp.(4)
Ilustracin 7: Ejemplo del clculo de la Media Exponencial
Razonamiento econmico
Cuando se estudia el MACD se representan dos curvas: SIGNAL(curva ms
lenta) y MACD (curva ms rpida). Una vez representadas las dos curvas, la
informacin que se puede obtener de ellas es:
- Lnea rpida (MACD) Se mueve por encima y por debajo de 0.
Cuando supera al cero significa que comienza una temporada alcista, y
cuando empieza a moverse debajo de 0, significa que comienza una
temporada bajista.
- Cruces de la lnea rpida (MACD) con la lnea lenta (SIGNAL)
Cuando la curva rpida supera a la lnea lenta se interpreta como una
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 44
seal de compra (empieza temporada alcista), y cuando la lenta supera a
la rpida se interpreta como una seal de venta (empieza temporada
bajista). Cuanto ms cerca del cero se produzcan estos cruces, ms fiable
ser la informacin que proporcionan. Pues si se cortan cerca de cero
significa que se parte de un periodo estable (poca diferencia entre la
curva rpida y lenta), y si por el contrario se cortan en un punto con
diferencia significativa entre las dos curvas podra tratarse de subidas y
bajadas muy puntuales en un periodo revuelto.
Grfico 8: Ejemplo1 MACD (Elaboracin propia con Visual Chart)
En esta figura se muestran las rdenes de compra y venta que se generan
aplicando los criterios del indicador MACD explicado anteriormente.
Programacin
Se han programado una funcin MACD a la cual se le da una serie de
cotizaciones y devuelve el valor del MACD y de la SIGNAL.
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 45
Ilustracin 8: Funcin MACD
Como se deduce del clculo, para determinar el MACD y la SIGNAL de un
periodo es necesario tener un mnimo de 33 periodos anteriores. Por esto la matriz de
salida de la funcin MACD no incluye los primeros 33 periodos de la matriz datos
histricos.
Ejemplo
En este ejemplo se van a representar los valores de la cotizacin de ACS (ndice
de empresa 1) y del MACD durante los das 14 y 15 de Abril del 2008. Se observan
las seales de compra y venta que se generan cuando se cruzan las dos curvas del
MACD.
M_datos(datos histricos)
MACD
M_Macd
n-33 periodos
Periodo 1
Periodo n
Periodo 34
Periodo n
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 46
Grfico 9: Ejemplo2 MACD en ACS (Elaboracin propia con Visual Chart)
Si efectuaran las seales, se tendra acciones en los rectngulos verdes y no se
tendran en los rectngulos rojos. De este modo se conseguira generar plusvalas
aprovechando las subidas a corto plazo de la bolsa.
OBV (Balance de volmenes)
Introduccin
El indicador OBV (On Balance Volume, Balance de Volmenes) se utiliza para
determinar el flujo del volumen negociado (Volume) de una accin. El concepto que
hay detrs de este indicador es que el volumen negociado precede al precio, luego si
se estudia los movimientos del volumen negociado se podr predecir variaciones de
tendencia en el precio.
Este indicador fue introducido por Joe Granville en 1963.
Clculo
C
V
C
C
V
C
V
V
C
No tengo acciones
Tengo acciones
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 47
OBV se calcula aadiendo el volumen de un periodo al volumen acumulado total
cuando la accin cierra a un precio mayor al ltimo cierre, y restando el volumen del
periodo al volumen acumulado cuando la accin cierra a un precio menor que el
ltimo cierre.
Si close (t) > close (t-1) ) ( ) 1 ( ) ( t Volumen t OBV t OBV + =
Si close (t) < close (t-1) ) ( ) 1 ( ) ( t Volumen t OBV t OBV =
Si close (t) = close (t-1) ) 1 ( ) ( = t OBV t OBV
Inicializacin: ) 0 ( ) 0 ( Volumen OBV =
Razonamiento econmico
El OBV va a ser un indicador cuyo valor ir variando a lo largo del tiempo,
dependiendo de si el precio de la accin va aumentando y del volumen de cada
periodo.
Se deduce que cuando el volumen cae o sube dramticamente sin que en el
precio de la accin se produzcan cambios importantes, el precio de la accin est
propenso a descender o subir. Si el volumen de una accin est aumentando significa
que muchos inversores se estn interesando en comprar la accin y que llegar un
punto en el cual el precio empiece a aumentar como consecuencia de un aumento de
la demanda. Por el contrario si el volumen empieza a descender (los inversores no se
estn interesando por el valor) el precio de la accin tender a caer (poca demanda,
luego el precio disminuir).
Para trabajar con este indicador se elaboran dos grficos, uno con la variacin de
la cotizacin de una accin y otro con la variacin del valor del OBV a lo largo de
tiempo. Cabe notar que para obtener informacin del OBV hay que fijarse en la
tendencia del valor de OBV (el valor numrico en concreto que tenga en un instante
determinado no aporta informacin) pues lo que interesa es ver los incrementos y
decrementos en el volumen.
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 48
Grfico 10: Ejemplo1 OBV (Fuente TradeStation)
En este grfico se muestra la variacin del ndice Dow Jones desde Diciembre
del 2000 hasta Octubre de 2001 con su respectivo OBV. Se observa cmo se pueden
predecir ciertas tendencias en el precio a partir de la informacin de la curva del
OBV (pues las mismas tendencias que se dan en el OBV se dan el precio un poco
ms tarde). En este ejemplo se observa cmo el OBV detecta el fin de la tendencia
alcista antes de que esta suceda.
Las rdenes de compra y de venta que se pueden generar con el OBV son las
siguientes:
- Orden de compra El precio de una accin permanece constante a la vez
que empieza a aumentar el OBV. Esto indica que la gente est comprando
esta accin y que su valor subir.
- Orden de venta El precio de una accin est aumentando y el OBV est
disminuyendo. Esto indica que la accin a estar sobrevalorada, pues tiene un
precio que no se corresponde con su demanda y que tender a bajar su valor.
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 49
Programacin
Se ha programado una funcin en OBV en Matlab que obtiene el OBV a partir
de las cotizaciones de un valor en cada instante.
Ilustracin 9: Funcin OBV
Esta funcin calcula el valor puntual del OBV en cada periodo. Como se
coment anteriormente, lo que aporta informacin es la tendencia del OBV no el
valor puntual; pero para calcular la tendencia es necesario los valores puntuales. A
partir de estos valores se realizar una estimacin de la tendencia (ver apartado 2.5,
pgina 60).
Ejemplo
En este ejemplo se va a representar las cotizaciones y los valores del OBV de
Acerinox durante los das 4, 7 y 8 de Abril del 2008.
M_datos(datos histricos)
OBV
M_Obv
Fecha Hora Open High Low Close Volume
##### #### ##.## ##.## ##.## ##.## ####
##### #### ##.## ##.## ##.## ##.## ####
fecha hora OBV
##### #### ####
##### #### ####
n
Periodo 1
Periodo n
Periodo 1
Periodo n
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 50
Grfico 11: Ejemplo2 OBV (Elaboracin propia con Visual Chart)
En este el grfico se detectan dos rdenes de compra en dos puntos. En estos
puntos el OBV tiene una tendencia positiva y la accin en ese punto lleva 2 o ms
periodos permaneciendo constante.
De haberse efectuado cualquiera de las dos rdenes de compra se hubiese
generado una plusvala, pues en los dos casos la accin incrementa su valor
inmediatamente despus.
RSI (ndice relativo de fuerza)
Introduccin
El RSI (Relative Strengh Indicator) fue desarrollado por J. Welles Wilder en
1978. El RSI compara la magnitud de las recientes ganancias de una cotizacin con
la magnitud de sus recientes prdidas. Esta informacin la expresa mediante un
porcentaje. Wilder recomienda trabajar con los 14 ltimos periodos.
Para determinar la ganancia o prdida de una cotizacin en un periodo
determinado, slo se precisa del valor de cierre del periodo actual y del valor de
cierre del periodo anterior. La magnitud de las recientes prdidas/ganancias se
compra
compra
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 51
determina a partir de los valores de las prdidas y ganancias de los ltimos 14
periodos.
Clculo
Para calcular el RSI hay que realizar las siguientes operaciones:
= 1 1
= 0 < 1
= 1 < 1
= 0 1
=
13 +
14
14 =
()
14
=1
14
=
13 +
14
14 =
()
14
=1
14
=
= 100
100
1 +
Como se deduce de las ecuaciones, es necesario disponer de al menos 14
periodos anteriores para poder iniciar el clculo del RSI. Ntese tambin que las
prdidas, cuando existen, se contabilizan con un valor positivo.
El RSI depende de todos los valores anteriores, por lo que cuntos ms datos se
dispongan, ms preciso ser el clculo del RSI. Se puede considerar que con 100
datos histricos ya se obtienen valores del RSI con suficiente precisin.
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 52
En las formulas de AverageGain y AverageLoss, el dato del ltimo periodo se
suma a la media anterior para que tenga un mayor peso respecto a los anteriores a l.
Es el mismo concepto de las medias exponenciales que se estudiaron en el indicador
MACD. Este tipo de ponderaciones son muy frecuentes cuando estudiamos series
financieras ya que el espacio temporal es una variable que tiene que influir de algn
modo en el clculo de los promedios, por el hecho de que el valor anterior de una
cotizacin siempre aporta ms informacin para la prediccin de un valor posterior
que un valor que se da en un nmero de periodos anteriores.
Razonamiento econmico
El RSI se suele representar comparndolo con una lnea horizontal de valor 50%.
Valores de RSI por encima del 50% significan que ltimamente ha habido ms
ganancias que prdidas y valores por debajo de 50% significan que ha habido ms
prdidas que ganancias. Podemos considerar que valores del RSI mayores del 70%
estn significando que estamos en un periodo alcista, y valores por debajo del 30%
estn significando que estamos en un periodo bajista. Valores entre el 30% y el 70%
significan que no hay ninguna tendencia fortalecida.
Tambin es importante estudiar la divergencia del RSI ya que nos va a dar
informacin acerca de lo que va a ocurrir en el futuro. Por ejemplo, si se est en un
periodo alcista (RSI>70%), y se tiene una tendencia positiva se podr decir que la
accin est en tendencia de aumentar su valor. Si por el contrario se est en un
perodo alcista pero la divergencia es negativa se dir que la accin puede empezar a
disminuir su valor.
Una forma de caracterizar los distintos valores que toma el RSI, es nombrar a los
valores RSI mayores que el 70% como sobrecomprados (overbought), y valores del
RSI inferiores al 30% como sobrevendidos (oversold).
- Valor sobrecomprado hay ms inversores que quieren comprar que
inversores que quieren vender, luego el precio tender a aumentar su
valor
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 53
- Valor sobrevendido hay ms inversores que quieren vender que
inversores que quieren comprar, luego el precio tender a reducir su
valor.
Grfico 12: Ejemplo1 RSI (Fuente StockCharts)
En el ejemplo de la figura se observa como en la segunda quincena de diciembre
la accin empieza a estar sobrecomprada y su valor empieza a aumentar, luego
cuando la tendencia del RSI se vuelve negativa empieza a bajar. Tambin se observa
que a mediados de mayo se est en un periodo alcista pero con tendencia del RSI
negativa, luego se podra haber anticipado la cada del periodo siguiente a la lnea
roja.
Programacin
Se ha programado una funcin RSI en Matlab que calcula el RSI utilizando las
frmulas matemticas descritas anteriormente. Esta funcin recibe datos histricos y
devuelve los valores del RSI en cada periodo.
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 54
Ilustracin 10: Funcin RSI
Es importante resaltar que para tener datos fiables del RSI es necesario disponer
de un conjunto de datos histricos suficientes (50 periodos anteriores suelen ser
suficientes).
Ejemplo
Grfico 13: Ejemplo2 RSI (Elaboracin propia con Visual Chart)
En este ejemplo (ACS) se puede observar como con la ayuda del RSI podemos
tomar decisiones acertadas.
M_datos(datos histricos)
RSI
M_Rsi
Fecha Hora Open High Low Close Volume
##### #### ##.## ##.## ##.## ##.## ####
##### #### ##.## ##.## ##.## ##.## ####
fecha Hora AvgGain AvgLoss RSI
##### #### #### #### ####
##### #### #### #### ####
n-14 periodos
Periodo 1
Periodo n
Periodo 15
Periodo n
A
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 55
En el periodo A se podra comprar acciones de la empresa porque se est en un
perodo alcista con tendencia positiva. Se observa como dos periodos despus la
accin sube y se hubiese ganado una plusvala considerable.
CCI (ndice de commodities)
Introduccin
El CCI (Commodity Chanel Index) es un indicador desarrollado por Donald
Lambert que trata de identificar los ciclos de las commodities. Entiendo commodity
como cualquier accin o bono, en este caso.
Este indicador supone que el valor de una accin es de algn modo cclico, y que
por tanto los mximos y mnimos llegan en intervalos peridicos. Lambert
recomienda usar un tercio de un ciclo completo (de mnimo a mnimo o de mximo a
mximo) como longitud de los intervalos con los que se va a trabajar (ntese que la
determinacin de la longitud del ciclo es subjetiva e independiente al clculo del
CCI). Si tenemos que un ciclo completo se da en 60 das (se da un mximo o un
mnimo cada 60 das), entonces los intervalos de trabajo sern de 20 das.
Clculo
Para el clculo del CCI hay que realizar las siguientes operaciones:
=
+ +
3
=
=1
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 56
=
0.15
Como se observa en las ecuaciones, el CCI no es ms que realizar una
normalizacin del TP de un periodo t, con la media y la desviacin tpica de los TP
de los periodos anteriores (tpicamente 20 periodos anteriores). Con la salvedad de
que multiplicamos el denominador por una constante de 0.15, esta constante se
utiliza para que el 70%-80% de los valores del CCI caigan en un rango comprendido
entre el -100 y el 100, y tener as una referencia fcil de comparacin. El porcentaje
de valores del CCI que caigan entre el -100 y el +100 depender del nmero de
periodos utilizados.
En el clculo del CCI que se ha realizado en este modelo se ha supuesto una
longitud periodo de 20 periodos de 5 minutos, es decir de 1h y 40 minutos. Puede
parecer una longitud muy pequea, pero como se estn realizando predicciones
extremadamente cortoplacistas, se requiere de variaciones representativas de los
indicadores a nivel intradiario para poder disponer de entradas lo suficientemente
distintas en cada periodo.
Razonamiento econmico
La constante de valor 0,15 antes comentada haca que el 70/80% de los valores
cayeran entre -100 y +100, y que el 30/20% caer fuera de este rango. Cuando el CCI
es mayor que 100 significar que el TP (True Price) del periodo es
considerablemente superior a los anteriores TP, y que se est ante el comienzo de una
tendencia alcista. Por el contrario si el TP es menor que -100 significar que el TP
del perodo es considerablemente menor que los anteriores TP y que se est ante el
comienzo de una temporada bajista.
Luego las rdenes de compra y venta de este indicador sern:
- Si CCI>100 comprar acciones
- Si CCI<-100 vender acciones
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 57
Al igual que muchos otros indicadores burstiles, es interesante estudiar la
variacin del CCI con respecto al precio. Esta variacin puede confirmar o debilitar
la informacin que se obtiene a partir de este indicador. Si por ejemplo se est en un
periodo con un CCI de 105 y con una tendencia positiva del CCI, entonces se dir
que se est ante una tendencia alcista que tiende a fortalecerse. Si por el contrario la
tendencia es negativa se dir que se est ante una tendencia alcista que se est
debilitando.
Programacin
Se ha programado una funcin CCI en Matlab que calcula el valor del CCI a
partir de un conjunto de datos histricos. Esta funcin precisa de 19 periodos
anteriores para calcular el CCI en un periodo concreto.
Ilustracin 11: Funcin CCI
Ejemplo
Este ejemplo corresponde al estudio del CCI en el valor de la accin de de ACS
entre las fechas indicadas en el grfico.
M_datos(datos histricos)
CCI
M_cci
Fecha Hora Open High Low Close Volume
##### #### ##.## ##.## ##.## ##.## ####
##### #### ##.## ##.## ##.## ##.## ####
fecha hora CCI
##### #### ####
##### #### ####
n-19 periodos
Periodo 1
Periodo n
Periodo 20
Periodo n
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 58
Grfico 14: Ejemplo CCI (Elaboracin propia con Visual Chart)
En este ejemplo se recalca un periodo (12:20) en el cual se tomara una decisin
de compra basndose en el valor del CCI. En este periodo se tiene un CCI superior al
100 y con tendencia positiva, luego se compraran acciones. Se observa como la
compra de acciones a las 12:20 generara una importante plusvala al subir la accin
bastante a las 12:30.
Estocstico
Introduccin
Este indicador fue desarrollado por George C. Lane en el ao 1948. El
estocstico (stochastic) es un indicador que muestra la localizacin del actual cierre
con respecto al mximo/mnimo alcanzado en una serie de periodos anteriores.
Niveles de cierre que estn cerca del mximo indican acumulacin (presin de
compradores) y los niveles de cierre que estn prximos al mnimo indican
distribucin (presin de vendedores).
Clculo
% = 100
1
12:20
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 59
14
% = %, 3
%K lnea rpida del estocstico
%D lnea lenta del estocstico
Razonamiento econmico
El estocstico utiliza fundamentalmente los valores que toma %K para la
obtencin de informacin.
Lecturas por encima del 80% son consideradas puntos en los que la accin est
sobrevendida (overbought) y lecturas por debajo del 20% son consideradas puntos en
los que la accin est sobrecomprada (oversold). Sin embargo Lane crea que una
medida por encima del 80% no significaba necesariamente que fuese a comenzar un
periodo bajista y que una medida por debajo del 20% no significaba necesariamente
el comienzo de un periodo alcista. Para obtener una seal ms fiable es necesario
observar tambin la pendiente de las curvas. Una vez el indicador llega a niveles de
sobrecompra es bueno esperar a tener una pendiente negativa para establecer cuando
comienza el periodo bajista, y viceversa.
Los valores de D% (curva lenta del estocstico) se utilizan para generar rdenes
de compra de venta. Cuando la lnea %K cruza por debajo de la lnea %D se genera
una orden de venta y cuando la lnea %K cruza por encima se genera una orden de
compra.
Programacin
Se ha programado una funcin ESTOCASTICO en Matlab que obtiene los
valores de %K y %D en cada periodo a partir de un conjunto de datos histricos.
Para los valores de %K y %D de un periodo se necesita datos de 15 periodos
anteriores.
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 60
Ilustracin 12: Funcin ESTOCASTICO
Ejemplo
Grfico 15: Ejemplo Estocstico en Unin Fenosa (Elaboracin propia con Visual Chart)
En este ejemplo se representa mediante flechas las rdenes de compra y venta
que se deducen de la informacin obtenida del estudio del estocstico. Se observa
como las dos ltimas rdenes de compra y venta que se generan son falsas ya que la
accin se mantiene constante. Por el contrario se observa cmo s se generan las
M_datos(datos histricos)
ESTOCASTICO
M_cci
Fecha Hora Open High Low Close Volume
##### #### ##.## ##.## ##.## ##.## ####
##### #### ##.## ##.## ##.## ##.## ####
fecha hora %K %D
##### #### ##.## ##.##
##### #### ##.## ##.##
n-15 periodos
Periodo 1
Periodo n
Periodo 16
Periodo n
Ordenes de
compra
Ordenes de
venta
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 61
rdenes de compra anteriores a los dos picos que se producen en el valor de la
accin.
2.5 Coeficiente de variacin de un indicador
respecto al precio de una accin
Como se coment en el apartado anterior, mucha de la informacin que se
obtiene de los indicadores se puede obtener del estudio de la variacin de ste con
respecto al precio de la accin. Esta relacin se mide mediante el empleo de un
coeficiente (este coeficiente recibe el nombre de divergence en ingls).
El coeficiente de variacin de un indicador (cualquiera de los explicados
anteriormente) respecto al precio de una accin, relaciona la direccin de cambio
(pendiente) del precio con la direccin de cambio de un indicador. Se pueden obtener
coeficientes positivos o negativos; un coeficiente positivo se da cuando el indicador
crece cuando el precio est bajando y un coeficiente negativo se da cuando el
indicador decrece mientras el precio crece.
Para el clculo de este coeficiente se ha programado en Matlab una funcin
divergence que tiene como entradas el valor de un indicador en los ltimos n
periodos y el valor del precio (open) en los n ltimos periodos.
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 62
Ilustracin 13: Funcin divergence
Esta funcin calcula la pendiente media de los ltimos n periodos, tanto de los
precios como del indicador. Despus resta la pendiente media de los precios a la
pendiente media del indicador.
Para calcular la pendiente media, esta funcin realiza un ajuste lineal de la
columna de valores (ya sea de precios o de valores del indicador) por una recta, y
luego calcula su pendiente.
Para realizar este ajuste se llama a la funcin fit de Matlab de la siguiente forma:
[statistics,model] = Fit(X,Y,'poly1')
Donde X es (tanto en los precios como en el valor de los indicadores) una matriz
columna del tipo:
=
5
10
. .
5
La matriz Y depender si se est calculando la pendiente de los precios o de los
valores del indicador. Si se va a comparar el crecimiento y decrecimiento del precio
y del valor de un indicador, es necesario que sean de alguna manera comparables.
n (nmero de periodos)
Precios (precios de apertura)
Indicador (valores del
indicador)
divergence
col_divergence
#
Fecha Hora Open
##### #### ##.##
##### #### ##.##
Fecha Hora Indicador
##### #### ##.####
##### #### ##.####
fecha hora divergence
##### #### ##.####
##### #### ##.####
n periodos
n periodos
n periodos
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 63
Para ello se divide cada uno de los elementos de la matriz entre la media de todos los
elementos de la matriz. De modo que la matriz Y ser:
=
())
=1
(1)
(2)
. .
()
_ =
())
=1
(1)
(2)
. .
()
De la funcin fit interesa slo el valor de la pendiente, que corresponde a la
salida statistics.p1.
A continuacin se muestra un ejemplo del clculo del coeficiente de variacin
del OBV respecto a la cotizacin de BBVA. Se va a suponer que se realiza el clculo
a partir de la informacin de los ltimos 4 periodos. Los datos de entrada son los
siguientes:
FECHA HORA OBV OPEN
30227 905 744773 7.53
30227 910 554138 7.5
30227 915 421608 7.51
30227 920 562941 7.49
Pendiente Divergence
Precios -0.00029304
0.02 Indicador -0.0238
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 64
2.6 Rutina de creacin de entradas
El sistema deber de calcular las entradas a la red neuronal en dos situaciones:
- Cuando se quiera entrenar la red neuronal
- Cuando se quiera realizar una prediccin
Cuando se quiera entrenar la red neuronal se necesitar disponer de las entradas
y las salidas (valor que de apertura de una accin en periodo) de un conjunto amplio
de periodos anteriores. Para obtener esta informacin se ha programado una funcin
crea_entradas en Matlab, que a partir de datos histricos de una empresa, crea la
matriz de entradas con sus correspondientes salidas. Estas entradas y salidas son las
que se utilizan para crear (entrenar) la red neuronal.
El esquema de entradas y salidas de esta funcin es el siguiente:
Ilustracin 14: Funcin Crea_Entradas
Los primeros 100 periodos se utilizan para obtener la informacin histrica de
partida para calcular las entradas, por lo que no se dispone de salidas para estos
periodos.
M_datos(datos histricos) Crea_entradas
Matriz_de_entradas
Targets
Fecha Hora Open High Low Close Volume
##### #### ##.## ##.## ##.## ##.## ####
##### #### ##.## ##.## ##.## ##.## ####
fecha hora Open
##### #### ##.##
##### #### ##.##
n-100 periodos
Periodo 1
Periodo n
Periodo 101
Periodo n
fecha hora Entrada 1 Entrada 30
##### #### ##.## ##.##
##### #### ##.## ##.##
Periodo 101
Periodo n
n-100 periodos
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 65
La otra situacin en la que el sistema necesita calcular entradas es para realizar
una prediccin cuando se dispone ya de una red neuronal entrenada. En este caso se
calcularn las entradas en un periodo determinado, para esto es necesario disponer de
al menos 100 periodos anteriores. El clculo de las entradas para un periodo en
concreto se realiza a travs de la funcin calcula_entradas programada en Matlab.
Esta funcin calcula las entradas a la red neuronal de una empresa a partir de datos
histricos de 100 periodos anteriores.
Ilustracin 15. Funcin calcula_entradas
Para calcular las entradas de un periodo determinado, es necesario tener disponer
de los datos de 100 periodos anteriores. Esto hace que cada vez que se disponga de
un dato nuevo, se almacene para poder calcular futuras entradas.
M_datos(datos histricos) calcula_entradas
entradas
Fecha Hora Open High Low Close Volume
##### #### ##.## ##.## ##.## ##.## ####
##### #### ##.## ##.## ##.## ##.## ####
Periodo 1
Periodo 101
fecha hora Entrada 1 Entrada 30
##### #### ##.## ##.##
Periodo 101
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 66
3. Redes neuronales
3.1 Introduccin
3.2 Perceptrn multicapa
3.3 Entrenamiento de la red neuronal
3.4 Modelado de la red neuronal
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 67
3.1 Introduccin
El modelo matemtico que utiliza el sistema de inversin para predecir valores
futuros es una red neuronal artificial (RNA). En este captulo se van a exponer los
conceptos fundamentales de las redes neuronales y se va a describir la red neuronal
que va a utilizar el sistema.
Definicin
Una red neuronal artificial (RNA) es un modelo matemtico que, inspirado en el
funcionamiento del sistema nervioso biolgico, procesa informacin (ver
[GARC02]). Las redes neuronales artificiales tienen un conjunto de propiedades
especficas, como son la habilidad de adaptarse (aprender), generalizar y organizar la
informacin.
Los primeros intentos por imitar el funcionamiento del cerebro se realizaron en
el ao 1943 por los cientficos Walter Pitts, Beltran Russell y Warren McCulloch. La
primera red neuronal artificial fue desarrollada en 1951 Marvin Minsky, estudiante
de la universidad de Harvard.
Un sistema nervioso biolgico, como el cerebro, est compuesto por un elevado
nmero de elementos (neuronas) interconectados entre s que trabajan conjuntamente
para solucionar un problema. El aprendizaje de los sistemas nerviosos biolgicos
implica ajustes en las conexiones entre las neuronas. Las RNA tratan de imitan esta
estructura que tienen los sistemas nerviosos biolgicos para tomar decisiones y para
aprender.
Un sistema de RNA est compuesto por una estructura con dos elementos
bsicos:
- Neurona: es el elemento bsico de procesamiento de la informacin de la
RNA. Las redes neuronales estn compuestas por neuronas interconectadas
entre s.
- Dendritas: representan las uniones entre neuronas, y tienen asociado un valor
o peso que suele indicar la importancia de la unin.
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 68
Se les da esta denominacin para subrayar la similitud con los sistemas nerviosos
biolgicos.
Conceptos bsicos
Una red neuronal artificial est compuesta por un conjunto de neuronas
interconectadas entre s que trabajan conjuntamente para solucionar un determinado
problema.
El elemento bsico de una red neuronal es la neurona. Una neurona no es ms
que una funcin de transferencia que a partir de un nmero de entradas calcula una
nica salida. Estas entradas estn ponderadas de manera que cada una de ellas lleva
asociada un peso (constante por la que se multiplica su valor) que representa la
importancia que tiene la entrada en la salida de la neurona. Los parmetros
necesarios para definir el funcionamiento de una neurona son:
- Nmero de entradas N
- Pesos de las entradas W1, W2, WN
- Funcin de transferencia F(H)
=
Y salida de la red neuronal
=
=
=1
Xj valor de la entrada j
Wj peso de la entrada j
En la imagen se muestra la similitud con una neurona biolgica.
Los pesos de las entradas son los que el algoritmo de aprendizaje ajustar para
que la red neuronal proporcione las salidas adecuadas.
F
F
Y
Y
Ilustracin 16: Neurona
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 69
Existen diferentes tipos de funciones de transferencia que aplicables a una
neurona. Se resumen en la siguiente tabla (ver [DEMU06]):
Tabla 3: Funciones de transferencia para redes neuronales
Ntese que las funciones de transferencia tienen salidas comprendidas en el
intervalo [0,1] o en el intervalo [-1,1]. Este se debe a que las neuronas deben de
trabajar con datos comprendidos en un intervalo determinado, dado que todas las
entradas a una red neuronal deben de estar normalizadas respecto a una determinada
Funcin Frmula Representacin
Escaln
= 1 0
= 0 < 0
Funcin lineal a tramos
= 1 > 0
= 1,1
= 1 < 1
Funcin sigmoidea
=
1
1 +
Funcin tangente
sigmoidea
=
1
1 +
2
1
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 70
distribucin. Lo corriente es normalizar todas las entradas a la red neuronal respecto
a una distribucin de media 0 y desviacin tpica1. La necesidad de realizar esta
normalizacin es lgica pues todas las entradas deben de partir con la misma
importancia y sern los pesos de las neuronas los que establezcan dicha importancia.
Explicada la estructura de una neurona se puede explicar la estructura de una red
neuronal.
La estructura tpica de una red neuronal es la del perceptrn multicapa. Est
estructura es la estructura ms simple que puede tener una red neuronal y es la que se
va a utilizar para describir los conceptos bsicos de las redes neuronales. Esta red
neuronal est compuesta por un conjunto de neuronas organizadas en capas. Cada
capa tendr un nmero determinado de neuronas y todas las neuronas de una capa
tendrn la misma funcin de trasferencia.
Las neuronas de una capa se conectan a las de la capa siguiente (las neuronas de
una capa (n-1) envan sus salidas a las neuronas de la capa n que las tomarn como
entradas).
En la siguiente imagen se muestra la estructura de una red neuronal de dos capas,
cuatro entradas y dos salidas:
Ilustracin 17: Ejemplo red neuronal
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 71
Los parmetros de esta red neuronal se representan matemticamente como
vectores y matrices:
=
1
2
3
4
1 =
1
11
1
12
1
13
1
14
1
21
1
22
1
23
1
24
1
31
1
32
1
33
1
34
1
2
3
1 2 3 4
2 =
2
11
2
12
2
13
2
21
2
22
2
23
1
2
1 =
1
1
1
2
1
3
2 =
2
1
2
2
Se debe dar valores a los pesos de la red neuronal. Estos valores se obtendrn
del proceso de entrenamiento. Este proceso consiste en proporcionar un conjunto de
muestras a la red neuronal, de tal manera que sta adapta el valor de los pesos para
minimizar el error en la salida.
Como se explicar, el entrenamiento de una red neuronal no es ms que la
resolucin de un problema de optimizacin.
Tipos de redes neuronales
Existen diferentes tipos de redes neuronales segn la estructura en la que estn
organizadas las neuronas. A continuacin se describen los principales tipos de redes
neuronales que se pueden encontrar (ver [KRS96]).
Redes de propagacin hacia delante (feedforward)
Fueron las primeras redes en ser diseadas. La informacin se mueve hacia
delante, desde los nodos de entrada a los de salida. Es el tipo de red neuronal que se
utiliza para la prediccin de series temporales.
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 72
Las redes neuronales de este tipo tienen la ventaja de que son las ms rpidas en
ejecutarse. Por otro lado tienen el inconveniente de que su entrenamiento es lento sea
cual sea el tipo de entrenamiento que realicemos.
Existen muchas estructuras de redes neuronales de propagacin hacia delante,
pero la que ms utilidad tiene y ms se ha desarrollado es el perceptrn multicapa.
El perceptrn multicapa es una red neuronal de propagacin hacia delante en la que
las neuronas estn organizadas en capas.
En la siguiente imagen se muestra la estructura de un perceptrn multicapa con
una sola capa oculta:
Ilustracin 18: Red de propagacin hacia delante
Redes recurrentes
Estas redes estn formadas por muchas neuronas fuertemente interconectadas.
Se utilizan para el desarrollo de memorias asociativas que tratan de simular el
cerebro humano. Se les denomina memorias por el hecho de que la salida de este tipo
de redes depende no slo de las entradas actuales sino tambin de las entradas
anteriores y del estado en el que se encuentra la red. La red neuronal ms conocida
de este tipo es la red neuronal de Hopfield. Esta red est constituida por un conjunto
de neuronas cada una de las cuales est unida a todas las dems, la conexin es tal
que cada neurona recibe informacin de todas las dems y emite informacin a todas
Capa de
entrada
Capa
oculta
Capa de
salida
Entrada 3
Entrada 2
Entrada 1
Entrada 4
Salida
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 73
las dems. En la siguiente figura se muestra un ejemplo de una red neuronal de
Hopfield:
Ilustracin 19: Red neuronal recurrente
En estas redes el flujo de informacin es bidireccional, es decir, va de las
entradas a las salidas y viceversa.
Redes estocsticas
Estas redes neuronales se caracterizan por tener conexiones aleatorias entre las
neuronas. La red ms conocida de este tipo es la red neuronal de Boltzmann. En la
siguiente imagen se muestra un ejemplo:
Ilustracin 20: Red neuronal estocstica
1
2
3
5
4 6
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 74
Redes modulares
Estas redes estn compuestas por distintos conjuntos de redes que cooperan unas
con otras para resolver un mismo problema. Este tipo de red es el que ms se
aproxima al sistema neuronal biolgico.
Son las redes neuronales de estructura ms compleja. A continuacin se muestra
un ejemplo:
Ilustracin 21: Red neuronal modular
Tipos de entrenamiento
- Entrenamiento supervisado: En este tipo de entrenamiento se le proporciona a
la RNA una serie de ejemplos consistentes en unos patrones de entrenamiento
que consisten en pares de entradas con sus correspondientes salidas (ejemplos
de cmo se quiere que funcione la red neuronal). El proceso de entrenamiento
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 75
consistir en ajustar los pesos para que la salida de la red sea lo ms parecida
posible a la salida deseada (terica).
- Entrenamiento no supervisado: En este tipo de entrenamiento se presenta a la
red una serie de ejemplos pero no se presenta la respuesta deseada. Lo que
hace la RNA es reconocer regularidades en el conjunto de entradas, es decir,
estimar una funcin densidad de probabilidad p(x) que describe la
distribucin de patrones x en el espacio de entrada R
n
.
- Entrenamiento hbrido: Es una mezcla de los anteriores. Unas capas de la red
tienen un aprendizaje supervisado y otras capas de la red tienen un
aprendizaje de tipo no supervisado.
- Entrenamiento recurrente: Es un entrenamiento en el que no se proporciona
una salida deseada, slo se indica si la salida es correcta o no, pero no indica
en cunto se diferencia de la salida buscada.
El caso de este proyecto es un caso de prediccin de series temporales. La
prediccin de series temporales es un problema de aproximacin en el que se va a
utilizar un entrenamiento supervisado, por lo tanto, a la red se le proporcionar una
serie de entradas (valores anteriores, indicadores burstiles, etc.) con sus
correspondientes salidas (valores que se han dado). Estos vectores de entradas y
salida se obtendrn de datos histricos (ver captulo 2).
La estructura de los patrones de entrenamiento es:
Periodo entrada (1) entrada (2) entrada (ne) salida
1
e1,1 e1,2
e1,ne S1
2
e2,1 e2,2
e2,ne S2
I
ei,1 ei,2
ei,ne Si
Np
enp,1 enp,2
enp,ne Snp
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 76
ei,j
Entrada j del patrn de entrada correspondiente al periodo i
Si
Salida asociada al patrn de entrada correspondiente al periodo i
Para realizar el entrenamiento se proporciona a la red las entradas y las salidas de
un nmero de periodos anteriores suficientemente alto (np). Estos periodos son
anteriores luego se conocern sus entradas y sus salidas. En cada uno de estos
periodos la red calcular la prediccin a partir de las entradas y se tendrn las
predicciones para cada uno de estos periodos anteriores:
Prediccin
P1
P2
Pi
Pnp
Se define el error en un periodo i como:
Para calcular los pesos de la red neuronal se resuelve el siguiente problema de
optimizacin:
:
=1
:
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 77
:
3.2 Perceptrn
Para modelar la prediccin del sistema de este proyecto se ha programado una
red neuronal del tipo perceptrn multicapa.
Motivos de la eleccin del perceptrn multicapa
Es el tipo de red neuronal ms eficaz y que ms se utiliza para la prediccin de
series temporales, segn muestran los diferentes estudios realizados anteriormente en
este campo (ver [OLME04] y [CRUZ04]).
El perceptrn multicapa tiene la habilidad de desarrollar representaciones
internas y predicciones en un sistema. Estudios anteriores (ver [TAM_92])
observaron que el perceptrn multicapa tiene la habilidad de permitir a la red hacer
generalizaciones razonables. Las neuronas de las capas intermedias (ocultas) son
detectoras de caractersticas. Estas propiedades (generalizacin y deteccin de
caractersticas) del perceptrn multicapa, hacen que sea la el tipo de red neuronal
ms apropiado para la predicciones de series financieras (ver [OLME04]).
Recordemos adems que el modelo de este sistema realiza predicciones de
valores burstiles a corto plazo (5 minutos). Esto hace que sea necesario que la red
neuronal se ejecute rpidamente, y el perceptrn multicapa as lo hace. Tambin es
cierto que el perceptrn multicapa tiene un entrenamiento relativamente lento, pero
este hecho no es preocupante ya que la bolsa est abierta de 9 de la maana a 6 de la
tarde y se tiene tiempo para entrenar mientras la bolsa est cerrada.
Caractersticas del perceptrn multicapa
La red tipo Perceptrn fue inventada por el psiclogo Frank Rosenblatt en el ao
1957. El perceptrn se desarroll imitando el funcionamiento del ojo humano. Este
funcionamiento consiste en unas seales de entrada que son analizadas por una serie
de neuronas de asociacin para luego ser enviadas a unas neuronas de respuesta.
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 78
El perceptrn multicapa resuelve el problema ms simple de las redes
neuronales, que es la sntesis de sistemas que realizan una determinada asociacin de
datos entrada/salida. En este problema los pesos de las neuronas se ajustan de tal
manera que ante cada entrada la red responda de una manera preestablecida.
Este problema de asociacin se utiliza para resolver dos casos:
- Aproximacin de funciones
- Clasificacin de datos
Cuando se aproximan funciones mediante el perceptrn multicapa, los datos de
entrada y salida se asimilan con vectores multidimensionales. Se pretende que el
valor real de la salida generada por la red cuando se estimule con un cierto dato de
entrada, se parezca lo ms posible al correspondiente dato de salida. La ventaja de
usar el perceptrn multicapa para este tipo de problemas es que la red ofrece una
gran capacidad de generacin.
El perceptrn multicapa tambin se puede utilizar para resolver un problema de
clasificacin de datos. En este caso la salida de la red ante cada dato de entrada debe
decidir la clase a la que pertenece ese dato de entrada.
3.3 Entrenamiento de la red neuronal
Introduccin
Se tiene que entrenar el perceptrn multicapa con datos histricos para poder
empezar a realizar predicciones. Este entrenamiento ser un entrenamiento
supervisado. Por tanto se necesitar un conjunto de datos (histrico) para el
entrenamiento con cada entrada y su salida, expresado de la siguiente forma:
1
,
1
,
2
,
2
, , {
}
Donde
es la correspondiente salida
deseada para el patrn (periodo) Q del conjunto de datos para el entrenamiento.
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 79
Recurdese que el entrenamiento de la red consiste en un problema matemtico
para determinar el valor de los pesos de las neuronas de cada una de las capas de la
red neuronal que consiguen minimizar el error de las salidas respecto a las salidas
tericas de los datos de entrenamiento.
El primer paso para resolver este problema de optimizacin es el de definir la
funcin error. La funcin error depende del valor de las salidas de la red (que a su
vez dependen del valor de los pesos y las entradas) y del valor de las salidas tericas.
Para optimizar los pesos se parte de un par entradas/salida concreto y se trata de
buscar un mnimo de la funcin error variando el valor de los pesos. Se va
calculando el error de todos los pares entradas/salida y se toma el valor de los pesos
que minimiza la suma total de los errores.
Muchos de los mtodos de optimizacin de este tipo de problemas se basan en la
misma rutina: ir realizando iteraciones hasta alcanzar un mnimo en la funcin a
minimizar. Existen distintas formas de definir esta funcin a minimizar (suma de los
errores de todos los patrones de entrenamiento, suma cuadrtica de los errores de los
patrones de entrenamiento, etc.) y distintas formas de desplazarse por la superficie de
error.
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 80
Ilustracin 22: Mnimos locales
En la ilustracin 22 se muestra de forma grfica el problema de optimizacin del
entrenamiento de una red neuronal. Se representa un plano en el cual el eje x un peso
W1, en el eje y otro peso W2 y en el eje z el valor de la funcin a minimizar (en este
caso la suma de los errores de todos los periodos). Este caso es un ejemplo sencillo
en el que se est suponiendo una red neuronal en el que slo se tiene 2 pesos
(correspondera a una red neuronal de una neurona con dos entradas). En la grfica se
observa como el punto p es en el que se minimiza la funcin objetivo, y a este
punto le correspondern unos W1_p y W2_p que sern las incgnitas del proceso de
entrenamiento.
Muchos mtodos de optimizacin para este tipo de problemas se basan en el
mtodo de Newton. Este mtodo trata de alcanzar el punto p realizando una serie de
iteraciones. Se empezar con unos valores de W1 y W2 aleatorios y se calcular la
funcin objetivo con esos valores. Seguidamente se calcula el sentido de la mxima
variacin de la funcin objetivo (gradiente) y se toma el camino opuesto para la
obtencin de otro candidato a mnimo. Se van realizando iteraciones hasta lograr un
mnimo. Este mnimo ser un mnimo local, es decir, si se tiene una funcin objetivo
W1
W2
error
p
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 81
que sea un hiperplano con varios mnimos locales, el proceso iterativo dar con uno
de ellos en funcin del punto de partida, pero este mnimo no tendr porque ser el
absoluto. Para solucionar este problema se puede entrenar la red un cierto nmero de
veces partiendo de distintos pesos, para tener un conjunto de mnimos locales y
escoger los pesos que proporcionan el menor mnimo local.
El software de Matlab contiene una toolbox de redes neuronales que ser la que
se va a utilizar para el entrenamiento de la red neuronal de modelo de prediccin. La
toolbox de redes neuronales de Matlab tiene programadas una serie de funciones de
entrenamiento. Se ha escogido la funcin trainlm para realizar el entrenamiento de la
red neuronal, ya que es la ms rpida en ejecutarse y la que mejores resultados suele
proporcionar.
Algoritmo de Levenberg-Marquardt
La funcin trainlm entrena la red neuronal mediante un modelo de optimizacin
Cuasi-Newtoniano concretamente el algoritmo Levenberg-Marquardt. Este algoritmo
es una modificacin del mtodo de Newton, que fue diseado para minimizar
funciones que sean la suma de los cuadrados de otras funciones no lineales; por eso
el algoritmo de Levenberg-Marquardt tiene un excelente desempeo en el
entrenamiento de redes neuronales donde el entrenamiento de la red est determinado
por el error medio cuadrtico.
Para explicar el algoritmo de entrenamiento primero se expondr la notacin de
una red neuronal genrica:
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 82
Ilustracin 23: Nomenclatura de la red neuronal
En cada periodo se tendr un vector
T=
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 83
Cada
ser de la forma:
= [
,1
,
,2
, ,
,]
Siendo:
i ndice de patrn de entrenamiento
R nmero de entradas a la red neuronal
Se define el trmino entrada neta en una neurona como el valor de entrada a la
funcin de transferencia de la neurona, su expresin en la primera capa ser:
1
=
=1
1 n capa
j n de neurona
i componente del vector de entradas
W Peso
p Entrada
b Bia
Se define el trmino salida de una neurona como el valor de salida de su funcin
de transferencia:
)
j nmero de neurona
m nmero de capa
Una vez definido este trmino se pueden definir las entradas netas de las dems
capas.
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 84
1
+
=1
Cada una de las neuronas de la capa de salida (S) tendr una salida terica (t
s
)
(salida que tiene que producirse en la neurona para que se obtenga la salida deseada
con el vector de entradas proporcionado). El error de cada neurona () vendr dado
por la diferencia entre esta salida terica y la salida que realmente se produce:
= (
)
S capa de salida
s nmero de neurona de la capa de salida
Se tendr un
=1
=
1
2
=1
ns nmero de salidas
q nmero total de patrones de entrenamiento
Se trabaja con el error medio cuadrtico para no distinguir signo en el error sin
tener utilizar la funcin absoluto, que puede entorpecer el clculo computacional.
El objetivo del algoritmo de entrenamiento ser:
()
La funcin F depende de los pesos y de las bias, que son las incgnitas del
problema.
Se representaran de forma matricial como:
= [
1,1
1
, ,
1,
1
, ,
,
,
,
,
1
1
, . . ,
]
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 85
R n de entradas
n n de neuronas
m n de capa
S capa de salida
W Peso
b Bia
El mtodo de Newton para optimizar la funcin es:
+1
=
(Ntese que esta ecuacin representa el movimiento en la direccin contraria a la
de mximo crecimiento que se coment en el ejemplo grfico anterior).
Como se ha definido la funcin objetivo F(X) como la suma de un conjunto de
funciones cuadrticas se tendr que:
=
2
=
()
=1
El gradiente pude ser escrito en forma matricial:
= 2
Ajustando el mtodo de Newton, se obtiene el algoritmo de Levenberg-
Marquardt
+1
=
se
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 86
incrementa, la siguiente iteracin sigue llendo en la direccin de mximo
decrecimiento a un ritmo ms fuerte; cuando
j nmero de neurona
q ndice de patrn de entrenamiento
m n de capa
i ndice del vector de entradas
El mayor consumo computacional se produce en el clculo de estos
jacobianos. Para que sea ms simple el clculo de este jacobiano se realiza lo
siguiente:
Se define el trmino sensibilidad como:
j nmero de neurona
q ndice de patrn de entrenamiento
m n de capa
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 87
Se calculan los trminos de la matriz jacobiana de la forma:
=
,
=
,
,
1
Y para las bias:
=
,
=
,
De esta forma cuando la entrada
+1
+1
Las matrices de sensibilidad para cada capa del algoritmo de Levenberg-
Marquardt estarn formadas por la extensin de las matrices computadas para cada
entrada:
=
1
]
Cuando un nuevo patrn de entrada es presentado a la red, los vectores
sensibilidad son propagados hacia atrs, esto se debe a que se ha calculado cada error
en forma individual, en lugar de derivar la suma al cuadrado de los errores. Para cada
patrn de entrada aplicado a la red habr
1
2
n2
1
2
nX
c
a
p
a
o
c
u
l
t
a
2
c
a
p
a
o
c
u
l
t
a
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 100
4. Funcionamiento del
sistema en tiempo real
4.1 Principio de funcionamiento
4.2 Modo de prueba
4.3 Funcionamiento en tiempo real con Visual Chart
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 101
4.1 Principio de funcionamiento
En este captulo se va a explicar cmo va a funcionar el sistema de inversin en
tiempo real. Se supone que el programa empieza a ejecutarse por la maana antes de
que abra la Bolsa. La rutina es la siguiente:
1. Recepcin de las cotizaciones de las 20 empresas
2. Clculo de las entradas a la red neuronal
3. Normalizacin de las salidas
4. Simulacin de la red neuronal obtencin de las salidas normalizadas
(predicciones del valor de apertura de las acciones de las 20 empresas
para el siguiente periodo)
5. Toma de decisiones de inversin
6. Ejecucin de rdenes de inversin
El sistema va realizando est rutina sucesivamente y cada vez que recibe nuevas
cotizaciones analiza el beneficio que se ha obtenido con la operacin anterior.
Ilustracin 29: Rutina de funcionamiento en tiempo real
Recepcin de
nuevas
cotizaciones
Anlisis de l
beneficio
Clculo de las
entradas a la
red neuronal
Simulacin de
la red
neuronal
Toma de
decisiones
Ejecucin de
rdenes de
compra venta
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 102
Como se ver en el tercer apartado de este captulo, la obtencin de entradas y la
ejecucin de rdenes, se realizar a travs de la plataforma Visual Chart.
La ilustracin 30 muestra la arquitectura del sistema de inversin en tiempo real,
indicando cules son los principales pasos y qu programa los ejecuta (Visual Chart
o Matlab).
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 103
Ilustracin 30: arquitectura del programa
V
I
S
U
A
L
C
H
A
R
T
1
-
c
o
t
i
z
a
c
i
o
n
e
s
.
t
x
t
2
-
c
o
t
i
z
a
c
i
o
n
e
s
.
o
k
1
1
-
d
e
t
e
c
c
i
n
d
e
a
c
c
i
o
n
e
s
.
o
k
1
2
-
b
o
r
r
a
a
c
c
i
o
n
e
s
.
o
k
1
3
-
l
e
e
a
c
c
i
o
n
e
s
.
t
x
t
1
4
-
e
j
e
c
u
t
a
a
c
c
i
o
n
e
s
1
5
-
i
n
v
e
r
s
i
o
n
_
r
e
a
l
i
z
a
d
a
.
o
k
1
6
-
i
n
v
e
r
s
i
o
n
_
r
e
a
l
i
z
a
d
a
.
t
x
t
l
e
c
t
u
r
a
_
c
o
t
i
z
a
c
i
o
n
e
s
n
u
e
v
a
s
_
c
o
t
i
z
a
c
i
o
n
e
s
.
e
v
a
l
u
a
c
i
o
n
_
y
_
d
e
c
i
s
i
o
n
e
s
c
o
t
i
z
a
c
i
o
n
e
s
.
t
x
t
c
o
t
i
z
a
c
i
o
n
e
s
.
o
k
a
c
c
i
o
n
e
s
.
t
x
t
a
c
c
i
o
n
e
s
.
o
k
i
n
v
e
r
s
i
o
n
_
r
e
a
l
i
z
a
d
a
.
t
x
t
I
n
v
e
r
s
i
o
n
_
r
e
a
l
i
z
a
d
a
.
o
k
e
v
a
c
l
u
a
_
b
e
n
e
f
i
c
i
o
a
c
t
u
a
l
i
z
a
_
i
n
v
e
r
s
i
o
n
e
s
g
u
a
r
d
a
_
h
i
s
t
o
r
i
a
l
b
e
n
e
f
i
c
i
o
a
c
c
i
o
n
e
s
_
a
c
t
u
a
l
i
z
a
d
a
s
M
A
T
L
A
B
3
-
d
e
t
e
c
c
i
n
d
e
c
o
t
i
z
a
c
i
o
n
e
s
.
o
k
4
-
l
e
c
t
u
r
a
d
e
c
o
t
i
z
a
c
i
o
n
e
s
.
t
x
t
5
-
b
o
r
r
a
c
o
t
i
z
a
c
i
o
n
e
s
.
o
k
y
c
o
t
i
z
a
c
i
o
n
e
s
.
t
x
t
6
-
c
r
e
a
e
n
t
r
a
d
a
s
a
l
a
r
e
d
n
e
u
r
o
n
a
l
7
-
s
i
m
u
l
a
l
a
r
e
d
n
e
u
r
o
n
a
l
8
-
a
b
r
e
e
l
f
i
c
h
e
r
o
a
c
c
i
o
n
e
s
.
t
x
t
(
a
n
t
.
)
9
-
b
o
r
r
a
a
c
c
i
o
n
e
s
.
t
x
t
9
-
t
o
m
a
d
e
c
i
s
i
p
t
i
m
a
1
0
-
e
s
c
r
i
b
e
a
c
c
i
o
n
e
s
.
t
x
t
1
7
-
e
v
a
l
u
a
e
l
b
e
n
e
f
i
c
i
o
1
8
-
a
c
t
u
a
l
i
z
a
d
a
t
o
s
d
e
i
n
v
e
r
s
i
o
n
e
s
1
9
-
b
o
r
r
a
i
n
v
e
r
s
i
o
n
_
r
e
a
l
i
z
a
d
a
.
o
k
i
n
v
e
r
s
i
o
n
_
r
e
a
l
i
z
a
d
a
.
t
x
t
2
0
-
g
u
a
r
d
a
h
i
s
t
o
r
i
a
l
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 104
Decisiones de inversin
En cada periodo se tendr una posicin, que ser una variable que represente
dnde est invertido el dinero. Slo se consideran dos posibilidades:
- No tener dinero invertido en ninguna (situacin 1)
- Tener dinero invertido en dos empresas (situacin 2)
Se han optado por estas dos posibilidades con el nimo de tener una postura ms
o menos conservadora.
El dinero que no se tiene invertido en ninguna empresa se le da el nombre de
dinero lquido. Para representar la posicin que se tiene en un periodo determinado
se utiliza una matriz 25x1:
Para tomar una decisin en un periodo determinado, es necesario conocer la
posicin del periodo actual (situacin actual), el valor de las acciones de las 24
empresas en el periodo y la prediccin que se ha obtenido de la red neuronal.
Al realizar una operacin de compra o de venta de acciones, es necesario pagar
una serie de comisiones e impuestos. Las comisiones se pagan al intermediario
financiero que se utiliza para operar en la Bolsa, este intermediario ser un broker
online (compaa que ofrece servicios de intermediacin financiera a travs de su
pgina web). El sistema debe de operar forzosamente a travs de un broker online, ya
que sta es la nica manera de realizar operaciones de compra venta a travs del
ordenador.
Se va a operar a travs del broker online EstuBroker, ya que es el broker ms
econmico y compatible con Visual Chart para el tipo de operaciones que se van a
###
###
.
###
###
Dinero invertido en empresa 1
Dinero invertido en empresa 2
Dinero invertido en empresa 20
Dinero lquido
..
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 105
efectuar (ver Anexo captulo 2). Este broker online cobra una comisin por operacin
de compra o de venta del 0,05% del importe de la operacin (con un mnimo de
1,5).
Por otro lado si se venden acciones que se han comprado a un precio menor (se
ha generado una plusvala), hay que pagar un impuesto correspondiente al 18% de la
plusvala necesaria (ver Anexo captulo 1).
Para realizar la toma de decisiones se ha programado en Matlab el siguiente
rbol de decisin:
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 106
Ilustracin 31: rbol de decisin
P
o
s
i
c
i
n
a
n
t
e
r
i
o
r
V
a
l
o
r
e
s
a
c
t
u
a
l
e
s
V
a
l
o
r
e
s
s
i
m
u
l
a
d
o
s
C
o
m
p
r
a
r
2
c
Q
u
e
d
a
r
m
e
=
N
o
S
P
a
g
a
r
2
c
o
m
i
s
i
o
n
e
s
Q
u
e
d
a
r
m
e
=
C
o
m
p
r
a
r
2
V
e
n
d
e
r
2
C
o
m
p
r
a
r
1
V
e
n
d
e
r
1
P
a
g
a
r
4
c
o
m
i
s
i
o
n
e
s
2
P
l
u
s
v
a
l
a
s
P
a
g
a
r
2
c
o
m
i
s
i
o
n
e
s
1
P
l
u
s
v
a
a
S
N
o
V
e
n
d
e
r
2
P
a
g
a
r
2
c
o
m
i
s
i
o
n
e
s
2
P
u
l
s
v
a
l
a
s
2
q
u
e
s
e
t
i
e
n
e
n
1
q
u
e
s
e
t
i
e
n
e
d
i
s
t
i
n
t
a
s
2121 2 2
E
m
p
r
e
s
a
s
s
e
l
e
c
c
i
o
n
a
d
a
s
P
r
e
c
i
o
s
d
e
C
o
m
p
r
a
P
o
s
i
c
i
n
s
i
g
u
i
e
n
t
e
S
e
t
i
e
n
e
d
i
n
e
r
o
e
n
2
e
m
p
r
e
s
a
s
?
S
N
o
S
u
b
e
n
2
e
m
p
.
?
S
u
b
e
n
2
e
m
p
.
?
N
i
n
g
u
n
a
i
n
v
e
r
s
i
n
I
n
v
e
r
s
i
n
e
n
2
e
m
p
r
e
s
a
s
12
C
u
l
e
s
?
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 107
Primero se analiza cul es la situacin en la que se est (se tiene el dinero en dos
empresas o no se tiene en ninguna). Y segn sea est situacin se tomar una
decisin dependiendo de los valores que se hayan simulado.
Puede ser que en un periodo determinado se est en la situacin de que suban dos
empresas, pero que ejecutar las rdenes implique incurrir en unos gastos (comisiones
e impuestos) superiores al beneficio predicho. En esta situacin se opta por ejecutar
las rdenes, dado que si dos empresas aumentan su valor es muy probable que lo
hagan en el periodo siguiente y las comisiones tendrn que pagarse de todas formas.
Adems el cargo de las comisiones e impuestos viene a representar normalmente un
0,075% de la cantidad invertida, y las predicciones que se realizan tienen una
precisin media del 0,15% (ver apartado de modo de prueba) luego no se tiene la
suficiente precisin para tomar este tipo de decisiones.
Datos de partida
Para que el sistema de inversin empiece a trabajar en tiempo real, es necesario
que disponga de una serie de datos de partida. Estos datos de partida necesarios son:
- Red neuronal: variable tipo structure con las 20 redes neuronales de las 20
empresas, entrenadas con datos histricos hasta el da anterior.
- Datos de normalizacin: variable tipo structure con la informacin referente
a la normalizacin de las entradas y salidas de las 20 empresas.
- Informacin histrica de los ltimos 100 periodos: variable tipo structure
con los valores de open, high, low, close y volume de los 100 ltimos
periodos de cada una de las 20 empresas. (Recurdese que para obtener las
entradas de un periodo determinado era necesario disponer de la informacin
de los 100 periodos actuales).
- Empresas seleccionadas: matriz 3x2 en la que la primera fila muestra las
empresas en las se tiene invertido el dinero, la segunda fila representa el
dinero que se tiene en cada una, y la tercera representa el precio al que se
compraron estas acciones. Si no se tienen acciones de ninguna empresa, la
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 108
matriz estar compuesta por ceros menos el elemento (2,2), que contendr el
dinero lquido que se dispone para empezar a invertir.
- Comisiones: matriz 1x2 en la que el primer elemento representa la comisin
que cobra el broker online, y el segundo la tasa de impuestos. Si se escoge el
broker online EsTuBroker, esta matriz ser: comisiones= [0.0005 0.18].
Programacin
Se han programado dos rutinas relacionadas con la ejecucin del sistema en
tiempo real: modo de prueba y modo Visual Chart. El modo prueba consiste en la
simulacin del programa en tiempo real de un da anterior, para comprobar cmo se
hubiese comportado el sistema. El modo Visual Chart es el que se utilizar para
ejecutar el programa en tiempo real.
4.2 Modo de prueba
Este modo sirve para comprobar cuntos beneficios se hubiesen obtenido si se
hubiese ejecutado el sistema en un da determinado, sin la necesidad de utilizar
Visual Chart.
Para programar este modo de prueba se ha creado una funcin modoprueba en
Matlab:
Ilustracin 32: Funcin modoprueba
La matriz valores muestra la diferencia existente entre los valores simulados y
los valores reales, sirviendo para ver la precisin de las predicciones.
num_dias
comisiones
empresas_seleccionadas
red_neuronal
hora
datos_de_normalizacion
n_periodos (nmero de periodos)
Histricos (de las 24 empresas)
modoprueba
posicionesydinero
valores
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 109
La matriz posicionesydinero representa en cada periodo cunto dinero se tiene
invertido en cada una de las empresas, y cunto se tiene en forma lquida. Tambin
calcula el beneficio acumulado en cada periodo segn la inversin realizada.
El modo de prueba permite simular varios das reentrenando la red neuronal en
cada uno.
4.3 Funcionamiento con Visual Chart
En este apartado se presenta un programa que opera con la bolsa en tiempo real
ejecutando rdenes de compra-venta. En el programa consiste en una funcin de
Matlab que interacta con Visual Chart en tiempo real.
Visual Chart es una plataforma que aporta informacin de la bolsa en tiempo real
y permite ejecutar rdenes de compra y venta de ttulos. Tiene la ventaja de que
permite incorporar rutinas de Visual Basic para personalizar el tipo de uso que el
usuario requiera.
Visual Chart representa los datos burstiles por medio de grficos burstiles que
se pueden exportar como archivos grficos o como archivos de texto.
Se han programado una serie de sistemas en Visual Chart. Estos sistemas
consisten en programas de Visual Basic que permiten realizar automticamente una
serie de acciones en Visual Chart.
Se han programado dos sistemas en visual chart:
- Sistema de escritura de cotizaciones
- Sistema de ejecucin de rdenes
Sistema de escritura de cotizaciones (Escritura.vba)
Este sistema se encarga de recibir la informacin burstil, en un periodo
concreto, de un conjunto de empresas y escribirla en un archivo de texto. Es decir,
este sistema va a proporcionar ficheros de texto con los valores de Open, High, Low,
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 110
Close y Volume de las 20 empresas al mdulo de decisin implementado en Matlab.
(Escribir 20 ficheros)
Para ejecutar este sistema es necesario abrir un grfico que contenga la
informacin de las 20 empresas:
Ilustracin 33: Grfico de Visual Chart con las 20 empresas
Una vez abierto este grfico se pasa a insertar el sistema escritura.vba. Al
insertar el sistema, se requiere indicar el nombre que desee dar a los archivos de
texto. (Es importante que estos nombres coincidan con los de Matlab.)
Sistema de ejecucin de rdenes (ejecucion.vba)
Este sistema recibe informacin acerca de las rdenes de compra y venta, las
ejecuta en tiempo real y escribe un fichero con la confirmacin de estas. El principal
problema que tiene este sistema es que slo puede operar con una empresa. Esto se
debe a que Visual Chart todava no permite programar sistemas que puedan realizar
rdenes de compra y venta de acciones de distintas empresas simultneamente.
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 111
Para ejecutar este sistema es necesario abrir un grfico con datos de una sola
empresa. Los parmetros de este sistema son: nombre del fichero de confirmacin,
nombre del fichero con las acciones a realizar.
El sistema funciona de la siguiente manera:
1. Recibe un fichero con las acciones a realizar (comprar, vender o no hacer
nada). Este fichero debe de indicar el nmero de ttulos que se desean
comprar o vender.
2. Ejecuta las rdenes pertinentes
3. Escribe un fichero con la confirmacin
Funcin funcionamiento_tiempo_real
Se ha programado una funcin funcionamiento_tiempo_real en Matlab, que
ejecuta el sistema de inversin en tiempo real interactuando con Visual Chart.
Antes de ejecutar la funcin funcionamiento_tiempo_real, es necesario insertar
los dos sistemas programados en Visual Chart. Primero es necesario abrir un grfico
con las cotizaciones de las 20 empresas e insertar en l el sistema escritura.vba. Por
otro lado, es necesario abrir 20 grficos independientes con la cotizacin de cada una
de las 20 empresas e insertar en cada uno de ellos el sistema ejecucion.vba.
Una vez se tienen los sistemas de Visual Chart en ejecucin, se puede ejecutar la
funcin funcionamiento_tiempo_real en Matlab (con los datos de partida
comentados en el apartado 4.1 de este captulo). Esta funcin ir ejecutando las
rdenes de compra y venta de acciones e ir calculando el beneficio que se va
acumulando.
El funcionamiento en tiempo real presenta problemas cuando en un periodo no
se dispone de informacin de alguna de las empresas, ya que no se tendran los datos
homogneos necesarios para calcular las entradas a la red neuronal.
Otro problema es el tiempo de ejecucin de las rdenes de inversin. En muchas
ocasiones estas rdenes no se ejecutan en el instante requerido. Esto probablemente
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 112
sucede porque la negociacin con el Broker Online no es automtica. Cuando esto
sucede se produce una acumulacin de rdenes que desbarata la ejecucin del
sistema en tiempo real.
En definitiva, en este proyecto se ha elaborado un programa bsico que funciona
en tiempo real con Visual Chart, se deja para futuros estudios el realizar un programa
ms completo que solucione los problemas existentes con Visual Chart.
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 113
5. Resultados y
conclusiones
5.1 Precisin de las predicciones realizadas
5.2 Evaluacin de las decisiones de inversin tomadas
5.3 Evaluacin del beneficio obtenido
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 114
En este captulo se van a presentar los resultados obtenidos en una simulacin
realizada entre los das 30 de Mayo y 5 de Junio. (Estos resultados se obtienen a con
los datos de valores y posicionesydinero, ver apartado 4.2 pgina 108). Esta
simulacin comprende el estudio de las predicciones y sus consecuentes decisiones
de inversin en un total de 510 periodos (1 semana).
Para la obtencin de los resultados se han simulado 5 das, reentrenando la red
neuronal al final de cada uno.
5.1 Precisin de las predicciones realizadas
Para estudiar la precisin de las predicciones realizadas se va a estudiar la
diferencia entre los valores predichos y los valores que realmente ha tomado la
accin.
En la siguiente grfica se muestra el error medio de las predicciones realizadas
en cada una de las 20 empresas. Definindose el error medio como:
Grfico 18: Errores medios por periodo
0,00%
0,20%
0,40%
0,60%
0,80%
1,00%
1,20%
1,40%
1,60%
1,80%
errores medios por periodo %
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 115
Se tiene un error medio global del 0,42% lo cual indica que se estn realizando
predicciones con una precisin considerablemente buena. Un error del 0,42% supone
que si una accin en un periodo vale 10, la red neuronal predijo que valdra 10,04 o
9,96, por ejemplo. Pero realmente las predicciones han tenido una precisin mayor,
pues las empresas Iberia, Indra y Ferrovial han presentado un error bastante ms
elevado que el resto de las empresas, y han hecho aumentar el error medio global.
Iberia ha presentado un error ms alto que el resto de las empresas porque la red
neuronal identific una tendencia alcista en el lunes 2 de junio, y la accin de Iberia
se mantuvo constante e incluso disminuy su valor. Este tipo de situaciones pueden
darse ya que el valor de una accin se puede ver afectado por mltiplos factores que
no se han tenido en cuenta en el modelado. En este caso se podra haber producido
un comportamiento inusual de la accin de Iberia porque el da dos de Junio de
2008 se public en Reuters una noticia que indicaba que Iberia haba visto un ligero
descenso en su coeficiente de ocupacin (ver [REUT08]), y esta noticia podra haber
provocado que algunos inversores vendieran sus acciones.
Es interesante comparar la prediccin del sistema con la prediccin ingenua. Esta
ltima consiste en suponer que la accin no vara su valor:
+1 = ()
Grfico 19: Comparacin del error obtenido con el error de la prediccin ingenua
0,00%
0,20%
0,40%
0,60%
0,80%
1,00%
1,20%
1,40%
1,60%
1,80%
errores del
sistema de
prediccin
errores de la
prediccin
ingenua
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 116
En el grfico 19 se muestra la comparacin entre el error obtenido con la
prediccin del sistema y el obtenido con la prediccin ingenua. Se observa que el
error obtenido con la prediccin ingenua es menor que el obtenido con la prediccin
del sistema (salvo en Endesa, Gamesa, Iberdrola e Inditex).
Esto no significa que la prediccin realizada por el sistema no sea vlida y que
sea mejor aceptar la prediccin ingenua. Ya que la prediccin ingenua supone que la
accin permanece constante y con esta suposicin no se podra tomar ninguna
decisin de compra atendiendo a los criterios de decisin que se han planteado (ver
ilustracin 30).
Un indicador ms til para medir la precisin de las predicciones, es el indicador
de subidas/bajadas acertadas. Una subida/bajada acertada se produce cuando se
predice que la accin va subir/bajar y la accin efectivamente sube/baja. A
continuacin se muestra un grfico con el porcentaje de subidas/bajadas acertadas as
como el porcentaje de periodos en los que se ha acertado (la subida o la bajada) para
cada una de las 20 empresas.
+ 1 >
+ 1
Se considera bajada a la no variacin del valor de una accin
(valor(t+1)=valor(t)). Esta consideracin se debe a que una inversin en una accin
que no vara su valor, es una inversin que no lleva asociada prdidas (ni beneficios),
pero que s lleva asociada un coste de oportunidad, al haberse perdido la oportunidad
de invertir el dinero en otra empresa que s hubiese incrementado su valor.
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 117
Grfico 20: Porcentajes de acierto en las empresas estudiadas
0
%
1
0
%
2
0
%
3
0
%
4
0
%
5
0
%
6
0
%
7
0
%
8
0
%
9
0
%
1
0
0
%
%
a
c
i
e
r
t
o
s
%
t
o
t
a
l
d
e
a
c
i
e
r
t
o
s
%
s
u
b
i
d
a
s
a
c
e
r
t
a
d
a
s
%
b
a
j
a
d
a
s
a
c
e
r
t
a
d
a
s
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 118
En el grfico 20 esta se aprecia de forma grfica la precisin de las predicciones
realizadas. En la mayora de las empresas estudiadas se tiene un porcentaje de
aciertos superior al 70% lo que indica que el modelo est realizando predicciones
considerablemente correctas. Otras empresas como Ferrovial, Iberia o Inditex,
presentan un porcentaje de aciertos ms bajo, esto se debe a factores del mercado que
la red neuronal no ha detectado.
Esta grfica es la que mejor muestra la utilidad del sistema de inversin, ya que
muestra que se tiene una tasa de aciertos globales de aproximadamente 70%. Esta
tasa de aciertos supone disponer de una gran ventaja en la participacin del mercado
burstil, y presenta un escenario con infinidad de oportunidades de realizar
inversiones rentables. Esta tasa de aciertos refleja con fidelidad la precisin del
modelo ya que contempla las predicciones de una semana completa compuesta por
un total de 510 periodos de cinco minutos.
A continuacin se va a comparar la precisin de las predicciones realizadas por
el sistema con la precisin de la prediccin ingenua, atendiendo al indicador de
subidas y bajadas. Es importante notar que la prediccin ingenua siempre establece
que la accin no vara su valor, lo cual supone considerar que siempre se predice que
la accin baja (segn el criterio expuesto en la pgina 114).
Grfico 21: % de aciertos de la prediccin del sistema en comparacin con la prediccin ingenua
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
% aciertos
prediccin
ingenua
% aciertos
prediccin
del sistema
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 119
En el grfico 21 se observa cmo se obtienen ms aciertos con la prediccin del
sistema que con la prediccin ingenua. En el conjunto de todas las empresas, se tiene
una tasa global de aciertos del 70% con la prediccin del sistema, y una tasa del 60%
con la prediccin ingenua. Estos resultados son los que muestran que la prediccin
del sistema aporta una informacin ms til y ms exacta (respecto del indicador de
subidas/bajadas) que la ingenua.
5.2 Evaluacin de las decisiones de
inversin realizadas
En este apartado se van presentar las decisiones de inversin que se han tomado
en la simulacin realizada.
Grfico 22: n de posiciones tomadas en cada una de las empresas
En el grfico 22 se representa el nmero de periodos (nmero de posiciones) en
los que se han tenido acciones de cada una de las 20 empresas. Tambin muestra el
nmero de periodos en los que se ha decidido no invertir (rectngulo rojo).
Los criterios de inversin utilizados son los que se exponen en el apartado 4.2 de
este documento (ver pgina 97). Se ha decidido no invertir fuera del horario de
0
50
100
150
200
250
A
c
s
A
c
e
r
i
n
o
x
A
c
c
i
o
n
a
B
B
V
A
B
a
n
k
i
n
t
e
r
E
n
d
e
s
a
F
C
C
F
e
r
r
o
v
i
a
l
G
a
m
e
s
a
G
a
s
n
a
t
u
r
a
l
I
b
e
r
d
r
o
l
a
I
b
e
r
i
a
I
n
d
r
a
I
n
d
i
t
e
x
P
o
p
u
l
a
r
R
e
d
E
l
c
t
r
i
c
a
R
e
p
s
o
l
S
a
n
t
a
n
d
e
r
T
e
l
e
f
n
i
c
a
U
n
i
n
F
e
n
o
s
a
N
o
i
n
v
e
r
t
i
r
n de posiciones
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 120
apertura de la bolsa (inversiones que se realizan fuera del horario se ejecutan al
precio de apertura, a las 9:05), pues se prefiere que la red neuronal realice la primera
prediccin cuando le ha llegado el primer dato de un da. Se ha tomado esta decisin
para incurrir en un menor riesgo ya que en muchas ocasiones se producen
variaciones bruscas entre el precio de cierre de un da y el valor de apertura del
periodo posterior.
Llama la atencin el elevado nmero de periodos en los que se ha tenido dinero
invertido en Iberia. Esto es debido a las predicciones realizadas en el lunes 2 de
junio, en el que se predeca que la accin de Iberia iba a incrementar su valor.
Se observa tambin la cantidad de operaciones de compra y venta que se han
realizado en una sola semana. Esto es lgico pues se estn realizando predicciones y
tomando nuevas decisiones cada 5 minutos. Este gran nmero de operaciones
implicarn el pago de muchas comisiones de intermediacin y de muchos impuestos
por plusvalas. A continuacin se muestra el dinero pagado en comisiones y en
impuestos por plusvala en la semana simulada:
Dinero gastado en comisiones 1.327,65
Impuestos pagados 946,78
Ambas cifras son muy elevadas. Hay que tener en cuenta que cada vez que se
realiza una operacin de compra o de venta es necesario pagar el 0,05% del importe
de la operacin al broker online (ver apartado 6.2). Por otra parte cuando se venden
acciones de una empresa obtenindose una plusvala, hay pagar un impuesto
correspondiente al 18% de la plusvala.
Debido al elevado nmero de operaciones intradiarias que se realizan se podra
conseguir un descuento de usuario frecuente con el broker online. La mayora de los
brokers online ofrecen esta posibilidad, y se podran reducir de forma considerable el
importe de las comisiones y generar un mayor beneficio.
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 121
5.3 Evaluacin del beneficio obtenido
Para evaluar el beneficio obtenido en la simulacin, se ha obtenido en cada
periodo el dinero que se tiene invertido (teniendo en cuenta el pago de comisiones y
de impuestos).
La siguiente grfica muestra la evolucin del dinero invertido:
Grfico 23: Evolucin del dinero invertido
Se observa cmo en todos los das se produce un incremento del dinero
invertido.
Se ha partido de una inversin de 10.000 el viernes 30 de Mayo y se tienen
11.889 al finalizar la jornada burstil del jueves 5 de Junio.
Si se hubiese utilizado la prediccin ingenua no se hubiese obtenido beneficio
alguno, ya que no se hubiese predicho ninguna subida y el sistema no hubiese
invertido en ninguna empresa.
A continuacin se muestra una grfica con la evolucin del beneficio acumulado
en cada uno de los periodos:
9.000
9.500
10.000
10.500
11.000
11.500
12.000
12.500
dinero invertido
30/05/08 02/06/08 03/06/08 04/06/08 05/06/08
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 122
Grfico 24: Evolucin del beneficio acumulado
En el beneficio final obtenido en la inversin ha sido de 1.889 (habindose
tenido en cuenta el pago de comisiones y de impuestos). Esto supone una
rentabilidad del 18,89%, rentabilidad significativamente superior a la rentabilidad de
otro tipo de inversiones (como referencia recordar que la inversin en Letras del
Tesoro tiene una rentabilidad del 4,2%). Adems el periodo de retorno de esta
inversin es de tan slo una semana, mientras que en los Letras del Tesoro es de 3 a
6 meses.
Un buen indicador para valorar el riesgo de esta de inversin es estudiar cmo ha
variado el ndice IBEX-35 en el periodo estudiado. Para ello se ha representado la
variacin del IBEX-35 entre las fechas simulados contrastndose con la evolucin
del dinero que se tiene invertido.
9.000
9.500
10.000
10.500
11.000
11.500
12.000
12.500
dinero invertido
0
500
1.000
1.500
2.000
2.500
beneficio acumulado
30/05/08 02/06/08 03/06/08 04/06/08 05/06/08
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 123
Grfico 25: Comparacin de la variacin del ndice IBEX-35 con el dinero invertido
En el grfico 25 se observa cmo la inversin es rentable a pesar de que el ndice
IBEX-35 decrece en el periodo simulado. Por este motivo se puede considerar que la
inversin no tiene un riesgo excesivo dado que se obtiene una rentabilidad elevada a
pesar de que la Bolsa est en una temporada bajista.
12.900
13.000
13.100
13.200
13.300
13.400
13.500
13.600
13.700
9.000
9.500
10.000
10.500
11.000
11.500
12.000
12.500
v
a
l
o
r
d
e
l
I
B
E
X
-
3
5
d
i
n
e
r
o
i
n
v
e
r
t
i
d
o
dinero invertido
IBEX-35
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 124
6 Lneas de continuacin
6.1 Incorporacin de nuevas entradas
6.2 Red neuronal
6.3 Toma de decisiones
6.4 Funcionamiento en tiempo real con Visual Chart
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 125
6.1 Incorporacin de nuevas entradas
Las entradas a la red neuronal que se han utilizado en este proyecto son datos
histricos e indicadores histricos. Lo cierto es que estas variables no son las nicas
que determinan las expectativas del mercado.
Se plantea la posibilidad de tratar de incluir algunas variables psicolgicas,
cuantificadas de alguna manera. Por ejemplo se podra incluir una entrada que
representase el da de la semana que es (1 lunes, 2 martes, , 5 viernes), ya que
recientes estudios estadsticos sobre las cotizaciones de las empresas del IBEX-35
muestran como el viernes suele ser un da alcista debido al optimismo de los
inversores, al contrario que el lunes (ver [ROSI07]).
Tambin se podra pensar en incluir una entrada que representase el tiempo
meteorolgico ya que ste tambin puede afectar al pesimismo o al optimismo de los
inversores en un momento determinado.
Otras entradas que se pueden incluir son las relacionadas con el valor de
empresas de un mismo sector. Por ejemplo, una entrada para Endesa podra ser el
estado de la tendencia de las dems compaas elctricas europeas.
Por ltimo se propone tratar de buscar una posibles entradas a la red neuronal
que estn relacionada con los resultados publicados por las compaas (hace cunto
que se publicaron, expectativas, resultados parciales, etc.). Este tipo de variables
pueden ser tiles ya que son las que definen muchas posturas de los inversores (sobre
todo de los inversores a largo plazo).
6.2 Red neuronal
La red neuronal escogida en este proyecto se basa en las conclusiones realizadas
a partir de un anlisis meramente emprico. Se propone la posibilidad de incorporar
una red neuronal que vare su estructura segn los datos histricos que se utilicen
para el entrenamiento.
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 126
La rutina sera la siguiente:
1. Obtencin de datos histricos
2. Creacin de distintas redes neuronales con distintas estructuras (distinto
nmero de neuronas, distinto nmero de capas ocultas).
3. Eleccin de la red neuronal que presente un mejor ajuste de los datos
histricos.
El principal inconveniente que se tendra al incorporar este sistema sera que
aumentaran los tiempos de ejecucin considerablemente, y estos son crticos para
operar con la Bolsa en tiempo real.
6.3 Toma de decisiones
En este proyecto se han establecido unos criterios de inversin en los que slo se
plantea la opcin de invertir en 2 empresas o de no invertir en ninguna. Dado que los
resultados muestran una tasa de aciertos considerable, se deduce que se podra
obtener un mayor aprovechamiento de las predicciones si se sofisticasen los criterios
de decisin.
Se propone plantear un sistema de inversin que pueda tomar una mayor
variedad de decisiones de inversin. Se podran realizar valoraciones del riesgo que
implican las diferentes operaciones para tratar de incluirlas en el proceso de toma de
decisiones.
Por ejemplo, si se predice que una empresa va a ser la que ms va aumentar su
valor, pero se tiene el dinero invertido en otra que tambin va a subir, se debera
valorar si merece la pena cambiar de posicin (arriesgarse) o por el contrario seguir
con la empresa que se tiene (posicin ms segura).
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 127
6.4 Funcionamiento en tiempo real con
Visual Chart
En primer lugar se propone la creacin de una plataforma que permita la
interaccin del usuario con el sistema de forma cmoda (se podra programar esta
plataforma en Visual Basic) y grfica, ocultando la ejecucin del programa de
Matlab interactuando con Visual Chart.
Tambin se propone la mejora de los sistemas de Visual Chart para que se
eliminen las dificultades comentadas en el apartado 4.3.
Parece ser que Visual Chart va a implementar prximamente la posibilidad de
ejecutar rdenes de compra y venta de distintas empresas simultneamente. Cuando
esto suceda se podr simplificar bastante el programa y desaparecern muchas de las
dificultades existentes.
Por ltimo, se propone la posibilidad de eliminar del sistema de inversin las
empresas que empiecen a producir predicciones confusas. Esto puede ser interesante
ya que puede haber momentos en los que un rumor sobre cambios en una empresa
(OPAS, ampliaciones de capital, etc.) pueda derivar en variaciones en el valor de una
accin que no se puedan predecir mediante la red neuronal, ya que esta no incluye
entre sus entradas este tipo de factores que afectan a la Bolsa.
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 128
7. Anexos
7.1 Fiscalidad de la inversin en Bolsa
7.2 Brokers online
7.3 Gua del usuario del sistema de inversin
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 129
7.1 Fiscalidad de la inversin en Bolsa
Plusvalas y minusvalas
Plusvalas. La plusvala es el resultado positivo o beneficio que se obtiene tras la
venta de las acciones. Se tributa dependiendo del tiempo que se hayan tenido las
acciones en la cartera:
- Duracin de las acciones en cartera ms de un ao La plusvala se
computa ntegramente en la base imponible del I.R.P.F. del accionista
(tipo marginal del inversor). Este tipo depende del total de su base
imponible por todos sus conceptos de renta. Por lo tanto cuanto mayor
plusvala, en principio, mayor ser la base imponible y mayor ser el tipo
al que se tribute, ya que los tipos estn definidos en una escala que
depende del valor de la base imponible.
- Duracin de las acciones en cartera menos de un ao La plusvala
tributa al tipo fijo del 18%, independientemente de la cuanta de la
plusvala. Con ello el legislador quiere primar la inversin a largo plazo
(siempre que el tipo marginal del inversor sea menor que el 18%), la
posesin de las acciones de una empresa como inversin, y no como
especulacin. Se tiende a que este tipo vaya disminuyendo.
Minusvalas. La minusvala es el resultado negativo o prdida que se obtiene tras la
enajenacin de las acciones. Las minusvalas se restan de la base imponible.
Dividendos
Los dividendos tienen una retencin del 15%. El inversor slo cobra neto el
85%, el 15% restante se lo retienen cuando le van a pagar los dividendos. Estos se
imputan ntegramente en el clculo de la base imponible, el 100%, pero se puede
deducir el importe retenido, el 15%.
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 130
7.2 Brokers online
Qu es un broker online?
Un broker (corredor de bolsa) es una persona o una sociedad que se dedica a
operar en el mercado financiero realizando operaciones para sus clientes.
Para operar en el mercado financiero es necesario ser miembro de ste; en
Espaa los miembros autorizados para operar en la Bolsa son las agencias de valores
y las sociedades de valores. Las segundas son las dueas de la Bolsa como
institucin, y pueden operar por cuenta ajena o por cuenta propia; mientras que las
primeras slo pueden operar por cuenta ajena. Los brokers suelen estar integrados en
una sociedad de valores o en una agencia de valores.
El broker es el intermediario entre la bolsa y el inversor, este ltimo paga unas
comisiones por los servicios de intermediacin, que corresponden al pago del know-
how del broker y de su licencia para operar en el mercado. Un broker online es un
broker que contacta con el inversor a travs de una pgina web.
Los brokers online suelen operan tanto en la Bolsa espaola como en el MEFF
(Mercado Oficial de Futuros y Opciones Financieros en Espaa) como
intermediarios en la venta de los productos financieros que se ofrecen en estos dos
mercados. Tambin pueden operar en bolsas de otros pases/ciudades mediante la
afiliacin con entidades autorizadas para operar en stas, o siendo miembro de stas.
Tradicionalmente, el principal canal de contacto de los brokers con el cliente ha
sido el telfono, a travs de l, los inversores daban sus rdenes de compra-venta de
acciones o bonos. Con la llegada de Internet aparecieron los brokers online. Estos
contactan con el inversor va online, el cliente manda sus rdenes a travs de internet
y posteriormente recibe una confirmacin de estas. Los brokers online, al igual que
los brokers tradicionales, ofrecen ms servicios a parte de la ejecucin de rdenes de
compra y venta; tambin ofrecen asesora e informacin burstil a travs de su
pgina web.
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 131
En definitiva un broker online es una sociedad que presta servicios de compra-
venta de valores y ofrece asesora burstil a travs de una pgina web.
Eleccin del broker online
Para escoger un broker online se deben de tener en cuenta las siguientes
caractersticas de este:
- Servicios financieros que ofrece
- Precio de las comisiones que cobra
- Seguridad de su sistema
Visual Chart permite operar a travs de 6 brokers online que se pueden
considerar seguros.
Los brokers online que operan con Visual Chart se muestran en la siguiente
tabla:
Tabla 6: Brokers online que operan con Visual Chart
El servicio financiero que necesita el sistema de este proyecto, es el servicio de
ejecucin de rdenes de compra-venta de acciones de empresas del IBEX-35 en
tiempo real. Este servicio lo ofrecen Gaesco, Renta 4, Estubroker e Inversis (Interdin
ofrece servicios de compra venta de futuros e Interactive Brokers ofrece servicios de
operacin en bolsas extranjeras).
La mayora de brokers online cobran unas comisiones compuestas por una parte
fija y por una parte variable, y estas comisiones dependen del importe de la
operacin que se realice.
Se va a realizar un estudio de las comisiones que cobra Renta 4, Estubroker,
Gaesco e Inversis; para escoger el broker ms barato de los tres.
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 132
Grfico 26: Comisiones de los Brokers Online
En el grfico superior se representa la comisin por operacin en funcin del
importe de esta de cada uno de los brokers. Estas comisiones son las que
corresponden a un inversor en Bolsa que opere intradiariamente.
Se observa como EstuBroker es el broker online ms barato para cualquier
importe de la operacin; y por lo tanto ser el que se contratar en el sistema de
inversin de este proyecto.
7.3 Gua del usuario del sistema de inversin
Creacin de una red neuronal
1. Obtencin de datos histricos
1.1. Abrir Visual Chart
1.2. Abrir un grfico en ventana nueva
- Empresa: ACS
- Fecha Final: el da anterior al que se pretenda simular la red neuronal
- Fecha Inicial: un periodo que haga que el grfico tenga ms de 20200
periodos (por ejemplo, la misma fecha que la final un ao ms tarde)
0,00
5,00
10,00
15,00
20,00
25,00
30,00
35,00
0
2
.
0
0
0
4
.
0
0
0
6
.
0
0
0
8
.
0
0
0
1
0
.
0
0
0
1
2
.
0
0
0
1
4
.
0
0
0
1
6
.
0
0
0
1
8
.
0
0
0
2
0
.
0
0
0
2
2
.
0
0
0
2
4
.
0
0
0
2
6
.
0
0
0
2
8
.
0
0
0
3
0
.
0
0
0
3
2
.
0
0
0
3
4
.
0
0
0
3
6
.
0
0
0
/
o
p
e
r
a
c
i
n
importe de la operacin
Estubroker
Renta 4
Gaesco
Inversis
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 133
Ilustracin 34: Obtencin de datos en Visual Chart
1.3. Exportar datos: Archivo/Exportar/Grfico a texto. Es importante guardarlo
en la carpeta que se asigna a la funcin homogeniza de Matlab, con el
nombre acs_historico.
Al final se tendrn 20 ficheros de texto con los siguientes nombres
Realizar los pasos 1.2 y 1.3 para las dems de empresas
(Acerinox, Acciona, BBVA, Bankinter, Endesa, FCC, Ferrovial,
Gamesa, Gas Natural, Iberdrola, Iberia, Indra, Inditex, Popular,
Red Elctrica, Repsol, Santander, Telefnica y Unin Fenosa)
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 134
Ilustracin 35: Nombres de los ficheros
1.4. Declarar la variable carpeta. Esta variable representa la direccin donde se
han guardado los ficheros con los datos descargados de Visual Chart.
carpeta='C:\Users\Juan\Documents\Proyecto\historicos'
1.5. Llamar a la funcin homogeniza en Matlab. Esta funcin va a devolver una
variable HISTORICOS con los datos histricos de las 20 empresas.
HISTORICOS=homogeniza(carpeta)
2. Entrenamiento de la red neuronal
2.1. Llamar a la funcin entrenared:
[redneuronal,normaliza]=entrenared(HISTORICOS,fecha,hora)
Las variables fecha y hora sirven para indicar cul es el ltimo periodo de los
datos HISTORICOS del conjunto que se utilizar para entrenar la red neuronal.
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 135
Lo lgico es que sea el ltimo periodo que se dispone. Si se han descargado los
datos segn el ejemplo del apartado 1.2, fecha=20080606 (viernes 6 de junio de
2008) y hora=173000. De esta manera se obtendr la red neuronal para realizar
predicciones del da siguiente (lunes de 16 de junio de 2008).
La variable redneuronal contiene las 20 redes neuronales entrenadas para
realizar las predicciones, y la variable normaliza contiene la informacin
referente a la normalizacin de las entradas y salidas de la red neuronal.
Simulacin de varios das
1. Obtencin de datos histricos
Hacerlo del mismo modo que para crear la red neuronal (obtener la
variable HISTORICOS). Es importante que los datos histricos contengan los
das que se desean simular y que se tengan datos suficientes para entrenar la red
neuronal.
Por ejemplo si se quiere simular la semana del 19 al 23 de mayo de 2008, se
descargaran los datos histricos desde Visual Chart (ver ilustracin 33) con
fecha inicial 02/11/2006 y fecha final 23/05/2008.
2. Llamar a la funcin modoprueba
[VALORES,POSICIONES]=modoprueba(fecha_inicial,fecha_final
,HISTORICOS,empresas_seleccionadas,comisiones)
A esta funcin habr que proporcionarle los siguientes inputs:
- fecha_inicial: la fecha del primer da que se quiere simular, en el ejemplo
anterior sera 20080519 (lunes 19 de mayo de 2008).
- fecha_final: la fecha del ltimo da que se quiere simular, en el ejemplo
anterior sera 20080523 (viernes 19 de mayo de 2008
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 136
- HISTORICOS: Variable de salida de la funcin homogeniza(carpeta),
tenindose en la carpeta los histricos correspondientes antes
comentados.
- empresas_seleccionadas: esta variable es una matriz sirve para indicar la
situacin de partida. Existen dos posibilidades:
o Tener dinero en dos empresas: la matriz tendr la informacin
referente a las dos empresas (i y j) en las que se tiene el dinero
invertido. En este caso la matriz de empresas_seleccionadas ser:
_ =
o No tener dinero invertido: la matriz tendr la informacin
referente al dinero que se dispone para realizar inversiones. En
este caso la matriz de empresas_seleccionadas ser:
_ =
0 0
0
0 0
- comisiones: esta variable es una matriz que sirve para incluir las
comisiones y los impuestos. (Actualmente si se utiliza el broker online
EstuBroker la matriz comisiones sera: [0.0005 0.18]).
= % %
Y proporcionar los siguientes outputs:
- VALORES: esta variable es una variable tipo structure (dimensin 1x
nmero de das simulados) en la que cada elemento contiene una matriz
que contendr los valores reales y los valores simulados de cada uno de
los periodos de un da de la simulacin. La estructura de esta matriz se
muestra en la siguiente imagen:
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 137
Ilustracin 36: Formato de la variable VALORES
- POSICIONES: esta variable es una matriz que contiene el dinero
invertido que se tiene en cada una de las empresas y en cada uno de los
periodos de la simulacin. Para calcular esta variable, la funcin
modoprueba simula las decisiones que se habran ido tomando a partir de
las simulaciones de cada periodo. La estructura de esta matriz es:
Valores reales
Valores simulados
Fecha
Hora
Empresa
1 (ACS)
Empresa
20
(Unin
Fenosa)
ndice de
empresa
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 138
Ilustracin 37: Formato de la variable POSICIONES
3. Obtencin de resultados
Para la obtencin de resultados se llama a la funcin resultados:
[VALORES,POSICIONES]=(fecha_inicial,fecha_final,HISTORICO
S)
Esta funcin tendr como inputs las salidas de la funcin modoprueba, y como
outputs:
- dineroybeneficio: esta variable contiene el dinero invertido y el beneficio
acumulado en cada uno de los periodos de la simulacin.
1
1730
Fila con
el dinero
lquido
Dinero total que se
tiene invertido
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 139
- subidasacertadas: esta variable contiene el nmero total de periodos en
los que la accin ha subido, y el nmero de periodos en los que las
subidas han sido predichas por el sistema de inversin (para cada una de
las 20 empresas).
. (1)
. (20)
- bajadasacertadas: esta variable contiene el nmero total de periodos en
los que la accin ha bajado, y el nmero de periodos en los que las
bajadas han sido predichas por el sistema de inversin (para cada una de
las 20 empresas).
. (1)
. (20)
- aciertos: esta variable contiene el nmero total de periodos en los que el
sistema ha acertado con su prediccin (para cada una de las 20 empresas).
. (1)
. (20)
- erroresmedios: esta variable contiene los errores medios unitarios de las
predicciones realizadas en cada una de las 20 empresas.
. (1) (1)
(20) (20)
- numerodeposiciones: esta variable contiene el nmero de periodos en los
que se ha tenido dinero invertido en cada una de las 20 empresas.
. (1) (1)
(20) (20)
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 140
Simulacin en tiempo real con Visual Basic
1. Abrir un grfico que contenga las 20 empresas a estudiar
Con Fecha inicial correspondiente al da que se quiere simular. (Es necesario
abrir este grfico antes de que abra la bolsa).
2. Insertar en este grfico el sistema ESCRITURA.vba
Si es la primera vez que se utiliza el sistema de inversin en Visual Chart, es
necesario incluir el sistema en la plataforma. Para ello es necesario ir a
Sistemas/Crear sistema con plataforma Visual (ETIQUETA= ESC,
NOMBRE=ESCRITUTA) y abrir el sistema ESCRITURA.vba del CD compilarlo y
publicarlo.
Una vez se tiene el sistema en la lista de sistemas, se ir a Sistemas/Insertar
Sistema y se escoger el sistema ESCRITURA.vba. Los parmetros a introducir en
este sistema son el nombre de los ficheros que se van a asignar a los datos de cada
una de las empresas. Es necesario que estos parmetros sean los nombres de las
empresas:
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 141
Ilustracin 38: Insertar ESCRITURA.VBA
Este sistema va a ir escribiendo ficheros con la informacin burstil de las 20
empresas cada periodo.
3. Insertar sistemas de ejecucin de acciones
El sistema de ejecucin de rdenes (EJECUCION.vba) ha de ser insertado en un
grfico con una sola empresa (problema comentado en el apartado 4.3). Por esto es
necesario abrir 20 grficos independientes (20 empresas) e insertar en cada uno de
ellos el sistema EJECUCION.vba
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 142
Ilustracin 39: Parmetros del sistema EJECUCION.vba
En la casilla correspondiente a indiceempresa es necesario escribir el ndice de la
empresa en cuestin (por ejemplo ACS=1).
3. Ejecutar la funcin funcionamiento_tiempo_real
Esta funcin devolver una matriz posicionesydinero que tiene el mismo formato
que la variable POSICIONES de la funcin modoprueba (ver ilustracin 36). Y una
variable valores con el formato que se muestra en la ilustracin 35.
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 143
8. Bibliografa
[CAVA06] Cava, J.L., "El arte de especular. Las tcnicas que mejor funcionan".
2006.
[CLEM03] Clemens, M.P., Fransen, P.H, Swanson, "Forecasting economic and
financial time-series with non-linear models". 2003.
[CRUZ04] Cruz Torres, I., "Pronsticos en el mercado de derivados utilizando
redes neuronales y modelos ARIMA: una aplicacin al Cete de 91 das
en el MexDer". 2004.
[CYBE89] Cybenko, G., "Approximation by superposition of a sigmoidal
function". 1989.
[DEMU06] Demuth, H., Beale, M. y Hagan, M., "Neural Networks Toolbox".
2006.
[EMER06] EMERGIA, "Estudio comparativo brokers online". 2006.
[EVEL06] Evelina, M., "Using economic indicators to improve investment
analysis". 2006.
[GARC02] Garca Estvez, P., "Aplicaciones de las redes neuronales en las
finanzas". 2002.
[GARC05] Garca de Jaln, y Rodrguez, J.I, "Aprenda Matlab como si estuviese
en primero". 2005.
[GARC99] Garca de Jaln, J., Brazlez, A. y Rodrguez, J.I, "Aprenda Visual
Basic 6.0 como si estuviera en primero". 1999.
[KRS96] Krse, J.A y Van der Smagt, P., "An introduction to neural networks".
1996.
[LACH95] Lachtermacher, G. y Fuller, G.D., "Backprogramation in time-series
forecasting. Journal of Forecasting, 14: 381-393". 1995.
[MA__92] Ma, G.W y Kao, C.K, "Memories, heteroscedasty and prices limit in
currency future markets". 1992.
[MALA07] Malaver Baselga, Toms, "Proyecto de fin de carrera: Aplicacin del
Juan Hornedo Lpez-Ibor: Sistema de Inversin en bolsa a corto plazo 144
perceptrn multicapa a la compra-venta de acciones de bolsa a corto
plazo. ETSI ICAI". 2007.
[OLME04] Olmedo, E., Valderas, J.M, Mateos, R., Gimeno, R., "Utilizacin de
redes neuronales en la caracterizacin, modelizacin y prediccin de
series temporales econmicas en un entorno complejo". 2004.
[PISS02] Pissarenco, D., "Neural Networks for financial time series prediction.
Overview over recent research". 2002.
[RAYA07] Raya Bayona, L., "Invertir en Bolsa en el "muy corto plazo".
Consumer Eroski. 2007.
[REUT08] REUTERS, "Artculo: Iberia ve un ligero descenso de su coeficiente de
ocupacin en 2008, (2 de Junio de 2008)". 2008.
[RODR04] Rodrigo, N., "La bolsa contada con sencillez". 2004.
[ROSI07] Rosique, C. , "El da ms rentable de la bolsa. Diario Expansin (20 de
Mayo de 2007)". 2007.
[TAM_92] Tam, K.M, Kinag, M.Y, "Predicting bank failures: a neural network
approach". 1992.
[VELA07] Velasco, D., "Descubra cules son los brokers online ms baratos,
segn su perfil inversor (elEconomista.es, 29 de mayo de 2007)". 2007.
[WOJT02] Wojtek Przytula, K., "Analysis for trained neural networks". 2002.
[ZHAN98] Zhang, G.P. y Hu, M.Y, "Forecasting with artificial neural networks".
1998.