Sie sind auf Seite 1von 153

RESUMEN DEL PROYECTO

El proyecto Stock Market Game agrupa tres conceptos muy interesantes para cualquier persona interesada en los mercados financieros. Por un lado, se trata de una plataforma ficticia de inversin donde el usuario puede poner a prueba sus conocimientos o competir contra otros usuarios. Por otro lado, recopila la informacin necesaria para proporcionar todas las herramientas necesarias de inversin (cotizaciones intrada, grficos e informacin de indicadores y osciladores charlistas). Adems, ofrece al usuario una plataforma de ayuda de inversin, indicando el momento de realizar sus operaciones. El sistema permitir a los usuarios registrados de forma ficticia invertir sobre los valores del IBEX35. En Stock Market Game los usuarios podrn realizar rdenes de compra y venta, tanto a precio de mercado como con precios limitados o condicionados. El sistema deber interactuar con aplicaciones de terceros para incorporar l as cotizaciones al sistema, con ellas el sistema crear unas grficas estadsticas y calcular diversos indicadores del anlisis tcnico burstil para ayudar a los usuarios en sus inversiones. Las noticias burstiles se han incorporado al sistema a travs del RSS de www.bolsamania.com. Para la realizacin del proyecto Stock Market Game, se han definido unos osciladores propios del sistema que son necesarios para crear el mdulo de ayuda a la inversin. Este mdulo se ha construido como un sistema experto basado en reglas de produccin que transmitir al usuario recomendaciones sobre la toma de posiciones para el da siguiente.

La plataforma web se ha desarrollado como un juego que incluye caractersticas tpicas de los juegos online masivos como son la incorporacin de ligas, donde se puede competir entre varios usuarios para ser el mejor inversor. Por otra parte existe en el sistema una clasificacin con los mejores inversores. Para su desarrollo se ha utilizado la metodologa UML con algunas modificaciones para poder incluir dentro de cada fase la plataforma web y la aplicacin batch que obtiene los datos de las cotizaciones, crea las grficas y al final del da analiza los

valores para dar recomendaciones. Entre las modificaciones figuran la incorporacin de DFDs y diagramas de flujo al proceso de diseo de la aplicacin batch. Las tecnologas utilizadas para la realizacin del proyecto han sido JavaEE para la plataforma web, siguiendo el patrn MVC (Modelo-Vista-Controlador). Para la vista, se ha incorporado tecnologa AJAX combinada con JSPs para mejorar la apariencia y seguir el modelo de WEB 2.0. La aplicacin batch se ha desarrollado usando JavaSE, incorporando el FrameWork de JFreeChart para la realizacin de grficas. El sistema experto est basado en reglas de produccin y la aplicacin de terceros elegida para suministrar las cotizaciones est formada por archivos .CSV alojados en los servidores de Yahoo Financial. La base de datos es de tipo relacional, est gestionada por MySQL y es el nexo de unin entre las dos aplicaciones.

II

ABSTRACT
Stock Market Game involves three different and really interesting concepts to anyone interested in financial markets. On one hand, Stock Market Game is a web platform where users can fictitiously invest to test their knowledge or compete with other users. On the other hand, it receives all needed information to give the user all kinds of investment tools (daily prices, charts and indicators). The system, gives the user a investment-help platform, indicating when should de user buy or sell. The system will allow registered users to buy and sell stocks in three different ways, current price, limited price and price conditions. The system needs to communicate with a third party application to receive the stocks price during the open market and the historical log files of each company in the IBEX35. The system creates graphics charts and calculates different technical analysis concepts such as the RSI or momentum to identify trends in the stocks and help users to find the best investment. Financial news are brought by the RSS file from www.bolsamania.com. Several indexes and oscillators have been created especially for Stock Market Game, which will help to build the investments advice module. This module is a knowledge system, based on production rules that will give the users advices on the different next day stocks. The web platform has been built as a game, with some typical characteristics of the multi-masive online games, such as leagues where users can compete between them to sort out who is the best investor. The game creates a classification of the best investors registered in the server. The Methodology chosen to develop the project is UML, modified by adding DFD and flow diagrams of the batch application that incorporates the charts module, stock price receiving and the knowledge system. The technologies used for the project have been JavaEE for the web platform, implementing a MVC (Model-View-Controller) pattern. AJAX technology has been incorporated into the view combined with Java Server Pages to improve the traditional static web pages, following the WEB 2.0 standard.

III

The batch applications has been built using JavaSE using JFreeChart FrameWork for creating the charts. The knowledge System is based on production rules. The third party application chosen to provide the stocks price have been .CSV files hosted in the yahoo financial servers. The relational database is managed by MySQL server and unifies both applications by using the database tables to transfer data between them.

IV

ndice
1. Introduccin ....................................................................................... 2 2. Identificacin de necesidades ............................................................ 5 3. Anlisis de requisitos ....................................................................... 10
3.1 Modelo conceptual de la aplicacin web ................................................................ 11
3.1.1 Casos de uso del sistema. ....................................................................................... 11 3.1.2 Modelo de dominio. .............................................................................................. 42 3.1.3 Interfaz inicial del sistema ...................................................................................... 47

3.2 Modelo conceptual de datos. ................................................................................... 51 3.3 Requisitos de la aplicacin batch. ........................................................................... 57
3.3.1 Lista de requisitos. ................................................................................................. 57 3.3.2 Diagrama de contexto de la aplicacin batch .......................................................... 60

4. Diseo del sistema ............................................................................ 62


4.1 Arquitectura del sistema ........................................................................................... 62 4.2 Diagramas de secuencia. .......................................................................................... 65

5. Diseo detallado ............................................................................... 71


5.1 Diseo de la aplicacin web. .................................................................................... 72
5.1.1 Estructura de la aplicacin...................................................................................... 72 5.1.2 Diagrama de paquetes. ........................................................................................... 73 5.1.3 Diagramas de clase. ............................................................................................... 74

5.2 Diseo de la base de datos........................................................................................ 80


5.2.1 Diagrama de la base de datos ................................................................................. 80 5.2.2 Diseo fsico de la base de datos ............................................................................ 81

5.3 Diseo de la aplicacin batch ................................................................................... 85


5.3.1 DFD de primer nivel. ............................................................................................. 86 5.3.2 Diagramas de flujo ................................................................................................. 87

6. Programacin .................................................................................. 92
6.1 AJAX con DWR ....................................................................................................... 93 6.2 FrameWork JFreeChart ............................................................................................ 99 6.3 Java EE y Java SE ................................................................................................... 102

7. El Sistema Experto de Anlisis Tcnico ....................................... 104


7.1 El anlisis tcnico. .................................................................................................. 105 7.2 Los osciladores de SMG......................................................................................... 109 7.3 El sistema experto ................................................................................................... 111 V

7.4 Resultados ............................................................................................................... 112 7.5 El simulador ............................................................................................................ 113

8. Presupuesto. ................................................................................... 115 9. Conclusiones .................................................................................. 118 10. 11. 12. Futuras Mejoras .......................................................................... 120 Planificacin ................................................................................ 122 Bibliografa .................................................................................. 124

Anexo I. Manual de instalacin ........................................................... 127 Anexo II. Manual de usuario ............................................................... 129

VI

Stock Market Game

Introduccin

Stock Market Game

1. Introduccin
El propsito del proyecto es crear una aplicacin web que funcione como un juego y cuya temtica sea la bolsa espaola, ms concretamente el IBEX35. La necesidad de esta aplicacin viene dada por no existir simuladores de inversin en la bolsa espaola. Se ha decidido desarrollar la aplicacin como si fuera un juego para atraer a usuarios sin conocimientos del funcionamiento de la bolsa a parte de los expertos. El hecho de que puedan practicar sus habilidades de inversin sin apostar su dinero, atraer a ms usuarios. El propsito del juego es introducir a los usuarios en el mundo de la bolsa, el anlisis tcnico puede ser muy aburrido pero si se muestra como un juego, los usuarios irn adquiriendo experiencia poco a poco de forma divertida. La aplicacin deber mostrar estadsticas del intrada e histricas, permitir lanzar rdenes de compra o venta con condiciones. Reflejar la competicin en una clasificacin. Los datos de las cotizaciones, deben ser datos reales del IBEX35, por lo tanto se ha creado una aplicacin batch capaz de recibir los datos de las cotizaciones y los histricos de los valores para ms tarde introducirlos en la base de datos. Por ltimo, se ha desarrollado un mdulo de ayuda a la inversin que dar recomendaciones diarias sobre cada uno de los valores. Dicho mdulo se ha incorporado a la aplicacin batch.

Stock Market Game

Quedando el sistema como se ve a continuacin:

La aplicacin batch, obtendr las cotizaciones de Yahoo, crear las estadsticas y a final del da dar recomendaciones sobre los valores del mercado. La aplicacin web incorporar las noticias del RSS de www.bolsamania.com y se desarrollar con JavaEE y con contenido dinmico proporcionado por AJAX Para la realizacin del proyecto se ha elegido la metodologa UML cuyos pasos se van a relatar en los siguientes apartados.

Stock Market Game

Identificacin de necesidades

Stock Market Game

2. Identificacin de necesidades

En esta fase del desarrollo se ha realizado un anlisis de los requerimientos del sistema, sus objetivos, normas a seguir, tecnologas a utilizar, todos estos requerimientos se describen en el documento de conceptos del sistema que figura a continuacin. El documento de conceptos del sistema se divide en 4 partes: Objetivos del sistema. En este apartado se relatan los objetivos ms generales del sistema en una descripcin clara y escueta pero que debe definir claramente la finalidad del sistema, estos objetivos se describen desde una perspectiva empresarial. Alcance del sistema. El alcance describe todas las funcionalidades que debe tener el sistema, detallando todas ellas lo mejor posible ya que es el punto de partida para realizar el sistema. Tipologa de los usuarios finales. En este apartado se describe el perfil de los usuarios finales, de tal manera que el interfaz pueda ser lo ms apropiado posible para los usuarios finales. Restricciones. Tal como su nombre indica, las restricciones son todos aquellos factores que puedan afectar al desarrollo del sistema, las restricciones pueden ser de tipo econmico, tecnolgico, logstico o de cualquier otro tipo.

Stock Market Game

DOCUMENTO DE CONCEPTOS DEL SISTEMA 1. OBJETIVOS DEL SISTEMA


El sistema consiste en el desarrollo de un juego de bolsa sobre una plataforma web en el que los usuarios podrn invertir de forma ficticia sobre los valores del IBEX35. El sistema deber realizarse como un juego y tendr en cuenta tanto a usuarios avanzados en la inversin como a aquellos que nunca hayan invertido. Para obtener los datos de las cotizaciones el sistema deber ser capaz de interactuar con aplicaciones de terceros. El juego dispondr de la opcin de crear y participar ligas, para que los usuarios puedan competir por ser el mejor inversor dentro de su liga adems de la competicin global. Habr un sistema de mensajera con el cual los usuarios podrn comunicarse con los dems jugadores. El sistema contar adicionalmente con un mdulo de ayuda a la inversin que utilizar diversos indicadores del anlisis tcnico para realizar estimaciones de cules sern los mejores valores en los que invertir.

Stock Market Game

DOCUMENTO DE CONCEPTOS DEL SISTEMA 2. ALCANCE DEL SISTEMA


La aplicacin debe permitir invertir de la forma ms real posible, los datos de las cotizaciones deben obtenerse peridicamente para que la experiencia de la inversin sea lo ms realista posible. Se dispondr de un sistema de ayuda a la inversin que usar osciladores e indicadores del anlisis tcnico para dar recomendaciones para el da siguiente. El mdulo de estadsticas tendr la informacin del intrada e histrica. El sistema, se realizar como un juego, habr una competicin con una clasificacin de los mejores inversores adems de la opcin de pertenecer a una liga, en la que los jugadores podrn realizar una competicin entre los usuarios que se apunten a la liga. Los usuarios podrn comunicarse entre ellos con un sistema de mensajera, que deber ser lo ms simple posible para no interferir en la mecnica del juego. El sistema dispondr de un manejo simple e intuitivo de la cartera de valores del usuario, permitiendo compras y ventas tanto a precio de mercado como con precio limitado o condicionado. Habr una seccin en el sistema en la que se podrn visualizar las ltimas noticias del mundo financiero proporcionadas por terceros.

Stock Market Game

DOCUMENTO DE CONCEPTOS DEL SISTEMA 3. TIPOLOGA DE LOS USUARIOS


El tipo de usuario del sistema ser un inversor en bolsa, tanto si tiene altos conocimientos sobre el mundo financiero como si acaba de empezar en el y no se atreve a invertir su dinero. Perfiles: Usuario: El usuario del sistema tiene que ser capaz de invertir, mandar mensajes y de apuntarse a cualquier liga que el desee. Administrador de la liga: El administrador de la liga ser un usuario cualquiera que haya creado una liga podr aceptar usuarios en su liga, expulsarlos o borrar la liga.

DOCUMENTO DE CONCEPTOS DEL SISTEMA 4. RESTRICCIONES


Restriccin temporal: El sistema deber estar completo antes de la convocatoria de septiembre de 2007. Restriccin de recursos El sistema se desarrollar con Java y deber contener elementos del WEB 2.0 que es como se denomina a las aplicaciones web de contenido dinmico.

Stock Market Game

Anlisis de requisitos

Stock Market Game

3. Anlisis de requisitos
El anlisis de requisitos consiste en la creacin de un modelo conceptual del sistema que satisfaga todos los requisitos, para ello, esta etapa del desarrollo se divide en varias actividades tcnicas. Para el desarrollo de la plataforma web, se realizarn las siguientes actividades definidas por la metodologa UML: Identificar los casos de Uso del Sistema. Dar detalle de los casos de uso descritos. Dar una interfaz inicial al sistema. Desarrollar el modelo de dominio.

