A SOFTWARE ARCHITECTURE FOR CONTINUOUS DOUBLE AUCTIONS Jarrod Trevathan and Wayne Read School of Mathematics, Physics and Information Technology, James Cook University North Queensland, Australia jarrod.trevathan/wayne.read@jcu.edu.au ABSTRACT A Continuous Double Auction (CDA) is a powerful auction mechanism used in online share trading. A CDA has many buyers and sellers continually exchanging items. Implementing an online CDA in software is more complicated than a regular online auction (such as eBay). This paper describes our experiences with implementing an online CDA. We present the model as an abstraction of the online share trading process, and discuss implementation specific details. We describe the major software components, address web site navigation and object-oriented software design. An online CDA database schema is presented along with a discussion regarding timing issues. We show how bids are cleared and contrast differing matching strategies. We also investigate CDA software bidding agents, present an agent application programming interface, and a description of different bidding agent strategies. Online CDA privacy and security considerations are also discussed. The auction model is simple/concise, and presented as a general guide on how to basically implement an online CDA system. KEYWORDS Online share trading, object-oriented design, database, timing, market clearing, security 1. INTRODUCTION Online share trading is a popular means by which small investors access the World's share markets (e.g., NYSE, FTSE, ASX, etc.). A share market uses a form of auction referred to as a Continuous Double Auction (CDA). A CDA has many buyers and many sellers continuously trading a commodity. Unlike a regular online auction (such as those offered by eBay), a CDA never ceases, and continues to match and clear new bids as they arrive. This entails more complicated bidding and winner determination procedures. Furthermore, bidders must submit their bids via an intermediary (i.e., a Broker). The additional parties involved in the auctioning process make it difficult to define an online CDA's software requirements. Existing literature on auction software tends to be complicated. Proposed designs aspire to perform too many auction types. An auction's architecture is referred to as generic if it can execute many auction types (see Kumar and Feldman (1998), Wellman et al (2001)). We have previously documented an online English auction software model in Trevathan and Read (2006a). The architecture is simple and concise, as it is not weighed down by extraneous details pertinent to multiple auction types. In this paper, we shift our attention to CDA software requirements and the mechanics of online share trading. We designed our own CDA for use in online auction research. Our research focuses on market clearing algorithms, bidding agents and auction security. The paper is motivated by the limited amount of software literature specific to CDAs. This paper describes our experiences with implementing an online CDA. We present the software model used, and describe implementation specific details. Our system is an abstraction of the share trading process. This allows the CDA system to be modeled in a simple manner. The paper shows how to construct the server using presently available software components. Bidders interact with the CDA via a web interface (similar to an online Broker). A concise CDA database schema is presented and auction-timing issues are addressed. We show how to match and clear bids using techniques from practice and research. We also present an application programming interface for automated bidding agents, and provide an overview of CDA bidding agent strategies. Additionally, auction privacy and security issues are discussed. The auction server is available at http://auction.maths.jcu.edu.au. This paper is organised as follows: Section 2 describes the CDA software components, web site navigation and object-oriented design. Section 3 presents a database schema for an online CDA system. Section 4 describes the auction process. This includes discussions regarding timing, bidding, bid states and verification, matching and clearing bids, payment, and Auctioneer commission. Section 5 investigates CDA software bidding agents. Section 6 examines online CDA privacy and security issues. Section 7 provides some concluding remarks. 2. CDA SOFTWARE COMPONENTS A share market can be thought of as an Auctioneer who commodity (or company) listed with the share market is an software model combines the Broker and Auctioneer's role. isolation to the share trading application. Barring security easily be extended to the more complicated scenario. conducts multiple simultaneous CDAs. Each individual CDA. To make things simpler, our This allows the online CDA to be examined in and regulation issues, the software model can Figure 1 presents a high-level software model for performing online CDAs. There are two main parties: a bidder and an Auctioneer. The parties are joined by a communication link. There are two types of interface for a bidder. The first is the web interface. This is for a human bidder. The bidder interacts with the Auctioneer via a HTML browser. The second interface is for a software bidding agent. A bidding agent interacts with the Auctioneer using an application programming interface. The Auctioneer runs a Figure 1. Basic Software Components for an Online CDA web server (e.g., Apache) and a scripting language (e.g., php, asp). The entire CDA is database driven. All state information (e.g., bids, timing, etc.) about the CDA is contained in the database. When a client submits a bid or requests a price quote, a database transaction occurs. The database generates dynamic web pages in response to bidder activity using the scripting language. 2.1 Website Navigation To interact with the Auctioneer, the human client uses a series of web pages. In share trading, these are hosted by a broker. In our architecture, we generalise the web interface, so that it is not necessary to know who the host is. Instead the bidding process is considered to be transparent to a bidder. Figure 2 illustrates how bidders navigate the CDA website. Each bubble represents a major section of the site. Lines represent links between sections and arrows indicate the navigational direction a user must follow to reach a particular page. Once a user has registered they can log in using a password (entering the secure area). The home page is the main area for the bidder. Bidders Figure 2. Navigation Map for an Online CDA Website are able to search for a listed CDA, view a watchlist of pre-selected CDAs, or view their portfolio (i.e., shares they presently own). Once a bidder has selected a CDA, they are then able to obtain a price quote (i.e., market depth) and also research (or a description) regarding the commodity (i.e., the company's financial standing). The client can then submit a new bid, or alter/cancel an existing bid. The client is returned to the home page following any bid related transaction. Note that there is a wealth of information regarding a CDA's description not listed in Figure 2. This includes the market depth (i.e., list of buy and sell bids) and charting facilities (showing the share's closing price over a given time period). Furthermore, there is much information regarding the companies financial standing listed. For example, dividend yields, net worth, earnings per share, beta risk, broker reviews/recommendations, etc. Once in the secure area specific information regarding the user (such as user id and password) must be carried from one page to another. To achieve this, the secure area is implemented using session variables. Session variables are similar to cookies, as they are used to store information for a particular period of time. The values in session variables exist until the session terminates. This allows information to be passed between web pages or to another web site. A session can be created using a session identifier stored on the server. When Figure 3. Control Flow of a Session Variable the client makes a request, the data stored in the session variable can be accessed any number of times until the session ends. An alternative approach for passing information between pages is to use a query string. However, using a query string in this manner is difficult and cumbersome. Session variables on the other hand allow information to be more easily retrieved and maintained. Figure 3 illustrates the process involved for using session variables. When a bidder logs off the session variable is destroyed. The variable must also be destroyed after a predetermined amount of bidder inactivity. When a bidder submits, amends, or cancels a bid, they receive an email notifying them that his/her order has been received. The bidder will also be informed of such information via the web page. In a standard auction it is much easier for a bidder to determine whether they have won or not. However, a CDA has a more complicated winner determination procedure, which often contains a large amount of information that is overwhelming for a bidder to understand. Email is the most common method for notifying a bidder that his/her bid has been executed. Figure 4. Example CDA Watchlist. Each line represents an individual CDA, its price quote, and links to buy/sell or view the market depth Bidders have the ability to choose from millions of CDAs to participate in. The search mechanism must allow a bidder to quickly and accurately identify a desired auction. This is typically achieved by entering a unique CDA code or searching based on the CDA's name. Figure 4 illustrates an example CDA watchlist. A bidder has the ability to select a group of CDAs and define them as a watchlist to allow easier access in the future (i.e., avoiding the need to search each time). A full description of searching methods is beyond the scope of this paper. However, our CDA architecture is able to incorporate any search mechanism. 2.2 Object Model The web interface allows human bidders to interact with the Auctioneer. Figure 5 depicts an object model for the web interface. There are two objects: Bidder and Auctioneer. The top portion of each object indicates its internal state and the bottom portion lists the methods that it can use. Figure 5. Web Interface Object Model A Bidder's internal state is his/her userId and password. The bidder interacts with the Auctioneer via the Auctioneer's methods. The bidder only has two methods register and determine bid. During registration, a bidder obtains a userId and password, which they keep secret. When participating in an auction a human bidder then determines his/her bid according to individual preferences. The Auctioneer manages the database, which contains all information regarding bidders, their bids and auctions conducted. There are two types of methods an Auctioneer can perform: private and public. Private methods are operations that only the Auctioneer can perform such as listing a new CDA (list CDA). Public methods are services which are requested by a bidder. This includes the ability to register, login, search for an auction, view a watchlist or his/her portfolio, obtain a price quote, submit a bid (submit bid) and logoff. 3. CDA DATABASE Figure 6. Entity Relationship Diagram for an Online CDA Figure 6 presents an Entity Relationship Diagram for the database in an online CDA system. Rectangles represent entities, diamonds represent relationships, ellipses represent attributes. There are five entities: user, auction, bid, trade and portfolio. The primary key for each entity is underlined. Information stored about a user includes a unique userId, password, name and email address. Not all possible information is listed that should be associated with a user (e.g., address, bank account details, etc). Furthermore, other attributes such as a bidder’s name can be further decomposed (e.g., first name, middle initial and last name). Each bid is identified by a unique bidId. A bid is either of type buy or sell. Other information required includes price, quantity, the date the bid was submitted and the expiration date. BidId and auctioned are foreign keys used to identify which bidder submitted the bid and which auction the bid is for. Also recorded is the bid’s state (see Section 4.3 for more details). Each auction is identified by an Auctioned. All items (i.e., companies) listed have a unique code. Other information includes the name of the company and the date listed. The trade entity records information regarding bid matchings. It stores the buyer and seller’s ids, the CDA, price, quantity and date of the trade. Section 4.4 discusses how bids are matched and cleared. A more conventional auction does not require a trade entity as there is usually only one winner. However, CDAs are much more complicated and have numerous winners with bids being in various states until they are entirely matched. The trade entity is therefore required in a CDA to keep track of this information. The portfolio entity contains information regarding all the shares that a bidder owns. It stores the name of the CDA, the quantity owned, the purchase price and which bidder it belongs to. The portfolio is updated every time a bidder is involved in a trade. 4. THE AUCTION PROCESS A CDA is dynamic, with new bids constantly being received and existing bids being cleared (or amended/withdrawn). The order of events is important therefore the auction must maintain temporal consistency during its operation. The main auction events include: Bid - A bidder submits a bid. Clear - The matching algorithm clears bids. Clears are triggered by bidder activity. For example, when a bidder submits a bid, the clearing algorithm (see Section 4.4) is run to check whether the newly submitted bid matches any existing bids. Price quote - A bidder requests a price quote. The market depth is updated every time bids are entered/modified and after clear events. Participants control bid events. Price quotes and clear events are controlled by the Auctioneer. Unlike more traditional auctions that terminate after a set of conditions have been met, a CDA continues indefinitely. In terms of a share market application, the market only trades during business hours. Bidders typically can still submit bids to the Broker but these are not acted on until the market reopens. CDA closing conditions can vary depending on the application. A CDA's rules can be contrasted with a similar auction type referred to as a clearing house auction. In this auction, bids accumulate over time and are cleared in one batch process at predefined times throughout the auction. Table 1 lists the main database transactions that occur in an online CDA system. Table 1. Database Transactions in an Online CDA System Auction Process Registration Login Bidding Winner Determination Store Bid Details Retrieve User’s Details User’s Details Price Quote Bid History, Update portfolio 4.1 Bidding Brokers allow clients to enter new bids and to modify/cancel existing bids. Figure 7 shows a typical web form a Client would use to submit a buy bid. (Note that a sell bid is just the opposite.) First a Client provides his/her Client Number, so that the Broker can link the order they submit to them. Next, the Client enters either the company code, or the full name of the company they want to purchase shares in. The company code is unique to a company, used for identification purposes. There are two options for entering the price at which the Client wishes to purchase shares. With an “at limit” order, the Client enters the exact price they are willing to buy the shares at. When the Broker acts on the order, they will purchase the shares at a price no higher than the limit the Client has specified. Alternately, an “at market” order instructs the Broker to Figure 7. An example buy bid used in online share trading (source: Australian Stock purchase the shares from Exchange) the next available seller, regardless of the price. Next, the Client enters the quantity of shares they want to buy. The Client is also required to enter some personal information (i.e., first name, last name and phone number). The right side of Figure 7 gives an estimation of the Client's buy order. For this example, the Client has specified that they want to buy shares in Universal Resources (URL). The Client desires 22,000 units at a limit of $0.16, thus the basic trade's total value is 22,000 x $0.16 = $3,520.00. The Broker also adds commission of $19.95. This brings the total price that the Client must pay to $3,539.95. 4.2 Price Quotes Figure 8. An example of a price quote (top), and market depth indicator which lists all the buy and sell bids for a CDA (bottom) Figure 8 illustrates an example price quote and market depth indicator. The market depth lists all the buy and sell bids grouped according to price. The quantity is the aggregate of all bids at the particular price level. Every time a Client submits a new order, this information is immediately reflected via the market depth. Market depth information is available to all traders. When a trade is executed, the Client is notified via email. In an online share trading application, the opening price for a trading session (i.e., the first trade for the day) is used as a benchmark to compare price movements throughout the session. In a CDA, the benchmark price can be updated at predetermined times (e.g., every 24 hours). This information is typically supplied with the price quote to enable the bidder to know the last price traded, the monetary and percentage change from the benchmark price, and the high and low for the session during which the benchmark is valid. The Internet poses some particular difficulties with respect to temporal consistency. The auction has no control over transmission delays, so bids and price quotes can take arbitrary time. Processing the bids can also be complex (i.e., during bid verification and when clearing bids), which reduces the quality of service in terms of processing time. This also makes CDAs particularly susceptible to denial of service attacks whereby the Auctioneer is inundated with a large number of fake bids. Auction timing issues are also discussed in Wurman et al (1998) and an extensive listing of auction components is outlined in Wellman et al (2001). 4.3 Bid States and Verification Figure 9. Bid State Transitions for a CDA The Auctioneer must ensure that only active bids are matched. Figure 9 illustrates the various states a bid can be in at any time during a CDA. Once a bid is verified it becomes a candidate for matching. A bid that has exceeded its time-out period enters the expired state. A bid that has not been fully matched is considered to be in a partially transacted state. Fully matched shares that have been cleared are in the transacted state. Other bids may be in the updated state, or withdrawn from the auction entirely. Typically a bid can be withdrawn or altered at any stage prior to being matched. A newly submitted bid should be checked for the following: Insufficient Holdings - This occurs where a bidder attempts to sell more of a commodity than they own. No Holdings - A bidder attempts to sell a commodity they don't own. This is sometimes referred to as selling short. Un-owned shares are sold and then later bought back when the price drops (called buying long). This may be permitted in certain circumstances, but is beyond this paper's scope. Input Errors - There are many types of errors that can occur when a bidder completes the bid order form: o Negative or zero price o Negative, zero or fractional quantity Inability to pay - Depending on the payment scheme (see Section 4.5) and/or past dealings, a bidder may be capped at maximum value for the order. Trading too far from the current price - In some cases the Auctioneer may restrict bids to be within a certain range of the established current price. Multiple bids - A bidder may accidentally submit two bids of the same type. In this case, the bidder should state whether the newer bid invalidates the old bid. Simultaneous buy and sell bids - If a bidder enters both a buy and sell bid, s/he runs the risk of having these two bids matched with each other. If this happens, the result will be void (i.e., the bidder only exchanges with themself), and broker commission may be incurred. Quantity exceeds all listed/permitted quantity - CDAs can only exchange whatever amount of quantity that has been listed. There may be situations where an order can't be filled as it either: exceeds the quantity available; exceeds all listed quantity; or breeches a governing law regarding the maximum quantity an individual can own. Security - Bids can forged or submitted with a malicious intent (see Section 6 for further discussion). Bids should be checked in a manner consistent with the auction's security protocol. 4.4 Matching and Clearing Bids The objective of a CDA is to match up buy bids to sell bids. This is performed by a market clearing algorithm. A bid is typically matched when the buy price p1, is greater than or equal to the sell price p2. The auction revenue is p2 - p1. The choice of market clearing algorithm greatly affects how a CDA functions. The World's stock exchanges are now fully automated. In the most common clearing strategy, best priced orders have priority. If there is more than one order at the same price, the order that was placed first takes precedence. Large orders have no priority over small orders. A bid is considered fully cleared when it is matched to enough matching opposite bids to satisfy the quantity desired. Alternately, a bid may expire without having all of its desired quantity transacted. Brokers and Auctioneers gain commission on the number of bids and amount of quantity matched. This requires the clearing algorithm to match bids in a manner that maximises monetary surplus whilst ensuring that bids do not expire partially matched (i.e., with quantity outstanding). Sandholm et al (2002) show that rather than immediately clearing bids, there is some benefit in waiting. Clearing strategies that wait can possibly increase auction revenue by matching bids of higher revenue yield. An auction can then use its revenue to subsidise loss making bids (i.e., p2 < p1). This permits the algorithm to function more like an offline clearing algorithm. An offline algorithm has full knowledge of all bids and therefore can determine the optimal clearing strategy (as occurs in clearing house auctions). How to allocate quantity raises several unique difficulties. If a bid is indivisible, it must be matched in its entirety or not at all. Figure 10: “Blackbox” Matching Function for Clearing Bids Alternately a divisible bid can be partially matched in the case where the bid expires without being debited/credited the entire quantity desired. In Trevathan and Read (2006b) we discuss quantity allocation issues and show that it is infeasible to devise an efficient clearing algorithm for indivisible bids. In addition, several algorithms are presented, which achieve a better social welfare than the methods presently employed by stock exchanges. Various online market clearing strategies are also examined in Wellman et al (2001). The software architecture presented in this paper allows any market clearing strategy to be used. The matching function can be considered as a black box. Its inputs are a list of bids and its output is a matching between compatible buy and sell bids (see Figure 10). Figure 11. Basic Market Clearing Algorithm Figure 11 gives pseudo code for a market clearing algorithm, which is an implementation of the strategy used by current stock exchanges. Bids are ordered according to price (denoted by the set P). Two competing bids are decided based on arrival time. The algorithm successively subtracts the smaller bid quantity from the larger opposite bid quantity (q(x) denotes the quantity of bid x). The algorithm keeps track of the current unmatched buy and sell quantities at each stage using two variables, b and s. Once a particular bid has been allocated its exact quantity, it is cleared. The algorithm is simple and its efficiency only depends on the number of bids per time unit. 4.5 Payment Online share broking schemes use various solutions to enforce payment including credit, Client accounts and fines. Credit allows clients to submit buy bids up to a set credit limit. If the bid is cleared, the Broker requests payment from the Client's Bank. Another solution requires clients to hold accounts with the Broker, and only allow bids up to the value of the account balance. When a Client submits a buy bid, which is cleared by the auction, the bid value is withdrawn from the Client's account. Alternately, if a sell bid is cleared, the bid's value is deposited in the Client's account. Finally, Brokers can impose fines for defaulting on payment, and can sell winnings in an attempt to recuperate unpaid money. However, none of these solutions are perfect. Credit limits provide the Client with less restrictions, but requires the Broker to place some confidence in the Client's ability to pay. A Broker held account prevents risk on the Broker's behalf, but can be restrictive to the Client who might want to hold the account funds elsewhere while not in use. For example, if a Broker offers a lower rate of interest compared to another financial institution, the Client might want to move the funds to the better paying account when the funds are not being used. Fines and selling off goods won is a last ditch effort only taken to either deter or recover lost money after a Client has defaulted on payment. Figure 12. Example Portfolio. Each line represents the user's holdings for a particular CDA A portfolio records a bidder's holdings. Figure 12 illustrates an example portfolio. Each CDA is listed where the bidder currently holds quantity. The purchase price for each CDA must be editable. This is because there is no way for the database to know exactly what the bidder's perceived price is. Dollar cost averaging is the term used to describe buying more of a commodity at a different price to average up/down the overall purchase price of the combined quantity. In this case, it is best if the bidder can update his/her purchase price 4.6 Auctioneer/Broker Commission In online share trading, the Broker earns a commission on completed transactions. The fee structure can vary depending on bid's value and who the bidder is. The following outlines the most common fee structures: 1. 2. 3. 4. Set amount - the fee is a set amount for each bid. Set amount-scalable - each bid within a certain value range is assigned a set amount. In general, the amount charged increases with the bid's value. Percentage - the commission is calculated as a set percentage of the bid's value. Combination - any combination of the above approaches. In addition, a bidder generally incurs a government tax and/or stamp duty for each transaction. 5. SOFTWARE BIDDING AGENTS A bidding agent is a program that bids on a human bidder's behalf. In auctions that can last days or weeks, bidding agents remove the need for a bidder to constantly observe an auction. Instead a bidding agent monitors the auction proceedings for any price activity and responds in accordance with its programmed strategy. A CDA bidding agent's strategy could be to merely purchase good up to a set limit. Alternately the agent may perform an ongoing complex statistical analysis of the auction's bid history to enable it to decide when and how much to bid. Figure 13 presents an object model for a simple bidding agent. The Auctioneer object must provide an agent six basic services: login, request price quote, submit bid, alter bid, cancel bid and logoff. The Auctioneer's private methods are not shown. Figure 13. Software Bidding Agent Object Model Similar to a human bidder, an Agent object has a userId and password. An agent also knows the auctionId of the auction it wants to participate in. The valuation is the maximum limit that an agent can bid. An agent can perform two operations: initialise and determine bid. The initialise method provides the agent with the human's userId and password, and instructs the agent which auction to participate in and the valuation of the auctioned goods. Figure 14. Software Bidding Agent Application Programming Interface Figure 14 presents an agent application programming interface. The agent interacts with the Auctioneer by executing the appropriate function. The programming interface is open to allow an agent to follow any bidding strategy. Some CDA bidding agent strategies include: Zero-Knowledge Traders - Generates random order prices, ignoring the state of the market. Zero-Knowledge Plus Traders - Maintains a scalar variable denoting its desired profit margin, this is combined with a unit's limit price to compute a bid or ask price. At the start of trading, p is initialised to a random positive surplus value, and it is adjusted by a small random increment after every successful or failed trade. Kaplan's Sniping Traders - Lets other agents do the negotiating and then will bid at the best price when one of the following three conditions are met: 1) Juicy offer: the best ask is less than the minimum trade price in the previous period; 2) Small spread: the best ask is less than the maximum trade price in the previous period, and the ratio of the bidask spread and the best ask is less than a spread factor, while the expected profit is more than a minimum profit factor; 3) Time running out: the fraction of time remaining in the period is less than a time factor. Gjerstad-Dickhaut Traders - Uses the history of recent market activity to calculate a “belief” function estimating the probability for a bid or ask at price p to be accepted. 6. SECURITY AND PRIVACY CONSIDERATIONS As bidders are not physically present during an online auction, there are many ways to cheat. For example, a bidder might win and refuse to pay for an item. Likewise the seller may accept payment and not deliver the goods. Furthermore, the Auctioneer can influence the final outcome by blocking bids. Additionally, an individual's personal information can be sold or used in a malicious manner. Discussions on auction security and privacy can be found in Franklin and Reiter (1996) and Kumar and Feldman (1998). Many cryptographic schemes have been proposed to solve auction security and privacy problems. However, the security requirements for an online CDA differ to those of other auction types. Furthermore, defining these requirements becomes extremely complicated when extended to an online share trading application. There are two existing proposals for conducting secure and anonymous CDAs (see Wang and Leung (2004) and Trevathan et al (2006)). The general consensus is that a CDA should at least exhibit the following privacy and security characteristics: 1. 2. 3. 4. 5. Unforgeabilty - Bids can't be forged. Non-repudiation - A bidder can't deny having submitted a bid. Public verifiability - All parties can be verified as having followed the auction protocol correctly. Robustness - Invalid bids or failures in following the auction protocol do not affect the outcome. Anonymity - A bidder's identity/personal information must remain private. Share markets are becoming the target of new elaborate scams, terrorist attacks and corporate crimes. Trevathan (2006) provides an overview of privacy and security for online share trading in the context of auctions. It outlines the additional parties involved, and how their individual requirements affect auction security and privacy. A description of share market related crimes and their implications for online trading is given. Furthermore, it discusses how to conduct anonymous and secure share transactions using the CDA scheme given in Trevathan et al (2006). 7. CONCLUSION This paper describes our experiences with implementing an online CDA. We present the model as an abstraction of the online share trading process, and discuss implementation specific details. We describe the major software components, address web site navigation and object-oriented software design. An online CDA database schema is presented along with a discussion regarding timing issues. We show how bids are cleared and contrast differing matching strategies. We also investigate CDA software bidding agents, present an agent API, and a description of different bidding agent strategies. Online CDA privacy and security considerations are also discussed. The auction model is simple/concise, and presented as a general guide on how to basically implement an online CDA system. REFERENCES Franklin M, Reiter M. 1996. The Design and Implementation of a Secure Auction Service. IEEE Transactions on Software Engineering. No. 22, pp. 302-312. Kumar, M. and Feldman, S. 1998. Internet Auctions. Proceedings of the Third USENIX Workshop on Electronic Commerce, pp. 49-60. Sandholm, T. et al. 2002. Online Algorithms for Market Clearing. Proceedings of 13th SIAM Symposium on Discrete Algorithms (SODA). pp. 971-980. Trevathan, J. et al. 2006. An Anonymous and Secure Continuous Double Auction Scheme. Proceedings of 39th Hawaii International Conference on System Sciences, pp. 125 (1-12). Trevathan, J. and Read, W. 2006a. RAS: a system for supporting research in online auctions. ACM Crossroads, No. 12.4, pp. 23-30. Trevathan, J. and Read, W. 2006b. Variable Quantity Market Clearing Algorithms. Proceedings of 1st International Conference on e-Business, pp. 126-133. Trevathan, J. 2006. Privacy and Security Concerns in Online Share Trading. James Cook University. Technical Report. Wurman, M. et al. 1998. The Michigan Internet AuctionBot: A Configurable Auction Server for Human and Software Agents. Proceedings of 2nd International Conference on Autonomous Agents (AGENTS), pp. 301-308. Wellman, M. et al. 2001. A Parameterization of the Auction Design Space. Games and Economic Behavior. No. 35, pp. 271–303. Wang, C. and Leung, H. 2004. Anonymity and Security in Continuous Double Auctions for Internet Retails Market. Proceedings of 37th Hawaii International Conference on Systems Sciences.