49696628 Project Online Stock Trading System

download 49696628 Project Online Stock Trading System

of 27

Transcript of 49696628 Project Online Stock Trading System

  • 8/6/2019 49696628 Project Online Stock Trading System

    1/27

    University of Bridgeport

    CS-597: Advanced Problem in Computer Science

    -- Master Project Report --

    September 28, 2001

    ONLINE STOCK TRADING SYSTEM

    Project Advisor: Prof. Tarek Sobh

    Student: Yuming Bao, #469449

    TABLE OF CONTENTS

    TABLE OF CONTENTS..................................................

    ABSTRACT ......................................................................

    INTRODUCTION AND BACKGROUND......................

    BACKGROUND OF ONLINE TRADING .....................

    BRIEF PROJECT DESCRIPTION .................................INTRODUCE JAVA SERVLET.....................................

    GLOSSARY ...................................................................

    SYSTEM FUNCTION OVERVIEW ...............................

    COMPARE PRICE CHANGES......................................ACCESS STOCK PROSPECTUS ..................................ACCESS USER PORTFOLIO........................................

    TRADING STOCK.........................................................THE TRADING ENGINE ..............................................

    SYSTEM DESIGN OVERVIEW .....................................

    SYSTEM ORGANIZATION ..........................................SYSTEM FLOW ............................................................IMPLEMENTATION LANGUAGES.............................

    SYSTEM REQUIREMENT............................................Server End ..................................................................

    Client End (User end):.................................................USER INPUTS ...............................................................

    SYSTEM OUTPUTS......................................................

  • 8/6/2019 49696628 Project Online Stock Trading System

    2/27

    SYSTEM FILES.............................................................LIMITATIONS AND RESTRICTIONS .........................

    CLASSES.......................................................................

    USER MANUAL...............................................................

    INSTALLATION ...........................................................Install server................................................................

    Start Server.................................................................Client ..........................................................................

    USER INSTRUCTION...................................................Login manual ..............................................................

    New User Register......................................................Portfolio ......................................................................

    Trade...........................................................................Buying Stock...........................................................

    Selling Stock...........................................................More about trading ..................................................

    Open Orders................................................................History ........................................................................

    Compare Stocks ..........................................................Stock information........................................................

    Real Market index ...................................................Stock Quote.............................................................

    Stock Profile............................................................Stock Chart..............................................................

    Stock Research........................................................News .......................................................................

    User logout..................................................................

    REFERENCES .................................................................

    ABSTRACT

    This project is to develop an Online Personal Stock Investing System,

    which provide services for investors to monitor and compare price

    changes, buy stocks, sell stocks and manage their portfolios, trading

    details, view open orders. Through the system, the investors are able to

    obtain the real time stock information, finding stock chart, news and

  • 8/6/2019 49696628 Project Online Stock Trading System

    3/27

    research on internet that can help users to find the right investment

    strategies, all these using a user-friendly well-organized graphical user

    interface.

    This online stock trading system is modeled as client-server-data

    three-tier structure. User submits request to servlets, servlets fetch

    information by accessing database files or Internet websites and create a

    page to display all the information that meets users request.

    Keywords:

    Online trading system, Java, Jave Servlet, Client/Server, browser, web

    server

    INTRODUCTION AND BACKGROUND

    Background of online trading

    Today, you can hardly pick up a newspaper, turn on a television,

    overhear a conversation, or talk to a friend without mention of the Internet.

    It has done nothing short of change the way our world works and the way

    our nation invests. And overall, it has changed us for the better.

    Point, click, and trade these three little words sum up the allure of

    online stockbrokers. Using nothing more than an Internet connection and

    an account with an online broker, one can buy and sell shares of stocks

    and mutual funds with mere keystrokes. No waiting to place an order with

  • 8/6/2019 49696628 Project Online Stock Trading System

    4/27

    a brokerage house, no high commissions gobbling up big pieces of your

    nest egg.

    The number of people using the Web to invest is growing fast. As the

    stock market moves in and out of record territory, investors are

    increasingly turning to the Web to research, discuss and trade stocks and

    securities.

    By one account, more than seven million Americans trade on-line --

    comprising 25 percent of all trades made by individual investors. In 1994,

    not one person traded over the Internet. In the next few years, the number

    of on-line brokerage accounts will roughly equal the metropolitan

    populations of Seattle, San Francisco, Boston, Dallas, Denver, Miami,

    Atlanta and Chicago, combined. A Forrester Research study predicts that

    the number of online accounts will grow from the current level of about 3

    million to roughly 14 million by 2002. Over 6 million plucky investors

    have already exchanged the security of traditional brick-and-mortar

    brokerage houses for the promise of cheap, fast online transactions and

    reams of late-breaking information about the hottest properties on the

    market.

    Personal computer technology is becoming an important, integrated

    element for online investment. Mainframes, mini and microcomputers

    have given way to PC's in 1990. Revolutionary strides in interconnectivity

    have been observed with the advent of network operating systems (NOS),

    object-oriented programming methodology and client-server paradigms

    with ever decreasing price to performance ratio. The growth of the Internet

  • 8/6/2019 49696628 Project Online Stock Trading System

    5/27

    has been richly supplemented with hypertext/media based browser

    technology to what we now recognize as the World Wide Web. Some

    applications for computer technology allow people access information

    resources from global network environment.

    Brief Project Description

    The goal of this project is to contribute to the design and

    implementation of an online personal stock trading system that would be

    deliverable over the WWW replete with interactive modules. These

    modules will have the basic services: managing personal portfolios,

    obtaining real time stock information, finding stock chart, news and

    research on internet that can help you find the right investment strategies,

    all these using a user-friendly well-organized graphical user interface.

    Introduce Java Servlet

    This project is implemented most with Java Servlets.

    The Java Servlet API, introduced as the first standard extension to

    Java, provides a generic mechanism to extend the functionality of any kind

    of server. A servlet is a Java program embedded within a Web server.

    Instead of using Perl, some other scripting language, or a server

    proprietary API to respond to an HTML request, you would use a Java

    servlet. The servlet runs directly in the Web server and does not need to

    fork off a new process. They can live on between sessions, can

    communicate directly with other servlets, and are portable between

    platforms and Web servers. Servlets are most commonly used, however, to

  • 8/6/2019 49696628 Project Online Stock Trading System

    6/27

    extend Web servers, performing tasks traditionally handled by CGI

    programs.

    The beauty of servlets is that they execute within the Web server's

    process space and they persist between invocations. This gives servlets

    tremendous performance benefits over CGI programs. Yet because they're

    written in Java, servlets are far less likely to crash a Web server than a C-

    based NSAPI or ISAPI extension. Servlets have full access to the various

    Java APIs and to third-party component classes, making them ideal for use

    in communicating with applets, databases, and RMI servers. Plus, servlets

    are portable between operating systems and between servers -- with

    servlets you can "write once, serve everywhere."

    Glossary

    ASCII American Standard Code for Information

    Interchange. Most commonly associated with the

    standard test format (ASCII test)

    Browse

    r

    An application capable of interpreting hypertext.

    Client-

    Server

    System

    A system of two or more computers in which at

    least one computer provides services for one or more

    other computers. The services can be database

    services, communication services, printer services, or

    some other function.

    Databas A self-describing collection of integrated records.

  • 8/6/2019 49696628 Project Online Stock Trading System

    7/27

    e

    Servlet A servlet is a Java program embedded within a

    Web server that respond to an HTML request, you

    would use a Java servlet. The servlet runs directly in

    the Web server and does not need to fork off a new

    process. A servlet can live on between sessions, can

    communicate directly with other servlets, and are

    portable between platforms and Web servers.

    GUI Graphical User Interface, an interface having

    window, pop-down menus and other features that are

    often manipulated with a mouse pointer.

    Internet A group of interconnected computers.

    JAVA Object Oriented programming language.

    LAN Local area network. A group of microcomputers

    connected to one another by means of communication

    lines in close proximity, usually less than a mile.

    URL Uniform Resource Locator

    Yahoo Internet search engines.

    Tomcat A web server designed for PC.

    SYSTEM FUNCTION OVERVIEW

  • 8/6/2019 49696628 Project Online Stock Trading System

    8/27

    This project is an online stock trading system. It is a three-tier

    structure Java program. User submits request to Java servlets, and servlets

    will fetch information from Internet or from database files and create a

    page to display all the required information on users web browser.

    Through this system, user can monitor and compare price changes, trade

    stocks, manage portfolio, get real time information about stock and

    market.

    Through the system, users can perform following functions:

    Compare Price Changes

    Twenty selected stocks' real time price is continuously monitored by

    the back engine. User may check a number of them that are the most

    up/down during a period of time in the past. By just click a button, the

    given number of stocks' symbols and price changes will be listed in the

    ascending order.

    The twenty stocks that are chosen to be checked are: DELL, IBM,

    ORCL, MSFT, CSCO, INTC, SUNW, LU, EMC, GE, NT, AOL, PALM,

    JDSU, AMZN, YHOO, AMD, CIEN, F, AXP.

    Access Stock Prospectus

    Allow investors to retrieve the related information about some specific

    stock. The following information about each stock can be obtained

    through the system: (1) Real time Stock Information (2) Stock price charts

    (3) Company Information of corresponding stocks. (4) Stock research and

  • 8/6/2019 49696628 Project Online Stock Trading System

    9/27

    (5) Related news. User will get all the useful information by giving the

    stock system.

    Access User Portfolio

    Allow investors to access their own portfolios. Each investor has

    his/her own portfolio, which will keep all the information about the

    investment of the user, including account statement (including available

    cash, available margin, account value, stock value, buying power, pending

    money and holding stocks), transaction history and open orders. The

    investors can access their personal account and get all the information

    about their account.

    Trading Stock.

    User can exchange stocks via the system. The system is designed to

    protect investors from fraud. Each user will be asked to input their account

    name and his/her password. If the login/password is verified, the use can

    enter the portfolio, otherwise, the login request will be denied. Users can

    customize their orders by choosing Action (Buy or Sell), Quantity(Shares

    of stocks), Symbol(Stock symbol), price(the acceptable trading price) and

    Order Type(Market or Limit). Background running engine will check all

    the open orders periodically. For market orders, the final deal price

    will be the last trade price of the real market, and the transaction will be

    complete as soon as possible. For Limit orders, if your buying price is

    lower than the market price (or your selling price is higher than the

    market), your order cant be completed until the market price meets your

  • 8/6/2019 49696628 Project Online Stock Trading System

    10/27

    price. Otherwise, your order will be complete as soon as possible, and the

    deal price will be the market price.

    The trading engine

    The engine is an always alive process running background. It will

    check all the open orders in the system and try to accomplish the orders. It

    will periodically check open orders in the system. Check the real time

    market price of the stock. If the price is better than the user request, the

    order will be fulfilled with this market price, else the order will remain

    open in the system.

    Meanwhile, the engine is also continuously monitoring the price

    changes of twenty selected stocks. According to users commands, it may

    compare the price changes, and then obtain a number of stocks that are the

    most up/down during a period of time in the past. After that, the given

    number of stocks' symbols and price changes will be listed in the

    ascending order.

  • 8/6/2019 49696628 Project Online Stock Trading System

    11/27

    SYSTEM DESIGN OVERVIEW

    System Organization

    The system organization for the project is as follows:

    In general the clients (web browser such as Netscape) will send

    requests via the web server over to the Java servlets reside on the server

    PC. Those servlets will access the database files or access information on

    the Internet, and then generate a response page to display on user's

    browser.

    System Flow

    User inputs all required information into the web browser and then

    submits the request. The request will be sent to the Java Servlets reside on

    the server PC. Once a request is received by the servlet, the servlet will

    perform corresponding function depend on the request type. The servlet

    maybe access the database files or retrieve the information from the

    Internet. In the end, the servlet will generate a dynamic homepage sending

    back to client web browser. User will get all needed information on the

    web browser.

    Implementation Languages

    In late 1995, the Java programming language burst onto the Internet

    scene and gained instant celebrity status. JAVA is a portable programming

    language with a standard set of class libraries. The promise of java is that

    it will become the universal glue that connects users with information,

  • 8/6/2019 49696628 Project Online Stock Trading System

    12/27

    whether that information comes from web servers, databases, information

    providers, and any other imaginable sources. The APIs permit a

    programmer to create appropriate Graphical User Interfaces and

    communicate with network services such as HTTP. Java has built-in

    security and safety features are reassuring both to programmers and to the

    users of the program. Java even has built-in support that make advanced

    programming tasks, such as network programming, database connectivity,

    and multithreading, more straightforward.

    System Requirement

    Server End

    1. You must have Java Virtual Machine on your PC.

    2. You must have Java Servlet Development Kit (JSDK) installed on

    your machine.

    3. A web server must be installed. You need to download Java Web

    Server such as Tomcat from java.sun.com. Install them into

    c:\program files\Tomcat-3.2.1.

    Client End (User end):

    IE4.0/Netscape 4.5 or up is recommended.

    UserInputs

    User interactivity will be a major function that will be required by the

    on line stock trading system. Sometimes users will have to enter

    information in form fields by using their keyboard or sometimes users will

  • 8/6/2019 49696628 Project Online Stock Trading System

    13/27

    need to use the mouse to click buttons, highlight choices, initiate

    functions, and navigate the pages.

    System Outputs

    The outputs of the application will be generated dynamically by the

    application according to the user's input and interactivity. The application

    will communicate with the server end database files and will return

    relevant information.

    System Files

    Besides the browser application, end-users do not have to have

    additional system files to run the interface because the JAVA Virtual

    Machine and the web browser handles most of the processing of servlets

    and HTML tags.

    Limitations and Restrictions

    Users can encounter problems or limited functionality if they are not

    using Netscape version 4.5 or later. The JAVA Virtual Machine is

    available in an earlier version of Netscape but, tends to be unstable at

    times which causes the computer, especially Power PC, to hang. It is

    recommended that users should upgrade to a newer version of Netscape

    that are available at the Netscape websites.

    Classes

    Class name Functions Achieved

    Activate Generate the reply page of opening orders

    actv Generate the page body of opening orders

    delete Delete an opening order

  • 8/6/2019 49696628 Project Online Stock Trading System

    14/27

    dotrade Do the trade

    dow Generate the market index of the mainpage

    engine Check opening orders and 20 real timestock price

    CheckStock Get stock price from stored file forcompare

    checkActiveStock Check stock price change by usersinstruction

    GetQuote Get real time quote data from internet

    GetValue Get real time stock market price

    History Generate the history page

    mainFrame Generate the main page

    newUser Create a new account for a new user

    OpenFile Open file

    portfolio Generate page of portfolio

    port Get token from data file and prepare forportfolio

    quote Get the real time stock information

    trade Trade stocks

    loginStock Login the stock center

  • 8/6/2019 49696628 Project Online Stock Trading System

    15/27

    USER MANUAL

    Welcome to this User Manual. This manual will lead you go through

    the installation and tell you how to use the On line stock trading

    system.

    Installation

    This program is modeled as Client-Server-Database three-tier

    model.

    Install server

    You must have Java Virtual Machine on your PC.

    You must have Java Servlet Development Kit (JSDK) installed on

    your machine.

    A web server must be installed. You need to download Tomcat

    from java.sun.com. Install it into c:\program files\Tomcat-3.2.1. Set up an

    alias (virtual directory) trade, and then map it to the directory

    c:\jy\trade\.

    Copy all java files into C:\jy\trade\Web-inf\classes\. Under this

    directory, compile all the java files using javac *.java.

    Copy all html files into C:\jy\trade\, and copy all image files into

    C:\jy\trade\images\.

    Make a directory c:\jy\trade\profiles, make an empty file named:

    password.txt.

    Now your installation for server end has finished.

  • 8/6/2019 49696628 Project Online Stock Trading System

    16/27

    Start Server

    To launch the server, click C:\Program Files\tomcat-

    3.2.1\bin\startup.bat; and then start the engine by command line: java

    engine x (x: an integer that represents the interval in seconds at which

    engine checks real time stock price once again).

    Client

    All needed is a web browser. IE 4.0 / Netscape 4.5 or up is

    recommended. Once the server is launched, user can access the service

    anywhere if and only if a web browser is available. In this manual,

    127.0.0.1 (localhost) is used as servers IP address. Enter

    http://localhost/trade/loginStock.html in the address bar of the

    browser. To access a sever on another machine, just replace localhost

    by the servers IP address.

    UserInstruction

    Login manual

    Open the location http://localhost/trade/loginStock.html, the users

    will see login page.

    For users with an existing account, just enter his user name and

    password, then click submit button.

  • 8/6/2019 49696628 Project Online Stock Trading System

    17/27

    If user name and password are correct, stock center page will be

    displayed. That means login succeeds.

    If user left user name or password empty, there will be an alert

    window pop up and tell user to fill in the user name or password.

    If user name or password is not correct, system will tell user Failed

    to login, user can click login and try to login again.

    The user ID will be a combination of at most 20 any characters. The

    password will be a combination of at most 30 any characters. All user

    names and passwords are case sensitive.

    New User Register

    If you are new to this system, you need to create a new account. Click

    register button, User register page will be displayed.

    All four fields are required. Name and password will be used to login

    later. Please be sure to remember your name and password. Re-enter

    Password is to let the user verify their password. This field must be

  • 8/6/2019 49696628 Project Online Stock Trading System

    18/27

    EXACT same as Password. The Starting money is the amount of money

    you want to deposit to your account.

    If new users name has already been used, system will tell user

    User name has been used. Choose another one, and user can click

    Register Here and try to register again.

    If any field of register form is left blank or re-enter password is

    different from the first time, there will be an alert window pop up and tell

    user to fill up all the field or verify his password again.

    After correctly registered, stock center page will be displayed.

    Users can do all kind of transaction through this page. The detail will be

    given in the following sections.

    Portfolio

    Click Portfolio on pushdown menu, and then click Refresh.

    Users can view information about their account, including

    Available Cash: The amount of cash you have in your account

    Available Margin: The amount of money you can borrow from your

    broker

  • 8/6/2019 49696628 Project Online Stock Trading System

    19/27

    Account Value: The total value of your account, including cash value

    and stock value

    Stock Value: The total value of your holding stock

    Buying Power: How much money you can spend to buy stock. This

    value is the sum of Available Cash and Available Margin

    Pending Cash: the amount of money is pending. This number is the

    amount of money pending due to the opening buy orders.

    Users can also view stocks they have, including Stock Symbol,

    Quantity, Current Price and Price changing.

    Trade

    Click trade on pushdown menu, Trading page will be displayed.

    Buying Stock

    Select radio button Buy, enter quantity for purchase, stock symbol

    and stock price that willing for transaction, then choose order type,

    Limit or Market. If choosing Market, price field can be left

    empty. In fact, anything enter in price field will be neglected when order

    type is market. For Limit orders, a valid price must be provided, or

    the order will be invalid and cant be submitted.

  • 8/6/2019 49696628 Project Online Stock Trading System

    20/27

    After transaction succeeds, system will check the order, including

    validating all the required. If any field is in valid, system will announce

    this order is invalid.

    Be sure to spend money you do have. Never spend money you dont

    have. System will not accept your order. If user doesnt have enough

    buying power to complete the purchase, system will tell user You don't

    have enough cash.

    If everything is correct, system will insert this order into the trading

    system. You will see a page telling you Your order has been

    successfully initiated.

    Selling Stock

    Selling stock is same as buying stock. Select radio button Sell,

    enter quantity for sale, stock symbol and stock price that willing for

    transaction, then choose order type, Limit or Market. If choosing

  • 8/6/2019 49696628 Project Online Stock Trading System

    21/27

    Market, price field can be left empty. In fact, anything enter in price

    field will be neglected when order type is Market.

    After transaction succeeds, system tells user Your order has been

    successfully initiated. If any field is left blank or user types in wrong

    stock symbol or user tries to sell stocks he doesnt hold or user tries to

    sell more stock than he have, system will tell user Your order is

    invalid.

    More about trading

    There is an engine running background. This engine will check all the

    open orders periodically. For market orders, the final deal price will be

    the last trade price of the real market, and the transaction will be complete

    as soon as possible. For Limit orders, if your buying price is lower

    than the market price (or your selling price is higher than the market), your

    order cant be completed until the market price meets your price.

    Otherwise, your order will be complete as soon as possible, and the deal

    price will be the market price.

    Open Orders

    You can view your open orders by click Open orders on pushdown

    menu. You can view all information about your open orders including

    action (buy/sell), stock symbol, quantity and price (market/limit).

  • 8/6/2019 49696628 Project Online Stock Trading System

    22/27

    If you feel regret about some open orders, just cancel these orders by

    click cancel button at anytime.

    History

    Click history on pushdown menu, then users can view information

    about all their account transaction history since the account was created,

    including Action (deposit/withdraw/buy/sell), stock symbol, quantity,

    price and date/time when completion of this transaction.

    Compare Stocks

    User may compare a number of stocks among 20, which are the most

    up/down during a period of time in the past.

    After the button is clicked, the given number of stock symbols and

    price changes will be listed in ascending order.

  • 8/6/2019 49696628 Project Online Stock Trading System

    23/27

    Stock information

    Click Quotes on pushdown menu, and with different option on

    Quote menu, users can view different kind of information about stocks.

    RealMarket index

    Click Refresh, user can view the real time market index, including

    Dow Jones, Nasdaq, S&P 500. These index will reflect the overall market

    performance.

    Stock Quote

    Click Quote on Quote menu, enter stock symbol in text area, and

    then click GET. User can get real time stock information, including

    last trade value, trading time, price change, Stock exchange volume and

    stock price change percentage.

    User can enter multiple stock symbols at the same time, use space as

    delimiters between the symbols.

    If user type in symbol that doesnt exist, system will tell user Error:

    Symbol not found.

  • 8/6/2019 49696628 Project Online Stock Trading System

    24/27

    Stock Profile

    Click Profile on Quote menu, enter stock symbol in text area, and

    then click GET. User can get company profile from Internet, including

    company address, industry type, CEO, company description, fundamental

    data (total net income, EPS, Dividends and ect.) and ratio data

    (price/earning ratio and ect.).

    User can enter multiple stock symbols at the same time, type space in

    between these symbols.

    Stock Chart

    Click Chart on Quote menu, enter stock symbol in text area, and

    then click GET. User can get stock chart of whole last year from

    Internet. User can enter multiple stock symbols at the same time, type

    space in between these symbols.

    StockResearch

    Click Research on Quote menu, enter stock symbol in text area,

    and then click GET. User can get stock research information from

    Internet, including Analyst Recommendations and EPS Estimates. User

  • 8/6/2019 49696628 Project Online Stock Trading System

    25/27

    can enter multiple stock symbols at the same time, type space in between

    these symbols.

    If user type in symbol that doesnt exist, system will tell user

    Symbol not found. Look up symbol.

    News

    Click News on Quote menu, enter stock symbol in text area, and

    then click GET. User can get news related to specific stock from

    Internet. User can enter multiple stock symbols at the same time, type

    space in between these symbols. Click stock symbol to read news about

    this stock. If user type in symbol that doesnt exist, system will tell user

    Error: Symbol not found.

    User can also review message related to this stock that post on Internet

    by clicking message.

  • 8/6/2019 49696628 Project Online Stock Trading System

    26/27

    User logout

    When user finishes all the transaction, just click Logout, user will

    logout this online stock exchange system.

    REFERENCES

    1. Cay S. Horstmann & Gary Cornell [1997], Core Java, Volume 1, Sun

    Microsystems Press

    2. Cay S. Horstmann & Gary Cornell [1997], Core Java, Volume 2, Sun

    Microsystems Press

    3. Ramez Elmasri & Shamkant B. Navathe [1994], Fundamentals of

    Database Systems, Second Edition, Addison-Wesley Publishing

    Company

    4. W. Richard Stevens [1994], TCP/IP Illustrated, Volume 1, Addison-

    Welsey Publishing Company

    5. Douglas E. Comer [1995], Internetworking with TCP/IP, Volume 1,

    Prentice-Hall, Inc.

    6. Kay, A. (9/91). Computers, networks and education. Scientific

    American. pp. 138-148.

    7. Brian Jepson, JAVA Database Programming, John Wiley & Sons,

    Inc., New York, 1997

    8. JAVA Programming for the Internet, Ventana Communications

    Group, Inc., 1996

  • 8/6/2019 49696628 Project Online Stock Trading System

    27/27

    9. Richard C. Leinecker and Ton Archer, Visual J++ Bible, IDG Books

    Worldwide, Inc., 1997

    10. Chairman Arthur Levitt, (1999).Plain Talk About On-line Investing.

    11. Pratik Patel, Java Database Program With JDBC. Coriolis Group

    Books, 1996

    12. Dave Raggett, (1999).HTML 4.01 Specification.

    13. Jason Hunter, Java Servlet programming.With William Crawford /Paperback / O'Reilly & Associates, Inc., 1999

    14. Alan R Williamson, Java Servlets: By Example. Paperback /

    Manning Publication company, 1999