Como la metodologa elegida para el desarrollo no es la ms apropiada para las aplicaciones secuenciales como la aplicacin batch que recoger los datos de las cotizaciones y los analizar, la fase de anlisis de requisitos aadir una actividad extra para la aplicacin batch que ser: Lista de requisitos para la aplicacin batch.

Por ltimo, en esta fase se va a realizar el modelo conceptual de datos que representa las entidades con sus atributos y las relaciones existentes entre ellas. Esta primera visin tcnica del sistema, se encarga de dar una perspectiva de qu funcionalidades debe tener el sistema sin entrar a definir cmo debe realizarlas.

10

Stock Market Game

3.1 Modelo conceptual de la aplicacin web

3.1.1 Casos de uso del sistema.

Los casos de uso permiten recoger y documentar los requerimientos funcionales de un sistema, para su realizacin se necesita primeramente identificarlos y posteriormente realizar una descripcin detallada de cada caso de uso. Un caso de uso permite recoger y documentar un requerimiento funcional del sistema y su forma de interactuar con el usuario. Para identificarlos y representarlos se utilizan los diagramas de casos de uso en los que se representa a los actores y sus relaciones con el sistema y otros actores. Un actor puede ser cualquier persona, organizacin o sistema que sea externo al sistema que se est analizando y que adems interacta de alguna manera con l. Un actor, ms que un ente concreto es un rol abstracto que representa la forma de interactuar con el sistema. Un caso de uso responde a un objetivo de un actor con respecto al sistema y es una unidad funcional completa. Un ejemplo puede ser un inversor que quiere comprar valores de una empresa, el caso de uso comprendera todas los pasos que necesitara el usuario para conseguir su fin.

11

Stock Market Game

3.1.1.1 Diagramas de casos de uso del sistema.


Los diagramas de casos de uso son una representacin grfica del caso de uso, representa grficamente la relacin entre el actor principal el sistema. Para nuestro sistema, adems nos va a servir para identificar los casos de uso. A continuacin figura un grfico explicativo de las figuras que pueden aparecer en los diagramas de casos de uso.

Caso 1

Caso de uso relacionado con el actor principal

Actor principal

Relacin

12

Stock Market Game

13

Stock Market Game

3.1.1.2 Descripcin de los casos de uso.


La descripcin de los casos de uso se ha realizado rellenando una plantilla que se explica a continuacin, la plantilla tiene diferentes secciones: Ttulo: Da nombre al caso de uso, debe ser claro, conciso y auto explicativo. Actor primario: Es aquel cuyo objetivo da nombre al caso de uso, normalmente es tambin el que lo inicia aunque no siempre es as.

Actor secundario: Cualquier otro actor que intervenga en el caso de uso y que ayude al sistema a conseguir el objetivo del actor primario.

Trigger: Es el evento que inicia el caso de uso, a veces precede al primer paso del caso de uso, mientras que otras veces es el primer caso.

Precondiciones: Son condiciones que se han de dar para que pueda iniciarse el caso de uso y como se han de cumplir antes, no se vuelven a comprobar una vez iniciado el caso de uso, pueden ser una o varias, pero todas ellas han de cumplirse.

Escenario Primario: Se describe mediante una serie de pasos numerados, cada paso consistir en una frase activa en tiempo presente, cada paso puede ser nicamente de los siguientes tipos: o o o Una interaccin entre sistema y actor o actores. Una validacin de cierta informacin recibida o de una regla de negocio. Un cambio de estado lgico del sistema.

Extensiones: Describen escenarios alternativos al escenario primario, todas las alternativas deben ser activadas por una condicin detectable por el sistema.

Descripcin de datos: En esta seccin se desglosan los datos que son referidos en el escenario principal.

Reglas de negocio: Son reglas externas al sistema.

14

Stock Market Game


Caso de Uso: Alta Usuario Actor Principal: Usuario Actor Secundario: ----Trigger: El usuario inicia la transaccin Precondiciones: ----Escenario principal: 1. El usuario accede al sistema El Sistema le muestra la pgina de Inicio. 2. El usuario selecciona crear cuenta. 3. El sistema muestra un formulario a rellenar. 4. El usuario introduce los datos de la nueva cuenta. 5. El sistema registra el nuevo usuario Extensiones: 6a. El sistema comprueba que el nick del socio ya exista. 1. El sistema notifica al usuario del fallo y se vuelve al punto 2. 6b. El sistema comprueba que los datos introducidos son errneos. 2. El sistema notifica al usuario de los errores en el formulario y se vuelve al punto 4. Descripcin de Datos: Formulario: Nick Contrasea Comprobacin de la contrasea Nombre Apellidos Email.

Reglas de Negocio:

15

Stock Market Game

Caso de Uso: Conectar a cuenta Actor Principal: Usuario Actor Secundario: ----Trigger: El usuario inicia la transaccin Precondiciones: ----Escenario principal: 1. El usuario selecciona la opcin de conectarse al sistema de la pgina de inicio. 2. El sistema muestra al usuario la pgina de login. 3. El usuario introduce el nick y la contrasea. 4. El sistema comprueba que el nick y la contrasea concuerdan. 5. El sistema muestra la pgina principal.

Extensiones: 4a. El sistema comprueba que el nick y la contrasea no existen. 1. El sistema notifica al usuario del fallo y se vuelve al punto 2. 4b. El sistema comprueba que no existe un usuario con ese nick. 1. El sistema notifica al usuario y el sistema muestra la pgina de inicio. Descripcin de Datos: Reglas de Negocio:

16

Stock Market Game

Caso de Uso: Crear Liga Actor Principal: Usuario Actor Secundario: ----Trigger: El usuario inicia la transaccin. Precondiciones: El usuario est conectado. Escenario principal: 1. El usuario selecciona en su pgina principal la opcin de crear liga 2. El sistema le muestra un formulario de creacin de liga. 3. El usuario introduce los datos de la nueva liga. 4. El sistema comprueba los datos de la liga y le da de alta.

Extensiones: 4a. El sistema comprueba que los datos del formulario no son vlidos. 1. El sistema notifica al usuario de los errores en el formulario y se vuelve al punto 4. Descripcin de Datos: formulario de creacin de liga: Nombre Descripcin. Tag.

Reglas de Negocio:

17

Stock Market Game

Caso de Uso: Peticin de alta en una liga Actor Principal: Usuario Actor Secundario: ----Trigger: El usuario inicia la transaccin. Precondiciones: El usuario est conectado. Escenario principal: 1. El usuario selecciona la opcin de darse de alta en una liga 2. El sistema muestra el formulario para darse de alta. 3. El usuario introduce los datos de alta. 4. El sistema enva la peticin de alta al administrador de la liga. Extensiones: Descripcin de Datos: formulario de alta en liga: Tag. Descripcion

Reglas de Negocio:

18

Stock Market Game

Caso de Uso: Ver participantes de la liga Actor Principal: Usuario Actor Secundario: ----Trigger: El usuario inicia la transaccin. Precondiciones: El usuario est conectado. El usuario pertenece a una liga. Escenario principal: 1. El usuario selecciona ver la seccin de ligas. 2. El sistema muestra la informacin de las ligas a las que pertenece. 3. El usuario selecciona ver una liga especfica. 4. El sistema le muestra los datos de la liga. Extensiones: Descripcin de Datos: Datos de la liga: Componentes. Clasificacin de cada componente. Descripcin de la liga. Administrador de la liga.

Reglas de Negocio:

19

Stock Market Game

Caso de Uso: Alta de jugador en la liga Actor Principal: Usuario Actor Secundario: ----Trigger: El usuario inicia la transaccin. Precondiciones: El usuario est conectado. El usuario es Administrador de la liga. Hay una peticin de alta en la liga. Escenario principal: 1. El usuario selecciona ver la seccin de ligas. 2. El sistema muestra la informacin de la liga a la que pertenece. 3. El sistema le muestra los datos de la liga y los datos de administrador de la liga. 4. El usuario selecciona ver las peticiones de entrada. 5. El sistema muestra las peticiones de entrada en la liga. 6. El usuario selecciona aceptar peticin. 7. El sistema da de alta al jugador que hizo la peticin en la liga. Extensiones: 6a. El usuario selecciona rechazar la peticin. 1. El sistema borra el mensaje de peticin. Descripcin de Datos: Datos de la liga: Componentes. Clasificacin de cada componente. Descripcin de la liga. Administrador de la liga.

Datos de administrador de la liga: Peticiones pendientes.

Reglas de Negocio:

20

Stock Market Game

Caso de Uso: Baja de jugador en la liga Actor Principal: Usuario Actor Secundario: ----Trigger: El usuario inicia la transaccin. Precondiciones: El usuario est conectado. El usuario es Administrador de la liga. Escenario principal: 1. El usuario selecciona ver la seccin de ligas. 2. El sistema muestra la informacin de la liga a la que pertenece. 3. El sistema le muestra los datos de la liga y los datos de administrador de la liga. 4. El usuario selecciona expulsar al jugador de la liga. 5. El sistema da de baja al jugador seleccionado. Extensiones: Descripcin de Datos: Datos de la liga: Componentes. Clasificacin de cada componente. Descripcin de la liga. Administrador de la liga.

Datos de administrador de la liga: Peticiones pendientes.

Reglas de Negocio:

21

Stock Market Game

Caso de Uso: Abandonar la liga. Actor Principal: Usuario Actor Secundario: ----Trigger: El usuario inicia la transaccin. Precondiciones: El usuario est conectado. El usuario pertenece a una liga. El usuario no es el administrador de la liga Escenario principal: 1. El usuario selecciona ver la seccin de ligas. 2. El sistema muestra la informacin de la liga a la que pertenece 3. El sistema le muestra los datos de la liga 4. El usuario selecciona la opcin abandonar liga y adems el usuario no es el administrador de la liga. 5. El sistema borra al jugador de la liga. Extensiones: Descripcin de Datos: Datos de la liga: Componentes. Clasificacin de cada componente. Descripcin de la liga. Administrador de la liga.

Reglas de Negocio:

22

Stock Market Game

Caso de Uso: Comprar valores a precio de mercado. Actor Principal: Usuario Actor Secundario: ----Trigger: El usuario inicia la transaccin. Precondiciones: El usuario est conectado Escenario principal: 1. El usuario selecciona ver las cotizaciones del da. 2. El sistema muestra al usuario el men de cotizaciones. 3. El usuario selecciona comprar un valor. 4. El sistema muestra los datos del valor y un formulario de compra. 5. El usuario introduce el nmero de acciones que desea comprar. 6. El sistema comprueba que el usuario tiene suficiente cash para realizar la transaccin. 7. El sistema registra la orden de compra. Extensiones: 6a. El sistema comprueba que el usuario no tiene suficiente cash para realizar la transaccin. 1. El sistema registra una orden de compra con el mximo posible de valores a comprar. Descripcin de Datos: Cotizaciones actuales: Abreviatura del nombre de la compaa. Precio actual de la cotizacin. Mximo Mnimo Apertura. Incremento. Volumen.

Formulario de compra: Cantidad a comprar

23

Stock Market Game


Reglas de Negocio: (RN001): Las compras no se ejecutan directamente, se ejecutarn cuando el sistema que obtiene los datos de las cotizaciones haga su prxima actualizacin.

(RN002): Las compras a precio de mercado consisten en comprar X cantidad de acciones de un mismo valor al precio que se obtenga en la prxima ejecucin del sistema que obtiene los datos de los valores.

24

Stock Market Game

Caso de Uso: Comprar valores a precio limitado Actor Principal: Usuario Actor Secundario: ----Trigger: El usuario inicia la transaccin. Precondiciones: El usuario est conectado Escenario principal: 1. El usuario selecciona ver las cotizaciones del da. 2. El sistema muestra al usuario el men de cotizaciones. 3. El usuario selecciona comprar un valor. 4. El sistema muestra los datos del valor y un formulario de compra. 5. El usuario introduce el nmero de acciones que desea comprar y el limite. 6. El sistema comprueba que el usuario tiene suficiente cash para realizar la transaccin. 7. El sistema registra la orden de compra. Extensiones: 6a. El sistema comprueba que el usuario no tiene suficiente cash para realizar la transaccin. 1. El sistema registra una orden de compra con el mximo posible de valores a comprar. Descripcin de Datos: Cotizaciones actuales: Abreviatura del nombre de la compaa. Precio actual de la cotizacin. Mximo Mnimo Apertura. Incremento. Volumen

Formulario de compra: Cantidad a comprar Lmite de la compra.

25

Stock Market Game


Reglas de Negocio:

(RN001): Las compras no se ejecutan directamente, se ejecutarn cuando el sistema que obtiene los datos de las cotizaciones haga su prxima actualizacin. (RN003): Las compras a precio Limitado consisten en comprar X cantidad de acciones de un mismo valor cuando el precio del valor se site por debajo del precio marcado por el lmite.

26

Stock Market Game

Caso de Uso: Comprar valores a precio condicionado Actor Principal: Usuario Actor Secundario: ----Trigger: El usuario inicia la transaccin. Precondiciones: El usuario est conectado Escenario principal: 1. El usuario selecciona ver las cotizaciones del da. 2. El sistema muestra al usuario el men de cotizaciones. 3. El usuario selecciona comprar un valor. 4. El sistema muestra los datos del valor y un formulario de compra. 5. El usuario introduce el nmero de acciones que desea comprar y la condicin. 6. El sistema comprueba que el usuario tiene suficiente cash para realizar la transaccin. 7. El sistema registra la orden de compra. Extensiones: 6a. El sistema comprueba que el usuario no tiene suficiente cash para realizar la transaccin. 1. El sistema registra una orden de compra con el mximo posible de valores a comprar. Descripcin de Datos: Cotizaciones actuales: Abreviatura del nombre de la compaa. Precio actual de la cotizacin. Mximo Mnimo Apertura. Incremento. Volumen

Formulario de compra: Cantidad a comprar Condicin de la compra.

27

Stock Market Game


Reglas de Negocio:

