This repository was archived by the owner on Apr 11, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Requirements Document
Garrett T edited this page Jan 31, 2015
·
14 revisions
- Market Orders: As a matching engine, I can match a standard market order against any other type of order.
- Limit Orders: As a matching engine, I can match a standard limit order against any other type of order.
- Stop Orders: As a matching engine, I can follow a reference price and use that to turn a standard stop order into a market order, and fulfill it.
- Canceling Orders: As a matching engine, I can cancel any unfulfilled, or partially fulfilled, orders.
- As a matching engine, I prevent all trades that would execute against the same account by following the "Version 1, Decrement" plan as outlined by NASDAQ.
- As a matching engine, I reliably publish all events and keep a ledger that can be re-parsed at any time should their be some type of network failure.
- Can publish realtime updates using its event stream
- Provides analytic data, such as market graphs, market spread, etc. over time.
- Interface for adding, canceling, and checking status of all orders, for all accounts.
- Is responsible for storing any and all data that passes through the matching engine. Including, but not limited to: Orders, Canceled Orders, Trades, Trade Errors (self-matching), Matching Engine Errors, and any other Service Errors.
- Users can register from the front page with a unique e-mail address and a password of at least 8 characters
- Users can login from the front page
- Only authenticated users can make orders
- Only authenticated users can view personal trend visualizations
- Users can easily place a market order to buy or sell
- Minimal advanced features are provided for users who are more comfortable with exchanges
- The application prevents orders when users do not have sufficient funds
- Users can view a price chart
- Users can view a depth chart
- Users can view the order book
- The order book includes the bid-ask spread
- All visualizations are real-time
- Users have an available account balance for each security
- Users can withdraw
- Users can deposit
- Users can purchase faux bitcoins
- Karma score
- Users are given a small amount of bitcoin to begin trading
- Leader-boards are kept and users can obtain achievements / awards based on their success