Implement an electronic stock trading system. Your system will accept trading orders and based on those orders, it will keep track of pending orders, and execute trades when possible.
1. Database design (20 points)
Use Microsoft Access to design a database for the stock trading system. You should determine the tables to be created, the attributes in each table, and the primary key in each table. DO NOT define foreign keys in this assignment even they do exist. It will be easier for you to debug your VB program when foreign keys are absent.
The system maintains common stocks records. Each stock is described by a ticker symbol (e.g., BAC), a company name, exchange venue (e.g., NYSE), listing date, sector, and industry.
The system also keeps track of stocks' daily closing records. Each closing record consists of a ticker symbol, a date, opening price, highest price of the day, lowest price of the day, the closing price, trading volume on that day, and 1 day price change %.
Users can use the system to place market order requests for stock trading. A market order is a request to purchase or sell a stock at the current market price. Each order request should include a ticker symbol, date and time of the request, type of order (buy or sell), quantity of stock to be traded, and order status (pending, completed, or cancelled).
2. Database population (10 points)
Use Microsoft Access to populate at least 10 records into each of the database tables created above. You must pick at least 10 stocks from this web site: HYPERLINK "http://www.1stock1.com/1stock1_112.htm" http://www.1stock1.com/1stock1_112.htm , where you can find last year's return rate % for each stock. For other stock information, please use the Yahoo! Finance ( HYPERLINK "http://finance.yahoo.com/stock-center/" http://finance.yahoo.com/stock-center/) and search by the stock ticker symbol. The sector and industry information can be found from the company profile page on Yahoo! Finance. Please make sure that you have at least 2 sectors and 2 industries per sector, and that each industry has at least 2 stocks.
After you populate the stocks table, you should populate daily records and trading requests based on either true market data or your imagination. Please make sure that you have a mixture of different order types and statuses for different stocks. A minimum of 10 records is required for each table.
3. SimpleBroker v1.0: A DataReader Application (70 points).
MB v1.0 is a DataReader application for placing stocking trading request. You must use a DataReader object to retrieve records from the database and a Command object to update the database. The following describes the components needed for the development.
User interface: You should design your user interface to support the following functions. Label objects should be used appropriately to make your interface user-friendly. (10 points)
Populate the stock ticker ComboBox control: The user should start with a ComboBox control (StocksComboBox) that displays the complete list of stock tickers retrieved from the database. (15 points)
Populate the stock closing price ListBox control: After the user selects a stock ticker from StocksComboBox, a ListBox control (ClosingPricesListBox) should display a list of past closing prices of the selected stock. Each past closing price should indicate both a date and a closing price (e.g., "03/20/2013-$90.23"). The list should be ordered by descending dates. (15 points)
Populate a ListBox control: After the user selects a stock ticker from StocksComboBox, another ListBox control (TradingRequestsListBox) will display a list of currently pending stock trading requests for the selected stock. Each request should indicate the order type and stock quantity (e.g., "BUY-2000"). The list is ordered by the order type first and then by quantity. (15 points)
Placing a new order request (15 points):
The user selects an order type (buy or sell) from another ComboxBox control (TradeTypeComboBox), and enters a stock quantity to be traded in a TextBox control (QuantityTextBox).
By clicking a Button control (SubmitButton), add a new stock request record to the database.
4. Bonus questions (20 points):
Sector selection: Another ComboBox control (SectorsComboBox) should be used to display all sectors in the database. The user starts with selecting a specific sector from SectorsComboBox. StocksComboBox will then only display those stock stickers in the selected sector. (10 points)
Error handling: Use data validation or exception handling to prevent the following runtime errors from interrupting the program execution:
Non-numeric values in QuantityTextBox (5 points)
OleDbException when populating the ListBox and ComboBox controls. You can get such an exception if your database table is open from Access in the Design View when you try to execute your VB program. (5 points)
Recently Asked Questions
- Please refer to the attachment to answer this question. This question was created from A&P Blood Worksheet.doc.
- There are 2^16 tracks on 4 double-sided platters. Each track contains 100 sectors on an average. Each page corresponds to 4 sectors. The size of each sector is
- Please refer to the attachment to answer this question. This question was created from -HW1.