(RN001): Las compras no se ejecutan directamente, se ejecutarn cuando el sistema que obtiene los datos de las cotizaciones haga su prxima actualizacin. (RN004): Las compras a precio Condicionado consisten en comprar X cantidad de acciones de un mismo valor cuando el precio del valor se site por encima del precio marcado por el lmite.

28

Stock Market Game

Caso de Uso: Vender valores a precio de mercado. Actor Principal: Usuario Actor Secundario: ----Trigger: El usuario inicia la transaccin. Precondiciones: El usuario est conectado Escenario principal: 1. El usuario selecciona ver cartera. 2. El sistema muestra al usuario el men de cartera. 3. El usuario selecciona vender un valor. 4. El sistema muestra un formulario de venta. 5. El usuario introduce la cantidad a vender. 6. El sistema registra la orden de venta. Extensiones: Descripcin de Datos: Valores de cartera: Abreviatura del nombre de la compaa. Precio actual de la cotizacin. Incremento. Precio de compra Inversin Inversin actual Beneficio Cantidad de valores

Formulario de venta: Cantidad a vender.

Reglas de Negocio: (RN005): Las ventas no se ejecutan directamente, se ejecutarn cuando el sistema que obtiene los datos de las cotizaciones haga su prxima actualizacin.

29

Stock Market Game


Caso de Uso: Vender valores con limite. Actor Principal: Usuario Actor Secundario: ----Trigger: El usuario inicia la transaccin. Precondiciones: El usuario est conectado Escenario principal: 1. El usuario selecciona ver cartera. 2. El sistema muestra al usuario el men de cartera. 3. El usuario selecciona vender un valor. 4. El sistema muestra un formulario de venta. 5. El usuario introduce la cantidad a vender y el lmite de la venta. 6. El sistema registra la orden de venta. Extensiones: Descripcin de Datos: Valores de cartera: Abreviatura del nombre de la compaa. Precio actual de la cotizacin. Incremento. Precio de compra Inversin Inversin actual Beneficio Cantidad de valores

Formulario de venta: Cantidad a vender. Lmite de la venta.

Reglas de Negocio: (RN005): Las ventas no se ejecutan directamente, se ejecutarn cuando el sistema que obtiene los datos de las cotizaciones haga su prxima actualizacin. (RN006): Las ventas Limitadas consisten en vender acciones de un mismo valor cuando el precio se site por encima del precio marcado por el lmite.

30

Stock Market Game


Caso de Uso: Vender valores condicionados. Actor Principal: Usuario Actor Secundario: ----Trigger: El usuario inicia la transaccin. Precondiciones: El usuario est conectado Escenario principal: 1. El usuario selecciona ver cartera. 2. El sistema muestra al usuario el men de cartera. 3. El usuario selecciona vender un valor. 4. El sistema muestra un formulario de venta. 5. El usuario introduce la cantidad a vender y la condicin de la venta. 6. El sistema registra la orden de venta. Extensiones: Descripcin de Datos: Valores de cartera: Abreviatura del nombre de la compaa. Precio actual de la cotizacin. Incremento. Precio de compra Inversin Inversin actual Beneficio Cantidad de valores

Formulario de venta: Cantidad a vender. Condici de la venta.

Reglas de Negocio: (RN005): Las ventas no se ejecutan directamente, se ejecutarn cuando el sistema que obtiene los datos de las cotizaciones haga su prxima actualizacin. (RN007): Las ventas condicionadas consisten en vender un valor cuando el precio se site por encima del precio marcado en la condicin.

31

Stock Market Game

Caso de Uso: Ver Cartera de valores. Actor Principal: Usuario Actor Secundario: ----Trigger: El usuario inicia la transaccin. Precondiciones: El usuario est conectado Escenario principal: 1. El usuario selecciona ver cartera. 2. El sistema muestra al usuario el men con los valores de la cartera. Extensiones: Descripcin de Datos: Valores de cartera: Abreviatura del nombre de la compaa. Precio actual de la cotizacin. Incremento. Precio de compra Inversin Inversin actual Beneficio Cantidad de valores

Reglas de Negocio:

32

Stock Market Game

Caso de Uso: Ver cotizaciones. Actor Principal: Usuario Actor Secundario: ----Trigger: El usuario inicia la transaccin. Precondiciones: El usuario est conectado Escenario principal: 1. El usuario selecciona ver valores. 2. El sistema muestra las cotizaciones actuales. Extensiones: Descripcin de Datos: Cotizaciones actuales: Abreviatura del nombre de la compaa. Precio actual de la cotizacin. Mximo Mnimo Apertura. Incremento. Volumen

Reglas de Negocio:

33

Stock Market Game

Caso de Uso: Ver top 5 jugadores. Actor Principal: Usuario Actor Secundario: ----Trigger: El usuario inicia la transaccin. Precondiciones: El usuario est conectado Escenario principal: 1. El usuario selecciona ver los mejores jugadores. 2. El sistema muestra los datos de los 5 mejores. Extensiones: Descripcin de Datos: Datos de los 5 mejores: Nick. Valor total de la cartera.

Valor total de la cartera: Valor de las acciones de la cartera + cash disponible.

Reglas de Negocio:

34

Stock Market Game

Caso de Uso: Ver buzn. Actor Principal: Usuario Actor Secundario: ----Trigger: El usuario inicia la transaccin. Precondiciones: El usuario est conectado Escenario principal: 1. El usuario selecciona la opcin del buzn. 2. El sistema le muestra los ltimos mensajes y un formulario para enviar mensajes. Extensiones: Descripcin de Datos: Mensaje: Remitente. Da y hora. Mensaje escrito

Formulario: Tag. Texto.

Reglas de Negocio:

35

Stock Market Game

Caso de Uso: Mandar Mensaje Actor Principal: Usuario Actor Secundario: ----Trigger: El usuario inicia la transaccin. Precondiciones: El usuario est conectado Escenario principal: 1. El usuario selecciona la opcin del buzn. 2. El sistema le muestra los ltimos mensajes y un formulario para enviar mensajes. 3. El usuario rellena el mensaje e introduce el tag del destinatario y enva el mensaje. 4. El sistema enva el mensaje al buzn del destinatario. Extensiones: 4a. El sistema no identifica el tag del destinatario. 1. El sistema notifica del error al usuario. Descripcin de Datos: Mensaje: Remitente. Da y hora. Mensaje escrito

Formulario: Tag. Texto.

Reglas de Negocio:

36

Stock Market Game

Caso de Uso: Borrar mensaje. Actor Principal: Usuario Actor Secundario: ----Trigger: El usuario inicia la transaccin. Precondiciones: El usuario est conectado Escenario principal: 1. El usuario selecciona la opcin del buzn. 2. El sistema le muestra los ltimos mensajes. 3. El usuario selecciona un mensaje selecciona borrar. 4. El sistema borra el mensaje. Extensiones: 4a. El sistema no identifica el tag del destinatario. 2. El sistema notifica del error al usuario. Descripcin de Datos: Mensaje: Remitente. Da y hora. Mensaje escrito

Reglas de Negocio:

37

Stock Market Game

Caso de Uso: Ver los valores que ms ganan. Actor Principal: Usuario Actor Secundario: ----Trigger: El usuario inicia la transaccin. Precondiciones: El usuario est conectado Escenario principal: 1. El usuario selecciona ver los valores que mas ganan 2. El sistema muestra los datos de los 5 mejores valores. Extensiones: Descripcin de Datos: Datos de los 5 mejores: Ticker. Incremeto en % y en .

Reglas de Negocio:

Caso de Uso: Ver los valores que ms pierden. Actor Principal: Usuario Actor Secundario: ----Trigger: El usuario inicia la transaccin. Precondiciones: El usuario est conectado Escenario principal: 1. El usuario selecciona ver los valores que ms pierden. 2. El sistema muestra los datos de los 5 peores valores. Extensiones: Descripcin de Datos: Datos de los 5 peores: Ticker. Incremeto en % y en .

Reglas de Negocio:

38

Stock Market Game

Caso de Uso: Ver los valores ms recomendados. Actor Principal: Usuario Actor Secundario: ----Trigger: El usuario inicia la transaccin. Precondiciones: El usuario est conectado Escenario principal: 1. El usuario selecciona ver los valores ms recomendados 2. El sistema muestra los datos de los 5 valores ms recomendados. Extensiones: Descripcin de Datos: Datos de las recomendaciones de los valores: Ticker. Recomendacin.

Reglas de Negocio:

Caso de Uso: Ver los valores menos recomendados. Actor Principal: Usuario Actor Secundario: ----Trigger: El usuario inicia la transaccin. Precondiciones: El usuario est conectado Escenario principal: 1. El usuario selecciona ver los valores ms recomendados 2. El sistema muestra los datos de los 5 valores menos recomendados. Extensiones: Descripcin de Datos: Datos de las recomendaciones de los valores: Ticker. Recomendacin.

Reglas de Negocio:

39

Stock Market Game


Caso de Uso: Ver las noticias. Actor Principal: Usuario Actor Secundario: ----Trigger: El usuario inicia la transaccin. Precondiciones: El usuario est conectado Escenario principal: 1. El usuario selecciona ver las noticias. 2. El sistema muestra las ltimas noticias. Extensiones: Descripcin de Datos: Noticias Titulo con enlace. Resumen de la noticia.

Reglas de Negocio:

Caso de Uso: Ver los links interesantes. Actor Principal: Usuario Actor Secundario: ----Trigger: El usuario inicia la transaccin. Precondiciones: El usuario est conectado Escenario principal: 1. El usuario selecciona ver los links interesantes. 2. El sistema muestra los links a las pginas interesantes. Extensiones: Descripcin de Datos: Reglas de Negocio:

40

Stock Market Game

Caso de Uso: Ver la informacin sobre la pagina. Actor Principal: Usuario Actor Secundario: ----Trigger: El usuario inicia la transaccin. Precondiciones: El usuario est conectado Escenario principal: 1. El usuario selecciona ver la informacin. 2. El sistema muestra la informacin. Extensiones: Descripcin de Datos: Reglas de Negocio:

Caso de Uso: Ver las recomendaciones Actor Principal: Usuario Actor Secundario: ----Trigger: El usuario inicia la transaccin. Precondiciones: El usuario est conectado Escenario principal: 1. El usuario selecciona ver las recomendaciones. 2. El sistema muestra los datos de las recomendaciones. Extensiones: Descripcin de Datos: Datos de las recomendaciones de los valores: Ticker. Datos de osciladores.

Reglas de Negocio:

41

Stock Market Game

3.1.2 Modelo de dominio.


El modelo de dominio es un diagrama de la metodologa UML que muestra los conceptos bsicos del dominio del problema, sus propiedades ms importantes y las relaciones existentes entre ellos. El modelo de dominio obliga a los desarrolladores y usuarios a pensar formalmente sobre el problema para intentar reflejar la realidad sobre un diagrama. Este reflejo de la realidad, permite a los desarrolladores validar su comprensin del problema a tratar. Para realizar el modelo de dominio, se ha utilizado una perspectiva conceptual, que pretende reflejar lo ms fielmente posible el problema, sus conceptos, las propiedades de los conceptos y sus relaciones. El modelo de dominio no es una solucin, es una perspectiva del problema. En el diagrama del modelo de dominio existen varios conceptos que se explican a continuacin para una correcta interpretacin del diagrama, estos conceptos son: Clases: Las clases representan conceptos existentes en el dominio del problema, estos conceptos suelen tener informacin asociada y relaciones entre ellos, por ejemplo cosas fsicas como una empresa o conceptos lgicos como son una operacin de compra. Su representacin suele ser una caja, en la que el nombre de la caja est en la parte superior y los atributos debajo.

Esta es la clase Empresa, con los atributos nombre y ticker, ambos son de tipo String.

42

Stock Market Game

Atributos: Los atributos representan informacin relevante asociado a los conceptos del dominio, es decir, las clases. Suelen ir acompaadas del prototipo del atributo: String Boolean Int Muchos otros como doubl, float, Date Relaciones: Representan las asociaciones entre las clases del dominio, tienen diversos atributos: Nombre: Puede ser cualquiera, pero explicativo, como alumnos que pertenecen a un grupo, etc. Cardinalidad: Indica el numero de instancias como mnimo y como mximo que pueden participar en la asociacin con una instancia.

Nombre de asociacion Clase A 1 0..* Clase B

Existen diferentes tipos de relaciones, pero en el caso que nos ocupa, tan solo se han necesitado 2: Composicin: Una clase puede estar compuesta por otras clases, por ejemplo, un libro puede tener varios captulos. La composicin se representa con una flecha con un rombo en el lado del origen.

Asociacin: Es la relacin de interaccin entre 2 clases. Se representa con una lnea recta.

43

Stock Market Game

3.1.2.1 Diagrama del modelo de dominio

44

Stock Market Game

3.1.2.2 Glosario de clases


En el glosario de clases se explican las clases expuestas en el modelo de dominio haciendo una breve descripcin de cada una de ellas.

Clase
Usuario Mensajes

Descripcin
Esta clase representa al usuario de Stock Market Game Los mensajes forman el buzn del usuario, son todos aquellos mensajes que ha recibido por parte de otros usuarios.

Liga

La liga es un concepto, es una pequea competicin entre unos usuarios determinados que son miembros de la liga.

Accin

El conjunto de las acciones forman la cartera del usuario, son las acciones que posee y que puede comprar o vender a travs de las rdenes.

Orden

Una orden representa una transaccin, es la compra o venta de una accin que an no se ha completado, ya sea porque no se cumplen las condiciones o simplemente porque no se ha ejecutado. Hay diversos tipos de ordenes: rdenes de compra a precio de mercado. rdenes de compra a precio limitado. rdenes de compra a precio condicionado. rdenes de venta a precio de mercado. rdenes de venta a precio limitado. rdenes de venta a precio condicionado.

El atributo tipo es el que marca qu tipo de orden es. Empresa Clase que representa a cada una de las empresas que son parte de IBEX35.

45

Stock Market Game


Cotizacin Una cotizacin son los datos de una empresa en un momento determinado, es decir, el precio al que est cotizando, su variacin, etc. Anlisis Un anlisis son todas las operaciones de anlisis tcnico que se hacen un da sobre una empresa. Adems tambin contendr los valores obtenidos de los osciladores creados por SMG.

46

Stock Market Game

3.1.3 Interfaz inicial del sistema

Es el ltimo paso del anlisis de requisitos para la aplicacin web, en ella se ha definido como ser el interfaz inicial que tendr el sistema, adems de dar una aproximacin de cmo ser estticamente. Lo primero que se realiz fue un boceto con DreamWeaver de cul sera el aspecto de la pgina, quedando como se ve a continuacin. Pantalla Principal

Tal como se puede ver en la imagen, el diseo consta de varias partes, 2 barras de navegacin, sobre las que se podr acceder a las partes principales del sistema y la parte central en la que se mostrar el contenido de la informacin solicitada. El diseo es muy simple e intuitivo dejando todas las unidades funcionales accesibles rpidamente. Por cada caso de uso podrn existir uno o varios archivos .jsp que rellenarn el contenido de la pgina. Los principales apartados accesibles desde la barra de navegacin, ser la visualizacin de la cartera, las cotizaciones actuales, las ordenes pendientes de ejecucin, noticias e informacin, adems de todo lo referente a las ligas y el buzn.

47

Stock Market Game

Formularios En la parte del contenido de la pgina existirn los formularios para la toma de datos, como pueda ser para darse de alta en el sistema o enviar mensajes a los dems jugadores. Mandar Mensaje

El formato del formulario es muy simple con un textbox para rellenar con el nombre de usuario del destinatario y debajo un textarea con el texto del mensaje. Es bastante intuitivo, el usuario solo tiene que rellenar los campos y hacer click sobre el botn de enviar. El resto de formularios de los que dispondr el sistema ser muy parecido tal y como se puede ver en algunos ejemplos que figuran a continuacin.

48

Stock Market Game

Crear Liga

Los diseos se han intentado realizar los ms simples posibles, evitando radiobuttons e intentando mostrar la mxima informacin. Este formulario es el que se muestra cuando un usuario que no pertenece a una liga quiere crear la suya propia, en el pondr el tag de la liga (es una abreviatura o un seudnimo del nombre), el nombre y por ltimo una descripcin del propsito de la liga.

49

Stock Market Game

Alta Liga

Tal como indican los casos de uso, antes de pertenecer a una liga, hay que mandar una peticin al administrador de la liga, para eso existe este formulario. Este formulario se enva como un mensaje de peticin de alta en la liga, la nica diferencia entre un mensaje a un usuario y este formulario, es que en vez de el nombre de usuario se usa el tag de la liga como destinatario.

El resto de formularios seguirn este mismo tipo de formato, quedando sujetos en su apariencia a la hoja de estilos que se elija definitivamente. Con este apartado se acaba el anlisis de requisitos de la aplicacin web, quedando concretados los casos de uso, el modelo de dominio y el interfaz inicial del sistema.

50

Stock Market Game

3.2 Modelo conceptual de datos.


El modelo conceptual de datos describe las caractersticas principales de los datos del sistema. Al igual que el modelo de dominio, el modelo conceptual de datos, consta de 2 partes, un esquema grfico y una especificacin en la que se describen cada uno de los componentes del esquema. En el modelo conceptual de datos se describe las entidades, atributos y relaciones de inters para el negocio a representar. Este modelo debe ser independiente del hardware y software utilizado para el manejo de los datos. El modelo que se ha elegido para la representacin es el desarrollado por P.Chen en 1976 bautizado como Anlisis entidad-relacin. En el existen los siguientes conceptos: Entidad: Son objetos que tienen una existencia propia. Es aquello de inters duradero para la empresa, sobre lo cual se pueden almacenar datos e identificar de un modo nico. Relaciones: Representacin de asociaciones entre entidades. Las relaciones establecen el grado de asociacin entre 2 estructuras de datos diferentes. Atributos: Datos elementales, son caractersticas o propiedades de una entidad que sirven para definir, describir y clasificar. Los atributos. Estos son los smbolos que se usarn para realizar el modelo entidad relacin:

Entidad

Relacin

51

Stock Market Game

Las cardinalidades de las relaciones se representarn como: 0,1: Relacin de 0 1. 0..*: Relacin de 0 muchos. 1..*: Relacin de 1 o muchos.

Un ejemplo rpido de la nomenclatura sera este:

En l se ve, que la entidad usuario tiene una relacin con la entidad stocks, esa relacin es de tipo posee, con una cardinalidad de 1 en usuario y de 0 a muchos en Stocks, lo cual se traduce en que 1 usuario posee muchos o ningn stock. As mismo, un stock no puede pertenecer ms que a 1 solo usuario.

Una vez explicado el modelo se van a representar todas las relaciones del sistema.

En esta relacin un usuario puede pertenecer a una liga o no. Pero todas las ligas tienen que tener al menos un miembro.

52

Stock Market Game

Cada stock del sistema es de una empresa en concreto, pero no hay un lmite de stocks por cada empresa. Combinando esta relacin con la de stocks-usuarios, se puede observar como un usuario tiene stocks que son de 1 empresa.

De cada empresa, el sistema har un anlisis al da, es por eso que las empresas tienen varios anlisis. Cada anlisis es de 1 empresa nicamente.

La entidad cotizacin representa el precio al que cotiza una empresa en un momento dado, tal y como se ha explicado anteriormente. Es por eso que a lo largo del da y del ao hay varias cotizaciones por cada empresa.

Las ligas son creadas por el lder de la liga y cada liga slo tiene un lder que es el usuario que la cre.

53

Stock Market Game

En la relacin entre la entidad mensaje y usuario hay 2 opciones. En un mensaje un usuario puede ser el origen del mensaje o puede ser el destinatario. Sin embargo cada usuario puede mandar o recibir varios mensajes.

Cuando un usuario quiere comprar o vender un stock, lanza una orden. Es decir, cada usuario puede tener varias rdenes, pero cada orden pertenece a un usuario nicamente.

En la relacin anterior se puede ver como un usuario lanzaba rdenes de compra, las ordenes, son sobre una empresa especfica. Cada empresa puede sufrir varias rdenes de compra o venta en un momento dado.

54

Stock Market Game

En los siguientes diagramas se han agrupado todas las relaciones entorno a las 2 entidades que ms relaciones tienen, para de esta manera tener una visin global del sistema

En el diagrama se puede ver como de una misma empresa pueden existir al mismo tiempo varios anlisis, stocks, cotizaciones y rdenes.

55

Stock Market Game

El modelo queda completado con este diagrama en el que se pueden observar las relaciones del usuario con el resto de entidades, que tienen coherencia con las funcionalidades descritas en los casos de uso.

Ambos diagramas se pueden unir entre las relaciones existentes entre usuariosordenes-empresas o usuarios-stocks-empresas dando lugar al diagrama entidad relacin final del sistema.

56

Stock Market Game

3.3 Requisitos de la aplicacin batch.


3.3.1 Lista de requisitos.
Se ha elaborado una lista de requisitos que debe cumplir la aplicacin batch para el correcto funcionamiento del sistema completo. Tal como se ha descrito en la identificacin de necesidades, la funcionalidad principal de la aplicacin batch es la de recoger las cotizaciones de los valores y analizarlos.

Ttulo: Horario del mercado Identificador: R01 Descripcin: El sistema debe funcionar de lunes a viernes mientras est abierto el mercado, de 09:00 a 18:00 Horario GMT+1. Medicin: Los datos se deben recoger entre el horario mencionado ya que es el horario de apertura de la bolsa espaola. Beneficio: Sin este requisito la aplicacin no podra obtener los datos del intrada y el sistema no tendra sentido.

57

Stock Market Game

Ttulo: Frecuencia de muestreo Identificador: R02 Descripcin: Este requisito describe la frecuencia con la que se debe recoger los datos de las cotizaciones durante el horario de mercado Medicin: Los datos se deben recoger cada 3 minutos aproximadamente, para tener una referencia clara de los cambios rpidos del mercado. Beneficio: Una frecuencia muy alta de muestreo podra perder cambios bruscos en la cotizacin, mientras que una demasiado baja podra saturar las conexiones con la base de datos. Requisitos relacionados: R01

Ttulo: Estadsticas Identificador: R03 Descripcin: Este requisito describe las estadsticas que debe mostrar el sistema. Medicin: Las estadsticas que debe recoger el sistema y representarlas son las de los precios de las cotizaciones de los ltimos das y las del intrada. Beneficio: Las grficas muestran ms informacin que muchos otros datos, una aplicacin de bolsa sin estadsticas no estara completa.

58

Stock Market Game

Ttulo: Anlisis tcnico Identificador: R04 Descripcin: Este requisito describe los tipos de anlisis que debe realizar el sistema sobre las cotizaciones. Medicin: El anlisis tcnico describe muchos anlisis y osciladores calculables para interpretar los movimientos del mercado. En este sistema se pretende utilizar los ms comunes y mas informativos como: RSI, Media mvil, Estocstico y Momentum. Beneficio: Para desarrollar el mdulo de ayuda a la inversin es necesario contar con las herramientas del anlisis chartista.

Ttulo: Histrico Identificador: R05 Descripcin: Este requisito describe los datos que debe recibir el sistema Medicin: Para calcular osciladores e indicadores, adems de las estadsticas es necesario obtener un histrico de las cotizaciones. Se debe obtener los datos del ltimo ao siempre que sea posible obtenerlas. Beneficio: Con estos datos se podrn realizar las estadsticas y los anlisis. Requisitos relacionados: R03, R04.

59

Stock Market Game

3.3.2 Diagrama de contexto de la aplicacin batch


Para realizar el modelo lgico se ha utilizado un DFD (diagrama de flujo de datos), para representar el comportamiento de la aplicacin. Los smbolos del DFD son los siguientes:

Proceso

Flujo de datos

Entidad externa

Almacn de datos

Diagrama de contexto

Yahoo

Ficheros Histricos Cotizaciones

Stock Market Game

60

Stock Market Game

Diseo del Sistema

61

Stock Market Game

4. Diseo del sistema


4.1 Arquitectura del sistema
La arquitectura elegida para la realizacin de la aplicacin web es el modelo vista controlador (MVC) definido por la enciclopedia online wikipedia como:
Modelo Vista Controlador (MVC) es un patrn de arquitectura de software que separa los datos de una aplicacin, la interfaz de usuario, y la lgica de control en tres componentes distintos. El patrn MVC se ve frecuentemente en aplicaciones web, donde la vista es la pgina HTML y el cdigo que provee de datos dinmicos a la pgina, el controlador es el Sistema de Gestin de Base de Datos y el modelo es el modelo de datos. Modelo: Esta es la representacin especfica de la informacin con la cual el sistema opera. La lgica de datos asegura la integridad de estos y permite derivar nuevos datos; por ejemplo, no permitiendo comprar un nmero de unidades negativo, calculando si hoy es el cumpleaos del usuario o los totales, impuestos o portes en un carrito de la compra. Vista: Este presenta el modelo en un formato adecuado para interactuar, usualmente la interfaz de usuario. Controlador: Este responde a eventos, usualmente acciones del usuario e invoca cambios en el modelo y probablemente en la vista. Muchos sistemas informticos utilizan un Sistema de Gestin de Base de Datos para gestionar los datos. En MVC corresponde al controlador. Aunque se pueden encontrar diferentes implementaciones de MVC, el flujo que sigue el control generalmente es el siguiente: 1. El usuario interacta con la interfaz de usuario de alguna forma (por ejemplo, el usuario pulsa un botn, enlace) 2. El controlador recibe (por parte de los objetos de la interfaz-vista) la notificacin de la accin solicitada por el usuario. El controlador gestiona el evento que llega, frecuentemente a travs de un gestor de eventos (handler) o callback. 3. El controlador accede al modelo, actualizndolo, posiblemente modificndolo de forma adecuada a la accin solicitada por el usuario (por ejemplo, el controlador actualiza el carro de la compra del usuario). Los controladores complejos estn a menudo estructurados usando un patrn de comando que encapsula las acciones y simplifica su extensin.

62

Stock Market Game

4. El controlador delega a los objetos de la vista la tarea de desplegar la interfaz de usuario. La vista obtiene sus datos del modelo para generar la interfaz apropiada para el usuario donde se refleja los cambios en el modelo (por ejemplo, produce un listado del contenido del carro de la compra). El modelo no debe tener conocimiento directo sobre la vista. Sin embargo, el patrn de observador puede ser utilizado para proveer cierta indireccin entre el modelo y la vista, permitiendo al modelo notificar a los interesados de cualquier cambio. Un objeto vista puede registrarse con el modelo y esperar a los cambios, pero aun as el modelo en s mismo sigue sin saber nada de la vista. El controlador no pasa objetos de dominio (el modelo) a la vista aunque puede dar la orden a la vista para que se actualice. Nota: En algunas implementaciones la vista no tiene acceso directo al modelo, dejando que el controlador enve los datos del modelo a la vista. 5. La interfaz de usuario espera nuevas interacciones del usuario, comenzando el ciclo nuevamente.

Para el modelo MVC se ha elegido una implementacin basada en JavaEE. Modelo: El modelo se controla a travs de los DAOs (Data Access Control) para el acceso a los datos, que son clases java que acceden a la base de datos y transmiten al controlador los datos solicitados. Controlador: El controlador lo llevan los Servicios, que controlan todo el flujo de datos y realizan todas las funcionalidades del sistema, los DAOs existen nicamente para acceder a los datos, el encargado de operar con ellos son los servicios. Para la recepcin de eventos se utilizan los Servlets que ceden el control a los servicios.

63

Stock Market Game


Vista: La vista la generan los JSPs (Java Server Pages) generando un cdigo HTML interpretable por cualquier navegador. Para la implementacin de caractersticas de WEB 2.0 en la vista, se ha elegido AJAX (Asynchronous JavaScript and XML) para generar contenido dinmico en las pginas generadas por el sistema. AJAX permite cambiar contenidos o mostrar nuevos contenidos en una pgina web sin necesidad de recargar la pgina, esto se realiza a travs de eventos generados por el navegador en el ordenador del cliente sin que l se entere. Estos eventos son generados por cdigos javascript que se ejecutan cuando el usuario provoca un evento, ya sea haciendo click en algn botn, pasando por encima de secciones de una pgina, que genera una peticin asncrona a un Servlet. Para ms informacin sobre la tecnologa AJAX consulta el apartado 6 de este mismo documento (Tecnologa AJAX y el Framework DWR).

64

Stock Market Game

4.2 Diagramas de secuencia.


Una vez elegida la implementacin para el sistema, se realizan los diagramas de secuencia para los casos de uso. Los diagramas de secuencia son un tipo de diagramas de interaccin. Estos diagramas representan las interacciones, que consisten en el intercambio de mensajes entre un conjunto de objetos con un propsito especfico. Los diagramas de secuencia hacen nfasis en la secuencia temporal de los mensajes enviados. A continuacin se va a mostrar unos diagramas de secuencia que representan todos los intercambios de mensajes necesarios para ejecutar un caso de uso:

Caso de uso: Comprar valores a precio limitado:


Recordemos los pasos del caso de uso: 1. El usuario selecciona ver las cotizaciones del da. 2. El sistema muestra al usuario el men de cotizaciones. 3. El usuario selecciona comprar un valor. 4. El sistema muestra los datos del valor y un formulario de compra. 5. El usuario introduce el nmero de acciones que desea comprar y el lmite. 6. El sistema comprueba que el usuario tiene suficiente cash para realizar la transaccin. 7. El sistema registra la orden de compra.

65

Stock Market Game

El usuario selecciona en el men de cotizaciones comprar un valor, que en este caso es ACS pulsando el botn comprar. Este botn genera una peticin al servlet ComprarTipoServlet.

El servlet, cede el control a ComprarTipo.jsp, que muestra un formulario de compra, tal y como se relata en el caso de uso.

66

Stock Market Game

El usuario introduce el nmero de acciones y el lmite para la compra, presiona el botn comprar.

El servlet ComprarLimitadaServlet, recibe la peticin de compra, que cede el control al ServicioComprar, que introduce la orden de compra en la base de datos a travs de OrdenDAO. Por ltimo se cede el control a ordenes.jsp que muestra la pgina con las ordenes del usuario.

67

Stock Market Game

Estas son las interacciones necesarias para realizar el caso de uso, como se puede ver, la lgica de negocio est en los servicios, el Servlet le proporciona los datos de la peticin para que genere las rdenes de compra, el Servicio comprueba que el usuario tiene suficientes fondos sin usar y delega en ordenDAO para que inserte en la base de datos la orden de compra. El resto de casos de uso se realizan de la misma manera, la lgica de negocio en los servicios, la vista en los jsp y la recepcin de eventos en los servlets.

68

Stock Market Game

Diagrama de secuencia de una peticin asncrona:


En este diagrama se muestra un ejemplo de cmo funciona una peticin asncrona de AJAX usando el frameworkDWR. En este caso, la peticin consiste en refrescar los datos del usuario, sus rdenes, stocks y fondos actuales.

El navegador, genera una peticin asncrona forzada por un javascript. Dicha peticin llega al servlet proporcionado por DWR, que recibe la peticin asncrona, cediendo la peticin al servicio que en este caso se llama Cotizar. Este servicio, recibe todas las peticiones asncronas existentes y las gestiona.

En este caso, el servicio Cotizar necesita todos los datos del usuario, llamando al ServicioUsuario que casualmente tiene un mtodo para recopilar toda la informacin e usuario.

ServicioUsuario, llama a UsuarioDAO que crea una instancia de Usuario y se la devuelve a Servicio Usuario que a su vez se la pasa a Cotizar, que introduce en la sesin el usuario recibido.

Como el navegador slo entiende cdigo HTML, cotizar ejecuta usuario.jsp para generar un String con el cdigo y devolvrselo a travs del servlet DWR al navegador.

69

Stock Market Game

Diseo Detallado

70

Stock Market Game

5. Diseo detallado
En esta fase del desarrollo, se realiza la ltima fase del proceso de diseo, en esta fase, se agregan los detalles de implementacin del modelo del mundo y se desarrollan los modelos de control persistencia y comunicaciones. El diseo detallado se va a dividir en 3 partes, referentes a: Aplicacin web: En esta fase, se realizarn los diagramas de clases y paquetes en los que se describirn todos los atributos y mtodos necesarios en cada clase y la comunicacin entre los paquetes. Tambin se definir como se ha de estructurar la aplicacin, sus carpetas y subcarpetas, el cdigo fuente y todo lo necesario para que funcione la aplicacin. Aplicacin Batch: Para la aplicacin batch se realizarn los DFDs de primer nivel y los diagramas de flujo de cada uno de los procesos. La base de datos: Para la base de datos, se realizar un diagrama con el diseo final y las sentencias sql necesarias para crear las tablas.

Esta ltima fase del diseo, precede directamente a la programacin, por lo tanto tiene que dejar claros todos los detalles de diseo del sistema.

71

Stock Market Game

5.1 Diseo de la aplicacin web.


5.1.1 Estructura de la aplicacin.
La aplicacin web se estructurar de la siguiente manera:

Carpetas: Src: Esta carpeta contendr los paquetes con el cdigo fuente de los DAOs, objetos del dominio, los servlets y los servicios. Etc: Contendr el cdigo sql necesario para crear la base de datos. META-INF: contendr en context.xml y el manifest. Web: Dentro de esta carpeta se ubican todos los archivos accesibles desde el navegador. Cada subcarpeta contiene un tipo de archivo, los htmls, las imgenes, los javascripts, las paginas jsp y las hojas de estilo. WEB-INF: Contiene el web.xml, el dwr.xml y las libreras necesarias.

72

Stock Market Game

5.1.2 Diagrama de paquetes.


Los paquetes se utilizan para descomponer el sistema en partes ms pequeas y manejables. Un paquete puede agrupar cualquier tipo de elementos, en nuestra aplicacin, cada paquete agrupar clases relacionadas entre s. En el diagrama de paquetes, cada paquete se muestra como un rectngulo con una solapa, las flechas indican qu paquetes pueden acceder a los dems paquetes. El diagrama de paquetes es en realidad un diagrama de clases especial donde se muestran los paquetes.

Todos los paquetes pueden acceder a los objetos del dominio y son los servicios los que pueden acceder a los DAOs, los servlets, incluidos en el paquete iu, acceden a los servicios y al paquete de domino.

73

Stock Market Game

5.1.3 Diagramas de clase.


Los diagramas de clase, especifican los atributos, mtodos y relaciones entre las clases de un mismo paquete. La sintaxis de un atributo es la siguiente: [Visibilidad]nombre[:tipo] La visibilidad puede ser: Public: Private: Representado por un cubo rojo Protected:

El tipo ser refiere al tipo de atributo que es, si es una clase Usuario por ejemplo, o un String. Las relaciones se representan igual que en el modelo de dominio, tanto de composicin como de relacin. Las primeras representadas como una flecha con un rombo en el origen y las segundas como una flecha simple o doble dependiendo de su navegabilidad.

74

Stock Market Game

5.1.2.1 Diagrama de clase del paqueteiu

75

Stock Market Game

En este diagrama se ven todas las clases del paquete iu, que contiene los servlets, todos con sus mtodos doGet y doPost.

76

Stock Market Game

5.1.2.2 Diagrama de clase del paqueteDAO

77

Stock Market Game

5.1.2.3 Diagrama de clase del paqueteServicios

78

Stock Market Game

5.1.2.4 Diagrama de clase del paqueteDominio

79

Stock Market Game

5.2 Diseo de la base de datos.


5.2.1 Diagrama de la base de datos
Despus de realizar el diagrama entidad relacin, el siguiente paso es transformarlo en el diseo de una base de datos, quedando como se puede ver en la figura siguiente.

80

Stock Market Game

5.2.2 Diseo fsico de la base de datos


Por ltimo, se ha desarrollado el diseo fsico de la base de datos, con todos sus atributos, claves extranjeras. Este modelo se representa mediante el lenguaje de descripcin de datos o DLL, con las siguientes tablas: Tabla Empresas

CREATE TABLE `empresas` ( `idEmpresa` int(11) NOT NULL auto_increment, `nombre` varchar(20) NOT NULL, `tiker` varchar(5) NOT NULL, PRIMARY KEY (`idEmpresa`) )

Tabla Anlisis
CREATE TABLE `analisis` ( `idAnalisis` int(11) NOT NULL auto_increment, `idEmpresa` int(11) NOT NULL, `mediaMovil` double NOT NULL, `rsi` double NOT NULL, `momentum` double NOT NULL, `estocasticoD` double NOT NULL, `estocasticoK` double NOT NULL, `volatilidad` double NOT NULL, `subidaLibre` int(11) NOT NULL, `stopLoss` int(11) NOT NULL, `osciladorVuelta` int(11) NOT NULL, `fecha` date NOT NULL, `osciladorSMG` double(6,2) NOT NULL, PRIMARY KEY (`idAnalisis`) )

81

Stock Market Game

Tabla Usuarios
CREATE TABLE `usuarios` ( `idUsuario` int(11) NOT NULL auto_increment, `nombre` varchar(20) NOT NULL, `apellidos` varchar(20) NOT NULL, `email` varchar(40) NOT NULL, `login` varchar(20) NOT NULL, `pass` varchar(20) NOT NULL, `fondos` double(10,2) NOT NULL, `idLiga` int(11) default NULL, PRIMARY KEY (`idUsuario`) )

Tabla Ligas
CREATE TABLE `ligas` ( `idLiga` int(11) NOT NULL auto_increment, `nombre` varchar(20) NOT NULL, `descripcion` varchar(250) NOT NULL, `tag` varchar(20) NOT NULL, `idUsuario` int(11) NOT NULL, PRIMARY KEY (`idLiga`), KEY `FK_idUSuario_Lider` (`idUsuario`), CONSTRAINT `FK_idUSuario_Lider` FOREIGN KEY (`idUsuario`) REFERENCES `usuarios` (`idUsuario`) ) ALTER TABLE usuarios ADD CONSTRAINT FK_idLigaPertenece FOREIGN KEY (`idLiga`) REFERENCES `ligas` (`idLiga`);

82

Stock Market Game

Tabla Mensajes
CREATE TABLE `mensajes` ( `idMensaje` int(11) NOT NULL auto_increment, `idUsuarioOri` int(11) NOT NULL, `idUsuarioDest` int(11) NOT NULL, `texto` varchar(250) NOT NULL, `fecha` date NOT NULL, `peticion` int(11) NOT NULL, PRIMARY KEY (`idMensaje`), KEY `FK_idUsuarioOri` (`idUsuarioOri`), KEY `FK_idUsuarioDest` (`idUsuarioDest`), CONSTRAINT `FK_idUsuarioDest` FOREIGN KEY (`idUsuarioDest`) REFERENCES

`usuarios` (`idUsuario`), CONSTRAINT `FK_idUsuarioOri` FOREIGN KEY (`idUsuarioOri`) REFERENCES `usuarios` (`idUsuario`) )

Tabla Stocks
CREATE TABLE `stocks` ( `idStock` int(11) NOT NULL auto_increment, `idUsuario` int(11) NOT NULL, `idEmpresa` int(11) NOT NULL, `titulos` int(11) NOT NULL, `precioCompra` double(6,2) NOT NULL, PRIMARY KEY (`idStock`), KEY `FK_idEmpresaSt` (`idEmpresa`), KEY `FK_idUsuarioSt` (`idUsuario`), CONSTRAINT `FK_idEmpresa_st` FOREIGN KEY (`idEmpresa`) REFERENCES `empresas` (`idEmpresa`), CONSTRAINT `FK_idUsuario_st` FOREIGN KEY (`idUsuario`) REFERENCES `usuarios` (`idUsuario`) )

83

Stock Market Game

Tabla Ordenes
CREATE TABLE `ordenes` ( `idOrden` int(11) NOT NULL auto_increment, `idUsuario` int(11) NOT NULL, `idEmpresa` int(11) NOT NULL, `tipo` int(11) NOT NULL, `cantidad` int(11) NOT NULL, `condicion` decimal(6,2) NOT NULL, PRIMARY KEY (`idOrden`), KEY `FK_idUsuario_ord` (`idUsuario`), KEY `FK_idEmpresa_ord` (`idEmpresa`), CONSTRAINT `FK_idEmpresaOrd` FOREIGN KEY (`idEmpresa`) REFERENCES `empresas` (`idEmpresa`), CONSTRAINT `FK_idUsuarioOrd` FOREIGN KEY (`idUsuario`) REFERENCES `usuarios` (`idUsuario`) )

Tabla Cotizaciones
CREATE TABLE `cotizaciones` ( `idCotizacion` int(11) NOT NULL auto_increment, `idEmpresa` int(11) NOT NULL, `precio` double(6,2) NOT NULL, `fecha` date NOT NULL, `hora` varchar(20) NOT NULL, `variacion` double(6,2) NOT NULL, `max` double(6,2) NOT NULL, `min` double(6,2) NOT NULL, `apertura` double(6,2) NOT NULL, `volumen` int(11) NOT NULL, PRIMARY KEY (`idCotizacion`), KEY `FK_idEmpresa_cot` (`idEmpresa`), CONSTRAINT `FK_idEmpresa_cot` FOREIGN KEY (`idEmpresa`) REFERENCES `empresas` (`idEmpresa`) )

84

Stock Market Game

5.3 Diseo de la aplicacin batch


Para realizar el diseo de la aplicacin batch, primeramente se ha realizado un diagrama de flujo de datos de primer nivel de la aplicacin. Los smbolos utilizados, son los mismos que se han explicado a la hora de realizar el diagrama de contexto en el anlisis de requisitos. Primero se han identificado los procesos: Main: Este proceso se encarga de gestionar la ejecucin de los dems procesos, coordina la ejecucin de todos, debe ejecutar la obtencin de cotizaciones en el horario de mercado, arrancar el histrico al iniciar el sistema y ejecutar el sistema experto al final del da. Histrico: El sistema necesita datos histricos de las cotizaciones para iniciar su funcionamiento, este proceso se encarga de la obtencin de dichos histricos.

Obtener cotizaciones: Como su nombre indica, este proceso se encarga de ir recibiendo las cotizaciones del da segn llegan.

Sistema experto, anlisis tcnico y el simulador: Este proceso se tratar en el punto 7 de este mismo documento por ser un apartado fundamental en el desarrollo del proyecto y necesitando una explicacin ms exhaustiva.

85

Stock Market Game

5.3.1 DFD de primer nivel.

Los flujos de datos se pueden ver claramente en el diagrama, los diversos procesos se comunican entre s usando el almacn de datos. Con este diagrama se tiene un diseo de cmo funcionan los flujos de datos entre los diversos procesos. Los datos de los ficheros histricos y las cotizaciones vienen de la pgina de yahoo finanzas. La aplicacin web, aunque no aparece en el DFD por no ser parte de la aplicacin batch, tambin usa el mismo almacn de datos.

86

Stock Market Game

5.3.2 Diagramas de flujo


Al ser estos programas de una naturaleza lineal, los diagramas que ms se ajustan a su comportamiento son los ms tradicionales tal y como son los diagramas de flujo. En este apartado se van a representar los diagramas de flujo de cada uno de los programas y sus funcionalidades. Se pueden observar los siguientes smbolos en los diagramas de flujo. Flechas: Representan el orden de ejecucin de cada una de las funciones, cuando una operacin termina, se pasa a la siguiente a travs de una de las flechas. Rectngulos: Son operaciones que ejecuta el proceso, las operaciones aqu presentadas son a alto nivel y conllevan muchas instrucciones de ejecucin. Rombos: Son decisiones que pueden desembocar en varios caminos segn sea la decisin que se tome. Una sentencia if que desemboque en 2 hilos de ejecucin totalmente diferentes puede ser una decisin.

87

Stock Market Game

Main

En el diagrama, se puede observar como el hilo de ejecucin del programa no acaba nunca. El horario de mercado est marcado por los requisitos. Tal como se ha mencionado anteriormente, este proceso se encarga de la coordinacin de cada uno de los procesos involucrados en la aplicacin batch.

88

Stock Market Game

Histrico

El histrico se encarga de descargar de los servidores de yahoo un archivo por cada una de las empresas del IBEX35. Cada vez que se descarga uno, lo carga en memora, realiza un rastreo de los datos en l y los introduce en la base de datos. Por ltimo llama al un mtodo de la clase que realiza las estadsticas histricas estadsticas. SI existen ms empresas se vuelve a repetir el proceso hasta que no quedan ms empresas. para que cree las

89

Stock Market Game

Obtener cotizaciones

El

proceso

de

obtener

las

cotizaciones se encarga de recibir las cotizaciones de un fichero de yahoo. Cada lnea de dicho fichero contiene los datos de una empresa del ibex35, que introduce en la base de datos. Luego se invoca a una funcin de la clase estadsticas que realiza la estadstica del empresa. El ltimo paso, consiste en ejecutar las rdenes de los usuarios con las nuevas cotizaciones, tal y como viene descrito en los casos de uso. De esta manera, las operaciones no son inmediatas y se pueden realizar operaciones rdenes con condicionado. a largo precio plazo limitado con o intrada de dicha

90

Stock Market Game

Programacin

91

Stock Market Game

6. Programacin
En este apartado se detallan los lenguajes de programacin utilizados, las herramientas y las tecnologas que han sido utilizadas para la realizacin de la fase de programacin. Para la realizacin de la aplicacin web se ha utilizado las siguientes tecnologas: JavaEE AJAX con el framework DWR

Para la aplicacin batch se han utilizado las siguientes tecnologas: JavaSE Framework JFreeChart (realizacin de estadsticas).

Las herramientas utilizadas para la programacin han sido: Eclipse 3.2: Entorno de desarrollo muy completo de cdigo libre. Jakarta Tomcat 5.0.28: Contenedor de servlets, servir como servidor de la aplicacin web. MySql 5.0.37: Gestor de base de datos de software libre bajo la licencia GNU GPL, las empresas que quieran incorporarlo en productos privativos deben abonar la licencia.

A continuacin se va a realizar una descripcin de cada una de las tecnologas haciendo nfasis en aquellas que pueden ser ms desconocidas por su menor uso como son JFreeChart y AJAX usando DWR. Java en sus 2 versiones est muy extendido y no se necesita describirlo en exceso.

92

Stock Market Game

6.1 AJAX con DWR


AJAX
AJAX (Asynchronous JavaScript and XML) es una tcnica de desarrollo para crear pginas interactivas. Estas aplicaciones se ejecutan en el navegador del usuario realizando peticiones al servidor en segundo plano. De esta manera es posible realizar cambios en una pgina sin necesidad de recargarla. Las principales ventajas que se obtienen con esta tecnologa son: Interactividad: El contenido de las paginas cambia dinmicamente, el contenido de la pgina que no se vea afectado por las peticiones en segundo plano no cambia. Velocidad: Realizar una peticin asncrona es ms ligera que una sncrona, adems no se transmite tanta informacin ya que tan slo se transmite la informacin solicitada no toda la pgina con sus imgenes y contenido repetido. Usabilidad: Estas pginas creadas con AJAX son siempre mucho ms tiles, permiten mostrar ms informacin en menos espacio al ir cambiado esta informacin poco a poco. AJAX en s misma no es una tecnologa, al igual que DHTML, no es una nica tecnologa sino que se compone de varias: HTML o XHTML: El HTML (HyperText Markup Languaje es el lenguaje de programacin de pginas web tradicionales, pero combinadas con el resto de tecnologas se obtiene AJAX. El HTML se utiliza para el diseo que acompaa a la informacin. CSS: Cascade Style Sheet, se utiliza para definir el formato de los objetos del HTML, es un estndar del W3C.

93

Stock Market Game

El Objeto XMLHttpRequest: Es un interfaz para realizar peticiones HTML asncronas al servidor. La interfaz se presenta encapsulado en una clase. Para utilizarlo la aplicacin cliente debe crear una nueva instancia mediante el constructor adecuado. Es posible realizar peticiones sncronas y asncronas al servidor; en una llamada asncrona el flujo de proceso no se detiene a esperar la respuesta como se hara en una llamada sncrona, si no que se define una funcin que se ejecutar cuando se complete la peticin: un manejador de evento.

DOM: Document Object Model: es una forma de representar los elementos de un documento estructurado (tal como una pgina web HTML o un documento XML) como objetos que tienen sus propios mtodos y propiedades. El responsable del DOM es el W3C. El DOM proporciona una API para poder modificar los objetos de un HTML dinmicamente.

94

Stock Market Game

DWR
Una vez definido lo que es AJAX, vamos a ver cmo funciona la implementacin que utiliza el FrameWork DWR. DWR consiste bsicamente en 2 cosas: JavaScript: Funcionando en el lado del cliente para lanzar las peticiones asncronas. Un Servlet que procesa las peticiones y enva las respuestas al cliente.

El enfoque interesante del DWR es que el javascript se genera dinmicamente a partir de clases java. Lo interesante de esto es que el cliente puede ejecutar cdigos javascript como si fuera cdigo java con la excepcin de que las clases que se ejecutan no lo hacen en el cliente sino que se estn ejecutando en el servidor. Por razones de seguridad, no se permite la ejecucin de cualquier clase java, tan slo las que se den permiso en el servidor. Una vez proporcionadas a DWR las clases java que quieres poder ejecutar, DWR te proporciona una funcin javascript que hay que incorporar a la pgina, el cdigo est oculto para el desarrollador, se encuentra dentro de las libreras del DWR.

95

Stock Market Game

Un ejemplo de funcionamiento:

Desde una pgina web, en el cdigo de un formulario se introduce un evento que al activar el formulario pide informacin al servidor a travs de una peticin asncrona para rellenar una lista de opciones. En este caso, con las opciones 1,2 y 3. La ventaja fundamental de DWR es que no hay que preocuparse del objeto XMLHttpRequest ya que l tiene su propia implementacin y se encarga de controlar sus estados a travs del cdigo javascript que te proporciona. nicamente hay que crear funciones de javascript que acten con el DOM para situar la informacin dentro de la pgina web. Es por su simplicidad que este FrameWork est cada da ms extendido. Su instalacin es bastante simple, hay que incorporar 1 librera, retocar el web.xml y poner un archivo dwr.xml al lado del web.xml. Sin embargo hay que cerciorarse de que las libreras necesarias para AJAX estn tambin en el Tomcat.

96

Stock Market Game

Vamos ahora a ver un ejemplo de la aplicacin de cmo funciona DWR:

Actualizar el marquee de cotizaciones con DWR


Al instalar el DWR, hemos creado una clase Java que funcionar como el coordinador de las peticiones que nos sirva el servlet de DWR. Esta clase es Cotizar.java y est dentro del paquete servicios. Al indicarle al servlet que puede acceder a esa clase java nos crea 2 javascripts ocultos. DWR nos proporciona entonces 2 lneas de cdigo para importar esas funciones javascripts e incorporarlas a la pgina.
<script type='text/javascript' src='/smg/dwr/engine.js'></script> <script type='text/javascript' src='/smg/dwr/util.js'></script>

Estas 2 funciones son para el funcionamiento del DWR


<script type='text/javascript' src='/smg/dwr/interface/Cotizar.js'></script>

sta funcin es la que DWR crea para poder acceder a Cotizar.java Adicionalmente nos hemos creado un javascript que es el que llamar a la funcin getMarquee() de Cotizar.java y volver a ejecutarla a los 60 segundos, as el contenido del marquee se actualizar al minuto.
<script type="text/javascript" src='/smg/js/marquee.js'></script> function updatemarquee() {

Cotizar.getMarquee(marquee);
setTimeout(updatemarquee,60000); } function marquee(data) { document.getElementById("cotizaciones").innerHTML = data; }

Cotizar.getMarquee(marquee); Con esta sentencia se llama a la funcin getMarquee de Cotizacion.java y le decimos que la vuelta la debe recibir la funcin marquee.

97

Stock Market Game

Ahora tan solo necesitamos que el evento ejecute la funcin updatemarquee(), para ello hemos incorporado al tag body un evento onload.
<body bgcolor="#CCCCCC" onload="updatemarquee();=>

Ahora veamos el cdigo de Cotizar.java para ver que hace.


public String getMarquee() throws ServletException, IOException { WebContext webContext = WebContextFactory.get(); HttpSession session = webContext.getSession(); HttpServletRequest request = webContext.getHttpServletRequest(); ServicioIndice l = new ServicioIndice(); ArrayList cot = null; cot=l.cotizaciones(); Date dia = new Date(); session.setAttribute("dia",dia); session.setAttribute("cotizaciones",cot); String html = webContext.forwardToString("/jsp/marqueecotizaciones.jsp"); return html; }

Bsicamente, el mtodo llama al servicio ndice para que le suministre las ltimas cotizaciones, luego las introduce en la sesin. A continuacin con la sentencia
webContext.forwardToString("/jsp/marqueecotizaciones.jsp");

Realiza una request a un jsp para que cree el cdigo con las nuevas cotizaciones y se lo devuelva en un String que ser el que Cotizacion.java devuelva al Servlet DWR. Una vez en el servlet, ste devuelve a travs de la request asncrona el cdigo HTML a la funcin marquee:
function marquee(data) { document.getElementById("cotizaciones").innerHTML = data; }

sta utiliza una de las funciones del DOM para encontrar el elemento marcado con el nombre cotizaciones dentro de la pgina que est mostrando el navegador y actualiza su cdigo con en recibido por el servlet DWR y generado por Cotizar.java.

98

Stock Market Game

6.2 FrameWork JFreeChart


JFreeChart es una librera de java que permite crear estadsticas puede mostrarlas a travs de streaming, formatos pdf, jpg,png y muchos ms. Es software libre aunque la documentacin no lo es y la API no es fcil de utilizar. JFreeChart permite hacer muchos tipos de grficas como grficos de barras, lneas, puntos, tartas y muchos otros tipos. Algunos ejemplos de lo que se puede hacer con JFreeChart:

99

Stock Market Game

Para poder utilizarlo nicamente hay que introducir los archivos .jar que hay en las libreras de la aplicacin a desarrollar. Para ver cmo funciona vamos a explicar un ejemplo que se ha realizado con para el sistema.

Histrico de una Empresa


public void graficaHistorica(String tiker, Connection con, int id) { try { int i=0; PreparedStatement pstmt = con.prepareStatement("SELECT * FROM COTIZACIONES WHERE idEmpresa=? ORDER BY fecha DESC"); pstmt.setInt(1, id); ResultSet rs = pstmt.executeQuery(); XYSeries series = new XYSeries("precio",false); rs.afterLast(); while(rs.previous()) { double precio =rs.getDouble("precio"); series.add(precio, i); i++; } i=0; XYDataset xyDataset = new XYSeriesCollection(series); JFreeChart chart = ChartFactory.createXYLineChart(tiker, "precio", "dia", xyDataset, PlotOrientation.HORIZONTAL, true, false, false); BufferedImage imgPantalla = chart.createBufferedImage(300,300); String root=System.getenv("CATALINA_HOME"); File foto= new File(root+"/webapps/smg/images/"+tiker+"historicomax.jpg"); FileOutputStream os; os = new FileOutputStream(foto); JPEGImageEncoder objCodifica = JPEGCodec.createJPEGEncoder(os); objCodifica.encode(imgPantalla); os.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }

100

Stock Market Game


Veamos cmo funciona detalladamente. Primero se obtienen los datos a representar con una sentencia SQL. Creamos una serie en el eje XY (XYSeries). Recorremos el ResultSet y vamos aadiendo a la serie valores. Aadimos al xyDataSet la serie creada, con esta clase podramos aadir a un mismo grfico varias series. Por ltimo se crea la grfica con la clase JFreeChart, se le pasan el ttulo, los nombres de los ejes, los datos del DataSet, y otras opciones. En ete caso queremos crear una imagen con la grfica y depositarla en la carpeta $CATALINA_HOME/webapps/smg/images para que pueda ser accedida desde navegador. JFreeChart tambin proporciona un codificador a varios formatos, en este caso usamos JPEG, el JPEGImageEncoder codifica la grfica y lo envia a un Stream. El resultado es el siguiente:

101

Stock Market Game

6.3 Java EE y Java SE


La tecnologa Java proporciona un entorno de desarrollo multiplataforma y admite varias plataformas, desde servidores hasta telfonos celulares y tarjetas inteligentes. La tecnologa de Java unifica la infraestructura de negocio creando una plataforma ininterrumpida, segura y conectada en red para los usuarios.

JavaEE (Java Enterprise Edition) es el estndar utilizado para la creacin de


aplicaciones web Java, portables, robustas, escalables y seguras. Son aplicaciones Server Side, donde todo se ejecuta sobre el servidor. Ventajas de JavaEE: Mltiples clientes: Es un servidor de aplicaciones y permite a varios usuarios utilizar sus recursos al mismo tiempo. Mltiples arquitecturas, en nuestro caso hemos elegido MVC. Cdigo portable: Al ser java slo se necesita una JavaVM y un servidor compatible con la plataforma en la que se instale. Orientacin a objetos: Al ser Java tiene todas las ventajas de java.

JavaSE (Java Standard Edition)


Java Platform, Standard Edition o Java SE (conocido anteriormente hasta la versin 5.0 como Plataforma Java 2, Standard Edition o J2SE), es una coleccin de APIs del lenguaje de programacin Java tiles para muchos programas de la Plataforma Java.

102

Stock Market Game

El Sistema Experto de Anlisis Tcnico

103

Stock Market Game

7. El Sistema Experto de Anlisis Tcnico

Al ser una parte importante del proyecto, es necesario hacer un apartado especial para abarcarlo de una forma ms amplia y profunda. Para entender el problema primero se va a estudiar en qu consiste el anlisis tcnico burstil, los indicadores y osciladores utilizados, su interpretacin y su forma de calcularlos. Al realizar Stock Market Game se han creado nuevos osciladores propios y que se describen en el punto 7.2 El sistema experto est basado en reglas de produccin, una vez obtenido los resultados del anlisis tcnico, el sistema aplicar unas reglas y como resultado dar recomendaciones de compra, fuerte compra, venta, fuerte venta y mantener el valor. Por ltimo, se ha creado un simulador, que participa en el juego de Stock Market Game y que utiliza nicamente las recomendaciones del sistema experto para invertir. De esta manera podemos comprobar que el sistema experto minimiza prdidas y aumenta las ganancias. Para estudiar el sistema experto es necesario primero entender cmo funciona la bolsa, sus osciladores e indicadores, luego los osciladores creados explcitamente para Stock Market Game y por ltimo las reglas que mueven el sistema.

104

Stock Market Game

7.1 El anlisis tcnico.

El anlisis tcnico se basa en el uso de osciladores e indicadores para encontrar las seales de compra y venta de un ttulo. Un indicador u oscilador tcnico es tan slo una relacin matemtica entre variables burstiles (generalmente cotizaciones), que segn su tendencia, cambio de sentido o corte de lneas de referencia, indica el momento de compra o de venta de un ttulo. Los osciladores tcnicos oscilan entre el cero y el cien por cien. La principal ventaja de los indicadores y osciladores tcnicos es su sencilla utilizacin y fiabilidad en la toma de decisiones, destacando la fcil lectura de sus seales de compra y venta, muy clara y concreta. Existen muchos tipos de indicadores y osciladores tcnicos y continuamente se crean nuevos indicadores que desaparecen tan rpido como se crearon. No existe un indicador universal que sirva para cualquier ttulo o situacin del mercado, por lo que es conveniente utilizar ms de un indicador u oscilador tcnico para valorar una sociedad en un momento determinado.

105

Stock Market Game

Los osciladores del anlisis tcnico tradicional utilizados por Stock Market game son los siguientes: RSI Definicin: El RSI (Relative Streeght Index), conocido como Indicador de Fuerza Relativa, funciona muy bien en la bolsa espaola, mide la fuerza de la oferta y la demanda. Clculo: RSI n = 100- (100/1+RS) Siendo RS= Suma de cotizaciones de subida/ Suma de cotizaciones en bajada en los ltimos n das. Interpretacin: Cuando el RSI sobrepasa el 80% se considera que el valor ha entrado en zona de sobre compra. Por el contrario, si se sita por debajo del 20%, se considera que el valor ha entrado en zona de sobre venta.

Media Mvil Definicin: La media mvil es una media aritmtica de los ltimos N das, sirve para ver si el valor se encuentra por encima de la media. Clculo: Media mvil = Suma de las cotizaciones de los ltimos N dias/ N Interpretacin: No proporciona cambios de tendencia pero si los puede confirmar.

106

Stock Market Game

Estocstico Definicin: El estocstico consta de 2 datos, la K y la D, Se trata de comparar el precio de cierre respecto de la gama de precios de un determinado periodo. Clculo: K= 100*(C-Min/Max-Min) Siendo Min y Max el mnimo y mximo de las ltimas n sesiones respectivamente y C el cierre de la ltima cotizacin. %D= mediaMvil de %K de los ltimos 3 das. Interpretacin: Las seales de compra o de venta se pueden producir cuando la lnea del %K corta a la lnea del %D. Estas seales solo sern significativas si se producen en los mximos o en los mnimos del estocstico, siempre traspasada la lnea 70 (hacia arriba) o del 30 (hacia abajo).

Momentum Definicin: Se basa en el diferencial entre una cotizacin y una anterior Clculo: Momentum= C- Cn , siendo C el cierre anterior y Cn el cierre de hace n sesiones. Interpretacin: Este oscilador pretende medir la velocidad del movimiento de los precios.

107

Stock Market Game

Volatilidad Definicin: La volatilidad mide las distancias entre mximos y mnimos de una cotizacin para determinar si un valor es muy volatil Clculo: Volatilidad= (max-min)/ media de variacin entre mximos y minimos en N periodos Interpretacin: Si un valor es muy voltil, significa que hay grandes diferencias entre los mximos y mnimos, haciendo ms difcil verificar las tendencias. Por el contrario si es poco voltil, las tendencias son ms veraces.

108

Stock Market Game

7.2 Los osciladores de SMG.


Otro de los aspectos interesantes de Stock Market Game ha sido la invencin de varios osciladores. Algunos de ellos no sirven mucho solos, pero sirven para confirmar tendencias.

Stop Loss
El Stop Loss intenta prevenir las prdidas, puede servir para identificar roturas de tendencias laterales. El Stop Loss observa si el cierre de la ltima sesin ha rebasado el lmite marcado por el mnimo de las ltimas 3 sesiones. En el ejemplo que se ve a continuacin, en el primer descenso el Stop Loss habra dado una seal de venta.

Subida Libre
La subida libre es un indicador que avisa de que es posible que se rompa una resistencia, hay veces en que el RSI y el estocstico dan seales de venta falsas porque estn en una tendencia lateral. Este indicador te seala esta situacin. El uso de este oscilador, es para que el inversor est atento a las roturas de resistencias. Si se rompe es muy probable que el valor sufra un brusco cambio.

109

Stock Market Game

Oscilador de Vuelta
El oscilador de vuelta, mide las vueltas que da el valor, ya sean al alza o a la baja. Si un valor sufre una gran vuelta como la que se muestra a continuacin, el oscilador de vuelta, avisa de la gran vuelta y es posible que el valor empiece una tendencia al alza.

Estos son los osciladores que se han desarrollado para Stock Maket Game, estos osciladores, no son muy tiles por si solos, pero le servirn al sistema experto para determinar mejor cuando vender y cuando comprar ya que un programa informtico no puede visualizar tendencias tan fcilmente como un ojo humano al ver una grfica. Otros, como el oscilador de subida libre es un indicador para el usuario, para que est atento a cambios bruscos en los que se puede ganar o perder altas cantidades de dinero.

110

Stock Market Game

7.3 El sistema experto


El sistema experto diseado para Stock Market Game, se basa en reglas. Una vez calculados todos los indicadores, el sistema experto determinar recomendaciones sobre cada valor, dependiendo de los indicadores calculados. El mayor problema al que se enfrenta el sistema es el momento de la venta, es mucho ms difcil saber cundo vender que cundo comprar. Situaciones posibles: Compra Si: Se produce un corte de compra del estocstico y no se produce un Stop Loss.

Fuerte Compra: Venta: Se produce un corte de venta de estocstico. Se forma una figura de vuelta a la baja. Se produce un Stop Loss. Si se produce la situacin anterior y adems se ha formado una figura de vuelta al alza. Si se produce una situacin de compra y el RSI<20

Fuerte venta: Se produce un corte de venta del estocstico y hay una figura de vuelta. Se produce un corte de venta del estocstico y el RSI>80, sin embargo en esta situacin es posible que se produzca una subida libre. Neutro: El resto de casos.

111

Stock Market Game

7.4 Resultados
El Simulador ha obtenido los siguientes resultados en 2 semanas de evaluacin. Para comparar resultados se va a coger el incremento del da del ndice del IBEX y el valor de la cartera con los beneficios del da. Se hace de esta manera para ver si el sistema invierte mejor que el ndice sobre el que trabaja. La tendencia del IBEX35 de los ltimos das ha sido de una gran bajada, por lo tanto el sistema debera minimizar las prdidas. Da 30-ago 31-ago 05-sep 06-sep 07-sep %IBEX35 Cartera Ganancias %Ganancias Diferencia IBEX-SMG 0,10% 8000 147 1,8375% 1,74% 0,60% 8000 53 0,6625% 0,06% -2,10% 8000 -60 -0,75% 1,35% -0,50% 6000 -20 -0,333% 0,17% -0,83% 3400 -11 -0,323% 0,51%

Como se puede ver en la tabla, aunque la tendencia del IBEX sea bajista, empezara en 14.300puntos, y el da 7 cerrara con 14.150 puntos, el sistema ha ganado en ese periodo en total 30 en inversiones, no es mucho, pero al contrario que la bolsa su cartera de valores ha subido. De hecho el SMG siempre mejora los resultados del IBEX, tal y como se puede ver en la ltima columna. Estos valores son extremadamente positivos, porque se demuestra que el sistema sabe cundo debe vender, ya que es mucho ms difcil saber cundo vender que comprar.

112

Stock Market Game

7.5 El simulador
Para comprobar la exactitud del sistema experto, se ha desarrollado un simulador. Este simulador sigue las indicaciones de compra y venta que manda el sistema experto. Adems este simulador est incluido en el juego como un jugador ms. De esta manera, los dems jugadores pueden observar cmo evoluciona el sistema y si son capaces de invertir mejor que el sistema. El funcionamiento del simulador sigue un patrn bastante simple. Despus de que se ejecute el sistema experto al final del da, el simulador rastrea las recomendaciones: Si hay recomendaciones de compra, el simulador lanzar rdenes de compra de ese valor. Si hay recomendaciones de venta y el simulador tiene stocks, las vender.

El simulador se gastar todos los das un 10% de los fondos que tenga sin usar equitativamente entre los valores recomendados.

113

Stock Market Game

Presupuesto

114

Stock Market Game

8. Presupuesto.
Actividades Lanzamiento Identificacin de necesidades Anlisis de requisitos Diseo del sistema Diseo detallado Programacin y pruebas Documentacin Direccin del proyecto Coordinacin del proyecto TOTALES Horas 2 5 20 20 30 250 50 20 10 407 Coste 80 200 700 700 1.050 7.500 2.000 900 500 13.630

Para la realizacin del presupuesto se han tenido en cuenta los siguientes perfiles profesionales: Jefe de proyecto: El jefe de proyecto se encarga de las fases de: Lanzamiento. Identificacin de necesidades. Documentacin.

Su tarifa es de 40 /hora Analista funcional: El analista funcional se encarga de las fases de: Anlisis de requisitos. Diseo del sistema. Diseo detallado.

Su tarifa es de 35 /hora

Programador: El programador se encarga de las fases de: Programacin y pruebas

Su tarifa es de 30 /hora

115

Stock Market Game

Director de Proyecto: El director se encarga de las labores de direccin del proyecto. Su tarifa es de 45/hora

Coordinador del Proyecto: El coordinador se encarga de las labores de coordinacin. Su tarifa es de 50/hora

Quedando el presupuesto en la cuanta de 13.63000 iva incluido. Siendo todas las herramientas utilizadas de software libre. A excepcin de MySQL que deber abonarse la licencia en caso de ser explotado por una empresa.

116

Stock Market Game

Conclusiones

117

Stock Market Game

9. Conclusiones
El sistema creado, aparte de usar tecnologas de ltima generacin, tiene un sistema de ayuda a la inversin, este sistema se basa en el anlisis tcnico, que es muy valioso a la hora de interpretar las tendencias del mercado. Estos sistemas suelen servir de gran ayuda a cualquier persona, sin embargo su utilizacin optima se obtiene al combinarlos con la experiencia de los inversores y saber cundo vender. El anlisis tcnico es una herramienta til a la hora de invertir da a da, los osciladores tienen argumentos modificables para adecuarlos a cada valor. En definitiva, el sistema experto creado para los usuarios del sistema es una gran herramienta de ayuda a la inversin. Los osciladores creados especficamente para el sistema permiten observar situaciones que no se aprecian a simple vista y permite reducir perdidas, como por ejemplo el oscilador StopLoss. La realizacin del proyecto Stock Market Game, me ha permitido aprender nuevas tecnologas como el J2EE, AJAX o JFreeChart, que mejorar mi preparacin como ingeniero en informtica adems de la experiencia adquirida en la realizacin de proyectos, muy beneficiosa de cara al mundo laboral. Gracias a este proyecto he podido recopilar informacin sobre el mundo de la bolsa, sus comportamientos, las herramientas que se utilizan en el anlisis tcnico y el anlisis chartista. Este proyecto fin de carrera, me ha permitido crear un proyecto de principio a fin, desarrollando cada una de sus fases, desde el diseo hasta la programacin sin olvidar el proceso de documentacin que ha acompaado al proyecto durante su desarrollo. Las herramientas adquiridas durante la carrera me han servido de mucha ayuda, ya sean los lenguajes de programacin, como las asignaturas de ingeniera de software o de bases de datos, me han permitido abarcar el proyecto de una forma profesional. La experiencia del aprendizaje en la escuela, me ha permitido entender mejor las herramientas que antes no conoca y ponerlas en prctica en un proyecto completo.

118

Stock Market Game

Futuras Mejoras

119

Stock Market Game

10.

Futuras Mejoras

Aunque el sistema es muy completo, siempre existen mrgenes de mejora, sin embargo no ha sido posible implantarlas por estar fuera del alcance del proyecto y las fechas de entrega marcadas. Encontrar una fuente de cotizaciones ms fiable que yahoo. Existen empresas que se proporcionan los datos al minuto a cambio de una cuota al mes. Optimizar el Sistema Experto, cada oscilador podra ser adaptado a cada valor del IBEX35, en este momento, se usa una configuracin genrica. Observar el comportamiento del Sistema Experto a largo plazo, los periodos de recogida de datos han sido pequeos y en una poca difcil para la bolsa. Incluir ms osciladores en el sistema experto. Crear Grficas de los osciladores Grficos de velas para las cotizaciones histricas. Mejorar el simulador con los resultados obtenidos.

120

Stock Market Game

Planificacin

121

Stock Market Game

11.

Planificacin

Para representar la planificacin de actividades se ha realizado un diagrama de gant, en el eje horizontal se representan los meses del desarrollo del sistema y en el eje vertical las actividades a realizar. Las actividades representadas en la planificacin son las correspondientes a las fases de desarrollo del sistema. LANZ: Lanzamiento ID. N: Identificacin de necesidades ARQ: Anlisis de requisitos DIS S: Diseo del sistema DIS D: Diseo detallado PRO: Programacin y pruebas DOC: Documentacin

122

Stock Market Game

Bibliografa

123

Stock Market Game

12.
[BARR01]

Bibliografa
Jess Barranco de Areba , Metodologa del anlisis estructurado de sistemas, Publicaciones de la Universidad Pontificia de Comillas Madrid.

[ECKE00]

Bruce Eckel, Thinking in Java, Second Edition, Editorial Prentice Hall.

[PERR06]

Bruce W. Perry, AJAX HACKS, tips & tools for Creating Responsive Web Sites, Editorial OReilly

[RMRBO02] Enrique Rivero Cornelio, Luis Martinez Fuentes, Luis Reina Juli, Juan Benavides Abajo, Jan M Odriozola Bartolom, Introduccin al SQL para Usuarios y Programadores, Editorial Thompson

Apuntes de la asignatura: Ingeniera del software II, Juan Carlos Esquivel.

http://es.wikipedia.org/ tecnologa wiki. http://es.finance.yahoo.com/ http://www.bolsamania.com/

La enciclopedia libre plurilinge basada en

Portal de finanzas de yahoo. La Web de bolsa y los mercados de valores. Manual de JavaScript

http://www.webestilo.com/javascript/ http://getahead.org/dwr

Web de DWR (Direct Web Remoting)

http://www.javaworld.com/javaworld/jw-06-2005/jw-0620-dwr.html Artculo con un pequeo manual de DW R. http://www.jfree.org/jfreechart/api/javadoc/index.html http://java.sun.com/j2se/1.5.0/docs/api/ API de JFreeChart

API Java

124

Stock Market Game

http://ciberconta.unizar.es/bolsa/INI10.htm Tutorial de anlisis tcnico http://www.forexpremium.com/curso/herram_mm.php tcnico. http://wiki.liferay.com/index.php/Using_DWR_for_AJAX manual de DWR http://www.jfree.org/jfreechart/ Pgina oficial de JFreeChart Wiki con Curso de anlisis

125

Stock Market Game

Anexo I: Manual de instalacin

126

Stock Market Game

Anexo I. Manual de instalacin


Paso 1: Instale Java versin 1.5 revisin 9 o superior. Paso2: Instale Jakarta Tomcat que est incluido en el CD, o instale un servidor de aplicaciones java compatible con J2EE y AJAX. En el caso de no instalar el Tomcat que viene incluido, copie las libreras al nuevo servidor. Paso 3: Instale MySQL 5.0.37 o superior. Ejecute el archivo smg.sql que encontrar en la carpeta etc de la aplicacin web, o en la misma carpeta del ejecutable de MySQL. Paso4: Instalar Eclipse 3.2 o superior. Abrir proyecto SMG y Cotizaciones. Desplegar la aplicacin web copiando el archivo smg.war en la carpeta webapp del servidor. O desde Eclipse haga click con el botn derecho sobre el archivo build.xml del proyecto smg (Recuerde que en el path del sistema debe figurar CATALINA_HOME como la ruta donde instal el tomcat). Paso 5: Arraque el tomcat y seguidamente Ejecute el programa main.java del proyecto cotizaciones

Felicidades, ya ha instalado Stock Market Game Puede acceder localmente al programa con la direccin del navegador: http://localhost:8080/smg/

127

Stock Market Game

Anexo II: Manual de Usuario

128

Stock Market Game

Anexo II. Manual de usuario


El manual de usuario describe todas las opciones disponibles en Stock Market Game. Registro Para empezar, accedemos a la pgina principal del programa para proceder a registrarnos:

Para registrarse, pulsamos en la barra de navegacin superior en el Registrarse o en el formulario de conexin.

apartado

A travs de esta pgina tambin se puede visitar la informacin referente a Stock Market Game o la pgina con Links a las mejores pginas de inversin de Espaa.

129

Stock Market Game

Apareceremos en la siguiente pgina:

Rellenamos el formulario y enviamos la solicitud, si todo esta correcto, nos saldr un aviso confirmndolo, sino, se informar del error cometido para proceder a cumplimentar correctamente el formulario. Si todo est correcto, primera vez. Errores posibles: El nombre de usuario ya est elegido. No se han aceptado las condiciones de uso. ya pertenecemos al sistema y podemos conectarnos por

130

Stock Market Game

Conectarse al sistema Para conectarse al sistema, es necesario haberse registrado previamente, una vez registrados, rellenaremos el formulario de conexin que figura en la parte superior izquierda de las pginas de inicio. Este es el formulario:

Se rellena con el nombre de usuario y la contrasea elegidas a la hora de registrarse. Si nos equivocamos nos saldr un aviso como este:

Si todo es correcto llegaremos a la pgina principal.

131

Stock Market Game

Pgina principal.

Elementos de la pgina principal: Barra de navegacin: Todos los aspectos del sistema son accesibles desde esa barra, servir para moverse por el sistema, todas las pginas tienen el mismo men, para poder acceder desde cualquier situacin a cualquier parte del sistema.

132

Stock Market Game

Informacin de usuario: Encima de la barra de navegacin podemos encontrar informacin que tenemos del usuario, como las ordenes pendientes de ejecucin o los mensajes en el buzn. Esta informacin al igual que la barra de navegacin se encuentra en todas las pginas.

Contenido: En la pgina principal podemos encontrar diversos contenidos, todos ellos informativos: Clasificacin de jugadores. Clasificacin de ligas Los mejores valores del da Los peores valores del da Las mejores recomendaciones del sistema experto.

Marquee de cotizaciones: Este elemento tambin est presente en todo el sistema, da informacin de todas las cotizaciones al minuto: Se sita encima del contenido.

Como se podr comprobar, todas las pginas del sistema mantienen el mismo formato. Tan slo cambia el contenido de la pgina. Las barras de navegacin, el ttulo, la informacin de usuario y el marquee de cotizaciones se mantiene en todas las pginas.

133

Stock Market Game

Cotizaciones En el men de cotizaciones se pueden ver todos los datos de las empresas y sus cotizaciones actuales, desde este men se puede: Acceder a comprar Valores Ver el anlisis de los valores Ver las estadsticas del valor

134

Stock Market Game

Cartera En este apartado aparecen todos los valores que tiene la cartera del usuario, pudiendo ver informacin como la inversin inicial, el beneficio y el precio de compra. Desde el men de cartera se puede acceder a; Las estadsticas del valor Vender valores.

135

Stock Market Game

Comprar Valores Una vez seleccionado un valor en la pgina de cotizaciones y pulsado el botn de comprar, aparecemos en la pantalla de compra de valores. Existen distintos tipos de compras: A precio de mercado: Esta orden de venta consiste en comprar el valor al precio de mercado en el momento de la compra Precio Limitado: Esta orden se ejecutar si el valor se site por debajo del precio marcado en la condicin Precio Condicionado: Esta orden se ejecutar si el valor supera o iguala al precio marcado en la condicin.

136

Stock Market Game

Vender Valores Una vez seleccionado un valor en la pgina de la cartera y pulsado el botn de vender, aparecemos en la pantalla de venta de valores. Existen distintos tipos de ventas: A precio de mercado: Esta orden de venta consiste en vender el valor al precio de mercado en el momento de la venta. Precio Limitado: Esta orden se ejecutar si el valor supera o iguala al precio marcado en la condicin. Precio Condicionado: Esta orden se ejecutar si el valor se site por debajo del precio marcado en la condicin.

137

Stock Market Game

Anlisis En la pantalla de anlisis se puede ver los valores que toman los osciladores y otros tipos de informacin: Osciladores de anlisis tcnico. Osciladores propios de Stock Market Game Informacin sobre la cotizacin. Mnimos de los ltimos das. La recomendacin del sistema. Existe un enlace debajo del anlisis donde se explica cmo interpretar los valores que toman los distintos indicadores.

138

Stock Market Game

Estadsticas En la pgina de estadsticas a la izquierda se puede observar el grfico del intrada, mientras que a la derecha podemos ver estadsticas a largo plazo, de 10,30,60,180 y mximo nmero de das. Pulsando sobre los enlaces de la derecha cambiaremos el contenido de la grfica de la derecha nicamente que es la que corresponde a la estadstica histrica.

139

Stock Market Game

rdenes La pantalla de rdenes contiene las rdenes de compra y venta que un usuario tiene, muestra la informacin de la orden y la opcin de cancelarla en caso de no ser ya til o de habernos equivocado al lanzar la orden. La opcin de cancelar rdenes se hace obligatoria debido a que pueden existir rdenes a largo plazo utilizando las rdenes limitadas y condicionadas de compra y venta.

140

Stock Market Game

Recomendaciones La pgina de recomendaciones, contiene toda la informacin de los osciladores creados por Stock Market Game sobre todos los valores del sistema. En la pantalla de anlisis slo se vea un valor, en esta pantalla se pueden ver todos los valores de forma global.

Noticias Esta pantalla contiene las noticias de ltima hora obtenidas del RSS de www.Bolsamania.com, cada noticia tiene un enlace a la noticia completa

141

Stock Market Game

Opciones de Liga Alta en liga Si no hemos creado ninguna liga y no pertenecemos a una liga concreta, el men de la izquierda contendr 2 opciones de liga: Alta en liga y crear Liga: El alta en liga sirve para realizar una peticin al lder de una liga para que le acepte dentro de su liga, se introduce el tag de la liga y el mensaje que acompaa a la peticin de entrada.

Una vez aceptados en la liga, nuestra visin del men de liga ser el siguiente, veremos los datos de la liga, la clasificacin de los miembros y la opcin de abandonarla, si la pulsamos, volveremos a no pertenecer a ninguna liga.

142

Stock Market Game

Crear Liga Si no hemos creado ninguna liga y no pertenecemos a una liga concreta, el men de la izquierda contendr 2 opciones de liga: Alta en liga y crear Liga: En la creacin de la liga, se tiene que introducir los datos de esta: Tag. Nombre Descripcin

Una vez introducida habremos creado la liga. El creador de la lga es tambin el lder y administrador de la misma.

143

Stock Market Game

Opciones del administrador de la liga El administrador tiene una visin diferente de la liga, a la derecha est la informacin de la clasificacin de los miembros, mientras que a la derecha aparecen: La lista de miembros con la opcin de expulsarLa lista de peticiones de entrada en la liga La opcin de borrar la liga.

La siguiente captura corresponde a una situacin en la que el administrador ha recibido una peticin de entrada. La segunda captura corresponde al momento en el que el usuario ha sido aceptado en la liga.

144

Stock Market Game

Mensajes En la pgina de mensajes se pueden hacer varias cosas: Mandar mensajes a otros usuarios: Con el formulario de la derecha, se introduce el nombre de usuario del destinatario, el mensaje y se pulsa enviar. Ver el buzn de mensajes y borrarlos cuando se hayan ledo. Debajo de cada mensaje hay un botn que sirve para eliminarlo.

145

Stock Market Game

Links Interesantes La pgina de links interesantes, muestra enlaces a pginas externas al sistema que pueden ser muy tiles para el usuario a la hora de invertir.

146

Stock Market Game

Informacin. La pgina Informacin contiene instrucciones de cmo usar el sistema, los tipos de operaciones que se pueden hacer con Stock Market Game as como las condiciones de uso que se aceptan al registrarse en el sistema.

147

Das könnte Ihnen auch gefallen