WO1995006918A2 - Real-time automated trading system - Google Patents

Real-time automated trading system Download PDF

Info

Publication number
WO1995006918A2
WO1995006918A2 PCT/US1994/009398 US9409398W WO9506918A2 WO 1995006918 A2 WO1995006918 A2 WO 1995006918A2 US 9409398 W US9409398 W US 9409398W WO 9506918 A2 WO9506918 A2 WO 9506918A2
Authority
WO
WIPO (PCT)
Prior art keywords
order
information
control engine
execution
electronic trading
Prior art date
Application number
PCT/US1994/009398
Other languages
French (fr)
Other versions
WO1995006918A3 (en
Inventor
William A. Lupien
John E. Martin, Jr.
Mike N. Alex
Original Assignee
Mjt Holdings, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mjt Holdings, Inc. filed Critical Mjt Holdings, Inc.
Priority to AU76714/94A priority Critical patent/AU7671494A/en
Publication of WO1995006918A2 publication Critical patent/WO1995006918A2/en
Publication of WO1995006918A3 publication Critical patent/WO1995006918A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Definitions

  • the present invention is directed to an automated trading system that operates in real-time, and more particularly, to an integrated trading and order management system for use by investors.
  • the securities market has a complex structure.
  • the portfolio manager examines a quote device which is located on the portfolio manager's desk.
  • the quote device lists the prices and quantities at which securities can be traded on a particular stock exchange.
  • the portfolio manager most likely concentrates on the price of a small number of stocks.
  • the portfolio manager manually or with the aid of a computerized model, then makes a decision to buy or sell a particular stock based on the current price of that stock shown on the quote device. When the decision is made, the portfolio manager will most likely telephone a professional trader at the institution's trading desk with the order.
  • the professional trader may not have dealt in that particular stock for quite some time, so must then determine which securities firm to contact to place the order. There are many securities firms, each often specializing in certain stocks. The professional trader will usually telephone a block trader (or
  • the securities firm's trader takes the order and routes it to the correct department or desk of the securities firm.
  • the trader may do this by physically taking a piece of paper with the order written on it to the correct department or desk, or telephone (or yell) the order to a person in the department or at the desk.
  • the trader will first determine the likelihood that the firm can itself find a counterpart to the order, for example, by telephoning some of the securities firm's other clients or by matching the order with other orders that the securities firm has on its books. If this cannot easily be done, the trader will then send the order to an exchange.
  • the trader has the choice of different exchanges and of different mechanisms to obtain execution of the order at an exchange.
  • the trader may have the choice of executing the order on the New York Stock Exchange (NYSE), the NYSE DOT system, the Pacific Stock Exchange or on Instinet.
  • NYSE New York Stock Exchange
  • the trader could do this, for example, by telephoning the securities firm's floor broker, located in a booth on the floor of the exchange.
  • the trader could send the order by computer or wire to the securities firm's booth on the floor of the exchange, where the order is then printed on a printer.
  • a floor broker will then take the order to the appropriate specialist post to execute the trade.
  • the specialist is a broker's broker.
  • the specialist keeps a book of orders in a particular security.
  • the floor broker will physically speak to the specialist to execute the trade.
  • a reporter places a mark sense card into a reporting device, and the transaction appears on the ticker almost instantly. Confirmation back to the investor or customer takes place when the floor broker returns to the firm's booth and sends the trade details over the wire (or by telephone or by computer) to the broker's branch, confirming that the order has been carried out successfully.
  • the branch will collect information about the executed orders and report that information back to the client. Sometimes, this information is reported in a batch at the end of the day. Alternatively, the securities firm may report the
  • the securities firm's broker may place the order over an electronic trading system, such as the NYSE Designated Order Turnaround (DOT) System.
  • DOT Designated Order Turnaround
  • the DOT System routes orders directly to specialists' posts on the trading floor of the NYSE .
  • the DOT System .accepts market orders up to 30,099 shares and limit orders up to 99,999 shares.
  • An electronic book at the specialist's post lists the buy and sell orders that are placed on the DOT System for a particular stock.
  • the details of the trade are entered into the DOT System and made available to the securities firm that placed the order, which then must report the trade to its client.
  • the securities firm's trader instead of sending the order to the floor of an exchange, might place the order on an electronic market trading system.
  • Instinet owned by Reuters, Ltd.
  • Instinet is an electronic block trading system that facilitates the negotiation of block trades between institutional investors. Instinet allows the counterparts to trade anonymously, entering bids electronically. Instinet subscribers can respond to an "order" entered into the system either by matching a displayed price or by making a counter bid that is transmitted instantaneously to the counterpart's terminal. The trades that result from these negotiations become public information only when they are executed. This procedure provides an
  • Instinet provides a limit order book for over-the-counter (OTC) securities and listed securities and also provides inside quotes for exchange listed securities for the eight U.S. markets on which stocks can be traded and for NASDAQ listed securities.
  • OTC over-the-counter
  • Some electronic trading systems (such as DOT) are to facilitate trading at a particular stock exchange.
  • Other electronic trading systems (such as Instinet) function independently of existing stock exchanges.
  • Electronic trading systems each have their own user interface and computer-to-computer interface. Each requires orders to be entered using differing formats, using different terminology and with different system rules. Each also quotes different prices for a
  • Present electronic trading systems usually facilitate trading on one exchange only.
  • the user interface and computer-to-computer interface of these systems may not permit orders to be held in abeyance, (or placed in abeyance after the order has been sent for execution or later execution), allow orders to be sent for execution as a group but with different orders in the group being sent to different stock exchanges, allow an order or group of orders to be placed on hold for
  • Order entry systems exist that enable users to enter orders and route these orders to a particular electronic trading system.
  • these systems typically are line editor systems that allow the user to enter only one order at a time.
  • These systems do not provide real-time information as to the status of the order. They have limited capabilities and typically do not allow a user to manipulate orders prior to execution, execute more than one order at a time, or correlate order and execution information.
  • these systems do not have the capability to route orders to the floor of an exchange for manual execution or to a particular trading desk at a brokerage firm.
  • the electronic trading systems that allow an investor to place an order electronically do not provide the investor with execution information in a format that easily allows the investor to perform its bookkeeping functions.
  • execution information is provided on a separate line printer.
  • a broker-dealer must manually enter the execution information into the bookkeeping system and cannot easily correlate orders placed with orders that were executed.
  • the electronic trading system does not correlate the execution information with the order on the user interface.
  • the present electronic trading systems have cumbersome user interfaces, making it difficult for users to enter orders quickly.
  • each of these systems is to replace (or supplement) the functionality of existing stock exchanges and sources of liquidity.
  • These systems do not place orders on the existing stock exchanges or allow investors to electronically place an order on the presently existing and various exchanges and electronic trading systems or to track and control the progress of such order until its execution. None of the existing systems provide an
  • the present invention is an automated and integrated order entry and trading system that operates in real-time to provide a user with control over the management of orders.
  • the present invention also provides a user with control over the management of orders.
  • the present invention is described below in the context of trading securities on stock exchanges and electronic trading systems. However, the invention is not so limited and can be easily adapted to allow the trading of other liquid assets such as futures,
  • “securities”, “stock”, and “shares” when used herein includes other instruments that can be traded, such as, for example, futures, derivatives, options, bonds and currencies.
  • the term "stock market,” “exchange” and “stock exchange” when used herein includes other markets, such as, for example, futures exchanges, options
  • the user of the representative embodiment system of this invention is typically an investor, such as an institutional investor (e.g., a pension fund) but may also be an individual investor, a broker or other person who deals in or trades securities.
  • an institutional investor e.g., a pension fund
  • the term "user” or “investor” means that person or entity who wishes to trade or deal in securities.
  • the present invention includes a control engine coupled to a
  • Each user workstation allows for entry of orders.
  • the graphical user interface of the user workstation displays orders that have been entered into the system, the status of each order and, if the order has been executed, execution details about the order. This information is provided on one user interface for all orders, irrelevant of which exchange or electronic trading system the order is to be or was placed.
  • the user is able, at one glance, to see the status of all orders.
  • the user interacting with the graphical user interface, can interactively and in real-time modify, suspend and cancel unexecuted orders.
  • control engine is coupled to numerous stock exchanges, such as, for example, the Cincinnati Stock Exchange, and to the electronic trading systems of stock exchanges, such as, for example, the DOT system of the New York Stock
  • control engine can also be coupled to various independent electronic trading systems, such as for example,
  • control engine can also be coupled to foreign stock exchanges, such as the CATS system of the Toronto Stock Exchange.
  • foreign stock exchanges such as the CATS system of the Toronto Stock Exchange.
  • “electronic trading system” includes stock exchanges, such as, for example, the Cincinnati Stock Exchange, and the electronic trading systems of stock exchanges, such as, for example, the DOT system of the New York Stock Exchange, and foreign stock exchanges and independent electronic trading systems, such as for example,
  • the control engine is also coupled to a booth workstation.
  • Some stock exchanges have what may be described as manual trading systems.
  • the order may be transmitted electronically by a broker to the floor of the exchange where it is typically printed on a printer and given to the broker's floor trader.
  • the floor trader executes the order manually on the floor of the exchange in the traditional way.
  • the control engine is coupled to the booth workstation which is located, for example, on the floor of an exchange.
  • Orders are electronically transmitted to the booth workstation, where the order can be printed and then executed manually.
  • the booth workstation need not be located on the floor of an exchange. It could be, for example, located on the trading desk of a trader or any other location where orders can be executed manually.
  • the control engine includes a switching
  • the user determines the routing of the order using the graphical user interface of the user's user workstation.
  • Each user workstation is typically operated directly by an investor who wishes to trade in securities and perform related trading functions.
  • the user workstation will be located on the desk of the investor, and will be remote to the control engine.
  • the user workstation is a powerful personal computer. The user workstation of the representative embodiment
  • Each order can be electronically transmitted via the control engine to a stock exchange or automated trading system.
  • the control engine of the present invention routes each order to the desired stock exchange or electronic trading system.
  • the system of the present invention enables users to track the progress and execution of orders in real-time.
  • Execution information is collected by the control engine from each exchange or electronic trading system in real-time, processed and made available to the user at the user workstation. This information is provided to the control engine using various techniques. First, for stock exchanges and electronic trading systems that operate automatically such as Instinet and the
  • execution information is provided electronically to the control engine as it is made available by the exchange or trading system.
  • the orders are not matched electronically.
  • the order is usually executed or matched by a person, for example, by the specialist on the floor of an exchange.
  • these semi-automated systems communicate orders to human intermediaries that execute the orders.
  • the control engine of the present invention obtains the execution information from these systems as soon as it is made available.
  • the booth workstation on the floor of the exchange has a graphical user interface so that the floor trader can simply and quickly report execution of the order back to the control engine, for real-time transmission to the user workstation.
  • the present invention routes orders to the booth workstation on, for example, the floor of an exchange.
  • the floor trader or the booth clerk or other trader selects the order that was executed from the list of orders displayed on the screen of the booth workstation and then enters the execution information for that order.
  • orders that are to be executed on the NYSE can be routed by the control engine to the NYSE DOT system or to a booth workstation on the floor of the NYSE .
  • the user workstation can, if required, in addition to or instead of displaying the execution information about an order, route the execution
  • Each stock exchange and electronic trading system requires information to be presented to it in a different format.
  • the control engine of the present invention formats the user's order so that it is in the correct format for each stock exchange and electronic trading system.
  • the system of the present invention eliminates most human interaction from the trading process.
  • the present invention allows each end user to have complete control throughout the execution process.
  • the only human action is that which is required by each stock exchange and electronic trading system.
  • the investor decides to place an order on Instinet there is no human interaction - the investor who wishes to make a trade simply, enters the order at the investor's user workstation and the control engine routes the order to Instinet.
  • the investor decides to place an order on the NYSE DOT system the only human interaction is that required by the DOT
  • the system allows executed orders to be reported in real-time to the user workstation (or the user) that placed the order. For example, when an order is placed on the NYSE DOT System and is then executed, instead of the execution being reported to a broker over a different system to that by which the broker placed the order (and then waiting while the broker telephones the investor with the execution information), the control engine of the present invention receives the execution report from the NYSE DOT System and immediately and in real-time provides this information to the user at the same interface on which the user placed the order.
  • the booth clerk can immediately enter details about the executed order into the booth workstation.
  • This execution information is automatically transmitted to the control engine.
  • the control engine then reports this execution information to the user workstation that placed the order, for display at the user workstation correlated with the order as described above.
  • the graphical user interface of the user workstation shows orders that have been entered into the system.
  • the user interface also allows the user to enter information about orders not executed using the system of the present invention, for example, to take advantage of the back office features of the present invention
  • the user interface shows the status of each order, and if the order has been executed, execution information about the order.
  • the order information for an order can be displayed on one line of the screen and the execution information can be displayed on the same line to increase ease of use.
  • the execution information can include execution information received from an exchange, from an electronic trading system, from a booth workstation, or entered manually by the user if the trade took place outside the system of the present invention.
  • the graphical user interface provided on the user workstation of the present invention allows the user to sort and display the order information and execution information using sophisticated display techniques unavailable on other order entry systems.
  • the user workstation of the present invention further allows the user to simultaneously send a group of orders to one or more exchanges for execution, to prepare orders that can be sent for execution at a later time and to enter orders using a minimum of keystrokes. Further, the user
  • workstation of the present invention can be coupled to an on-line source of price information.
  • workstation will then allow the user to prepare an order (or a group of orders) to be sent automatically for execution on the happening of an external event.
  • the fact that no human intervention by a broker or intermediary need be involved improves the confidentiality of information about orders sent for execution.
  • the only information that is disclosed is the order size and price.
  • the identity of the user is kept confidential - the control engine does not disclose the identity of the user (unless the user requires it), and all the DOT system knows is that the order is being sent by the control engine of the present invention.
  • the control engine can process and route orders for many users at the same time, knowledge about each user's trades is not disclosed.
  • the system gives the user the maximum information available about a trade without giving away any unnecessary information.
  • the present invention allows users to communicate order and execution information with each other. For example, an order may be entered by one user at one user workstation and information about the order and execution information for the order may be displayed at a second user workstation. This allows, for example, one user workstation to supervise orders and executions for many traders, e.g., to supervise all traders in a firm.
  • Post-execution enhancement features allow the user to simply and efficiently book each executed order in the relevant account or accounts without having to reenter the execution information. Further, the system of the present invention automatically interfaces with the clearing system of the brokerage house so that the executed orders can be cleared without the need for reentry of execution details, thus reducing errors.
  • the present invention can provide investors with direct access to many pools of liquidity for U.S. and foreign securities, including primary, secondary and third market sources.
  • the system of the present invention can route and execute trades for many different securities at many sources of liquidity
  • the system of the present invention allows investors to enter, change and monitor single, multiple or list orders.
  • the investor can select the specific routing for an order.
  • the present invention instantaneously updates the status of orders. It provides a detailed audit trail for each action or event in the execution process.
  • the present invention enables multiple and list orders to be sent simultaneously to different liquidity sources and enables investors to enter orders that are directly sent to exchange specialists and market makers in seconds and to thereafter receive a report immediately upon execution of the order.
  • the integrated user interface of the present invention gives the user control over the placement, timing and execution of orders.
  • Information about orders and executions can be entered and displayed in a single format, regardless of where the order is placed or how execution information is provided about the order.
  • the content and format of the display of this information can be determined by the user, not by any external system.
  • execution information can be provided to the investor.
  • the user is provided with direct and instantaneous access to many sources of liquidity.
  • the user can quickly submit orders for execution, examine feedback concerning the order as well as other external information, either manually or via a computer, and if required, cancel or modify the order or create new orders.
  • Fig. 1 is an illustration in block diagram form of a representative embodiment of the system of the present invention.
  • Fig. 1A is a table illustrating, as an example, some sources of liquidity to which the control engine of Fig. 1 can be coupled.
  • Fig. 2 is an illustration in block diagram form of a representative embodiment of an example network configuration for the system of the present invention.
  • Fig. 3 is an illustration in block diagram form of a representative embodiment of internal system
  • Fig. 4 is an illustration in block diagram form the processes that are carried out by the user
  • Fig. 5 is an order management toolbar displayed at the user workstation of Fig. 1.
  • Fig. 6 is an order entry window displayed at the user workstation of Fig: 1.
  • Fig. 7 is a detailed order entry window
  • Fig. 8 is a block diagram illustrating the functions performed by the order management process of Fig. 4.
  • Fig. 9 is a Fast Order Entry window displayed at the user workstation of Fig. 1.
  • Fig. 10 is a book-view window screen display.
  • Fig. 11 is an execution window screen display.
  • Fig. 12 is a book-view toolbar displayed at the user workstation of Fig. 1.
  • Fig. 13 is a block diagram illustrating the functions performed by the book-view process of Fig. 4.
  • Fig. 14 is a list window screen display.
  • Fig. 15 is an Order Alert window screen
  • Fig. 16 is a diagram in flow chart form illustrating the steps performed by a typical CTCI routine of the control engine of Fig. 1.
  • Fig. 17 is a diagram in flow chart form illustrating the steps performed by a print capture routine of the control engine of Fig. 1.
  • Fig. 18 is a diagram in flow chart form
  • Fig. 19 is an example of a typical end of day report.
  • FIG. 1 there is illustrated in block diagram form a
  • a control engine 2 is coupled to at least one user workstation 4.
  • investors are able to enter orders, for example, orders to buy and sell securities, using a graphical user interface.
  • the investor is able to perform other functions at the user workstation 4 related to trading of securities, discussed in detail below. It is anticipated that the user
  • the workstation 4 will be located on the desk of an investor who wishes to trade securities.
  • the user workstation may be a personal computer, such as, for example, an IBM personal computer with an Intel 486 processor running at 66 MHz and a color monitor.
  • an IBM personal computer with an Intel 486 processor running at 66 MHz and a color monitor.
  • the user workstation 4 can also accept instructions from the user using voice recognition techniques and provide information using a voice synthesizer.
  • the user workstation 4 is capable of performing additional functions other than required by the system of the present invention. Accordingly, the user workstation 4 can execute other application programs such as word processing and spreadsheet programs.
  • the user workstation 4 will be coupled to a source of on-line price and/or market information 16.
  • the user workstation 4 will accordingly execute an application program that receives, formats and is capable of analyzing price and/or market information.
  • this application program may be the commercially available P.C. Quote Program available from P.C. Quote, Inc. of Chicago, Illinois.
  • the graphical user interface displayed on the color monitor of the user workstation 4 and the flow of data between the user workstation 4 and the control engine 2 is controlled by software stored on a memory device in the user
  • the control engine 2 is further coupled to existing sources of liquidity such as stock markets and automated trading systems.
  • the control engine 2 is coupled to the Computer-To-Computer Interface (CTCI) of each desired stock market trading system or electronic trading system.
  • CTCI Computer-To-Computer Interface
  • the control engine 2 is coupled to the New York Stock
  • Fig. 1 is illustrative only, as it is contemplated that the control engine 2 of the present invention will be linked to most, if not all, stock exchanges and other sources of liquidity, including exchanges in other countries.
  • the control engine 2 is also coupled to the Pacific Stock Exchange (not shown) and the American Stock Exchange (not shown).
  • the table illustrated in Fig. 1A lists, as an example, some sources of liquidity to which the control engine 2 is coupled, as well as some of the order requirements of those systems.
  • the control engine 2 may also be coupled to a commercial order routing service (not shown) such as the order routing service provided by Bridge Data, at St.
  • the control engine 2 receives orders from the user workstation 4.
  • the control engine 2 will examine the order to determine the exchange or automated trading system to which it must route the order.
  • the control engine 2 will reformat the order so that the order complies with the format required by the stock exchange or automated trading system to which the order is to be routed.
  • the control engine 2 will format orders that are to be sent to Instinet 10 so as to comply with the Instinet computer interface
  • control engine 2 For an order that is to be placed on the Cincinnati Stock Exchange 12, the control engine 2 formats the order so that it complies with the message format described in "Computer Interface Manual” April 6, 1993, published by the Cincinnati Stock Exchange.
  • the Cincinnati Stock Exchange calls their system the National Securities
  • orders can be routed to other exchanges and automated trading systems, such as the NYSE DOT System 8.
  • the control engine 2 will accordingly format each order so that it complies with the interface and trading rules of the system to which the order is to be routed.
  • control engine will interpret and manipulate the order information supplied by the user at the user workstation 4 so that it is compatible with the system where the order is routed but so that the order complies with the user's instructions. For example, CSE 12 does not allow “good until” orders. (Some exchanges and electronic trading systems do, however, allow, "good until” orders.) If the user requires a "good until” order on CSE 12, the control engine 2 will accept that order, convert it to an unrestricted order acceptable by CSE 12, but will automatically cancel the order at the "until” time requested by the user. Thus, the user receives full functionality without having to know or understand individual system requirements.
  • Orders can be split between exchanges and automated trading systems. For example, if a sell order of 5,000 shares is sent for execution, the user may decide that the order is to be split. Thus, for example, 3000 shares may be sent to Instinet 10 for sale and 2000 shares may be sent to CSE for sale.
  • the control engine 2 can be at a remote
  • booth workstation 14 Also coupled to the control engine 2 is a booth workstation 14.
  • the booth workstation 14 will be located at the trading booth of a securities firm on the floor of an exchange or to their OTC trading department.
  • An investor operating the user workstation 4 may decide to route an order directly to a floor broker on the floor of a specified stock exchange, or OTC trading desk, or options floor.
  • the investor will enter the order at the user workstation 4 nominating a floor broker as the recipient of the order and then transmit the order to the control engine 2 which routes the order to the correct booth workstation 14.
  • the order can be physically printed on the attached printer and given to a floor trader who will execute the order manually.
  • the booth workstation 14 need not be located at a trading booth on the floor of an exchange.
  • the booth workstation 14 can be placed at any location, such as, for example, the desk of a
  • control engine 2 is designed to receive the execution information electronically.
  • Instinet 10 will electronically and automatically report executed orders when required by a user, as well as other
  • the control engine 2 accordingly requests and receives these execution reports
  • Semi- automated trading systems such as the NYSE DOT System 8 also have reporting capabilities.
  • a broker that has access to the DOT System 8 usually obtains execution reports from a system that reports executions to a printer. In these systems, the execution
  • control engine 2 of the present invention obtains the execution information as soon as it is available,
  • the execution information for an order is correlated and displayed with its corresponding order.
  • Fig. 2 there is illustrated in block diagram form a further embodiment of the system of the present invention.
  • many user workstations 4A to 4G are coupled to the control engine 2.
  • the user workstations may be coupled to the control engine 2 in various ways.
  • user workstation 4A is coupled to the control engine 2 via a modem or DSU 26.
  • User workstation 4B and user workstation 4C are coupled to a private wide area network 22, dedicated to the system of the present invention.
  • the private wide area network 22 is coupled to the control engine 2.
  • User workstations 4D to 4F are coupled to a local area network 20. This local area network arrangement is useful where a number of user workstations 4 are to be located near each other, for example, in one office of an
  • the local area network 20 is itself coupled to the control engine 2, in this example via the private wide area network 22.
  • User workstation 4G is coupled to a public wide area network 24 which is in turn coupled to a modem or DSU 25 of the control engine 2.
  • asynchronous or digital dialing lines As shown above, as more than one user workstation may be located at one site and coupled to the control engine 2, it may be preferable to provide access to the control engine 2 via a leased line with a LAN bridge at the control engine 2. Protocols that are supported in the representative embodiment are TCP ⁇ IP and NetBeui.
  • a computerized model, neural network, or expert system 9 may be coupled to one of the user workstations 4 of the present invention.
  • the model, neural network or expert system 9 may make the
  • model, neural network or expert system can receive execution
  • control engine 2 of the present invention obtains the execution information as soon as it is available from automated trading systems.
  • the control engine 2 may store the execution information in a database (6 of Fig. 3).
  • the control engine may also correlate the execution
  • the control engine transmits the execution information (or makes the execution information
  • Fig. 2 is illustrative only, and other network configurations, and combinations thereof, can be used to couple user workstations 4 to the control engine 2.
  • FIG. 3 there is illustrated in block diagram form an exemplary embodiment of the
  • the control engine 2 may be a mainframe computer coupled to various input/output devices and bridges. However, in the representative embodiment, the control engine 2 has a local area network system structure. As shown in Fig. 3, the user workstation 4 is coupled to a private wide area network 22 which is in turn coupled to a local area network bridge 32. The local area network bridge 32 is coupled to a local area network 30 of the control engine 2. Also coupled to the local area network 30 of the control engine 2 is an execution processor 34, a file server 36 and a database server 38. The execution processor 34 is responsible for the control and routing (to the correct user workstation 4) of the execution information supplied by the exchanges 8-12 and the booth workstation 14 when an order is executed.
  • the file server 36 stores some of the information required for the operation of the control engine 2. (However, if the processors used by the control engine 2 have internal memory, this information could be stored locally.)
  • the database server 38 will control the operation of a database 6. As shown in Fig. 3, the database 6 is internal to the control engine 2.
  • the database 6 may be located on the local area network 30 of the control engine 2. However, the database 6 may also be located external to the control engine 2. For example, there may be two databases coupled to or part of the control engine 2, one external to the control engine 2 for backup purposes.
  • the database 6 stores information transmitted from each user workstation 4 to the control engine 2.
  • the database 6 also stores information received by the control engine 2 and booth workstations 14.
  • an Instinet processor 46 is coupled to the LAN 30 and a multiplexor 42.
  • the multiplexor 42 is coupled to the Instinet 10 CTCI.
  • the Instinet processor 46 and multiplexor 42 allow communication to take place between Instinet 10 and the control engine 2.
  • Instinet 10 system so that they comply with the Instinet protocol is carried out by the Instinet processor 46.
  • a CSE Out processor 48 is coupled to a modem 40 which is coupled to the National Securities Trading
  • a CSE In processor 50 is also coupled to the LAN 30 and the modem 40. There is a two-way communication line 48A between the CSE Out processor and the modem 40. The two-way communication line 48A allows the CSE Out processor 48 to place orders on the Cincinnati Stock
  • Cincinnati Stock Exchange 12 were successful.
  • the one-way communication line 50A receives information from the Cincinnati Stock Exchange 12 as to the execution and status of an order placed on that exchange.
  • the CSE In processor 50 performs the function of capturing the information that the Cincinnati Stock
  • a similar arrangement to that described above with reference to the Cincinnati Stock Exchange 12 allows the control engine 2 to communicate with the NYSE DOT System 8.
  • a DOT Out processor 52 places orders via a multiplexor 44 on the NYSE DOT System 8 and receives confirmation that communications have correctly taken place between the NYSE DOT System 8 and the DOT Out processor 52.
  • the NYSE DOT System 8 sends execution information via the multiplexor 44 to a DOT In processor 54, which is also coupled to the local area network 30.
  • the DOT In processor 54 captures the print information sent by the NYSE DOT System 8, reformats this information and places it in the database 6.
  • the print capture process that is performed by the DOT In processor 54 (as well as the CSE In processor 50) is discussed in more detail with reference to Fig. 17 below.
  • a series of computers are networked to provide the functionality performed by the control engine 2.
  • the control engine 2 is designed to be open ended, so that more exchanges can be easily added.
  • a communication process executed by the database server 38 coordinates communications between the control engine 2 and the user workstations 4.
  • a Computer-To-Computer Interface process (the CTCI routine) directly handles communications to the stock exchanges and automated trading systems. There is one CTCI routine for each stock exchange or automated trading system.
  • routines collects information returned from certain exchanges and from certain automated trading systems.
  • an execution process (the execution routine), carried out by the execution processor 34, processes the execution information collected by the print capture process for transmission to the appropriate workstation that transmitted the related order to the control engine 2.
  • the control engine 2 of the present invention has a database 6 that is organized into tables of
  • Each user workstation 4 is able to access (directly or indirectly) the tables of information in the database 4.
  • Each entry in the database 4 accordingly identifies the user or users who can access that entry.
  • Appendix A describes each table in the database
  • Each table is described using well known notation.
  • Each table in the database 6 has a table name.
  • Each column in the table is identified with a column name and data type.
  • the tables are SQL (Structured Query Language) tables.
  • the column or columns that comprise a key are marked with a key indicator, for example, "AKO" next to a column name identifies that the column is a key or part of a key.
  • An Account_Trans table stores account numbers, as assigned by a designed clearing entity, for transactions. The table is cleared when read. Thus, the Account_Trans table in effect stores account numbers for accounts that have been updated since the last read.
  • a Code table stores control information, including, for example, the next available tag number.
  • a Comm_reprt table stores information relevant to commission charged by the designated clearing entity, discussed below with respect to the Trade Blotter function.
  • a Custinfo table holds information on account break-downs of trades.
  • a CustMast table holds master information relevant to each customer account.
  • An Execution table stores static information about each trade.
  • a NWBBal table stores downloaded account balances from a nominated broker, and is used by a Broker application, discussed below.
  • a NWBPos table stores downloaded position information from the nominated broker, and is used by the Broker
  • a NWBTrans table stores downloaded transaction information from the nominated broker, and is used by the Broker application, discussed below.
  • a Prices table holds prices for a stock, stored by ticker symbol.
  • a Rlzd_Report table stores realized information for an account. (Realized information is the profit or loss actually realized.)
  • a Securities table stores ticker symbols for each stock.
  • a SISCompare table holds comparisons between the user's trading position and the nominated broker's position.
  • An SSplit table stores stock split information.
  • a Symbols_Changed table stores ticker symbols that have changed.
  • a Trade table discussed below, holds static and dynamic information about each order and it is cleared at the end of each day, or other regular period.
  • a Trade_Audit table holds copies of images of the Trade table to record the
  • a Trade_Blotter table holds Blotter information.
  • a Transactions table stores the transaction information when it is cleared from the Trade table.
  • An Unrlzd_Bal table stores money balances for each account downloaded from the designated broker.
  • An Unrlzd_Report table holds unrealized
  • a series of tables exists for each CTCI interface to an exchange or automated trading system.
  • CSE relate to information sent to or received from the Cincinnati Stock Exchange 12.
  • VINET relate to information sent to or received from Instinet 10.
  • SIS relate to
  • a QCSE table holds a queue of orders, modifications and cancels for the Cincinnati Stock Exchange.
  • a CSE_CX table holds CSE CTCI reference numbers to cross reference the tag number and can be used, for example, to correlate order information with execution information.
  • a CSE_Prn table is the CSE CTCI print capture table that receives, for example, execution reports from the CSE.
  • Tag is the internal control number to identify the trade.
  • Tag_Seq is always zero in the trade table.
  • Timestamp is the internal Date and Time of last modification.
  • Mod_Stamp is an identifier for the user workstation 4 (and the user) that last modified this trade.
  • Inst_Type valid entries are ST, BN, OP and OT (Stock, Bond, Option and Other).
  • Side valid entries are BY, SL, CS and SS (Buy, Sell, Cover Short and Sell Short).
  • Qty is the quantity of a trade, e.g. a volume of shares. Price can have a whole portion and a fraction. (The fraction can be a decimal number up to five positions).
  • Gun is an
  • Mkt_Ind if set to True indicates a Market order. (If MKT_IND is True, the Price field must be nil.)
  • Solicited_Ind if set to True indicates the order was solicited.
  • Exchange is an internal code representing where this order (or part of an order) was sent.
  • Org_Date_Time is the internal Date and Time this order was originally sent to the exchange.
  • Status records execution information, i.e., the status of an order, such as, for example, HLD, NEW, ACT, EXC, SUS, CAN, CFO (i.e., Held, New Order not yet confirmed by the floor, Active Order, Suspended, Canceled, Canceled Former Order).
  • Op_Open_Ind if True indicates Open, False indicates Close.
  • Op_Put_Ind if True indicates Put, False indicates Call.
  • Con_Code indicates the specific conditions: DAY, GTC, FOK, IMM, OO, NH, MOC, LOC, GU. (Day, Good till Canceled, Fill or Kill, Immediate,
  • Peg_To indicates the type of pegging:. MKT, LST, PRI, BST, MID, OPN. (to: Market, Last Price, Primary Market, Best, Middle,
  • Peg_Limit is an optional Limit Field
  • Peg_Price has a Whole portion and a Fraction.
  • Cus_Tag_Seq is always zero in the costomer Tag table.
  • Cus_Acct is an account number, normally 8 characters long.
  • Cus_Acct_Seq is a sequence number, beginning at 1, that allows multiple occurrences of the same CUS_ACCT number on the same TAG and TAG_SEQ.
  • Cus_T valid entries are 0, 1, 2 and 3.
  • An entry of 0 represents a firm trade.
  • An entry of 1 represents a cash trade.
  • An entry of 2 represents a margin trade.
  • An entry of 3 represents a short trade.
  • An entry of 3 is forced when the Side is CS or SS.
  • Cus_Avg_Elig_Ind if True indicates this row is eligible for price averaging.
  • Cus_Code is a "Short Name" for the customer.
  • the LAN 30 of the control engine 2 utilizes Microsoft LAN Manager 2.2, and the NetBEUI Protocol as the default communications protocol. As an alternative communications protocol, the LAN 30 also utilizes the TCP/IP protocol, including Microsoft's Extensions to TCP/IP package and a SOCKETS interface.
  • the database server 38 utilizes the Windows NT operating system, including Microsoft's SQL Server 4.2 and utilizes an Eagle NE3200 network card.
  • the LAN bridge 32 may be a Develcon Local
  • Ethernet Bridge which has protocol transparent operation in networks supporting protocols including OSI, XNS, TCP/IP, DeCnet and NetWare.
  • CTCI Computer-To-Computer interface
  • the system of the present invention utilizes object oriented programming techniques.
  • FIG. 4 there is illustrated in block diagram form the processes that are carried out at the user workstation 4. These processes will be
  • the processes performed at the user workstation 4 include an order management process 100, a book view process 200, a fast order entry process 300, a list process 400, a DDE
  • a DDE compatible spreadsheet process 600 optionally, a DDE compatible spreadsheet process 600.
  • the user workstation 4 utilizes Microsoft's DOS Operating System, version 5.0 or greater (MS-DOS). Where user workstations 4 are coupled together over a LAN 20, they may utilize Microsoft's Windows NT operating system or the Microsoft Windows For Workgroups operating system. In coupling the user workstations 4 to the control engine 2, the representative embodiment of the present invention may utilize Microsoft's LAN Manager Remote Access Server 1.1 (Dial-In Connectivity Software). It is noted that other operating systems, such as OS/2 and the Unix Operating System may also be used. In the representative
  • the Microsoft Windows NT operating system is used; thus the screen displays and the windows are in the Microsoft Windows NT format and are created using the Microsoft Windows NT toolkit, commercially available from Microsoft Corporation. Accordingly, the user will typically enter and manipulate information in the window displayed on the user workstation 4, using a keyboard and a mouse.
  • other data entry devices may be used, for example, a touch screen, a voice recognition input device, or a trackball.
  • Fig. 5 there is illustrated a toolbar that is displayed on the screen of the user workstation 4 by the order management process 100.
  • the toolbar illustrated in Fig. 5 is an order management toolbar 130.
  • the order management tool bar 130 is part of the graphical user interface that allows the investor at the user workstation 4 to interact with the order
  • buttons and boxes On the toolbar are a number of buttons and boxes.
  • a button when selected by the user, causes an action to happen.
  • a button can be selected for example, by placing the cursor on the button and clicking the mouse.
  • a box allows the user to enter information. Information can be entered by placing the cursor in the box and typing the information from the keyboard.
  • Information can also be placed in the box by placing the cursor on a down arrow next to the box which will cause the display of various options that may be entered into the box. The user can then select one of those options.
  • representative embodiment comprises a number of buttons, including a Write New Order Button 132, a File Changes Button 134, a File Changes & Hide Button 136, a Close Current Order Button 138, an Undo Button 140, and an Enter Executed Order button 147.
  • the Write New Order Button 132 allows the user to call up a window so that a new order can be entered.
  • an order entry window 160 (as shown in FiG. 6 below) is displayed on the screen along with the order management toolbar 130.
  • the File Changes Button 134 allows a user to change details concerning the current order.
  • the current order is the order that is displayed on the screen in the highlighted order entry window 160.
  • the File Changes & Hide Button 136 allows the user to apply enter changes to the current order and then, after the changes have been made to the current order, hide the current order.
  • the Closed Current Order Button 138 allows the user to close the current order window. For example, by clicking on the Closed Current Order Button 138, the order entry window 160 of Fig. 6 will be removed from the screen.
  • the Undo Button 140 allows the user to undo changes made to the current order.
  • the Enter Executed Order Button 147 enables the user to enter both order and execution information for orders that were placed for execution by a system or method other than the control engine 2 and have been executed. By clicking on the Enter Executed Order Button 147, a window is opened that allows the user to enter both order and execution information for an order. This feature allows the information concerning orders placed using other systems to be included in the database 6, for example, to take advantage of the back office features of the present invention, discussed below.
  • the order management toolbar 130 includes a customer account code box 154.
  • the customer account code box 154 allows the user to enter a customer account code.
  • the customer account code may include words, numbers or symbols.
  • the customer account code is "Pension Fund A,” which may be, for example, the name of an institution or a particular pension fund managed by an institution.
  • a CTCI routing box 156 (also called a computer to computer interface routing box) allows the user to select the routing destination for an order. When the user clicks on this box, there will be displayed a list of all available routing destinations. As shown in the CTCI routing box 156 in Fig. 5, the selected routing is "CSE" (which stands for the Cincinnati Stock Exchange).
  • the order management toolbar 130 also has a number of Quick Route Orders Buttons 150. Each Quick Route Orders Button 150 is predetermined and is dedicated to a
  • routing such as, for example, the Cincinnati Stock Exchange or Instinet. If the user selects a Quick Route Orders Button 150, that routing will automatically be displayed in the CTCI Routing Box 156.
  • the selected order will be sent for execution to the selected destination, via the control engine 2.
  • the user will then be prompted to confirm that this is the correct destination for the order. If it is, the order will then be sent for execution to that destination via the control engine 2.
  • the order management toolbar 130 also comprises a Manual Exchange Box 152. The user can select the
  • Manual Exchange Box 153 to enter details about a manual exchange.
  • a manual exchange is where the user has a trade executed manually, i.e, in the traditional fashion and not using the routing features of the control engine 2. To keep track of all orders that the user places, and particularly, to take advantage of the back office features of the present invention that are discussed below, the user can enter details about such orders. Details about a manual execution are stored in the database 4, but are not routed by the control engine 2 to an exchange or automated trading system. Details about a manual execution can be integrated into the back office features of the present invention and into the expert system 9 or an analytics program.
  • a Price Modification Box 158 contains the current price for the current order plus five fractions above and below the current price. The fractions are in the same unit as the order price.
  • the order management toolbar 130 further comprises a Contexts Sensitive Help Button 146 and an Exit Button 138. If the user selects the Exit Button 138, the user will terminate the order management process 100 and the user workstation 4 will cease display of the order management toolbar 130.
  • the order management toolbar 130 also comprises an Add Execution Button 142 and a Delete Execution Button 134.
  • the Add Execution Button allows a user to add execution information to the current order. If the user selects the Add Execution Button 142, the user will be able to add information to and modify the information in an execution section 190 (discussed below) of the order entry window 160 for the current order. If the user selects the Delete Execution Button 144, the current order (as displayed in the execution section 190) will be deleted.
  • Fig. 6 there is illustrated a typical window used to enter orders that is displayed on the screen of the user workstation 4 by the order
  • the window is an order entry window 160 used by an investor to enter, for example, a buy order for a stock, bond or option or a sell order for a stock, bond or option.
  • the order entry window 160 allows the user to enter and modify information for an order. For example, if the user wishes to create a new order, the user will select the Write New Order Button 132 from the order management toolbar 130 and the order entry window 160 will then be displayed at the user workstation 4 to allow the user to enter the new order.
  • Each order entry window 160 represents one order and contains information about that order. In the representative embodiment, the background color of the order entry window for a buy order will be green, while the background color for a sell order is red. This allows the user to quickly identify the type of order displayed on the screen of the user workstation 4.
  • the order management process 100 allows a user to open multiple order entry windows 160. The order entry window 160 for the current order is highlighted.
  • the order entry window 160 allows the user to edit or write an order.
  • the order entry window 160 comprises several boxes.
  • a type box 162 allows the user to enter the type of order. Typical types include
  • the type box 162 shows the letters “ST” representing "stock”.
  • a side box 164 allows the user to enter the side for the order. Typical sides are “buy, “ “cover short,” “sell” and “sell short.”
  • a quantity box 166 allows the user to enter the total order quantity.
  • a symbol box 168 allows the user to enter the security symbol or other identifying code for the stock, bond, option, etc. that the user wishes to trade. For example, as shown in Fig. 6, the symbol entered in the symbol box 168 is "IBM," representing shares in IBM Corporation.
  • the order entry window 160 allows the user to enter the price as either a decimal or a whole number with a fraction. Additionally, the order entry window 160 allows the user to enter "Mkt" (or just "M") in the price box 170 to price an order at market.
  • a peg box 174 allows the user to select the type of pegging. Typical types of pegging include pegging to market, to last price, to primary market, to best, to middle and to opening. Further, the user can peg a price of an order, but if an external event occurs, then have the system of the present invention change the price of the order. If the exchange does not permit a particular type of peg, the control engine 2 of the present invention, where possible, modifies the order to one accepted by the exchange without loosing the
  • Instinet allows a peg to a mid price, but CSE does not. If the user wishes to peg to mid price on CSE, the control engine 2 can receive as input the current bid and ask price on CSE, and submit an order which is in effect pegged to the mid price. If bid or ask price changes, the control engine then submits a price change
  • a solicit box 176 allows the user to identify whether the order was solicited or not.
  • An open box 178 and a put box 180 are relevant for option trades only. If the user selects the open box 178, this denotes, an opening option trade. If the open box 178 is unchecked, then it is a closing option trade. If the put box 180 is selected, then the trade is a put, otherwise it is a call.
  • a customer code box 180 allows the user the option of entering a customer code for the order.
  • the customer code entered in the customer code box 182 must match a valid customer code in the CustMast table.
  • An account box 184 allows the user to enter an account number.
  • a gun box 186 allows the user to enter a gun code to utilize the gun feature. The gun feature is discussed in more detail below with reference to Fig. 14.
  • a flip box 188 can be selected by the user to designate a flip. If the user selects the flip box, the trade is marked as a flip trade. As is known in the securities industry, a flip trade designates that the order is to be cleared by a broker other than the broker that executed the trade. In the representative
  • all orders will be automatically sent for clearing to a designated clearing entity.
  • the designated clearing entity will have a computer terminal that will be coupled to the control engine 2 of the present
  • the designated clearing entity usually receives a commission for clearing the execution.
  • the user may require that, for a particular trade, the clearing of the trade be completed by another broker.
  • a flip contract must be in existence between the two brokers (i.e., the broker that executes the trade and the broker to whom the clearing of the trade is to be
  • control engine 2 will generate, after the order has been executed, the appropriate flip documentation to be sent to the new clearing broker. Moreover, the control engine 2 will send a computer message to the previously designated clearing entity informing that broker that the trade has been flipped and not to clear that particular trade. Further details concerning the communication between the control engine 2 and the system designated clearing entity are discussed in more detail below.
  • certain accounts available to the user are designated as flip accounts. If the user selects as the account code a flip account code, then the order is automatically designated as a flip. A clearing entity is associated with each flip account code. Thus, the user can flip the execution of one trade to Broker A and another to Broker B by designating the appropriate flip account codes for each trade.
  • a commission box 189 displays the commission rate for the transaction. Typically, where the user is charged a commission for each trade executed. Usually, the commission charge is in cents per share.
  • commission box 189 is automatically obtained from the CustMast table. Where the user is a broker, the system of the present invention allows the broker to modify the commission rate by entering a new rate in the commission box 189.
  • the execution section 190 of the order entry window 160 is completed by the control engine 2 after the order displayed in the order entry window 160 has been executed.
  • the information placed in the execution section 190 includes the date and time of the execution, the executed quantity, the executed price, the MMID
  • Fig. 7 there is illustrated a detailed order entry window 160a.
  • the detail order entry window 160a is divided into five sections, namely, an order window 161 (as described above in relation to the order entry window 160), the execution section 190, an order options window 191, a customer discretion box 198 and a broker discretion box 199.
  • the detailed order entry window 160a is merely a different display arrangement for the order entry window 160 - the order entry window 160 simply "hides" sections of the detailed order entry window 160a.
  • the detailed order entry window 160a is displayed when the user selects a maximize option from a pull-down menu on the order management toolbar 130.
  • the order options window 191 comprises three boxes, namely a condition box 192, a type box 194 and a "good until" box 196.
  • the condition box 192 allows the user to enter conditions for the order. Typical
  • the "good until” box 196 allows the user to enter a date, time or number of minutes for which the order remains good.
  • the type box 194 allows the user to specify the type of "good until” condition, i.e., whether the order is good until a time or good until a date. If the user selects "date” and enters a date in the "good until” box 196, the order will expire on that date. If a user selects "time,” and enters a time in the "good until” box 196, the order will expire at that time on the same day. If the user selects "number of
  • the order will expire after that number of minutes. For example, if the user selects "57,” the order will expire 57 minutes from the current time.
  • the customer discretion box 198 is a notepad for recording customer notes.
  • the broker discretion box 199 is notepad for recording broker notes.
  • the user may send the order for execution to the stock exchange or automated trading system designated in the CTCI routing box 156 of the order management toolbar 130, or alternatively, the user may decide to "save" the order so that it can be sent for execution at a later time, for example, by "loading" the order into a gun, as discussed below.
  • the details about each order entered by the user and the status of each order is then displayed in a book-view window 250, discussed in detail below with reference to Fig. 10.
  • Fig. 8 there is illustrated in block diagram form the functions performed by the order management process 100 of Fig. 4.
  • the order management process 100 is executed on the user workstation 4 and allows the user to enter, modify or cancel orders by way of the order entry window 160, the detailed order entry window 160a and the order management toolbar 130 described above.
  • a log-on function 102 obtains from the user a user identification code and a password.
  • the log-on function 102 displays on the screen of the user
  • the log-on function 102 determines a user group for the user.
  • the user group is a parameter used by the control engine 2 to determine what information in the database 6 the user can have access to and which orders in the system the user may see and act on.
  • a help icon function 103 turns on the context sensitive help and controls the display of help
  • the help icon function 103 will be activated when the user selects the context sensitive help button 146.
  • An exit icon function 104 terminates the order management process 100.
  • the exit icon function 104 is executed when the user selects the exit button 148.
  • a windows menus function 105 controls the operation of the pull-down menus on the order management toolbar 130.
  • the order management toolbar in the representative embodiment allows the user to select five pull-down menus, namely, a file menu (to allow the user to exit), a window menu (to control the display of the order entry window 160), an actions menu, a history menu and a help menu.
  • the actions menu has commands, (that can be used as alternatives to the buttons described above) such as to save, close, undo orders.
  • the actions menu also includes a shares command that, when selected by the user, displays a quick quantity change window (not shown) to allow the user to quickly change the quantity of an order using a mouse device.
  • the actions menu further includes an allocate trades command that opens a window to allow mass allocation of account numbers to trades without having to know the tag number for the order.
  • the history menu when selected, opens a window showing the orders that were entered or modified during the current session.
  • a DDE function 106 coordinates the flow of information between the order management process 100 and the other processes shown on Fig. 4.
  • the DDE function accepts DDE messages from the book-view process 200 to open an order entry window 160 or 160a for modification of an order.
  • the DDE function also accepts messages to release an order, to cancel an order and to suspend an order.
  • the cancel, suspend, and release messages that are received by the DDE function 106 cause the order management process 100 to format appropriate queue rows, as discussed in detail below.
  • a new order function 107 opens a new order entry window 160 or 160a and allows the user to enter routing information on the order management toolbar 130.
  • a save order function 108 stores changes to an existing order in the database 6 and then formats a queue row for updating. The save order function 108 is executed when the user selects the File Changes Button 134 on the order management toolbar 130.
  • a hide order function 109 performs the same function as the save order function 108, but in addition, a DDE message is sent to the book-view process 200 instructing it not to display that order.
  • the hide order function 109 is activated when the user selects the File Changes & Hide Button 136 from the order management toolbar 130.
  • a "don't save” function 110 closes the current order entry window 160 or 160a but does not modify any tables of the database 6.
  • the "don't save” function 110 is activated when the user selects the Close Current Order Button 138 from the order management toolbar 130.
  • An undo function 111 discards any changes made to the current order window 160 or 160a and resets the order entry window 160 or 160a.
  • the undo function 111 is activated when the user selects the Undo Button 140 from the order management toolbar 130.
  • a Post-Execution order entry function 112 will cause the order entry window 160 to be displayed and will allow the user to enter information about a trader. This feature is available, for example, to allow the user to enter information about a manual execution done away from the system.
  • An add execution function 113 allows a user to manually enter execution information in the execution section 190 of the order entry window 160, for example, for a manual exchange.
  • a delete execution function 114 deletes selected order execution information. For example, if an exchange sends an execution report by mistake, and then telephones the user to inform the user of this mistake (i.e., a "busted trade"), the user can delete execution details from the execution section 190.
  • a quick destination function 115 will route the order entered on the order entry window 160 to an
  • the designation function 115 will write appropriate queue rows for the order, as discussed in detail below.
  • the exchange list function 116 formats and writes appropriate queue rows in relation to the exchange or automated trading systems selected by the user using the CTCI routing box 156 of the order management toolbar 130.
  • the exchange list function 116 also has the
  • the exchange list function 116 and the quick designation function are executed when the user enters or selects the appropriate information at the order
  • a manual routing function 117 will accept a destination not recognized by the exchange list function.
  • a prices list function 116 when executed, will show prices surrounding the offering price for the security selected by the user and entered in the symbol box 168.
  • the offering price will be displayed in the price box 170.
  • the prices list function 119 will also display the prices surrounding the offering price in the price box 170 for easy mouse or keyboard selection by the user.
  • the prices list function is execution whenever an order is modified, for example, when the File Changes Button 134 is selected.
  • An accounts list function 119 will cause the display of a list of valid accounts.
  • the accounts list function 119 also allows the user to select an account and then assign that account to an order in the order entry window 160.
  • the accounts list function 119 is executed whenever the user selects the customer account code box 154.
  • the DDE Manager process 500 coordinates
  • the DDE Manager process 500 can accept orders from application programs and supply information to applications programs that are DDE compatible. Accordingly, many different modules can be incorporated into the present invention.
  • the present invention can include an expert system 9 coupled to the user workstation 4.
  • the expert system 9, interfacing with the DDE Manager process 500, can input orders, and receive execution information.
  • the expert system 9 operates on a dedicated computer processor, but alternatively, can be executed and operated by the user workstation 4.
  • the expert system 9 is a portfolio expert system.
  • the portfolio expert system (PES) of the present invention first examines a nominal portfolio of stocks. The PES assembles a basket of stocks from this portfolio as follows. The PES determines the relative value of each stock in the portfolio, relative to the other stocks in the portfolio, and ranks the stocks in order of their relative value. The PES then constructs the basket by selecting a
  • the PES then sends instructions via DDE comprising buy orders for the bottom ten stocks and sell short orders of the top ten stocks.
  • the quantity of each stock traded in the transaction is determined by its position in the relative order.
  • PES continuously examines market information and re-ranks the stocks. If a stock changes its relative ranking, the PES can issue the appropriate command, via DDE, to "re-balance" the basket. The PES receives real-time
  • the PES feature of the present invention allows an investor to micro-manage a basket of stocks and to execute trades swiftly if market conditions change.
  • the user workstation 4 of the present invention can be coupled to numerous and different expert systems.
  • the spreadsheet process 600 is simply a DDE compatible spreadsheet, such as, for example, Microsoft's Excel spreadsheet. Using this feature, the user can input information via a spreadsheet and "export"
  • the information can be input and exported in real-time.
  • the FOE Window 350 is an add-on graphical user interface that complements the Order Entry Window 160 of Fig. 6.
  • the FOE Window 350 is controlled by and interfaces with an add-on FOE function of the Order Management Process 100.
  • the FOE function is executed by the processor of the user
  • the FOE Window 350 can be displayed on the screen of the user workstation 4 and information can be entered, as described above, using a mouse device.
  • the FOE Window can be displayed on a touch screen coupled to the user workstation 4 and information can be entered by the user using the touch screen.
  • the FOE Window 350 can also be run on another PC coupled to the workstation 4.
  • the FOE Window 350 is designed for investors who need to immediately respond to trading opportunities. Using the FOE Window 350, a trade can be entered in seconds with as little as only four commands.
  • the FOE Window 350 comprises an order type command line 362 that has four buttons, one button for each order type, namely, buy, sell, cover short and sell short.
  • the FOE Window 350 also comprises a symbol section 364.
  • the symbol section 364 comprises a number of preset ticker buttons, such as those labeled AMD, IBM and GLX. Each preset ticker button represents a security that can be traded.
  • the buttons in the symbol section 364 are preset by the user at an earlier time so that they represent securities that the user is actively interested in. Other preset symbols can be hidden, and displayed only when the user selects the down arrow button 365.
  • Each preselected routing button represents one source of liquidity where the security may be traded, such as, for example, a specific stock exchange or a booth
  • ticker symbol representing a stock.
  • the user can allocate an initial share size and price to each ticker symbol.
  • Each ticker symbol will be displayed on the FOE Window 350 in the symbol section 364.
  • the user begins by selecting either a buy, cover short, sell or sell short by activating the appropriate button in the order type command line 362. (On a touch screen, the user simply touches the appropriate button. With a mouse, the user points at the appropriate button and clicks.)
  • a menu bar 352 on the FOE Window 350 displays the selection (at 353) and the ticker symbols in the symbol section 364 are highlighted. The user then selects the appropriate ticker button (for example, the button labeled "IBM").
  • the FOE Window 350 displays the preselected share amount and preselected price 357 (for example, 2,000 IBM shares at 50).
  • the price displayed on the menu bar 352 is a function of current market information (such as, for example, the bid price for a sell order or the offer price for a buy order) obtained from the on-line source of price and/or market
  • the user may select a price arrow 358 on the menu bar 352 to move the price up or down, or the user may select one of a number of preselected pricing alternatives from a group of preselected pricing alternative buttons 362 (i.e., market-on-close, market, last, etc.).
  • a number of preselected pricing alternatives from a group of preselected pricing alternative buttons 362 (i.e., market-on-close, market, last, etc.).
  • the user may select an amount arrow 354 or 356 to change the order in lots of 100 (i.e. arrow 354) or in lots of 1,000 (i.e., arrow 356).
  • the trader selects one of the preselected routing buttons 368.
  • the route selected is displayed on an enter order button 370 on the FOE Window 350.
  • the user may then either clear the order (i.e, do nothing) by selecting a clear order button 372 or send the order for immediate execution by selecting the enter order button 370.
  • an order can be entered and sent for execution with only four commands; namely, (i) selecting an order type from the order type command line 362, (ii) selecting a ticker symbol from the symbol section 364, (iii) selecting a routing for the order from one of the preselected routing buttons 368, and (iv) entering the order by selecting the enter order button 370.
  • the user can modify the preselected amount and price of the order.
  • the user can select a quick entry button 366 on the FOE Window 350.
  • the quick entry button 366 is selected, the user is prompted to enter, using a keyboard, the share amount, ticker symbol and price. This information, when entered, is displayed on the menu bar 352. The user then selects the routing for the order from one of the preselected routing buttons 368, and enters the order by selecting the enter order button 370.
  • the system of the present invention allows the user to monitor the status of each order in real-time.
  • the book-view process 200 operates on the user workstation 4 and interacts with the database 6 of the control engine 2.
  • a Book-View ("BV") window 250 is controlled by and interfaces with the book-view process 200 of the Order Management Process 100.
  • the BV window 250 shows status and execution information, updated in real-time, about each order entered using the order entry mechanisms of the present invention.
  • the BV window 250 comprises three parts, namely, a status window 210, an execution window 260 and a BV toolbar 280.
  • the status window 210 displays the status of all orders entered via the user workstation 4. As stated above, those orders may have been entered, for example, using the order entry window 160, the detailed order entry window 160a, the FOE Window 350 or using the DDE manager process 500. (As discussed below, orders may also be entered automatically using an order alert system or a gun. These orders and their status are also displayed in the status window 210.) Where many user workstations are coupled over a LAN 20, as shown in Fig. 2 (e.g. workstations 4D-4F), one workstation may be dedicated to performing book-view functions.
  • that dedicated workstation may display the status of all orders entered by all users at the
  • each user workstation 4 on the LAN 20 may have the capability of viewing, using its BV window 250, all orders entered on all user workstations 4 on the LAN 20.
  • the status window 210 displays the status of each order.
  • the status window 210 is divided into a number of sections.
  • the sections of the status window 210 are displayed in a column format.
  • the different sections of the status window 210 are as follows: a side column 212, a quantity column 214, a symbol column 216, a price column 218, an execution quantity column 220, a leaves column 222, a tag column 224, an exchange column 226, a status column 228 and a customer column 230.
  • each order is displayed in one row of the status window 210.
  • the side column 212 lists whether the order is a buy order, a sell order, a cover short order or a sell short order. Buy and cover short orders are displayed in green and sell and sell short orders are displayed in red.
  • the quantity column 214 lists the total quantity of the order, for example, 95,000 shares.
  • the symbol column 216 lists the ticker symbol or other identifying code for the order.
  • the price column 218 lists the price the user set for the order.
  • the execution quantity column 220 lists the total quantity of the order that has been executed so far.
  • the leaves column 222 shows how much of the order is yet to be executed. For example, if the order is to buy 95,000 IBM shares, and so far 50,000 IBM shares have been purchased (i.e, the order has been partially
  • the execution quantity column will show 50,000 and the leaves column will show 45,000. (Thus, the leaves quantity is the order quantity minus the execution quantity.) These columns are updated in real-time as information about the order becomes available, as
  • the tag column 224 displays a tag number which is an internal reference number to uniquely identify the order.
  • the exchange column 226 lists the exchange or system to which the order has been routed.
  • the status column 228 lists the status of the order. The following is a list of the possible status for an order: held order (the order has been held by the user, i.e., information about the order has been entered in the system of the present invention but the order has not yet been sent for execution); new order (the order has been sent for execution but it has not yet been confirmed as received by, e.g., the exchange); active order (the order has been sent for execution and is active); suspended order (the order has been sent for execution but has been suspended by the user of the system of the present invention); canceled (the order was sent for execution but has been canceled); and executed (the order has been completely executed - such an order is now called an executed trade).
  • Suspending an order is not an action typically allowed by an exchange.
  • the system of the present invention will in fact send a message to the relevant exchange canceling the order, but will keep the information about the order in the system (for example, in the database 6) so that the user may release the order (or modify the order) at a later time.
  • the user cancels a suspended order nothing is sent via a CTCI to any exchange.
  • the status indicators in the status column 228 are displayed in different colors, e.g., active is blue, canceled is red, suspended is yellow, executed is green, to enable the user to easily determine the status of an order. Accordingly, the status column 228 provides real-time information to the user concerning the status of each order the user has entered into the system of the present invention.
  • the customer column 230 lists an alphanumeric code representing the account for the order.
  • a gun column (not shown) is to identify any order that is subject to a gun, as explained in detail below.
  • An CTCI message column (not shown) displays an image of the last CTCI message received from an
  • the display of the columns in the status window 210 can be modified by the user. For example, the user may hide columns from the status window 210.
  • the BV window 250 also comprises an execution window 260.
  • the execution window 260 lists each execution (or trade) that has taken place.
  • the execution window 260 is updated in real-time whenever the control engine 2 receives an execution report from an exchange or automated trading system. It is noted that if an order is execute in parts, as each part is executed information concerning the partial execution is displayed in the execution window 260. Accordingly, information about an executed trade may appear in the execution window 260 even though the status of the order in the status window 210 may be listed as active.
  • the arrangement of the display of the execution window 260 and the status window 210, and the number of rows and columns of each window, can be controlled by the user.
  • the execution window 260 is displayed on the user workstation 4 at the same time as the status window is displayed, as shown in Fig. 10.
  • the execution window 260 can also be displayed alone, with the status window hidden from view, as shown in Fig. 11.
  • the execution window 260 (as shown in Fig. 11) also comprises a number of columns.
  • a side column 262 lists whether the order is a buy order, a sell order, a cover short order or a sell short order. Buy and cover short orders are displayed in green and sell and sell short orders are displayed in red.
  • a quantity column 264 lists the executed quantity of the order.
  • a symbol column 266 lists the ticker symbol or other identifying code for the executed order.
  • a price column 268 lists the executed price of the order.
  • a tag column 270 lists the executed price of the order.
  • An exchange column 272 lists the exchange or other
  • a time column 274 lists the time of trade execution in the exchange's time zone.
  • a contra column 276 lists the MMID on the other side of the trade.
  • a flags column 278 lists the exchanges flags.
  • a reference column 279 lists the exchange trade reference number.
  • the BV toolbar 280 is shown in further detail in Fig. 12.
  • the BV toolbar 280 comprises several buttons, a CTCI status indicator 294 and an information box 292.
  • the BV toolbar is continuously displayed at the top of the BV window 250..
  • buttons on the BV toolbar 280 include a tools button 282, a context sensitive help button 284, a cancel button 286, a suspend button 288, a release button 290, a modify button 283, a hide button 285, a show/hide hidden orders & trades button 287 and a scroll locked button 289.
  • the tools button 282 when selected by the user, causes a utility window (not shown) to be displayed on the user workstation 4.
  • the utility window allows the user to customize the BV window 250.
  • the user can select orders for guns, and also select (using various parameters, for example , all orders involving IBM stocks) orders to be displayed on the BV window 250.
  • the user if connected to a LAN 20, can also view orders of other users in the user group.
  • the cancel button 286 allows a user to cancel an order.
  • an order is canceled by dragging the order from the status window 210 and "dropping" it on the cancel button 286.
  • an order can be selected to be canceled by clicking on the order.
  • the order will be displayed with a rectangle around it and the tag number of the selected order is displayed in a selected order tag field 296 of the BV toolbar 280.
  • the user cancels this order by then selecting the cancel button 286.
  • An order that has been canceled or executed cannot be canceled. (If the user cancels less than 100% of the non-executed quantity of a new order not yet confirmed, an active order or a suspended order, only the quantity of the order will be reduced.)
  • the suspend button 288 allows a user to suspend an order. In the representative
  • an order is suspended by dragging the order from the status window 210 and "dropping" it on the suspend button 288.
  • An order that has been canceled, suspended or executed cannot be suspended. (If the user suspends less than 100% of the non-executed quantity of an order, its quantity will be reduced. If the user suspends less than 100% of the quantity of an order, a held order is created that contains the balance of that quantity.)
  • the release button 290 allows a user to release (i.e. send for execution) a suspended or held order. (If the user releases less than 100% of the quantity of an order with a held status, a new held order is created that contains the balance of the order
  • an order is released by dragging the order from the status window 210 and
  • the modify button 283 allows a user to modify an order.
  • an order is modified by dragging the order from the status window 210 and
  • the hide button 285 allows the user to hide from view a selected order or executed trade. Hiding an order or executed trade does not affect the status of the order.
  • the show/hide hidden orders & trades button 287 when selected, will show all hidden orders and executed trades. When selected for a second time, those orders and executed trades marked to be hidden will be hidden.
  • the scroll locked button 289 will lock the scrolling feature of the BV window 250.
  • scrolling feature is on (which is the default setting), all orders and executed trades are continuously updated and scroll through the window.
  • the scroll locked button is selected, the screen locks on the currently displayed orders and trades.
  • the information box 292 displays current information and is continuously updated.
  • the information box can be programmed to display the current time and the current Dow Jones Index.
  • the CTCI status indicator 294 in the representative embodiment displayed as traffic light icon, gives a visual indication (a green light) that all CTCI interfaces between the control engine 2 and the various exchanges and automated trading systems (e.g., 8 to 12) are up and working. If all CTCI interfaces are not working (i.e, at least one CTCI is down), a red light will be displayed. A sound can be produced, for example, a beep every ten seconds, if a CTCI interface goes down until the user acknowledges that fact.
  • the ⁇ elected order tag field 296 lists the tag number of any order that has been selected for further action, e.g., an order to be canceled or modified.
  • the BV Window also has a number of pull-down menus 299, including those that provide file functions (e.g., printer set-up, alternative access to the
  • actions functions e.g., cancel order, suspend order, release order, modify order, hide
  • execution window 260 average pricing command, preopening command
  • CTCI functions to display the status of all CTCI's coupled to the control engine 2
  • print functions to print interim and end of day reports
  • help functions The user can select sort commands in the "sort" pull-down menu to sort the entries (i.e., the orders and executed trades) that are to be displayed in the BV window 250. For example, the user may sort the executed trades and unexecuted orders by ticker symbol or by quantity.
  • a sort window (not shown) allows the user to create and catalog customized sort orders - these customized sort orders are thereafter displayed in the "sort" pull-down menu for selection.
  • An average pricing command in the "action" pull-down menu opens an average price window (not shown) where the user can group trades for average pricing. For any order, there can be multiple executions on the order. For example, if the user sends a sell order for 5,000 shares, those shares actually may be sold in five
  • a process can automatically group all the related trades at the end of the day and
  • the preopening command of the "action" pull-down menu displays the current pre-opening indications.
  • Fig. 13 there is illustrated in block diagram form the functions performed by the book-view process 200.
  • a log-on function 2002 displays a log-on window (not shown) to allow the user to log-on and enter a password.
  • the log-on function 2002 determines the user group for the user and determines what information the user may have access to in the database 6.
  • a delete icon function 2006 is executed when the user selects the cancel button 286.
  • the delete icon function 2006 sends a command to the DDE function 106 of the order management process 100 to cancel the selected order.
  • the command is sent via DDE.
  • the delete icon function 2006 also updates the status window 210.
  • a suspend icon function 2007 is executed when the user selects the suspend button 288.
  • the suspend icon function 2007 sends a command to the DDE function 106 of the order management process 100 to suspend the selected order.
  • the command is sent via DDE.
  • the delete icon function 2006 also updates the status window 210.
  • a release icon function 2008 is executed when the user selects the release button 290.
  • the release icon function 2008 sends a command to the DDE function 106 of the order management process 100 to release the selected order.
  • the command is sent via DDE.
  • the release icon function 2008 also updates the status window 210.
  • a modify icon function 2009 is executed when the user selects the modify button 283.
  • the modify icon function 2009 sends a command to the DDE function 106 of the order management process 100 to open the order entry window 160 or 160a for the selected order.
  • the command is sent via DDE.
  • a hide icon function 2010 is executed when the user selects the hide button 285.
  • the hide icon function 2010 marks the selected order or executed trade that is to be hidden. (Each user workstation 4 keeps a list of those orders or trades that are to be hidden.) When the show/hide hidden orders & trades button 287 is set to hide, the marked hidden orders and trades are not
  • a show/hide icon function 2011 toggles the hide/show selection when the user selects the show/hide hidden orders & trades button 287.
  • a control icon function 2003 executed when the user selects the tools button 282, causes the utility window to be displayed.
  • a CTCI status function 2012 controls the display of the CTCI status indicator 294. This
  • the control engine 2 updates the code table whenever there is a change in the status of a CTCI.
  • a dow box function 2013 controls, the display in the information box 292.
  • the dow box function 2013 continuously receives and monitors information from the online source of price and/or market information 16 and updates the information box 292 accordingly.
  • a windows menus function 2014 controls the operation of the pull-down menus 299. This function controls the display of a number of additional window 2016-2018, discussed below. These windows can be selected for display by the user.
  • a trade window 2015 displays the current trade executions in the execution window 260 and the status window 210.
  • An order window 2016 displays the current order information in the status window 210.
  • a top-of-book window 2017 displays the best bid and best price on a specified exchange or electronic trading system.
  • a list window 450 is controlled by and interfaces with the list process 400.
  • the list process 400 is executed by the processor of the user workstation 4.
  • the list process 400 controls the user interface that processes and executes guns. Guns are predefined groups of orders that can be released
  • the list window $%) comprises an orders window 410.
  • the orders window 410 is similar in structure and contents to the status window 210 discussed above.
  • the list window comprises a percentage box 410 and a dollar box 420.
  • the percentage box 410 allows the user to nominate a percentage from one to 100. That percentage is applied to order volumes for the nominated action.
  • the dollar box 420 allows the user to enter a dollar limit for the nominated action. For example, if a
  • the user selects the tools button 440, causing a utility window (not shown) to be displayed.
  • a utility window (not shown) to be displayed.
  • the user can select those orders that are the subject of a particular gun. (The user can make an order the subject of a gun by entering a gun code in the gun box 186, for example, when entering or modifying the order.)
  • the user names the gun and may specify the criteria for the orders that are the subject of that gun.
  • buttons 470 to 474 on the list window's toolbar the user selects the action for each gun. If the user selects the release action, only held or suspended orders qualify for the gun. If the user selects the suspend action, only active orders qualify for the gun.
  • the release operation will be taken as an example.
  • the user selects the orders to be loaded into the gun. These orders are displayed in the orders window 460. Orders can be loaded into the gun using the utility window.
  • the user selects the release button 474 to fire the gun and to release the selected orders as a group.
  • Each gun may be fired manually or
  • the gun can be fired manually as
  • the condition on which the gun is to fire must be set by the user.
  • the condition may be that IBM shares drop below $50.
  • the list process 400 continuously monitors the online source of price and/or market
  • the gun When the select condition (s) is met, the gun is fired automatically without human intervention. For example, if the gun was loaded with sell orders for IBM shares, and set with a $50,000 dollar limit, enough orders would be executed so that $50,000 worth of IBM shares would be sent by the control engine 2 to the designated exchange (s) to be sold.
  • the gun's condition becomes true, the user is immediately notified (for example, by a visual indication or a sound), and given the option of firing the gun manually.
  • the information about each order is placed in the BV window 250 for display to and manipulation by the user.
  • the list process 500 of the present invention will, after
  • the investor could load a gun including over $50 million worth of sell orders for execution.
  • the investor can determine when the $50 million limit is reached, call up the gun (for example, by selecting the tools button 440) , and suspend or cancel the unexecuted orders.
  • the gun could be set to fire automatically to cancel the outstanding (i.e., unexecuted) sell orders when $50 million is raised.
  • the investor could load a number of guns with many sell orders for small amounts of stock, and set each gun to fire at successive times. Thus, the sell orders are paced, so that the market is not flooded with sell orders.
  • the guns could be set to fire at varying rates.
  • the guns could be set to examine the execution of these orders - if the orders are being executed quickly, the orders need not be sent out for execution so quickly; however, if the orders are taking time to execute so that the goal may not be reached on time, the sell orders may be sent for execution at an earlier time.
  • the OA Window 510 is an add-on graphical user interface that complements the BV window 250 of Fig. 10.
  • the OA Window 350 is controlled by and interfaces with an OA function.
  • the OA function is executed by the processor of the user workstation 4. Together, the OA Window 510 and the OA function comprise an OA system.
  • the OA system is designed for traders who need to monitor and trade large lists of securities based on specific market criteria.
  • the OA system enables a trader to monitor and execute hundreds of market and limit orders simultaneously.
  • the user enters a security into the OA system.
  • the security is displayed on the OA Window 510 in a ticker column 520. Continuously updated information is automatically
  • a bid column 522 displays the last bid for the selected security on a predetermined
  • An offer column 524 displays the last offer for the select security of a predetermined exchange.
  • a last column 526 and a volume column 530 displays last trade information concerning the selected security and a change column 528 shows the corresponding price change. This information is obtained by the OA system from the online source of price and/or market information 16.
  • the information can be obtained from the control engine 2 and may include execution information.
  • the current market value of the order is displayed in a market value column 544.
  • the user enters the price at which the user wishes to conduct the trade (which is displayed in a target column 536) and the number of shares the user wishes to trade (which is displayed in a shares column 534). The user also enters a number of conditions. The trade will only be sent for execution when these
  • the user may enter up to three conditions , but the system can be easily modified so that more conditions can be utilized.
  • the user when a user enters a security into the OA system, the user is prompted to enter one, and up to three, criteria which must be satisfied to effect an execution.
  • a user can enter an order to buy 10,000 shares of IBM, to be sent for execution only if the price is greater than 55 1/8, and if the bid size is greater than 3,000 shares and if the total volume traded is greater than 200,000 shares.
  • each condition is displayed in three condition satisfies columns 538 to 542. In the representative embodiment, if a condition is satisfied, a green "Y" is placed in the respective condition column. In the representative embodiment, if a condition is not satisfied, a red "N" is placed in the respective
  • condition column The current market value of the order is displayed in a market value column 544. When all conditions are satisfied, the order highlighted 545 is automatically sent out for execution via the control engine 2. The status of the order is also displayed on the BV window 250, as discussed above.
  • Orders that are entered at a user workstation 4 and sent for execution are processed by the control engine 2.
  • the control engine maintains at least one database 6 that stores information about all orders from all user workstations 4.
  • Each order can be routed by the control engine 2 to an exchange or automated trading system (e.g., 8-10) or to the booth workstation 14 of the present invention.
  • the control engine communicates with each exchange or automated trading system via a CTCI.
  • CTCI there is at least one CTCI at the control engine 2 for each exchange or automated trading system.
  • each message queue is stored in an internal memory array.
  • Each message queue will store each order or command that is to be sent to the exchange or
  • Each message queue is processed by a dedicated processor.
  • the message queue used to communicate with Instinet 10 is processed by the Instinet processor 46.
  • the message queue used to communicate with the DOT system 8 is processed by the DOT Out processor 52.
  • Each dedicated processor executes its own CTCI routine. Alternatively, each message queue can be stored in the database 6.
  • Fig. 16 there is illustrated in flow chart form the steps performed by a typical CTCI routine, for example, the CTCI routine that communicates with the DOT system 8.
  • the CTCI routine is run from a batch file from the
  • a DOS text file is maintained to log each message sent to and received from the exchange (step 502).
  • the CTCI routine connects to the exchange using the sign-on procedure specified by the exchange (step 503).
  • the CTCI routine can be terminated, for
  • the CTCI routine is terminated by pressing the ESC key on a keyboard associated with the dedicated processor.
  • An unacknowledged message queue is maintained by the dedicated processor (e.g. 46). All messages
  • the CTCI routine checks the oldest message in the unacknowledged message queue (step 505). If no response has been received to this message from the exchange within a predetermine time, the oldest message is deleted from the acknowledged message queue (step 506) and the database 6 is updated to show that no response was received from the exchange for this message (step 507). (Thus, the user will be notified, for example, that a particular order was not received by the exchange. This notification will be displayed on the BV window 250 at the user workstation 4.)
  • the CTCI routine will determine if the unacknowledged message queue is full (step 508). A finite number of messages are allowed to remain
  • CTCI routine will not send any further messages to the exchange and will only continue to look for acknowledgements from the exchange relating to messages in the queue.
  • New messages prior to being sent to the exchange, are stored on a new message queue of the database 6. (In the representative embodiment, messages are placed in the new message queue using an SQL command. A new message queue exists for each CTCI.)
  • CTCI routine will examine the appropriate new message queue to determine if there are any new messages to be sent to the exchange (step 509). If the
  • the CTCI routine will format the new message and transmit it to the exchange (step 510) . As stated above, the message will be formatted to comply with the exchanges CTCI rules. When the new message is sent, it is added to the unacknowledged message queue (step 511).
  • the CTCI routine determines if any new data has been received from the exchange (step 512). If no new data has been received, the CTCI routine continues from step 504. If new data has been received, the CTCI routine determines if it matches any message sent that is listed in the unacknowledged message queue (step 513) . If so, that message is removed from the unacknowledged message queue (step 514). The CTCI routine examines each message received from the exchange and updates the tables in the database 6 accordingly (step 515).
  • Steps 516 and 517 of Fig. 16 are applicable only to communications with Instinet.
  • Instinet provides for two-way communication between the Instinet processor 46 of the control engine 2 and the Instinet system 10, execution information is received and
  • the CTCI routine will determine if the message that is received is an execution report (step 516). (All messages received are stored as unprocessed messages in the database 6, and are marked as unprocessed. The execution information that is received is processed by the execution routine, discussed in detail below with reference to Fig. 18.) If the message received is an execution report, the CTCI routine sends an Iserv-J message to the CTCI new message queue for transmission to Instinet 10. The Iserv-J message is a message that must be sent to Instinet in response to a trade execution. (An Iserv-J message confirms that the control engine 2 received the execution report, and is required by
  • the print capture routine enables the control engine 2 to receive execution information from exchanges and electronic trading systems that only provide this information over a separate data line to a printer.
  • execution information is sent by DOT to a printer at the broker's backoffice.
  • the execution information is then printed, and manually entered into the broker's accounting system.
  • this type of reporting system does not
  • the print capture routine of the present invention "captures" the execution
  • the print capture routine is executed by a dedicated processor. For example, for the DOT system 8, the print capture routine is executed by the DOT In processor 54. For the CSE 12, the print capture routine is executed by the CSE In processor 60.
  • the print capture routine is run from a batch file from the
  • a DOS text file is maintained to log each message received from the exchange (step 604).
  • the print capture routine reads stored port configuration information, for example, from a DOS file (step 606).
  • the communication port of the dedicated processor is then initialized (step 608).
  • the print capture routine can be terminated, for example, by a systems administrator (steps 610 and 612).
  • the print capture routine is terminated by pressing the ESC key on a keyboard associated with the dedicated processor.
  • the print capture process determines if there is any inbound data on the communications line (step 614). If there is inbound data, the print capture process reads the inbound data from the communications line, formats it and updates the database 6 (step 616). The inbound data is stored as an unprocessed message in the database 6, marked as unprocessed.
  • Fig. 18 there is. illustrated in flow chart form the steps performed by the execution routine of the control engine 2.
  • the execution routine is executed by the execution processor 34.
  • the execution routine processes the messages and execution reports received from the various exchanges and automated trading systems.
  • the execution routine is run from a batch file from the Microsoft DOS operating system of the processor (step 702).
  • a DOS text file is maintained to log each message processed by the execution routine (step 704).
  • the execution routine can be terminated, for example, by a systems administrator (step 706).
  • the execution routine is terminated by pressing the ESC key on a keyboard
  • the execution routine determines if it is time to purge information in the database 6. If the preset purge time is reached, the execution routine will
  • the execution routine determines if there are any unprocessed messages that have been received from an exchange or automated trading system (step 712). As stated above, unprocessed messages received from the exchanges are stored in the database 6 and marked as unprocessed. An unprocessed message is selected from the database 6 for processing (step 714).
  • the execution routine determines the unprocessed message's message type (step 716). Possible message types include execution report, order
  • the execution routine in carrying out this step, examines the message to determine what exchange it was received from and thereafter parses the fields of the message according to the format
  • step 720 If the message type is an execution report (step 720), the order tables in the database 6 are updated as follows:
  • the execution routine changes the status of the order in the database 6 to "active".
  • the database is accordingly updated with the new status information for the selected order, the database is updated with the other execution information in the format required by the database 6 and the
  • step 720 If the message type is not an execution report (step 720), the order tables in the database 6 are updated as follows:
  • the execution routine changes the status of the order in the database 6 to "held".
  • the execution routine changes all order information to be the same as it was at the last known good status.
  • the CTCI message field indicates that the changes were not posted due to no response.
  • the execution routine changes the status of the order in the database 6 to "held".
  • the execution routine changes the status of the order in the database 6 to "active".
  • the execution routine changes the status of the order in the database 6 to "active". (Also, the order quantity is returned to "the preexecution" quantity, less any intervening trades.)
  • Information can be communicated between the control engine 2 and each user workstation 4 using the following techniques.
  • the information that is exchanged for example, order information or execution information, is stored in the database 6.
  • order information or execution information is stored in the database 6.
  • a queue row is a row in one of the database 6 tables, where the database acts as a queue.
  • the processor e.g. 46, 48 or 52
  • the processor at the control engine 2 that is to process that queue row (e.g., the order in the new message queue), examines the appropriate table in the database for unprocessed queue rows, and if finds one, retrieves that information from the database 6. (See step 509 of Fig. 16).
  • the user workstation 4 receives information from the control engine 2 by constantly examining certain tables in the database to see if information has been added to a table (for example, by the execution processor 34) that concerns a process or function operating on the user workstation 4. Unread information is marked in the database 6. Thus, when a process running on the user workstation 4 needs information, it examines the
  • control engine 2 can be designed to send information to a user workstation 4 when a user workstation 4 logs in and thereafter when new information concerning the processes or functions running on a workstation 4 is received by the control engine 2.
  • the booth workstation 14 in the representative embodiment is a processor coupled to a printer and also coupled to a screen that has a graphical user interface.
  • the processes performed at the booth workstation 14 include a log-on process, an exit process, a save changes process, an orders process and a printer process.
  • the printer process allows orders routed from the control engine 4 to be printed or displayed on a print window.
  • the user of the booth processor typically a floor trader, will receive orders to be executed from the printer or the print window.
  • the orders process shows the status of orders routed to this booth workstation 14.
  • the orders process displays the status of the orders on a screen display, called an Orders Window, similar in format and contents to the BV window 250 discussed at Figs. 10-12 above.
  • the user will simply click on the order as displayed in the Orders Window. The user will then, for example, fill in the execution price and execution quantity. The status of the order will, where
  • the modified information will then be queued by the control engine so that it can be sent to the correct user's user workstation 4 for display.
  • the system of the present invention allows easy manipulation of order and execution information.
  • the database 6 of the present invention stores information concerning orders and executions and thereby allows users, at a user workstation 4, to retrieve and sort this information, allocate executions to specific accounts, determine the average price for an order and perform other back office functions without having to reenter any information. Accordingly, the present invention
  • the Trade Blotter function allows entry of trade allocations for the current day's trades.
  • the Trade Blotter is activated by selecting a Trade Blotter Icon from the Window
  • a Log-on Window obtains the user-id and
  • the user group for the user is determined, thereby determining what view of the database 6 this user will have access to and which allocations (i.e., trades) the user may see or act on.
  • the Trade Blotter function selects and transfers all trades from the database 6, usually all trades that took place on that day, that were placed by the user.
  • the Trade Blotter function automatically enters the trades in a Blotter window. Those orders that were not entered in or processed by the present invention can be entered manually.
  • Allocations with the same side and symbol can be combined and price averaged to reduce exchange ticket charges.
  • the user can choose to average 2, 3 or 4 decimal places for each account within the "group" of accounts being averaged.
  • the last sale prices are retrieved. This is done by another application, namely, a Create Prices application.
  • a Post Blotter application creates transactions in a Transactions table of the database 6. It also updates the positions for each account and creates broker commission records. (For example, if traders using the system receive sales commissions, then the Post Blotter application can create the correct broker commission records by accessing the database 6, examining the day's trades for a particular broker, and calculating the required commission.)
  • the Trade Blotter can be printed.
  • the user can create an Upload File, which is a file created from the allocations, i.e., a file containing all executed trades that are to be cleared by the designated clearing entity.
  • the Upload File is uploaded to a designated clearing entity.
  • the file is built per the specifications provided by the designated clearing entity. Additionally, if the user selects an "Upload to Clearing" function, the designated clearing entity will be dialed via, for example, a modem, and the Upload File thereafter will be transmitted to the designated clearing entity.
  • Back office applications can be added to the system of the present invention.
  • Each back office application can be customized so that it can communicate with and supply information to the user' s existing accounting and computer systems.
  • the following is a list of back office applications that are incorporated as part of the system of the present invention. Each of these applications is stand-alone and has a separate Log-on Window.
  • Transaction Maintenance application This application is used to add initial positions and change any mistakes posted from the Trade Blotter for an
  • Groups Maintenance application This application is used to add and delete accounts from
  • Groups are mainly used when creating a report for a particular group of accounts.
  • Accounts Maintenance application This application is mainly used to add new accounts. It can also be used to change account information but is seldom used as such because a broker application, discussed below, applies account changes downloaded from a
  • This application is used to enter and change symbols, such as, for example, when a new stock is listed on an exchange, to add that stocks ticker symbol.
  • Prices Maintenance application This application is used to enter, change or add prices. It can also be used to inquire on price fluctuations for symbols. (These prices are stored in the database 6. They are uploaded to the database 6 by a batch process at the end of each day or at other regular intervals, accessing an online source of price information.)
  • Realized Report application This application generates a profit and loss (or "Realized") report for an account for a date range.
  • Unrealized Report application This application generates a report showing the positions for an account, listing, for example, the cost, market value, present profit or loss and percentage of assets for each position.
  • Purchase and Sale Report application This application generates a report showing all buys, cover shorts, sells and sell shorts for an account for a date range.
  • a typical date range may be for the current day only, thereby producing an end of day report.
  • Fig. 19 shows a typical end of day report.
  • Commission Report application This application generates a broker commission report from broker commission records created by the Trade Blotter function.
  • Broker application This application downloads daily transactions, balances, positions and account changes from the designated clearing entity and updates the appropriate files.
  • the designated clearing entity is coupled to the control engine 2 of the present invention and is supplied with information about the day's executed orders. The designated clearing entity then performs the regular clearing function for those trades.
  • the present invention includes a plurality of computer-to-computer interfaces, each to a source of liquidity; a sophisticated user interface; a number of "front-end” applications, such as the FOE system; and numerous "back-office” applications.

Abstract

A computerized order entry, routing and reporting system for receiving and routing an order is disclosed. The system is coupled to a number of electronic trading systems. A control engine is coupled to the electronic trading systems. A user workstation is coupled to the control engine. The user workstation includes a screen display. The user workstation receives an order and electronically transmits the order to the control engine. The user workstation can also display order information on the screen display. The control engine, upon receipt of the order from the user workstation, automatically and electronically routes the order to one of the electronic trading systems, and electronically receives the execution information concerning the order from that electronic trading systems. The control engine automatically correlates the execution information with the order information and electronically transmits the execution information to the user workstation. The user workstation displays the execution information correlated with the display order information.

Description

REAL-TIME AUTOMATED TRADING SYSTEM
Field of Invention
The present invention is directed to an automated trading system that operates in real-time, and more particularly, to an integrated trading and order management system for use by investors.
Copyright Notice
A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or patent disclosure as it appears in the Patent and Trademark Office, patent file or records, but otherwise reserves all copyright rights whatsoever.
Background of the Invention
Current methods for buying and selling
securities are inefficient and involve needless human intervention. Computer systems have been developed to assist brokers in trading securities and also to improve the efficiency of particular stock exchanges. However, even when using these computer systems to trade
securities, there is still a high degree of human
interaction.
The securities market has a complex structure.
There are numerous stock exchanges and electronic trading systems available to an investor and located in various places throughout the world. A corporation may have its shares listed on one or more exchanges. The price quoted by each exchange for a particular security may vary from exchange to exchange. Each exchange has its own trading rules. The way a trade is executed on each exchange may be different. The computer systems that have been developed to assist in the placing and execution of orders are usually limited to one exchange and differ between the exchanges. The systems for communication of execution information to the investors greatly vary. To add complication, there are many thousands of different securities traded each day.
An investor who wishes to trade securities on each exchange is thus confronted with numerous and diverse trading systems. Even if the investor limited trading to just one exchange, the investor will find that he or she has little direct control over the execution of the investor's orders, and is often not provided with execution information in real-time.
The following is an example of the typical steps that take place when an investor, such as an institutional investor, wishes to trade a security. A portfolio manager at the institution periodically
examines a quote device which is located on the portfolio manager's desk. Typically, the quote device lists the prices and quantities at which securities can be traded on a particular stock exchange. The portfolio manager most likely concentrates on the price of a small number of stocks. The portfolio manager, manually or with the aid of a computerized model, then makes a decision to buy or sell a particular stock based on the current price of that stock shown on the quote device. When the decision is made, the portfolio manager will most likely telephone a professional trader at the institution's trading desk with the order.
The professional trader, who usually is
employed by the institution, may be given little
information about why the decision to buy or sell the stock was made. The professional trader may not have dealt in that particular stock for quite some time, so must then determine which securities firm to contact to place the order. There are many securities firms, each often specializing in certain stocks. The professional trader will usually telephone a block trader (or
salesman) at a selected securities firm. The securities firm's trader (or salesman) takes the order and routes it to the correct department or desk of the securities firm. The trader (or salesman) may do this by physically taking a piece of paper with the order written on it to the correct department or desk, or telephone (or yell) the order to a person in the department or at the desk.
Another trader who deals in that stock then determines, based on factors such as the size of the order, how best to execute the order.
Usually, the trader will first determine the likelihood that the firm can itself find a counterpart to the order, for example, by telephoning some of the securities firm's other clients or by matching the order with other orders that the securities firm has on its books. If this cannot easily be done, the trader will then send the order to an exchange.
The trader has the choice of different exchanges and of different mechanisms to obtain execution of the order at an exchange. For example, the trader may have the choice of executing the order on the New York Stock Exchange (NYSE), the NYSE DOT system, the Pacific Stock Exchange or on Instinet. As an example, assume the trader decides to place the order on the New York Stock Exchange (NYSE) assuming, of course, that the stock is listed on that exchange. The trader could do this, for example, by telephoning the securities firm's floor broker, located in a booth on the floor of the exchange. Alternatively, the trader could send the order by computer or wire to the securities firm's booth on the floor of the exchange, where the order is then printed on a printer. A floor broker will then take the order to the appropriate specialist post to execute the trade. Each company's stock trades at only one post on the floor of the
exchange so that trading can be tracked and kept orderly. (At most posts, however, several companies' stock trade at one time, depending on how much combined trading activity they generate.) The specialist is a broker's broker. The specialist keeps a book of orders in a particular security. The floor broker will physically speak to the specialist to execute the trade. After every deal, a reporter places a mark sense card into a reporting device, and the transaction appears on the ticker almost instantly. Confirmation back to the investor or customer takes place when the floor broker returns to the firm's booth and sends the trade details over the wire (or by telephone or by computer) to the broker's branch, confirming that the order has been carried out successfully.
Back at the broker's branch, the branch will collect information about the executed orders and report that information back to the client. Sometimes, this information is reported in a batch at the end of the day. Alternatively, the securities firm may report the
executions as they take place, by telephoning the
institution who gave them the order.
Instead of going to the booth at the floor of the exchange, the securities firm's broker may place the order over an electronic trading system, such as the NYSE Designated Order Turnaround (DOT) System. The DOT System routes orders directly to specialists' posts on the trading floor of the NYSE . The DOT System .accepts market orders up to 30,099 shares and limit orders up to 99,999 shares. An electronic book at the specialist's post lists the buy and sell orders that are placed on the DOT System for a particular stock. When a trade takes place, the details of the trade are entered into the DOT System and made available to the securities firm that placed the order, which then must report the trade to its client.
Alternatively, the securities firm's trader, instead of sending the order to the floor of an exchange, might place the order on an electronic market trading system. For example, Instinet, owned by Reuters, Ltd., is an electronic block trading system that facilitates the negotiation of block trades between institutional investors. Instinet allows the counterparts to trade anonymously, entering bids electronically. Instinet subscribers can respond to an "order" entered into the system either by matching a displayed price or by making a counter bid that is transmitted instantaneously to the counterpart's terminal. The trades that result from these negotiations become public information only when they are executed. This procedure provides an
alternative to the direct human-to-human negotiation of orders in the upstairs market or on the trading floors. Instinet provides a limit order book for over-the-counter (OTC) securities and listed securities and also provides inside quotes for exchange listed securities for the eight U.S. markets on which stocks can be traded and for NASDAQ listed securities.
There are other electronic trading systems.
Some electronic trading systems (such as DOT) are to facilitate trading at a particular stock exchange. Other electronic trading systems (such as Instinet) function independently of existing stock exchanges.
Electronic trading systems each have their own user interface and computer-to-computer interface. Each requires orders to be entered using differing formats, using different terminology and with different system rules. Each also quotes different prices for a
particular security. It is difficult for investors, traders and brokers to simultaneously use these systems at one time. Each electronic trading system requires a different computer screen and input device. Further, these systems do not allow investors direct access to the specialist on the floor of the exchange. For example, the NYSE DOT System can only be used by brokers and not directly by investors.
Present electronic trading systems usually facilitate trading on one exchange only. The user interface and computer-to-computer interface of these systems may not permit orders to be held in abeyance, (or placed in abeyance after the order has been sent for execution or later execution), allow orders to be sent for execution as a group but with different orders in the group being sent to different stock exchanges, allow an order or group of orders to be placed on hold for
execution at a later time when an external event happens, or allow a group of orders to be placed on hold and have only some orders in the group sent for execution.
In the execution process, the trader at the securities firm must make numerous decisions as to how and where the order is to be traded, for example, on which exchange, and using which execution mechanism. Not only do these decisions take time, but often the wrong decision is made, or the decision is made without full knowledge of the current market condition, and the client may not therefore obtain the best price. Traders
typically will use the exchanges and execution mechanisms with which they are most familiar, rather than checking the prices on all exchanges and electronic trading systems. The investor typically does not or cannot make these decisions when using current trading systems. After the client has given its order to the securities firm, the client is unable to track the progress of the order. The client will not know if or when the order has been executed. If the execution does take place, the client is not provided with the execution price until sometime later. The execution information for trades (that may have taken place on various stock exchanges) is not presented to the investor in a format that allows the investor to easily track the execution of each order. Using current systems, it is difficult for the investor to correlate orders and execution
information in real-time. At the end of the day, all executed orders are usually manually entered into a computer system so that the order can be cleared and so that the executed order can be properly recorded in the investor's books. In this time consuming process, many errors also take place.
Order entry systems exist that enable users to enter orders and route these orders to a particular electronic trading system. However, these systems typically are line editor systems that allow the user to enter only one order at a time. These systems do not provide real-time information as to the status of the order. They have limited capabilities and typically do not allow a user to manipulate orders prior to execution, execute more than one order at a time, or correlate order and execution information. Moreover, these systems do not have the capability to route orders to the floor of an exchange for manual execution or to a particular trading desk at a brokerage firm.
The above described methods for trading
securities is cumbersome, time consuming, and where human interaction is involved, prone to numerous errors. When trading securities, the above described trading systems do not give investors control over the placement and execution of an order. The decisions about the placement of an order, such as the time the order is to be sent to an exchange for execution, is usually out of the control of the portfolio manager or investor. For example, because of the time delays in executing an order from when the decision is made by the investor to trade a particular security (many of these delays being caused by intermediate parties such as the securities firm) the investor often does not obtain the price for the trade which the investor saw quoted on the investor's quote device when making the decision to trade. The price of a stock is constantly fluctuating. With the present trading systems, the investor cannot easily take
advantage of these price fluctuations. For example, an investor may see a price displayed on his quote device, but by the time the order is actually executed, the price may have changed.
The information about the trade prior to execution (for example, that a particular party is trying to sell 500,000 shares of IBM), particularly for large orders, is often spread by word of mouth before the order is actually sent to an exchange for execution. This enables some traders to take advantage of this
information before the order can be executed, resulting in a change in price for the stock.
In short, when using the current systems for trading securities, the investor that wishes to make the trade is at a severe disadvantage. The investor
typically cannot control how the order is to be executed, where the order is to be executed or the price at which execution takes place. There is a large amount of human interaction in routing and obtaining execution of an order. (Moreover, because of the human interaction, brokerage firms become quite resentful when the investor keeps changing its order.) As obtaining execution of an order can be a time consuming process, the investor cannot speedily or easily change or cancel orders as market conditions change. The investor is not supplied with real-time information about the execution of an order. Thus, the investor cannot easily modify his investment strategy based on real-time price information and real-time execution information. Expert systems or other forms of computer systems used to determine when to place orders cannot achieve full functionality without real-time execution information.
The electronic trading systems that allow an investor to place an order electronically do not provide the investor with execution information in a format that easily allows the investor to perform its bookkeeping functions. For example, in the DOT system, execution information is provided on a separate line printer.
Thus, a broker-dealer must manually enter the execution information into the bookkeeping system and cannot easily correlate orders placed with orders that were executed. When the execution is reported, the electronic trading system does not correlate the execution information with the order on the user interface.
The present electronic trading systems have cumbersome user interfaces, making it difficult for users to enter orders quickly.
Some systems have attempted to deal with these problems, but only in a partial fashion. For example, there have been described automated futures trading exchanges where the exchange computer automatically matches offers and bids to complete a transaction, and automated systems that have the purpose of replacing existing stock exchanges, as well as systems in which the system proprietor acts as a principle in the transaction.
The emphasis of each of these systems is to replace (or supplement) the functionality of existing stock exchanges and sources of liquidity. These systems do not place orders on the existing stock exchanges or allow investors to electronically place an order on the presently existing and various exchanges and electronic trading systems or to track and control the progress of such order until its execution. None of the existing systems provide an
integrated user interface that allows a user to directly place orders, and then track the progress of these orders, on numerous exchanges and electronic trading systems. Further, the prior art systems that allow users to place orders electronically do not automatically update the information entered, for example, by the user, about an order when the order is executed nor do they enter information into computer systems that allow further analysis and accounting to take place
automatically.
Summary of the Invention
The present invention is an automated and integrated order entry and trading system that operates in real-time to provide a user with control over the management of orders. The present invention also
efficiently reports the execution of the orders in real-time and correlates the execution information with its order.
The present invention is described below in the context of trading securities on stock exchanges and electronic trading systems. However, the invention is not so limited and can be easily adapted to allow the trading of other liquid assets such as futures,
derivatives, options, bonds, currencies and the like. Accordingly, where the context permits, the terms
"securities", "stock", and "shares" when used herein includes other instruments that can be traded, such as, for example, futures, derivatives, options, bonds and currencies. The term "stock market," "exchange" and "stock exchange" when used herein includes other markets, such as, for example, futures exchanges, options
exchanges and commodity markets or other markets that can provide a source of liquidity for instruments such as stocks, bonds, futures, options, derivatives and
currencies. The user of the representative embodiment system of this invention is typically an investor, such as an institutional investor (e.g., a pension fund) but may also be an individual investor, a broker or other person who deals in or trades securities. As used herein, the term "user" or "investor" means that person or entity who wishes to trade or deal in securities.
In the representative embodiment, the present invention includes a control engine coupled to a
plurality of user workstations, each with a graphical user interface. Each user workstation allows for entry of orders. The graphical user interface of the user workstation displays orders that have been entered into the system, the status of each order and, if the order has been executed, execution details about the order. This information is provided on one user interface for all orders, irrelevant of which exchange or electronic trading system the order is to be or was placed.
Accordingly, the user is able, at one glance, to see the status of all orders. The user, interacting with the graphical user interface, can interactively and in real-time modify, suspend and cancel unexecuted orders.
According to the present invention, the control engine is coupled to numerous stock exchanges, such as, for example, the Cincinnati Stock Exchange, and to the electronic trading systems of stock exchanges, such as, for example, the DOT system of the New York Stock
Exchange, the SCOREX system of the Pacific Stock Exchange and the MAX system of the Chicago Stock Exchange. The control engine can also be coupled to various independent electronic trading systems, such as for example,
Instinet. The control engine can also be coupled to foreign stock exchanges, such as the CATS system of the Toronto Stock Exchange. When used herein, the term
"electronic trading system" includes stock exchanges, such as, for example, the Cincinnati Stock Exchange, and the electronic trading systems of stock exchanges, such as, for example, the DOT system of the New York Stock Exchange, and foreign stock exchanges and independent electronic trading systems, such as for example,
Instinet.
In the representative embodiment of the present invention, the control engine is also coupled to a booth workstation. Some stock exchanges have what may be described as manual trading systems. At such exchanges, the order may be transmitted electronically by a broker to the floor of the exchange where it is typically printed on a printer and given to the broker's floor trader. The floor trader executes the order manually on the floor of the exchange in the traditional way. To take advantage of these manual trading systems, the control engine is coupled to the booth workstation which is located, for example, on the floor of an exchange.
Orders are electronically transmitted to the booth workstation, where the order can be printed and then executed manually. The booth workstation, however, need not be located on the floor of an exchange. It could be, for example, located on the trading desk of a trader or any other location where orders can be executed manually.
The control engine includes a switching
function that can route an order to a particular stock exchange or electronic trading system or, where
available, to a booth workstation. In one embodiment, the user determines the routing of the order using the graphical user interface of the user's user workstation.
As mentioned above, also coupled to the control engine are the plurality of user workstations. Each user workstation is typically operated directly by an investor who wishes to trade in securities and perform related trading functions. In the representative embodiment of the invention, the user workstation will be located on the desk of the investor, and will be remote to the control engine. In the representative embodiment, the user workstation is a powerful personal computer. The user workstation of the representative embodiment
includes a graphical user interface that allows the investor to quickly and simply enter orders (for example, a buy order to purchase a stock or a sell order to sell a stock). Each order can be electronically transmitted via the control engine to a stock exchange or automated trading system. The control engine of the present invention routes each order to the desired stock exchange or electronic trading system.
The system of the present invention enables users to track the progress and execution of orders in real-time.
Execution information is collected by the control engine from each exchange or electronic trading system in real-time, processed and made available to the user at the user workstation. This information is provided to the control engine using various techniques. First, for stock exchanges and electronic trading systems that operate automatically such as Instinet and the
Cincinnati Stock Exchange, execution information is provided electronically to the control engine as it is made available by the exchange or trading system.
(Typically, these systems electronically match orders or provide for direct electronic communication between a buyer and a seller.) The control engine interacts directly with these electronic systems. At a second level, semi-automated systems, such as the NYSE DOT
System, allow orders to be placed and transmitted
electronically, but usually, the orders are not matched electronically. The order is usually executed or matched by a person, for example, by the specialist on the floor of an exchange. Thus, these semi-automated systems communicate orders to human intermediaries that execute the orders. When the trade is executed, the fact of the execution and/or the execution information is manually entered into the semi-automated system. The control engine of the present invention obtains the execution information from these systems as soon as it is made available. Third, there are those stock exchanges, as described above, that have manual trading systems. The booth workstation on the floor of the exchange has a graphical user interface so that the floor trader can simply and quickly report execution of the order back to the control engine, for real-time transmission to the user workstation. Thus, the present invention routes orders to the booth workstation on, for example, the floor of an exchange. After the order has been worked manually in the traditional way, the floor trader (or the booth clerk) or other trader selects the order that was executed from the list of orders displayed on the screen of the booth workstation and then enters the execution information for that order.
It is noted that the present invention allows for a combination of the techniques described above. For example, orders that are to be executed on the NYSE can be routed by the control engine to the NYSE DOT system or to a booth workstation on the floor of the NYSE .
The user workstation can, if required, in addition to or instead of displaying the execution information about an order, route the execution
information to an expert system, an application program, a neutral network or a back office application.
Each stock exchange and electronic trading system requires information to be presented to it in a different format. The control engine of the present invention formats the user's order so that it is in the correct format for each stock exchange and electronic trading system.
The system of the present invention eliminates most human interaction from the trading process.
Accordingly, the present invention allows each end user to have complete control throughout the execution process. (The only human action is that which is required by each stock exchange and electronic trading system.) For example, if the investor decides to place an order on Instinet, there is no human interaction - the investor who wishes to make a trade simply, enters the order at the investor's user workstation and the control engine routes the order to Instinet. If the investor decides to place an order on the NYSE DOT system, the only human interaction is that required by the DOT
System, i.e., that of the specialist on the floor of the exchange. Accordingly, human error is reduced, and orders can be placed by the user and executed as fast as the stock exchange or electronic trading system allows. There is no manual intervention between the user entering an order into the system of the present invention and the placing of the order on the required stock exchange or electronic trading system.
Further, the system allows executed orders to be reported in real-time to the user workstation (or the user) that placed the order. For example, when an order is placed on the NYSE DOT System and is then executed, instead of the execution being reported to a broker over a different system to that by which the broker placed the order (and then waiting while the broker telephones the investor with the execution information), the control engine of the present invention receives the execution report from the NYSE DOT System and immediately and in real-time provides this information to the user at the same interface on which the user placed the order.
Moreover, the system of the present invention
automatically correlates the execution information with the order.
Even when the trade is executed on the floor of an exchange, because the floor broker has a booth
workstation in the floor booth, the booth clerk can immediately enter details about the executed order into the booth workstation. This execution information is automatically transmitted to the control engine. The control engine then reports this execution information to the user workstation that placed the order, for display at the user workstation correlated with the order as described above.
The graphical user interface of the user workstation shows orders that have been entered into the system. The user interface also allows the user to enter information about orders not executed using the system of the present invention, for example, to take advantage of the back office features of the present invention
described below. The user interface shows the status of each order, and if the order has been executed, execution information about the order. The order information for an order can be displayed on one line of the screen and the execution information can be displayed on the same line to increase ease of use. The execution information can include execution information received from an exchange, from an electronic trading system, from a booth workstation, or entered manually by the user if the trade took place outside the system of the present invention.
The graphical user interface provided on the user workstation of the present invention allows the user to sort and display the order information and execution information using sophisticated display techniques unavailable on other order entry systems. The user workstation of the present invention further allows the user to simultaneously send a group of orders to one or more exchanges for execution, to prepare orders that can be sent for execution at a later time and to enter orders using a minimum of keystrokes. Further, the user
workstation of the present invention can be coupled to an on-line source of price information. The user
workstation will then allow the user to prepare an order (or a group of orders) to be sent automatically for execution on the happening of an external event.
Moreover, the fact that no human intervention by a broker or intermediary need be involved improves the confidentiality of information about orders sent for execution. For example, for an order that is traded through the DOT system, the only information that is disclosed is the order size and price. The identity of the user is kept confidential - the control engine does not disclose the identity of the user (unless the user requires it), and all the DOT system knows is that the order is being sent by the control engine of the present invention. As the control engine can process and route orders for many users at the same time, knowledge about each user's trades is not disclosed. The system gives the user the maximum information available about a trade without giving away any unnecessary information.
The present invention allows users to communicate order and execution information with each other. For example, an order may be entered by one user at one user workstation and information about the order and execution information for the order may be displayed at a second user workstation. This allows, for example, one user workstation to supervise orders and executions for many traders, e.g., to supervise all traders in a firm.
Post-execution enhancement features allow the user to simply and efficiently book each executed order in the relevant account or accounts without having to reenter the execution information. Further, the system of the present invention automatically interfaces with the clearing system of the brokerage house so that the executed orders can be cleared without the need for reentry of execution details, thus reducing errors.
Accordingly, the present invention can provide investors with direct access to many pools of liquidity for U.S. and foreign securities, including primary, secondary and third market sources. The system of the present invention can route and execute trades for many different securities at many sources of liquidity
including primary and regional exchanges, NASD dealers and market makers, option exchanges and the third market. The system of the present invention allows investors to enter, change and monitor single, multiple or list orders. The investor can select the specific routing for an order. The present invention instantaneously updates the status of orders. It provides a detailed audit trail for each action or event in the execution process. The present invention enables multiple and list orders to be sent simultaneously to different liquidity sources and enables investors to enter orders that are directly sent to exchange specialists and market makers in seconds and to thereafter receive a report immediately upon execution of the order.
The integrated user interface of the present invention gives the user control over the placement, timing and execution of orders. Information about orders and executions can be entered and displayed in a single format, regardless of where the order is placed or how execution information is provided about the order. The content and format of the display of this information can be determined by the user, not by any external system.
Accordingly, the present invention
significantly improves the speed at which orders can be placed on multiple systems and the speed at which
execution information can be provided to the investor.
The user is provided with direct and instantaneous access to many sources of liquidity.
Additionally, the user workstation of the present
invention, by integrating real-time price, order, and real-time execution information, for many stocks traded on various exchanges (and if required, displaying this information all on the one computer screen, or on more than one computer screen if desired) allows the user to micro-manage the user's portfolio. Accordingly,
utilizing the real-time information and the direct access features of the present invention, the user can quickly submit orders for execution, examine feedback concerning the order as well as other external information, either manually or via a computer, and if required, cancel or modify the order or create new orders.
Brief Description of the Drawings
Fig. 1 is an illustration in block diagram form of a representative embodiment of the system of the present invention.
Fig. 1A is a table illustrating, as an example, some sources of liquidity to which the control engine of Fig. 1 can be coupled.
Fig. 2 is an illustration in block diagram form of a representative embodiment of an example network configuration for the system of the present invention.
Fig. 3 is an illustration in block diagram form of a representative embodiment of internal system
architecture of the control engine of Fig. 1.
Fig. 4 is an illustration in block diagram form the processes that are carried out by the user
workstation of Fig. 1.
Fig. 5 is an order management toolbar displayed at the user workstation of Fig. 1.
Fig. 6 is an order entry window displayed at the user workstation of Fig: 1.
Fig. 7 is a detailed order entry window
displayed at the user workstation of Fig. 1.
Fig. 8 is a block diagram illustrating the functions performed by the order management process of Fig. 4.
Fig. 9 is a Fast Order Entry window displayed at the user workstation of Fig. 1.
Fig. 10 is a book-view window screen display. Fig. 11 is an execution window screen display.
Fig. 12 is a book-view toolbar displayed at the user workstation of Fig. 1. Fig. 13 is a block diagram illustrating the functions performed by the book-view process of Fig. 4.
Fig. 14 is a list window screen display.
Fig. 15 is an Order Alert window screen
display.
Fig. 16 is a diagram in flow chart form illustrating the steps performed by a typical CTCI routine of the control engine of Fig. 1.
Fig. 17 is a diagram in flow chart form illustrating the steps performed by a print capture routine of the control engine of Fig. 1.
Fig. 18 is a diagram in flow chart form
illustrating the steps performed by the execution routine of the control engine of Fig. 1.
Fig. 19 is an example of a typical end of day report.
Detailed Description
Turning now to the drawings, and initially Fig. 1, there is illustrated in block diagram form a
representative embodiment of the system of the present invention. A control engine 2 is coupled to at least one user workstation 4. At the user workstation 4 investors are able to enter orders, for example, orders to buy and sell securities, using a graphical user interface. The investor is able to perform other functions at the user workstation 4 related to trading of securities, discussed in detail below. It is anticipated that the user
workstation 4 will be located on the desk of an investor who wishes to trade securities. In the representative embodiment of the present invention, the user workstation may be a personal computer, such as, for example, an IBM personal computer with an Intel 486 processor running at 66 MHz and a color monitor. In an alternative
embodiment, the user workstation 4 can also accept instructions from the user using voice recognition techniques and provide information using a voice synthesizer. The user workstation 4 is capable of performing additional functions other than required by the system of the present invention. Accordingly, the user workstation 4 can execute other application programs such as word processing and spreadsheet programs. In the representative embodiment, the user workstation 4 will be coupled to a source of on-line price and/or market information 16. The user workstation 4 will accordingly execute an application program that receives, formats and is capable of analyzing price and/or market information. In the representative embodiment, this application program may be the commercially available P.C. Quote Program available from P.C. Quote, Inc. of Chicago, Illinois.
In the representative embodiment, the graphical user interface displayed on the color monitor of the user workstation 4 and the flow of data between the user workstation 4 and the control engine 2 is controlled by software stored on a memory device in the user
workstation 4.
The control engine 2 is further coupled to existing sources of liquidity such as stock markets and automated trading systems. For example, the control engine 2 is coupled to the Computer-To-Computer Interface (CTCI) of each desired stock market trading system or electronic trading system. As shown in Fig. 1, the control engine 2 is coupled to the New York Stock
Exchange DOT System 8, Instinet 10 and the Cincinnati Stock Exchange (CSE) 12. Fig. 1 is illustrative only, as it is contemplated that the control engine 2 of the present invention will be linked to most, if not all, stock exchanges and other sources of liquidity, including exchanges in other countries. For example, the control engine 2 is also coupled to the Pacific Stock Exchange (not shown) and the American Stock Exchange (not shown). The table illustrated in Fig. 1A lists, as an example, some sources of liquidity to which the control engine 2 is coupled, as well as some of the order requirements of those systems.
The control engine 2 may also be coupled to a commercial order routing service (not shown) such as the order routing service provided by Bridge Data, at St.
Louis, Missouri. Commercial order routing services allow users to enter an order using a dumb terminal that is coupled to a central switch. The central switch sends the order to the exchange selected by the user. It is noted that most commercial order routing services require that each order be entered by the user one order at a time, typically using a line editor to enter the order. When requested by the user, the order routing service will supply information as to the execution of an order. This information is typically provided on a printer separate to the dumb terminal. The connection to a commercial order routing service allows the control engine 2 of the present invention to obtain indirect access to the sources of liquidity for use if a direct link from the control engine 2 to a particular exchange fails or becomes overloaded.
The control engine 2 (as explained in more detail below and with reference to Fig. 3) receives orders from the user workstation 4. The control engine 2 will examine the order to determine the exchange or automated trading system to which it must route the order. The control engine 2 will reformat the order so that the order complies with the format required by the stock exchange or automated trading system to which the order is to be routed. For example, the control engine 2 will format orders that are to be sent to Instinet 10 so as to comply with the Instinet computer interface
protocols described in the document "Customer Computer to Instinet Application Layout Specification" version 4.1, published September 11, 1992 by Instinet Corporation.
For an order that is to be placed on the Cincinnati Stock Exchange 12, the control engine 2 formats the order so that it complies with the message format described in "Computer Interface Manual" April 6, 1993, published by the Cincinnati Stock Exchange. The Cincinnati Stock Exchange calls their system the National Securities
Trading System. According to the system of the present invention, orders can be routed to other exchanges and automated trading systems, such as the NYSE DOT System 8. The control engine 2 will accordingly format each order so that it complies with the interface and trading rules of the system to which the order is to be routed.
Moreover, the control engine will interpret and manipulate the order information supplied by the user at the user workstation 4 so that it is compatible with the system where the order is routed but so that the order complies with the user's instructions. For example, CSE 12 does not allow "good until" orders. (Some exchanges and electronic trading systems do, however, allow, "good until" orders.) If the user requires a "good until" order on CSE 12, the control engine 2 will accept that order, convert it to an unrestricted order acceptable by CSE 12, but will automatically cancel the order at the "until" time requested by the user. Thus, the user receives full functionality without having to know or understand individual system requirements.
Orders can be split between exchanges and automated trading systems. For example, if a sell order of 5,000 shares is sent for execution, the user may decide that the order is to be split. Thus, for example, 3000 shares may be sent to Instinet 10 for sale and 2000 shares may be sent to CSE for sale.
The control engine 2 can be at a remote
location with respett to both the user workstation 4 and the stock exchanges and automated trading systems 8-12.
Also coupled to the control engine 2 is a booth workstation 14. The booth workstation 14 in the
representative embodiment is a personal computer with an attached printer andd a graphical user interface. Typically, the booth workstation 14 will be located at the trading booth of a securities firm on the floor of an exchange or to their OTC trading department. An investor operating the user workstation 4 may decide to route an order directly to a floor broker on the floor of a specified stock exchange, or OTC trading desk, or options floor. The investor will enter the order at the user workstation 4 nominating a floor broker as the recipient of the order and then transmit the order to the control engine 2 which routes the order to the correct booth workstation 14. At the booth workstation 14, the order can be physically printed on the attached printer and given to a floor trader who will execute the order manually.
However, it is noted that the booth workstation
14 need not be located at a trading booth on the floor of an exchange. The booth workstation 14 can be placed at any location, such as, for example, the desk of a
particular trader at a brokerage firm, at the trading desk of an institutional investor or at any other desired location where it may be desirable to route orders. This allows investors to route orders in real-time and to locations that previously may not have been directly accessible to the investor and receive execution
information back in real-time on the same workstation or expert system.
Each stock exchange and automated trading system has the capability to report the execution of an order. In the system of the present invention, the control engine 2 is designed to receive the execution information electronically. For example, Instinet 10 will electronically and automatically report executed orders when required by a user, as well as other
execution information. The control engine 2 accordingly requests and receives these execution reports
electronically, and then transmits them to the
appropriate user workstation 4 for display. Semi- automated trading systems, such as the NYSE DOT System 8, also have reporting capabilities. For example, a broker that has access to the DOT System 8 usually obtains execution reports from a system that reports executions to a printer. In these systems, the execution
information from the execution report is not displayed on the broker's computer screen correlated with the order information. As discussed in more detail below, the control engine 2 of the present invention obtains the execution information as soon as it is available,
reformats that information and transmits it for display at the user workstation 4 correlated with the
corresponding order information.
When an order is transmitted to the booth workstation 14, it is executed manually. The graphical user interface of the booth workstation 14 allows the floor trader to quickly and efficiently enter the details of the execution. These execution details are
transmitted from the booth workstation 14 to the control engine 2 for transmission and display at the user
workstation 4.
Accordingly, no matter where the order is placed, execution information is displayed to the
investor at the user workstation 4 as soon as it is made available, for example, by the stock exchange, automated trading system or floor broker. Moreover, as explained in detail below, the execution information for an order is correlated and displayed with its corresponding order.
Turning now to Fig. 2, there is illustrated in block diagram form a further embodiment of the system of the present invention. As shown in Fig. 2, many user workstations 4A to 4G are coupled to the control engine 2. The user workstations may be coupled to the control engine 2 in various ways. For example, user workstation 4A is coupled to the control engine 2 via a modem or DSU 26. User workstation 4B and user workstation 4C are coupled to a private wide area network 22, dedicated to the system of the present invention. The private wide area network 22 is coupled to the control engine 2. User workstations 4D to 4F are coupled to a local area network 20. This local area network arrangement is useful where a number of user workstations 4 are to be located near each other, for example, in one office of an
institutional investor. The local area network 20 is itself coupled to the control engine 2, in this example via the private wide area network 22. User workstation 4G is coupled to a public wide area network 24 which is in turn coupled to a modem or DSU 25 of the control engine 2.
Typically, communication between a user
workstation 4 and the control engine 2 is via
asynchronous or digital dialing lines. As shown above, as more than one user workstation may be located at one site and coupled to the control engine 2, it may be preferable to provide access to the control engine 2 via a leased line with a LAN bridge at the control engine 2. Protocols that are supported in the representative embodiment are TCP\IP and NetBeui.
Additionally, a computerized model, neural network, or expert system 9 may be coupled to one of the user workstations 4 of the present invention. The model, neural network or expert system 9 may make the
determination as to when to enter an order or group of orders, send an order or group of orders for execution or cancel an order or group of orders (or all three at once). Because the present invention is coupled to many exchanges and automated trading systems, the speed of reacting to the model's or expert's systems
recommendations is enhanced. Moreover, the model, neural network or expert system can receive execution
information from the user workstation 4 in real-time and use the execution information as a parameter in making decisions. As discussed in more detail below, the control engine 2 of the present invention obtains the execution information as soon as it is available from automated trading systems. The control engine 2 may store the execution information in a database (6 of Fig. 3). The control engine may also correlate the execution
information for an order with the information about the order. The control engine transmits the execution information (or makes the execution information
available) for display at the user workstation 4A-4G from which the control engine 2 received the order.
It is noted that Fig. 2 is illustrative only, and other network configurations, and combinations thereof, can be used to couple user workstations 4 to the control engine 2.
Turning now to Fig. 3, there is illustrated in block diagram form an exemplary embodiment of the
internal system architecture of the control engine 2. The control engine 2 may be a mainframe computer coupled to various input/output devices and bridges. However, in the representative embodiment, the control engine 2 has a local area network system structure. As shown in Fig. 3, the user workstation 4 is coupled to a private wide area network 22 which is in turn coupled to a local area network bridge 32. The local area network bridge 32 is coupled to a local area network 30 of the control engine 2. Also coupled to the local area network 30 of the control engine 2 is an execution processor 34, a file server 36 and a database server 38. The execution processor 34 is responsible for the control and routing (to the correct user workstation 4) of the execution information supplied by the exchanges 8-12 and the booth workstation 14 when an order is executed. The file server 36 stores some of the information required for the operation of the control engine 2. (However, if the processors used by the control engine 2 have internal memory, this information could be stored locally.) The database server 38 will control the operation of a database 6. As shown in Fig. 3, the database 6 is internal to the control engine 2. The database 6 may be located on the local area network 30 of the control engine 2. However, the database 6 may also be located external to the control engine 2. For example, there may be two databases coupled to or part of the control engine 2, one external to the control engine 2 for backup purposes. The database 6 stores information transmitted from each user workstation 4 to the control engine 2. The database 6 also stores information received by the control engine 2 and booth workstations 14. The
information is stored in the database 6 in table format, described in more detail below.
In the representative embodiment, an Instinet processor 46 is coupled to the LAN 30 and a multiplexor 42. The multiplexor 42 is coupled to the Instinet 10 CTCI. The Instinet processor 46 and multiplexor 42 allow communication to take place between Instinet 10 and the control engine 2. The formatting of orders for the
Instinet 10 system so that they comply with the Instinet protocol is carried out by the Instinet processor 46.
A CSE Out processor 48 is coupled to a modem 40 which is coupled to the National Securities Trading
System CTCI of the Cincinnati Stock Exchange 12.
Further, a CSE In processor 50 is also coupled to the LAN 30 and the modem 40. There is a two-way communication line 48A between the CSE Out processor and the modem 40. The two-way communication line 48A allows the CSE Out processor 48 to place orders on the Cincinnati Stock
Exchange 12 and receive communication information from the Cincinnati Stock Exchange confirming that
communications between the control engine 2 and the
Cincinnati Stock Exchange 12 were successful. There is a one-way communication line 50A from the modem 40 to the CSE In processor 50. The one-way communication line 50A receives information from the Cincinnati Stock Exchange 12 as to the execution and status of an order placed on that exchange. As the Cincinnati Stock Exchange 12 reports status and execution of an order to a line printer, the CSE In processor 50 performs the function of capturing the information that the Cincinnati Stock
Exchange 12 transmits, and formatting it so that it can be stored in the database 6 of the present invention. This information is thereafter transmitted by the CSE In processor 50 via the LAN 30 to the database 6 and
thereafter for display on the appropriate user
workstation 4.
A similar arrangement to that described above with reference to the Cincinnati Stock Exchange 12 allows the control engine 2 to communicate with the NYSE DOT System 8. A DOT Out processor 52 places orders via a multiplexor 44 on the NYSE DOT System 8 and receives confirmation that communications have correctly taken place between the NYSE DOT System 8 and the DOT Out processor 52. The NYSE DOT System 8 sends execution information via the multiplexor 44 to a DOT In processor 54, which is also coupled to the local area network 30. The DOT In processor 54 captures the print information sent by the NYSE DOT System 8, reformats this information and places it in the database 6. The print capture process that is performed by the DOT In processor 54 (as well as the CSE In processor 50) is discussed in more detail with reference to Fig. 17 below.
As shown in Fig. 3, a series of computers are networked to provide the functionality performed by the control engine 2. The control engine 2 is designed to be open ended, so that more exchanges can be easily added.
In the representative embodiment, there are four overall processes that take place at the control engine 2. First, a communication process executed by the database server 38 coordinates communications between the control engine 2 and the user workstations 4. Second, a Computer-To-Computer Interface process (the CTCI routine) directly handles communications to the stock exchanges and automated trading systems. There is one CTCI routine for each stock exchange or automated trading system.
Third, a print capture process (the print capture
routines) collects information returned from certain exchanges and from certain automated trading systems.
Fourth, an execution process (the execution routine), carried out by the execution processor 34, processes the execution information collected by the print capture process for transmission to the appropriate workstation that transmitted the related order to the control engine 2.
The control engine 2 of the present invention has a database 6 that is organized into tables of
information. One possible table structure is illustrated in Appendix A. Each user workstation 4 is able to access (directly or indirectly) the tables of information in the database 4. Each entry in the database 4 accordingly identifies the user or users who can access that entry.
Appendix A describes each table in the database
6 of the representative embodiment of the present
invention. Each table is described using well known notation. Each table in the database 6 has a table name. Each column in the table is identified with a column name and data type. In the representative embodiment, the tables are SQL (Structured Query Language) tables. The column or columns that comprise a key are marked with a key indicator, for example, "AKO" next to a column name identifies that the column is a key or part of a key.
The following is a summary of each table in
Appendix A. An Account_Trans table stores account numbers, as assigned by a designed clearing entity, for transactions. The table is cleared when read. Thus, the Account_Trans table in effect stores account numbers for accounts that have been updated since the last read. A Code table stores control information, including, for example, the next available tag number. A Comm_reprt table stores information relevant to commission charged by the designated clearing entity, discussed below with respect to the Trade Blotter function. A Custinfo table holds information on account break-downs of trades. A CustMast table holds master information relevant to each customer account. An Execution table stores static information about each trade. A NWBBal table stores downloaded account balances from a nominated broker, and is used by a Broker application, discussed below. A NWBPos table stores downloaded position information from the nominated broker, and is used by the Broker
application, discussed below. A NWBTrans table stores downloaded transaction information from the nominated broker, and is used by the Broker application, discussed below. A Prices table holds prices for a stock, stored by ticker symbol. A Rlzd_Report table stores realized information for an account. (Realized information is the profit or loss actually realized.) A Securities table stores ticker symbols for each stock. A SISCompare table holds comparisons between the user's trading position and the nominated broker's position. An SSplit table stores stock split information. A Symbols_Changed table stores ticker symbols that have changed. A Trade table, discussed below, holds static and dynamic information about each order and it is cleared at the end of each day, or other regular period. A Trade_Audit table holds copies of images of the Trade table to record the
progress of the execution of an order. A Trade_Blotter table holds Blotter information. A Transactions table stores the transaction information when it is cleared from the Trade table. An Unrlzd_Bal table stores money balances for each account downloaded from the designated broker. An Unrlzd_Report table holds unrealized
positions information.
Further, in the representative embodiment, a series of tables exists for each CTCI interface to an exchange or automated trading system. For example, tables labeled "CSE" relate to information sent to or received from the Cincinnati Stock Exchange 12. Tables labeled VINET" relate to information sent to or received from Instinet 10. Tables labeled "SIS" relate to
information sent to or received from the NYSE DOT system. Thus, a QCSE table holds a queue of orders, modifications and cancels for the Cincinnati Stock Exchange. A CSE_CX table holds CSE CTCI reference numbers to cross reference the tag number and can be used, for example, to correlate order information with execution information. A CSE_Prn table is the CSE CTCI print capture table that receives, for example, execution reports from the CSE. When a CTCI is added to the system, for example, to add a link to another exchange or automated trading system, more tables are added to the database 6.
To further elaborate, the following is a description of some of the columns for the Trade table of the representative embodiment of the present invention. Each row in the table represents one trade. Tag is the internal control number to identify the trade. Tag_Seq is always zero in the trade table. Timestamp is the internal Date and Time of last modification. Mod_Stamp is an identifier for the user workstation 4 (and the user) that last modified this trade. Inst_Type valid entries are ST, BN, OP and OT (Stock, Bond, Option and Other). Side valid entries are BY, SL, CS and SS (Buy, Sell, Cover Short and Sell Short). Qty is the quantity of a trade, e.g. a volume of shares. Price can have a whole portion and a fraction. (The fraction can be a decimal number up to five positions). Gun is an
arbitrary identifying code for orders so that they can be processed as a group. Mkt_Ind, if set to True indicates a Market order. (If MKT_IND is True, the Price field must be nil.) Solicited_Ind, if set to True indicates the order was solicited. Exchange is an internal code representing where this order (or part of an order) was sent. Org_Date_Time is the internal Date and Time this order was originally sent to the exchange. Status records execution information, i.e., the status of an order, such as, for example, HLD, NEW, ACT, EXC, SUS, CAN, CFO (i.e., Held, New Order not yet confirmed by the floor, Active Order, Suspended, Canceled, Canceled Former Order). Op_Open_Ind, if True indicates Open, False indicates Close. Op_Put_Ind, if True indicates Put, False indicates Call. Con_Code indicates the specific conditions: DAY, GTC, FOK, IMM, OO, NH, MOC, LOC, GU. (Day, Good till Canceled, Fill or Kill, Immediate,
Opening Only, Not Held, Market on Close, Limit on Close, Good Until) . Con_Gt_Type indicates what type of data is in the CON_GT_LIMIT field. (1 = Date, 2 = Specific Time, 3 = Number of Minutes). This field and CON_GT_LIMIT are only used if the CON_CODE is GU. Peg_To indicates the type of pegging:. MKT, LST, PRI, BST, MID, OPN. (to: Market, Last Price, Primary Market, Best, Middle,
Opening). Peg_Limit is an optional Limit Field,
comprising, e.g. LST, MID, BID, ASK, CLS. (Last Price, Middle, Asking, Closing). Peg_Plus_Ind, if True
indicates a Plus Delta Price is in the PEG_PRICE field. False indicate a Negative Delta Price. Peg_Price has a Whole portion and a Fraction.
The following is a description of some of the columns for the Custlnfo table in the representative embodiment of the present invention. Each row in the table represents one trade where the trade has customer information assigned. Cus_Tag_Seq is always zero in the costomer Tag table. Cus_Acct is an account number, normally 8 characters long. Cus_Acct_Seq is a sequence number, beginning at 1, that allows multiple occurrences of the same CUS_ACCT number on the same TAG and TAG_SEQ. Cus_T valid entries are 0, 1, 2 and 3. An entry of 0 represents a firm trade. An entry of 1 represents a cash trade. An entry of 2 represents a margin trade. An entry of 3 represents a short trade. An entry of 3 is forced when the Side is CS or SS. Cus_Avg_Elig_Ind, if True indicates this row is eligible for price averaging. Cus_Code is a "Short Name" for the customer.
The LAN 30 of the control engine 2 utilizes Microsoft LAN Manager 2.2, and the NetBEUI Protocol as the default communications protocol. As an alternative communications protocol, the LAN 30 also utilizes the TCP/IP protocol, including Microsoft's Extensions to TCP/IP package and a SOCKETS interface.
The database server 38 utilizes the Windows NT operating system, including Microsoft's SQL Server 4.2 and utilizes an Eagle NE3200 network card.
The LAN bridge 32 may be a Develcon Local
Ethernet Bridge, which has protocol transparent operation in networks supporting protocols including OSI, XNS, TCP/IP, DeCnet and NetWare.
The Computer-To-Computer interface (CTCI) processors, such as 46, 48, 50, 52 and 54, run on
diskless workstations.
The system of the present invention utilizes object oriented programming techniques.
Turning now to Fig. 4, there is illustrated in block diagram form the processes that are carried out at the user workstation 4. These processes will be
described in more detail below. In summary, the processes performed at the user workstation 4 include an order management process 100, a book view process 200, a fast order entry process 300, a list process 400, a DDE
(Dynamic Data Exchange) manager process 500 and,
optionally, a DDE compatible spreadsheet process 600.
In the representative embodiment, the user workstation 4 utilizes Microsoft's DOS Operating System, version 5.0 or greater (MS-DOS). Where user workstations 4 are coupled together over a LAN 20, they may utilize Microsoft's Windows NT operating system or the Microsoft Windows For Workgroups operating system. In coupling the user workstations 4 to the control engine 2, the representative embodiment of the present invention may utilize Microsoft's LAN Manager Remote Access Server 1.1 (Dial-In Connectivity Software). It is noted that other operating systems, such as OS/2 and the Unix Operating System may also be used. In the representative
embodiment the Microsoft Windows NT operating system is used; thus the screen displays and the windows are in the Microsoft Windows NT format and are created using the Microsoft Windows NT toolkit, commercially available from Microsoft Corporation. Accordingly, the user will typically enter and manipulate information in the window displayed on the user workstation 4, using a keyboard and a mouse. However, other data entry devices may be used, for example, a touch screen, a voice recognition input device, or a trackball.
Turning now to Fig. 5, there is illustrated a toolbar that is displayed on the screen of the user workstation 4 by the order management process 100. The toolbar illustrated in Fig. 5 is an order management toolbar 130.
The order management tool bar 130 is part of the graphical user interface that allows the investor at the user workstation 4 to interact with the order
management process 100. On the toolbar are a number of buttons and boxes. A button, when selected by the user, causes an action to happen. A button can be selected for example, by placing the cursor on the button and clicking the mouse. A box allows the user to enter information. Information can be entered by placing the cursor in the box and typing the information from the keyboard.
Information can also be placed in the box by placing the cursor on a down arrow next to the box which will cause the display of various options that may be entered into the box. The user can then select one of those options.
The order management toolbar 130 in the
representative embodiment comprises a number of buttons, including a Write New Order Button 132, a File Changes Button 134, a File Changes & Hide Button 136, a Close Current Order Button 138, an Undo Button 140, and an Enter Executed Order button 147.
The Write New Order Button 132 allows the user to call up a window so that a new order can be entered. When the user selects the Write New Order Button 132, an order entry window 160 (as shown in FiG. 6 below) is displayed on the screen along with the order management toolbar 130.
The File Changes Button 134 allows a user to change details concerning the current order. The current order is the order that is displayed on the screen in the highlighted order entry window 160.
The File Changes & Hide Button 136 allows the user to apply enter changes to the current order and then, after the changes have been made to the current order, hide the current order.
The Closed Current Order Button 138 allows the user to close the current order window. For example, by clicking on the Closed Current Order Button 138, the order entry window 160 of Fig. 6 will be removed from the screen. The Undo Button 140 allows the user to undo changes made to the current order.
The Enter Executed Order Button 147 enables the user to enter both order and execution information for orders that were placed for execution by a system or method other than the control engine 2 and have been executed. By clicking on the Enter Executed Order Button 147, a window is opened that allows the user to enter both order and execution information for an order. This feature allows the information concerning orders placed using other systems to be included in the database 6, for example, to take advantage of the back office features of the present invention, discussed below.
The order management toolbar 130 includes a customer account code box 154. The customer account code box 154 allows the user to enter a customer account code. The customer account code may include words, numbers or symbols. For example, as shown in Fig. 5, the customer account code is "Pension Fund A," which may be, for example, the name of an institution or a particular pension fund managed by an institution.
A CTCI routing box 156 (also called a computer to computer interface routing box) allows the user to select the routing destination for an order. When the user clicks on this box, there will be displayed a list of all available routing destinations. As shown in the CTCI routing box 156 in Fig. 5, the selected routing is "CSE" (which stands for the Cincinnati Stock Exchange). The order management toolbar 130 also has a number of Quick Route Orders Buttons 150. Each Quick Route Orders Button 150 is predetermined and is dedicated to a
particular routing, such as, for example, the Cincinnati Stock Exchange or Instinet. If the user selects a Quick Route Orders Button 150, that routing will automatically be displayed in the CTCI Routing Box 156.
When the user selects a Quick Route Orders
Button 150, the selected order will be sent for execution to the selected destination, via the control engine 2. When the user selects a routing destination, the user will then be prompted to confirm that this is the correct destination for the order. If it is, the order will then be sent for execution to that destination via the control engine 2.
The order management toolbar 130 also comprises a Manual Exchange Box 152. The user can select the
Manual Exchange Box 153 to enter details about a manual exchange. A manual exchange is where the user has a trade executed manually, i.e, in the traditional fashion and not using the routing features of the control engine 2. To keep track of all orders that the user places, and particularly, to take advantage of the back office features of the present invention that are discussed below, the user can enter details about such orders. Details about a manual execution are stored in the database 4, but are not routed by the control engine 2 to an exchange or automated trading system. Details about a manual execution can be integrated into the back office features of the present invention and into the expert system 9 or an analytics program.
A Price Modification Box 158 contains the current price for the current order plus five fractions above and below the current price. The fractions are in the same unit as the order price.
The order management toolbar 130 further comprises a Contexts Sensitive Help Button 146 and an Exit Button 138. If the user selects the Exit Button 138, the user will terminate the order management process 100 and the user workstation 4 will cease display of the order management toolbar 130.
The order management toolbar 130 also comprises an Add Execution Button 142 and a Delete Execution Button 134. The Add Execution Button allows a user to add execution information to the current order. If the user selects the Add Execution Button 142, the user will be able to add information to and modify the information in an execution section 190 (discussed below) of the order entry window 160 for the current order. If the user selects the Delete Execution Button 144, the current order (as displayed in the execution section 190) will be deleted.
Turning now to Fig. 6, there is illustrated a typical window used to enter orders that is displayed on the screen of the user workstation 4 by the order
management process 100. The window is an order entry window 160 used by an investor to enter, for example, a buy order for a stock, bond or option or a sell order for a stock, bond or option.
The order entry window 160 allows the user to enter and modify information for an order. For example, if the user wishes to create a new order, the user will select the Write New Order Button 132 from the order management toolbar 130 and the order entry window 160 will then be displayed at the user workstation 4 to allow the user to enter the new order. Each order entry window 160 represents one order and contains information about that order. In the representative embodiment, the background color of the order entry window for a buy order will be green, while the background color for a sell order is red. This allows the user to quickly identify the type of order displayed on the screen of the user workstation 4. The order management process 100 allows a user to open multiple order entry windows 160. The order entry window 160 for the current order is highlighted.
The order entry window 160 allows the user to edit or write an order. The order entry window 160 comprises several boxes. A type box 162 allows the user to enter the type of order. Typical types include
"stock", "bond", "option" and "other." As shown in Fig. 6, the type box 162 shows the letters "ST" representing "stock". A side box 164 allows the user to enter the side for the order. Typical sides are "buy, " "cover short," "sell" and "sell short."
A quantity box 166 allows the user to enter the total order quantity. A symbol box 168 allows the user to enter the security symbol or other identifying code for the stock, bond, option, etc. that the user wishes to trade. For example, as shown in Fig. 6, the symbol entered in the symbol box 168 is "IBM," representing shares in IBM Corporation.
A price box 170 and fraction box 172 together allow the user to enter the price for the trade.
(Typically, for stocks, the price includes a whole number portion and a fraction.) The order entry window 160 allows the user to enter the price as either a decimal or a whole number with a fraction. Additionally, the order entry window 160 allows the user to enter "Mkt" (or just "M") in the price box 170 to price an order at market.
A peg box 174 allows the user to select the type of pegging. Typical types of pegging include pegging to market, to last price, to primary market, to best, to middle and to opening. Further, the user can peg a price of an order, but if an external event occurs, then have the system of the present invention change the price of the order. If the exchange does not permit a particular type of peg, the control engine 2 of the present invention, where possible, modifies the order to one accepted by the exchange without loosing the
functionality desired by the user. For example, Instinet allows a peg to a mid price, but CSE does not. If the user wishes to peg to mid price on CSE, the control engine 2 can receive as input the current bid and ask price on CSE, and submit an order which is in effect pegged to the mid price. If bid or ask price changes, the control engine then submits a price change
instruction to CSE (or alternatively, may cancel the unexecuted order and resubmit the order at a new price.)
A solicit box 176 allows the user to identify whether the order was solicited or not. An open box 178 and a put box 180 are relevant for option trades only. If the user selects the open box 178, this denotes, an opening option trade. If the open box 178 is unchecked, then it is a closing option trade. If the put box 180 is selected, then the trade is a put, otherwise it is a call.
A customer code box 180 allows the user the option of entering a customer code for the order. The customer code entered in the customer code box 182 must match a valid customer code in the CustMast table. An account box 184 allows the user to enter an account number. A gun box 186 allows the user to enter a gun code to utilize the gun feature. The gun feature is discussed in more detail below with reference to Fig. 14.
A flip box 188 can be selected by the user to designate a flip. If the user selects the flip box, the trade is marked as a flip trade. As is known in the securities industry, a flip trade designates that the order is to be cleared by a broker other than the broker that executed the trade. In the representative
embodiment of the present invention, after the order has been executed, all orders will be automatically sent for clearing to a designated clearing entity. The designated clearing entity will have a computer terminal that will be coupled to the control engine 2 of the present
invention. (The designated clearing entity usually receives a commission for clearing the execution.)
However, the user may require that, for a particular trade, the clearing of the trade be completed by another broker. To comply with securities laws and regulations, a flip contract must be in existence between the two brokers (i.e., the broker that executes the trade and the broker to whom the clearing of the trade is to be
flipped). In the representative embodiment of the present invention, if the flip box 188 is marked by the user, the control engine 2 will generate, after the order has been executed, the appropriate flip documentation to be sent to the new clearing broker. Moreover, the control engine 2 will send a computer message to the previously designated clearing entity informing that broker that the trade has been flipped and not to clear that particular trade. Further details concerning the communication between the control engine 2 and the system designated clearing entity are discussed in more detail below.
Alternatively, certain accounts available to the user are designated as flip accounts. If the user selects as the account code a flip account code, then the order is automatically designated as a flip. A clearing entity is associated with each flip account code. Thus, the user can flip the execution of one trade to Broker A and another to Broker B by designating the appropriate flip account codes for each trade.
A commission box 189 displays the commission rate for the transaction. Typically, where the user is charged a commission for each trade executed. Usually, the commission charge is in cents per share. The
information that is displayed to the user in the
commission box 189 is automatically obtained from the CustMast table. Where the user is a broker, the system of the present invention allows the broker to modify the commission rate by entering a new rate in the commission box 189.
The execution section 190 of the order entry window 160 is completed by the control engine 2 after the order displayed in the order entry window 160 has been executed. The information placed in the execution section 190 includes the date and time of the execution, the executed quantity, the executed price, the MMID
(Market Marker ID) on the other side of the trade, an exchange flag and an exchange trade reference number. If it was a multiple executed order, the user can scroll through the execution details for the order.
Turning now to Fig. 7 there is illustrated a detailed order entry window 160a. The detail order entry window 160a is divided into five sections, namely, an order window 161 (as described above in relation to the order entry window 160), the execution section 190, an order options window 191, a customer discretion box 198 and a broker discretion box 199. (In fact, the detailed order entry window 160a is merely a different display arrangement for the order entry window 160 - the order entry window 160 simply "hides" sections of the detailed order entry window 160a.) The detailed order entry window 160a is displayed when the user selects a maximize option from a pull-down menu on the order management toolbar 130.
The order options window 191 comprises three boxes, namely a condition box 192, a type box 194 and a "good until" box 196. The condition box 192 allows the user to enter conditions for the order. Typical
conditions include "day," "good until canceled," "good until...," "opening only," "market on close," "limit on close," "immediate," and "fill or kill." If the user selects "good until," the "good until" box 196 allows the user to enter a date, time or number of minutes for which the order remains good. The type box 194 allows the user to specify the type of "good until" condition, i.e., whether the order is good until a time or good until a date. If the user selects "date" and enters a date in the "good until" box 196, the order will expire on that date. If a user selects "time," and enters a time in the "good until" box 196, the order will expire at that time on the same day. If the user selects "number of
minutes," and enters a number in the "good until" box
196, the order will expire after that number of minutes. For example, if the user selects "57," the order will expire 57 minutes from the current time.
The customer discretion box 198 is a notepad for recording customer notes. The broker discretion box 199 is notepad for recording broker notes.
After the user has entered an order using either the order entry window 160 or the detailed order entry window 160a, the user may send the order for execution to the stock exchange or automated trading system designated in the CTCI routing box 156 of the order management toolbar 130, or alternatively, the user may decide to "save" the order so that it can be sent for execution at a later time, for example, by "loading" the order into a gun, as discussed below. The details about each order entered by the user and the status of each order is then displayed in a book-view window 250, discussed in detail below with reference to Fig. 10.
Turning now to Fig. 8 there is illustrated in block diagram form the functions performed by the order management process 100 of Fig. 4. As stated above, the order management process 100 is executed on the user workstation 4 and allows the user to enter, modify or cancel orders by way of the order entry window 160, the detailed order entry window 160a and the order management toolbar 130 described above.
A log-on function 102 obtains from the user a user identification code and a password. The log-on function 102 displays on the screen of the user
workstation a log-on box (not shown) so that this
information can be obtained from the user. If the correct password is entered, the log-on function allows the user access to the system of the present invention. The log on function 102 also determines a user group for the user. The user group is a parameter used by the control engine 2 to determine what information in the database 6 the user can have access to and which orders in the system the user may see and act on.
A help icon function 103 turns on the context sensitive help and controls the display of help
information on the screen. The help icon function 103 will be activated when the user selects the context sensitive help button 146.
An exit icon function 104 terminates the order management process 100. The exit icon function 104 is executed when the user selects the exit button 148.
A windows menus function 105 controls the operation of the pull-down menus on the order management toolbar 130. The order management toolbar in the representative embodiment allows the user to select five pull-down menus, namely, a file menu (to allow the user to exit), a window menu (to control the display of the order entry window 160), an actions menu, a history menu and a help menu. The actions menu has commands, (that can be used as alternatives to the buttons described above) such as to save, close, undo orders. The actions menu also includes a shares command that, when selected by the user, displays a quick quantity change window (not shown) to allow the user to quickly change the quantity of an order using a mouse device. The actions menu further includes an allocate trades command that opens a window to allow mass allocation of account numbers to trades without having to know the tag number for the order.
The history menu, when selected, opens a window showing the orders that were entered or modified during the current session.
A DDE function 106 coordinates the flow of information between the order management process 100 and the other processes shown on Fig. 4. For example, the DDE function accepts DDE messages from the book-view process 200 to open an order entry window 160 or 160a for modification of an order. The DDE function also accepts messages to release an order, to cancel an order and to suspend an order. The cancel, suspend, and release messages that are received by the DDE function 106 cause the order management process 100 to format appropriate queue rows, as discussed in detail below.
A new order function 107 opens a new order entry window 160 or 160a and allows the user to enter routing information on the order management toolbar 130. A save order function 108 stores changes to an existing order in the database 6 and then formats a queue row for updating. The save order function 108 is executed when the user selects the File Changes Button 134 on the order management toolbar 130.
A hide order function 109 performs the same function as the save order function 108, but in addition, a DDE message is sent to the book-view process 200 instructing it not to display that order. The hide order function 109 is activated when the user selects the File Changes & Hide Button 136 from the order management toolbar 130.
A "don't save" function 110 closes the current order entry window 160 or 160a but does not modify any tables of the database 6. The "don't save" function 110 is activated when the user selects the Close Current Order Button 138 from the order management toolbar 130.
An undo function 111 discards any changes made to the current order window 160 or 160a and resets the order entry window 160 or 160a. The undo function 111 is activated when the user selects the Undo Button 140 from the order management toolbar 130.
A Post-Execution order entry function 112 will cause the order entry window 160 to be displayed and will allow the user to enter information about a trader. This feature is available, for example, to allow the user to enter information about a manual execution done away from the system.
An add execution function 113 allows a user to manually enter execution information in the execution section 190 of the order entry window 160, for example, for a manual exchange.
A delete execution function 114 deletes selected order execution information. For example, if an exchange sends an execution report by mistake, and then telephones the user to inform the user of this mistake (i.e., a "busted trade"), the user can delete execution details from the execution section 190.
A quick destination function 115 will route the order entered on the order entry window 160 to an
exchange or automated trading system. The designation function 115 will write appropriate queue rows for the order, as discussed in detail below. The quick
destination function 115 exists for each Quick Route Order Button 150 on the order management toolbar 130. The exchange list function 116 formats and writes appropriate queue rows in relation to the exchange or automated trading systems selected by the user using the CTCI routing box 156 of the order management toolbar 130. The exchange list function 116 also has the
capability for displaying all valid destinations or routing on the order entry window 160.
The exchange list function 116 and the quick designation function are executed when the user enters or selects the appropriate information at the order
management toolbar 130.
A manual routing function 117 will accept a destination not recognized by the exchange list function.
A prices list function 116, when executed, will show prices surrounding the offering price for the security selected by the user and entered in the symbol box 168. The offering price will be displayed in the price box 170. The prices list function 119 will also display the prices surrounding the offering price in the price box 170 for easy mouse or keyboard selection by the user. The prices list function is execution whenever an order is modified, for example, when the File Changes Button 134 is selected.
An accounts list function 119 will cause the display of a list of valid accounts. The accounts list function 119 also allows the user to select an account and then assign that account to an order in the order entry window 160. The accounts list function 119 is executed whenever the user selects the customer account code box 154.
The DDE Manager process 500 coordinates
communications between the user workstation 4 and other application programs, such as proprietary expert systems, neural networks and computerized models. Using the DDE interface protocol, the DDE Manager process 500 can accept orders from application programs and supply information to applications programs that are DDE compatible. Accordingly, many different modules can be incorporated into the present invention.
In the representative embodiment, the present invention can include an expert system 9 coupled to the user workstation 4. The expert system 9, interfacing with the DDE Manager process 500, can input orders, and receive execution information. Typically, the expert system 9 operates on a dedicated computer processor, but alternatively, can be executed and operated by the user workstation 4. In this embodiment, the expert system 9 is a portfolio expert system. The portfolio expert system (PES) of the present invention first examines a nominal portfolio of stocks. The PES assembles a basket of stocks from this portfolio as follows. The PES determines the relative value of each stock in the portfolio, relative to the other stocks in the portfolio, and ranks the stocks in order of their relative value. The PES then constructs the basket by selecting a
predetermined number of stocks from each end of the relative order, for example, the top ten stocks by value and bottom ten stocks by value. The PES then sends instructions via DDE comprising buy orders for the bottom ten stocks and sell short orders of the top ten stocks. The quantity of each stock traded in the transaction is determined by its position in the relative order. The
PES continuously examines market information and re-ranks the stocks. If a stock changes its relative ranking, the PES can issue the appropriate command, via DDE, to "re-balance" the basket. The PES receives real-time
execution information and other information and feedback via the DDE interface. Accordingly, the PES feature of the present invention allows an investor to micro-manage a basket of stocks and to execute trades swiftly if market conditions change.
The user workstation 4 of the present invention can be coupled to numerous and different expert systems. The spreadsheet process 600 is simply a DDE compatible spreadsheet, such as, for example, Microsoft's Excel spreadsheet. Using this feature, the user can input information via a spreadsheet and "export"
information, such as execution information to the
spreadsheet. The information can be input and exported in real-time.
Turning now to Fig. 9, there is illustrated a Fast Order Entry ("FOE") Window 350. The FOE Window 350 is an add-on graphical user interface that complements the Order Entry Window 160 of Fig. 6. The FOE Window 350 is controlled by and interfaces with an add-on FOE function of the Order Management Process 100. The FOE function is executed by the processor of the user
workstation 4.
The FOE Window 350 can be displayed on the screen of the user workstation 4 and information can be entered, as described above, using a mouse device.
Alternatively, the FOE Window can be displayed on a touch screen coupled to the user workstation 4 and information can be entered by the user using the touch screen. The FOE Window 350 can also be run on another PC coupled to the workstation 4.
The FOE Window 350 is designed for investors who need to immediately respond to trading opportunities. Using the FOE Window 350, a trade can be entered in seconds with as little as only four commands.
The FOE Window 350 comprises an order type command line 362 that has four buttons, one button for each order type, namely, buy, sell, cover short and sell short. The FOE Window 350 also comprises a symbol section 364. The symbol section 364 comprises a number of preset ticker buttons, such as those labeled AMD, IBM and GLX. Each preset ticker button represents a security that can be traded. The buttons in the symbol section 364 are preset by the user at an earlier time so that they represent securities that the user is actively interested in. Other preset symbols can be hidden, and displayed only when the user selects the down arrow button 365.
Also on the FOE Window 350 is a routing line 368 that comprises preselected routing buttons 368. Each preselected routing button represents one source of liquidity where the security may be traded, such as, for example, a specific stock exchange or a booth
workstation.
There are at least two ways to operate the FOE
Window 350. First, the user sets up in advance a
portfolio of ticker symbols (each ticker symbol
representing a stock). The user can allocate an initial share size and price to each ticker symbol. Each ticker symbol will be displayed on the FOE Window 350 in the symbol section 364. When a trading opportunity exists, the user begins by selecting either a buy, cover short, sell or sell short by activating the appropriate button in the order type command line 362. (On a touch screen, the user simply touches the appropriate button. With a mouse, the user points at the appropriate button and clicks.) A menu bar 352 on the FOE Window 350 displays the selection (at 353) and the ticker symbols in the symbol section 364 are highlighted. The user then selects the appropriate ticker button (for example, the button labeled "IBM"). On the menu bar 352, the FOE Window 350 displays the preselected share amount and preselected price 357 (for example, 2,000 IBM shares at 50). In an alternative embodiment, the price displayed on the menu bar 352 is a function of current market information (such as, for example, the bid price for a sell order or the offer price for a buy order) obtained from the on-line source of price and/or market
information 16. To change the price, the user may select a price arrow 358 on the menu bar 352 to move the price up or down, or the user may select one of a number of preselected pricing alternatives from a group of preselected pricing alternative buttons 362 (i.e., market-on-close, market, last, etc.). To change the share amount, the user may select an amount arrow 354 or 356 to change the order in lots of 100 (i.e. arrow 354) or in lots of 1,000 (i.e., arrow 356). Next the trader selects one of the preselected routing buttons 368. The route selected is displayed on an enter order button 370 on the FOE Window 350. The user may then either clear the order (i.e, do nothing) by selecting a clear order button 372 or send the order for immediate execution by selecting the enter order button 370.
Thus, an order can be entered and sent for execution with only four commands; namely, (i) selecting an order type from the order type command line 362, (ii) selecting a ticker symbol from the symbol section 364, (iii) selecting a routing for the order from one of the preselected routing buttons 368, and (iv) entering the order by selecting the enter order button 370. With few additional commands, the user can modify the preselected amount and price of the order.
Alternatively, the user can select a quick entry button 366 on the FOE Window 350. When the quick entry button 366 is selected, the user is prompted to enter, using a keyboard, the share amount, ticker symbol and price. This information, when entered, is displayed on the menu bar 352. The user then selects the routing for the order from one of the preselected routing buttons 368, and enters the order by selecting the enter order button 370.
When an order is entered using the FOE Window
350, it is processed in a similar fashion by the control engine 2 as orders that are entered using the order entry window 160 or detailed order window 160a.
Once an order has been entered by the user, the system of the present invention allows the user to monitor the status of each order in real-time. The book-view process 200 operates on the user workstation 4 and interacts with the database 6 of the control engine 2. A Book-View ("BV") window 250, as shown in Fig. 10, is controlled by and interfaces with the book-view process 200 of the Order Management Process 100. The BV window 250 shows status and execution information, updated in real-time, about each order entered using the order entry mechanisms of the present invention. The BV window 250 comprises three parts, namely, a status window 210, an execution window 260 and a BV toolbar 280.
The status window 210 displays the status of all orders entered via the user workstation 4. As stated above, those orders may have been entered, for example, using the order entry window 160, the detailed order entry window 160a, the FOE Window 350 or using the DDE manager process 500. (As discussed below, orders may also be entered automatically using an order alert system or a gun. These orders and their status are also displayed in the status window 210.) Where many user workstations are coupled over a LAN 20, as shown in Fig. 2 (e.g. workstations 4D-4F), one workstation may be dedicated to performing book-view functions.
Accordingly, that dedicated workstation may display the status of all orders entered by all users at the
workstations coupled to the LAN 20. Alternatively, each user workstation 4 on the LAN 20 may have the capability of viewing, using its BV window 250, all orders entered on all user workstations 4 on the LAN 20.
The status window 210 displays the status of each order. The status window 210 is divided into a number of sections. In the representative embodiment, the sections of the status window 210 are displayed in a column format. In the representative embodiment, the different sections of the status window 210 are as follows: a side column 212, a quantity column 214, a symbol column 216, a price column 218, an execution quantity column 220, a leaves column 222, a tag column 224, an exchange column 226, a status column 228 and a customer column 230.
In the representative embodiment, each order is displayed in one row of the status window 210. The side column 212 lists whether the order is a buy order, a sell order, a cover short order or a sell short order. Buy and cover short orders are displayed in green and sell and sell short orders are displayed in red. The quantity column 214 lists the total quantity of the order, for example, 95,000 shares. The symbol column 216 lists the ticker symbol or other identifying code for the order. The price column 218 lists the price the user set for the order.
The execution quantity column 220 lists the total quantity of the order that has been executed so far. The leaves column 222 shows how much of the order is yet to be executed. For example, if the order is to buy 95,000 IBM shares, and so far 50,000 IBM shares have been purchased (i.e, the order has been partially
executed), the execution quantity column will show 50,000 and the leaves column will show 45,000. (Thus, the leaves quantity is the order quantity minus the execution quantity.) These columns are updated in real-time as information about the order becomes available, as
explained in detail below.
The tag column 224 displays a tag number which is an internal reference number to uniquely identify the order. The exchange column 226 lists the exchange or system to which the order has been routed. The status column 228 lists the status of the order. The following is a list of the possible status for an order: held order (the order has been held by the user, i.e., information about the order has been entered in the system of the present invention but the order has not yet been sent for execution); new order (the order has been sent for execution but it has not yet been confirmed as received by, e.g., the exchange); active order (the order has been sent for execution and is active); suspended order (the order has been sent for execution but has been suspended by the user of the system of the present invention); canceled (the order was sent for execution but has been canceled); and executed (the order has been completely executed - such an order is now called an executed trade).
Suspending an order is not an action typically allowed by an exchange. When the user suspends an order, the system of the present invention will in fact send a message to the relevant exchange canceling the order, but will keep the information about the order in the system (for example, in the database 6) so that the user may release the order (or modify the order) at a later time. Thus, if the user cancels a suspended order, nothing is sent via a CTCI to any exchange.
The status indicators in the status column 228 are displayed in different colors, e.g., active is blue, canceled is red, suspended is yellow, executed is green, to enable the user to easily determine the status of an order. Accordingly, the status column 228 provides real-time information to the user concerning the status of each order the user has entered into the system of the present invention.
The customer column 230 lists an alphanumeric code representing the account for the order.
A gun column (not shown) is to identify any order that is subject to a gun, as explained in detail below. An CTCI message column (not shown) displays an image of the last CTCI message received from an
electronic exchange related to the order.
The display of the columns in the status window 210 can be modified by the user. For example, the user may hide columns from the status window 210.
The BV window 250, as stated above, also comprises an execution window 260. The execution window 260 lists each execution (or trade) that has taken place. The execution window 260 is updated in real-time whenever the control engine 2 receives an execution report from an exchange or automated trading system. It is noted that if an order is execute in parts, as each part is executed information concerning the partial execution is displayed in the execution window 260. Accordingly, information about an executed trade may appear in the execution window 260 even though the status of the order in the status window 210 may be listed as active.
The arrangement of the display of the execution window 260 and the status window 210, and the number of rows and columns of each window, can be controlled by the user. Typically, the execution window 260 is displayed on the user workstation 4 at the same time as the status window is displayed, as shown in Fig. 10. However, the execution window 260 can also be displayed alone, with the status window hidden from view, as shown in Fig. 11.
The execution window 260 (as shown in Fig. 11) also comprises a number of columns. A side column 262 lists whether the order is a buy order, a sell order, a cover short order or a sell short order. Buy and cover short orders are displayed in green and sell and sell short orders are displayed in red. A quantity column 264 lists the executed quantity of the order. A symbol column 266 lists the ticker symbol or other identifying code for the executed order. A price column 268 lists the executed price of the order. A tag column 270.
displays the tag number to identify the order. An exchange column 272 lists the exchange or other
destination to which the order was sent. A time column 274 lists the time of trade execution in the exchange's time zone. A contra column 276 lists the MMID on the other side of the trade. A flags column 278 lists the exchanges flags. A reference column 279 lists the exchange trade reference number.
The BV toolbar 280 is shown in further detail in Fig. 12. The BV toolbar 280 comprises several buttons, a CTCI status indicator 294 and an information box 292. Typically, the BV toolbar is continuously displayed at the top of the BV window 250..
The buttons on the BV toolbar 280 include a tools button 282, a context sensitive help button 284, a cancel button 286, a suspend button 288, a release button 290, a modify button 283, a hide button 285, a show/hide hidden orders & trades button 287 and a scroll locked button 289.
The tools button 282, when selected by the user, causes a utility window (not shown) to be displayed on the user workstation 4. The utility window allows the user to customize the BV window 250. Using the utility window, the user can select orders for guns, and also select (using various parameters, for example , all orders involving IBM stocks) orders to be displayed on the BV window 250. Using the utility window, the user, if connected to a LAN 20, can also view orders of other users in the user group.
The context sensitive help button 284, when selected by the user, will display help information as discussed above.
The cancel button 286 allows a user to cancel an order. In the representative embodiment, an order is canceled by dragging the order from the status window 210 and "dropping" it on the cancel button 286.
(Alternatively, an order can be selected to be canceled by clicking on the order. The order will be displayed with a rectangle around it and the tag number of the selected order is displayed in a selected order tag field 296 of the BV toolbar 280. The user cancels this order by then selecting the cancel button 286.) An order that has been canceled or executed cannot be canceled. (If the user cancels less than 100% of the non-executed quantity of a new order not yet confirmed, an active order or a suspended order, only the quantity of the order will be reduced.) The suspend button 288 allows a user to suspend an order. In the representative
embodiment, an order is suspended by dragging the order from the status window 210 and "dropping" it on the suspend button 288. An order that has been canceled, suspended or executed cannot be suspended. (If the user suspends less than 100% of the non-executed quantity of an order, its quantity will be reduced. If the user suspends less than 100% of the quantity of an order, a held order is created that contains the balance of that quantity.) The release button 290 allows a user to release (i.e. send for execution) a suspended or held order. (If the user releases less than 100% of the quantity of an order with a held status, a new held order is created that contains the balance of the order
quantity. If the user releases less than 100% of the non-executed quantity of an order, its quantity is reduced and the order is released.) In the
representative embodiment, an order is released by dragging the order from the status window 210 and
"dropping" it on the release button 290. The modify button 283 allows a user to modify an order. In the representative embodiment, an order is modified by dragging the order from the status window 210 and
"dropping" it on the modify button 290. When this occurs, the order management process 100 is called and the order entry window 160 or 160a for the selected order is displayed so that the order can be modified.
The hide button 285 allows the user to hide from view a selected order or executed trade. Hiding an order or executed trade does not affect the status of the order. The show/hide hidden orders & trades button 287, when selected, will show all hidden orders and executed trades. When selected for a second time, those orders and executed trades marked to be hidden will be hidden.
The scroll locked button 289 will lock the scrolling feature of the BV window 250. When the
scrolling feature is on (which is the default setting), all orders and executed trades are continuously updated and scroll through the window. When the scroll locked button is selected, the screen locks on the currently displayed orders and trades.
The information box 292 displays current information and is continuously updated. For example, the information box can be programmed to display the current time and the current Dow Jones Index.
The CTCI status indicator 294, in the representative embodiment displayed as traffic light icon, gives a visual indication (a green light) that all CTCI interfaces between the control engine 2 and the various exchanges and automated trading systems (e.g., 8 to 12) are up and working. If all CTCI interfaces are not working (i.e, at least one CTCI is down), a red light will be displayed. A sound can be produced, for example, a beep every ten seconds, if a CTCI interface goes down until the user acknowledges that fact.
The ^elected order tag field 296 lists the tag number of any order that has been selected for further action, e.g., an order to be canceled or modified.
The BV Window also has a number of pull-down menus 299, including those that provide file functions (e.g., printer set-up, alternative access to the
utilities window, exit command), sort functions
(explained below), actions functions (e.g., cancel order, suspend order, release order, modify order, hide
execution window 260, average pricing command, preopening command), CTCI functions (to display the status of all CTCI's coupled to the control engine 2), print functions (to print interim and end of day reports) and help functions. The user can select sort commands in the "sort" pull-down menu to sort the entries (i.e., the orders and executed trades) that are to be displayed in the BV window 250. For example, the user may sort the executed trades and unexecuted orders by ticker symbol or by quantity. In the representative embodiment, a sort window (not shown) allows the user to create and catalog customized sort orders - these customized sort orders are thereafter displayed in the "sort" pull-down menu for selection.
An average pricing command in the "action" pull-down menu opens an average price window (not shown) where the user can group trades for average pricing. For any order, there can be multiple executions on the order. For example, if the user sends a sell order for 5,000 shares, those shares actually may be sold in five
"batches" of 1,000 shares each, with each trade for each batch at a different price. Using the average price command, the user can group related trades to determine the average price for the complete order. (As an
alternative feature, a process can automatically group all the related trades at the end of the day and
automatically determine an average price for those trades.)
The preopening command of the "action" pull-down menu displays the current pre-opening indications.
Turning now to Fig. 13, there is illustrated in block diagram form the functions performed by the book-view process 200.
A log-on function 2002 displays a log-on window (not shown) to allow the user to log-on and enter a password. The log-on function 2002 determines the user group for the user and determines what information the user may have access to in the database 6.
A delete icon function 2006 is executed when the user selects the cancel button 286. The delete icon function 2006 sends a command to the DDE function 106 of the order management process 100 to cancel the selected order. The command is sent via DDE. The delete icon function 2006 also updates the status window 210.
A suspend icon function 2007 is executed when the user selects the suspend button 288. The suspend icon function 2007 sends a command to the DDE function 106 of the order management process 100 to suspend the selected order. The command is sent via DDE. The delete icon function 2006 also updates the status window 210.
A release icon function 2008 is executed when the user selects the release button 290. The release icon function 2008 sends a command to the DDE function 106 of the order management process 100 to release the selected order. The command is sent via DDE. The release icon function 2008 also updates the status window 210.
A modify icon function 2009 is executed when the user selects the modify button 283. The modify icon function 2009 sends a command to the DDE function 106 of the order management process 100 to open the order entry window 160 or 160a for the selected order. The command is sent via DDE.
A hide icon function 2010 is executed when the user selects the hide button 285. The hide icon function 2010 marks the selected order or executed trade that is to be hidden. (Each user workstation 4 keeps a list of those orders or trades that are to be hidden.) When the show/hide hidden orders & trades button 287 is set to hide, the marked hidden orders and trades are not
displayed. A show/hide icon function 2011 toggles the hide/show selection when the user selects the show/hide hidden orders & trades button 287.
A control icon function 2003, executed when the user selects the tools button 282, causes the utility window to be displayed. A help icon function 2004, executed when the user selects the help button 284, turns on the context sensitive help feature. An exit icon function 2005, executed when the user selects the exit command from the "file" pull-down menu 299, causes the book-view process 200 to terminate.
A CTCI status function 2012 controls the display of the CTCI status indicator 294. This
information is obtained from the Code table. (The control engine 2 updates the code table whenever there is a change in the status of a CTCI.)
A dow box function 2013 controls, the display in the information box 292. The dow box function 2013 continuously receives and monitors information from the online source of price and/or market information 16 and updates the information box 292 accordingly.
A windows menus function 2014 controls the operation of the pull-down menus 299. This function controls the display of a number of additional window 2016-2018, discussed below. These windows can be selected for display by the user.
A trade window 2015 displays the current trade executions in the execution window 260 and the status window 210.
An order window 2016 displays the current order information in the status window 210.
A top-of-book window 2017 displays the best bid and best price on a specified exchange or electronic trading system.
A pre-opening window 2018, in the
representative embodiment, shows the pre-opening
information obtained from the Cincinnati Stock Exchange.
Turning now to Fig. 14, there is illustrated a list window 450. The list window 450 is controlled by and interfaces with the list process 400. The list process 400 is executed by the processor of the user workstation 4. The list process 400 controls the user interface that processes and executes guns. Guns are predefined groups of orders that can be released
("fired"), suspended or canceled as a group.
The list window $%) comprises an orders window 410. The orders window 410 is similar in structure and contents to the status window 210 discussed above.
Functions similar to those explained above, such as suspending an order, releasing an order and deleting an order, can also be carried out from the list window 410. However, these functions are carried out not on a single order, but on a group of orders.
The user can nominate all or part of a gun using dollar or percentage limiters. Accordingly, the list window comprises a percentage box 410 and a dollar box 420. The percentage box 410 allows the user to nominate a percentage from one to 100. That percentage is applied to order volumes for the nominated action.
For example, if 50% of a gun is selected for release, only half the order volume will actually be released when the gun is fired. (The volume is rounded down to the next lower round lot as an odd-lot would be produced.) The dollar box 420 allows the user to enter a dollar limit for the nominated action. For example, if a
$500,000 dollar limit is entered, orders will be released when the gun is fired until a maximum order value of $500,000 is reached. Alternatively, a partial amount of each order listed in the gun is executed, the total value of all partial amounts being equal to $500,000.
The delete, suspend and release functions for a gun all operate in a similar fashion, except that the functions queue different CTCI actions. (Queuing is explained in detail below.)
To call up a gun, the user selects the tools button 440, causing a utility window (not shown) to be displayed. Using the utility window, the user can select those orders that are the subject of a particular gun. (The user can make an order the subject of a gun by entering a gun code in the gun box 186, for example, when entering or modifying the order.) Using the utility window, the user names the gun and may specify the criteria for the orders that are the subject of that gun.
Those orders that are the subject of a gun are listed on the orders window 460 with the name of the gun(s), where applicable, in a gun column 430.
Using the actions buttons 470 to 474 on the list window's toolbar, the user selects the action for each gun. If the user selects the release action, only held or suspended orders qualify for the gun. If the user selects the suspend action, only active orders qualify for the gun.
To summarize the use of guns, the release operation will be taken as an example. First, the user selects the orders to be loaded into the gun. These orders are displayed in the orders window 460. Orders can be loaded into the gun using the utility window.
(The utility window is accessed in the representative embodiment by clicking on the tools button 440.) Second, the user has the option of nominating a certain
percentage of orders using the percentage selector 410 or the total dollar amount to be released using the dollar selector 420. Third, the user selects the release button 474 to fire the gun and to release the selected orders as a group. There may be one or more stocks loaded in a gun and there may be one or more loaded guns in the system.
Each gun may be fired manually or
automatically. The gun can be fired manually as
discussed above.
If the gun is set to be fired automatically, the condition on which the gun is to fire must be set by the user. For example, the condition may be that IBM shares drop below $50. The list process 400 continuously monitors the online source of price and/or market
information 16. When the select condition (s) is met, the gun is fired automatically without human intervention. For example, if the gun was loaded with sell orders for IBM shares, and set with a $50,000 dollar limit, enough orders would be executed so that $50,000 worth of IBM shares would be sent by the control engine 2 to the designated exchange (s) to be sold. Alternatively, instead of firing the gun automatically, when the gun's condition becomes true, the user is immediately notified (for example, by a visual indication or a sound), and given the option of firing the gun manually. When a gun is fired, the information about each order is placed in the BV window 250 for display to and manipulation by the user.
The following is an example of the flexibility of the gun feature of the present invention. If an investor has a portfolio of stocks, and needs to raise $50 million by selling some stock, the investor can load a number of guns. One strategy may be to load a large number of sell orders into one gun, and enter $50 million in the dollar selector box 420. The stocks to be sold could be sold on various and mixed exchanges and via various and mixed electronic trading systems. The list process 500 of the present invention will, after
examining real-time price information, such as that obtained from the on-line source of price information 16, issue enough sell orders so that $50 million worth of stock (at current prices) is offered for sale.
Alternatively, the investor could load a gun including over $50 million worth of sell orders for execution. By examining the execution information, the investor can determine when the $50 million limit is reached, call up the gun (for example, by selecting the tools button 440) , and suspend or cancel the unexecuted orders.
Alternatively, the gun could be set to fire automatically to cancel the outstanding (i.e., unexecuted) sell orders when $50 million is raised. As a third alternative, the investor could load a number of guns with many sell orders for small amounts of stock, and set each gun to fire at successive times. Thus, the sell orders are paced, so that the market is not flooded with sell orders. As execution information is received real-time, the guns could be set to fire at varying rates. For example, if the $50 million has to be raised by 3 p.m., the guns could be set to examine the execution of these orders - if the orders are being executed quickly, the orders need not be sent out for execution so quickly; however, if the orders are taking time to execute so that the goal may not be reached on time, the sell orders may be sent for execution at an earlier time.
Turning now to Fig. 15, there is illustrated an Order Alert ("OA") Window 510. The OA Window 510 is an add-on graphical user interface that complements the BV window 250 of Fig. 10. The OA Window 350 is controlled by and interfaces with an OA function. The OA function is executed by the processor of the user workstation 4. Together, the OA Window 510 and the OA function comprise an OA system.
The OA system is designed for traders who need to monitor and trade large lists of securities based on specific market criteria. The OA system enables a trader to monitor and execute hundreds of market and limit orders simultaneously.
To operate the OA system, the user enters a security into the OA system. In the representative embodiment of the present invention, the security is displayed on the OA Window 510 in a ticker column 520. Continuously updated information is automatically
displayed in columns alongside the ticker symbol of the selected security. A bid column 522 displays the last bid for the selected security on a predetermined
exchange. An offer column 524 displays the last offer for the select security of a predetermined exchange. A last column 526 and a volume column 530 displays last trade information concerning the selected security and a change column 528 shows the corresponding price change. This information is obtained by the OA system from the online source of price and/or market information 16.
Additionally, or alternatively, the information can be obtained from the control engine 2 and may include execution information. The current market value of the order is displayed in a market value column 544.
The user enters the price at which the user wishes to conduct the trade (which is displayed in a target column 536) and the number of shares the user wishes to trade (which is displayed in a shares column 534). The user also enters a number of conditions. The trade will only be sent for execution when these
conditions are met. In the representative embodiment, the user may enter up to three conditions , but the system can be easily modified so that more conditions can be utilized. Thus, in the representative embodiment, when a user enters a security into the OA system, the user is prompted to enter one, and up to three, criteria which must be satisfied to effect an execution.
For example, a user can enter an order to buy 10,000 shares of IBM, to be sent for execution only if the price is greater than 55 1/8, and if the bid size is greater than 3,000 shares and if the total volume traded is greater than 200,000 shares.
The status of each condition is displayed in three condition satisfies columns 538 to 542. In the representative embodiment, if a condition is satisfied, a green "Y" is placed in the respective condition column. In the representative embodiment, if a condition is not satisfied, a red "N" is placed in the respective
condition column. The current market value of the order is displayed in a market value column 544. When all conditions are satisfied, the order highlighted 545 is automatically sent out for execution via the control engine 2. The status of the order is also displayed on the BV window 250, as discussed above.
Orders that are entered at a user workstation 4 and sent for execution are processed by the control engine 2. The control engine maintains at least one database 6 that stores information about all orders from all user workstations 4. Each order can be routed by the control engine 2 to an exchange or automated trading system (e.g., 8-10) or to the booth workstation 14 of the present invention. The control engine communicates with each exchange or automated trading system via a CTCI. Typically, there is at least one CTCI at the control engine 2 for each exchange or automated trading system.
At the control engine 2, and associated with each CTCI, is a message queue. In the representative embodiment, each message queue is stored in an internal memory array. Each message queue will store each order or command that is to be sent to the exchange or
automated trading system associated with the message queue. Each message queue is processed by a dedicated processor. For example, the message queue used to communicate with Instinet 10 is processed by the Instinet processor 46. The message queue used to communicate with the DOT system 8 is processed by the DOT Out processor 52. Each dedicated processor executes its own CTCI routine. Alternatively, each message queue can be stored in the database 6.
Turning now to Fig. 16, there is illustrated in flow chart form the steps performed by a typical CTCI routine, for example, the CTCI routine that communicates with the DOT system 8. In the representative embodiment, the CTCI routine is run from a batch file from the
Microsoft DOS operating system of the processor 46 (step 501). A DOS text file is maintained to log each message sent to and received from the exchange (step 502).
The CTCI routine connects to the exchange using the sign-on procedure specified by the exchange (step 503).
The CTCI routine can be terminated, for
example, by a systems administrator (step 503). In the representative embodiment, the CTCI routine is terminated by pressing the ESC key on a keyboard associated with the dedicated processor.
An unacknowledged message queue is maintained by the dedicated processor (e.g. 46). All messages
(e.g., orders) that are sent to an exchange are placed in the unacknowledged message queue along with the time the message was sent until the exchange acknowledges that it has received the message. The CTCI routine checks the oldest message in the unacknowledged message queue (step 505). If no response has been received to this message from the exchange within a predetermine time, the oldest message is deleted from the acknowledged message queue (step 506) and the database 6 is updated to show that no response was received from the exchange for this message (step 507). (Thus, the user will be notified, for example, that a particular order was not received by the exchange. This notification will be displayed on the BV window 250 at the user workstation 4.)
Next, the CTCI routine will determine if the unacknowledged message queue is full (step 508). A finite number of messages are allowed to remain
unacknowledged. If the queue is full, the CTCI routine will not send any further messages to the exchange and will only continue to look for acknowledgements from the exchange relating to messages in the queue.
New messages, prior to being sent to the exchange, are stored on a new message queue of the database 6. (In the representative embodiment, messages are placed in the new message queue using an SQL command. A new message queue exists for each CTCI.) The
appropriate CTCI routine will examine the appropriate new message queue to determine if there are any new messages to be sent to the exchange (step 509). If the
unacknowledged message queue is not full and there is a new message to send, the CTCI routine will format the new message and transmit it to the exchange (step 510) . As stated above, the message will be formatted to comply with the exchanges CTCI rules. When the new message is sent, it is added to the unacknowledged message queue (step 511).
The CTCI routine determines if any new data has been received from the exchange (step 512). If no new data has been received, the CTCI routine continues from step 504. If new data has been received, the CTCI routine determines if it matches any message sent that is listed in the unacknowledged message queue (step 513) . If so, that message is removed from the unacknowledged message queue (step 514). The CTCI routine examines each message received from the exchange and updates the tables in the database 6 accordingly (step 515).
Steps 516 and 517 of Fig. 16 are applicable only to communications with Instinet. As Instinet provides for two-way communication between the Instinet processor 46 of the control engine 2 and the Instinet system 10, execution information is received and
processed by the CTCI routine. (For other exchanges, such as the NYSE DOT system 8, execution information is received and processed by the print capture routine discussed below with reference to Fig. 17). Thus, if the CTCI routine is operating on the Instinet processor 46, the CTCI routine will determine if the message that is received is an execution report (step 516). (All messages received are stored as unprocessed messages in the database 6, and are marked as unprocessed. The execution information that is received is processed by the execution routine, discussed in detail below with reference to Fig. 18.) If the message received is an execution report, the CTCI routine sends an Iserv-J message to the CTCI new message queue for transmission to Instinet 10. The Iserv-J message is a message that must be sent to Instinet in response to a trade execution. (An Iserv-J message confirms that the control engine 2 received the execution report, and is required by
Instinet.)
Turning now to Fig. 17, there is illustrated in flow chart form the steps performed by the print capture routine. The print capture routine enables the control engine 2 to receive execution information from exchanges and electronic trading systems that only provide this information over a separate data line to a printer.
Typically, in systems such as the DOT system 8, execution information is sent by DOT to a printer at the broker's backoffice. The execution information is then printed, and manually entered into the broker's accounting system. Moreover, this type of reporting system does not
correlate the execution information received with the orders sent for execution. The print capture routine of the present invention "captures" the execution
information and uses it to automatically update the database 6 so that the execution information is
correlated automatically with order information and so that the execution information can be manipulated at the user workstation 4.
The print capture routine is executed by a dedicated processor. For example, for the DOT system 8, the print capture routine is executed by the DOT In processor 54. For the CSE 12, the print capture routine is executed by the CSE In processor 60.
In the representative embodiment, the print capture routine is run from a batch file from the
Microsoft DOS operating system of the processor (step
602). A DOS text file is maintained to log each message received from the exchange (step 604). On setup, the print capture routine reads stored port configuration information, for example, from a DOS file (step 606). The communication port of the dedicated processor is then initialized (step 608).
The print capture routine can be terminated, for example, by a systems administrator (steps 610 and 612). In the representative embodiment, the print capture routine is terminated by pressing the ESC key on a keyboard associated with the dedicated processor.
The print capture process determines if there is any inbound data on the communications line (step 614). If there is inbound data, the print capture process reads the inbound data from the communications line, formats it and updates the database 6 (step 616). The inbound data is stored as an unprocessed message in the database 6, marked as unprocessed.
Turning now to Fig. 18, there is. illustrated in flow chart form the steps performed by the execution routine of the control engine 2. The execution routine is executed by the execution processor 34. The execution routine, inter alia, processes the messages and execution reports received from the various exchanges and automated trading systems.
In the representative embodiment, the execution routine is run from a batch file from the Microsoft DOS operating system of the processor (step 702). A DOS text file is maintained to log each message processed by the execution routine (step 704).
The execution routine can be terminated, for example, by a systems administrator (step 706). In the representative embodiment, the execution routine is terminated by pressing the ESC key on a keyboard
associated with the dedicated processor.
The execution routine determines if it is time to purge information in the database 6. If the preset purge time is reached, the execution routine will
terminate and a purge program will be executed (steps 708 and 710). Upon completion of the daily purge, the execution routine is restarted.
The execution routine determines if there are any unprocessed messages that have been received from an exchange or automated trading system (step 712). As stated above, unprocessed messages received from the exchanges are stored in the database 6 and marked as unprocessed. An unprocessed message is selected from the database 6 for processing (step 714).
The execution routine determines the unprocessed message's message type (step 716). Possible message types include execution report, order
acknowledgement and reject. At this stage, the message is still in the format specified by the exchange's message protocol. Accordingly, the execution routine, in carrying out this step, examines the message to determine what exchange it was received from and thereafter parses the fields of the message according to the format
specified by the exchange's message protocol to determine the message type (step 718).
If the message type is an execution report (step 720), the order tables in the database 6 are updated as follows:
a. If the executed quantity equals the order quantity, then the execution routine changes the status of the order in the database 6 to
"executed".
b. If the executed quantity is less than the order quantity and the order has the current status of "new" (i.e., not yet acknowledged), then the execution routine changes the status of the order in the database 6 to "active".
The database is accordingly updated with the new status information for the selected order, the database is updated with the other execution information in the format required by the database 6 and the
unprocessed message is deleted (step 726).
If the message type is not an execution report (step 720), the order tables in the database 6 are updated as follows:
a. If the message is a reject message, caused by no response from the exchange, and the order has the current status of "new", then the execution routine changes the status of the order in the database 6 to "held".
b. If the message is a reject caused by no response from the exchange, and the order has a status of "active", then the execution routine changes all order information to be the same as it was at the last known good status. The CTCI message field indicates that the changes were not posted due to no response.
c. If the message is a reject message, caused by the order being skipped by the CTCI of the exchange, and the order has the current status of "new", then the execution routine changes the status of the order in the database 6 to "held".
d. If the message is not a reject message and the order has the current status of "new", then the execution routine changes the status of the order in the database 6 to "active". e. If the message is a broken execution message (i.e, for a busted trade) and the order has the current status of "executed", then the execution routine changes the status of the order in the database 6 to "active". (Also, the order quantity is returned to "the preexecution" quantity, less any intervening trades.)
Information can be communicated between the control engine 2 and each user workstation 4 using the following techniques. The information that is exchanged, for example, order information or execution information, is stored in the database 6. In one embodiment,
information exchanges are driven by the user workstation 4. For example, when the order management process -100 needs to supply information to the control engine in relation to an order, the order management process 100 formats an appropriate queue row. A queue row is a row in one of the database 6 tables, where the database acts as a queue. When information is added to the table by, for example, the order management process 100 at the user workstation, that row is marked as unprocessed or new. The processor (e.g. 46, 48 or 52) at the control engine 2 that is to process that queue row (e.g., the order in the new message queue), examines the appropriate table in the database for unprocessed queue rows, and if finds one, retrieves that information from the database 6. (See step 509 of Fig. 16).
The user workstation 4 receives information from the control engine 2 by constantly examining certain tables in the database to see if information has been added to a table (for example, by the execution processor 34) that concerns a process or function operating on the user workstation 4. Unread information is marked in the database 6. Thus, when a process running on the user workstation 4 needs information, it examines the
appropriate table in the database 6 (and using an SQL query) retrieves the appropriate information.
In an alternative embodiment, the control engine 2 can be designed to send information to a user workstation 4 when a user workstation 4 logs in and thereafter when new information concerning the processes or functions running on a workstation 4 is received by the control engine 2.
The booth workstation 14 in the representative embodiment is a processor coupled to a printer and also coupled to a screen that has a graphical user interface. The processes performed at the booth workstation 14 include a log-on process, an exit process, a save changes process, an orders process and a printer process.
The printer process allows orders routed from the control engine 4 to be printed or displayed on a print window. The user of the booth processor, typically a floor trader, will receive orders to be executed from the printer or the print window.
The orders process shows the status of orders routed to this booth workstation 14. The orders process displays the status of the orders on a screen display, called an Orders Window, similar in format and contents to the BV window 250 discussed at Figs. 10-12 above.
In the representative embodiment, when the order has been executed or if the user of the booth workstation 14 wishes to update the status of an order that has been sent to the booth workstation for
execution,, the user will simply click on the order as displayed in the Orders Window. The user will then, for example, fill in the execution price and execution quantity. The status of the order will, where
appropriate, change to executed. The user will then select a save icon, causing execution of the save changes process.
The save changes process, if selected by the user at the booth workstation 14, writes the new
information to the database 6 at the control engine 2. The modified information will then be queued by the control engine so that it can be sent to the correct user's user workstation 4 for display.
The system of the present invention allows easy manipulation of order and execution information. The database 6 of the present invention stores information concerning orders and executions and thereby allows users, at a user workstation 4, to retrieve and sort this information, allocate executions to specific accounts, determine the average price for an order and perform other back office functions without having to reenter any information. Accordingly, the present invention
integrates trading with existing portfolio management and back office systems, thereby creating a "paperless transaction."
A Trade Blotter function will be discussed as an example of a back office function that can be
performed by the system of the present invention. The Trade Blotter function is executed by the user
workstation 4 of the present invention. The Trade
Blotter function allows entry of trade allocations for the current day's trades. The Trade Blotter is activated by selecting a Trade Blotter Icon from the Window
operating system level. A Log-on Window obtains the user-id and
password information and allows or denies access to the system. The user group for the user is determined, thereby determining what view of the database 6 this user will have access to and which allocations (i.e., trades) the user may see or act on.
First, the Trade Blotter function selects and transfers all trades from the database 6, usually all trades that took place on that day, that were placed by the user. The Trade Blotter function automatically enters the trades in a Blotter window. Those orders that were not entered in or processed by the present invention can be entered manually.
Allocations with the same side and symbol can be combined and price averaged to reduce exchange ticket charges. The user can choose to average 2, 3 or 4 decimal places for each account within the "group" of accounts being averaged. At the end of the day when all tickets have been entered and prices averaged, the last sale prices are retrieved. This is done by another application, namely, a Create Prices application.
A Post Blotter application creates transactions in a Transactions table of the database 6. It also updates the positions for each account and creates broker commission records. (For example, if traders using the system receive sales commissions, then the Post Blotter application can create the correct broker commission records by accessing the database 6, examining the day's trades for a particular broker, and calculating the required commission.)
The Trade Blotter can be printed. Also, the user can create an Upload File, which is a file created from the allocations, i.e., a file containing all executed trades that are to be cleared by the designated clearing entity. Typically, the Upload File is uploaded to a designated clearing entity. The file is built per the specifications provided by the designated clearing entity. Additionally, if the user selects an "Upload to Clearing" function, the designated clearing entity will be dialed via, for example, a modem, and the Upload File thereafter will be transmitted to the designated clearing entity.
Other back office applications can be added to the system of the present invention. Each back office application can be customized so that it can communicate with and supply information to the user' s existing accounting and computer systems. The following is a list of back office applications that are incorporated as part of the system of the present invention. Each of these applications is stand-alone and has a separate Log-on Window.
1. Transaction Maintenance application. This application is used to add initial positions and change any mistakes posted from the Trade Blotter for an
account.
2. Groups Maintenance application. This application is used to add and delete accounts from
Groups. Groups are mainly used when creating a report for a particular group of accounts.
3. Accounts Maintenance application. This application is mainly used to add new accounts. It can also be used to change account information but is seldom used as such because a broker application, discussed below, applies account changes downloaded from a
nominated broker.
4. Symbols Maintenance application. This application is used to enter and change symbols, such as, for example, when a new stock is listed on an exchange, to add that stocks ticker symbol.
5. Prices Maintenance application. This application is used to enter, change or add prices. It can also be used to inquire on price fluctuations for symbols. (These prices are stored in the database 6. They are uploaded to the database 6 by a batch process at the end of each day or at other regular intervals, accessing an online source of price information.)
6. Realized Report application. This application generates a profit and loss (or "Realized") report for an account for a date range.
7. Unrealized Report application. This application generates a report showing the positions for an account, listing, for example, the cost, market value, present profit or loss and percentage of assets for each position.
8. Purchase and Sale Report application. This application generates a report showing all buys, cover shorts, sells and sell shorts for an account for a date range. A typical date range may be for the current day only, thereby producing an end of day report. Fig. 19 shows a typical end of day report.
9. Commission Report application. This application generates a broker commission report from broker commission records created by the Trade Blotter function.
10. Stock Splits application. This application creates stock split transactions in the
Transactions record of the database 6 for a split date.
11. Create Prices application. This application updates the Prices table in the database 6 by the application program that receives information from the online source of price and/or market information 16. The updated prices are required, for example, so the Unrealized Report application can compute the market value of each position.
12. Broker application. This application downloads daily transactions, balances, positions and account changes from the designated clearing entity and updates the appropriate files. The designated clearing entity is coupled to the control engine 2 of the present invention and is supplied with information about the day's executed orders. The designated clearing entity then performs the regular clearing function for those trades.
Accordingly, the present invention includes a plurality of computer-to-computer interfaces, each to a source of liquidity; a sophisticated user interface; a number of "front-end" applications, such as the FOE system; and numerous "back-office" applications.
Figure imgf000082_0001
Figure imgf000083_0001
Figure imgf000084_0001
Figure imgf000085_0001
Figure imgf000086_0001

Claims

WHAT IS CLAIMED IS:
1., A computerized order entry, routing and reporting system for receiving and routing an order that includes order information to an electronic trading system and for reporting execution information including information about the execution of the order on the electronic trading system, the system comprising:
a control engine coupled to a plurality of electronic trading systems; and
a user workstation coupled to the control engine, the user workstation including a screen display, the user workstation receiving the order and
electronically transmitting the order to the control engine and displaying the order information on the screen display;
the control engine, upon receipt of the order from the user workstation, automatically and
electronically routes the order to one of the plurality of electronic trading systems, and electronically receives the execution information concerning the order from the one of the plurality of electronic trading systems,
the control engine automatically correlating the execution information with the order information and electronically transmitting the execution information to the user workstation,
the user workstation displaying the execution information correlated with the displayed order
information.
2. The order entry, routing and reporting system of claim 1 wherein the order is received by the user workstation from a user.
3. The order entry, routing and reporting system of claim 1 wherein the order is received by the user workstation from an expert system.
4. The order entry, routing and reporting system of claim 1 wherein the order is received by the user workstation from an applications program.
5. The order entry, routing and reporting system of claim 1 wherein the control engine is coupled to the user workstation by a private wide area network.
6. The order entry, routing and reporting system of claim 1 wherein the control engine is coupled to the user workstation by a wide area network.
7. The order entry, routing and reporting system of claim 1 wherein the control engine is coupled to the user workstation by a modem.
8. The order entry, routing and reporting. system of claim 1 wherein the order information is displayed in a different color to the execution information.
9. The order entry, routing and reporting system of claim 1 wherein the order includes price information.
10. The order entry, routing and reporting system, of claim 1 wherein the order includes quantity
information.
11. The order entry, routing and reporting system of claim 1 wherein the order includes routing
information.
12. The order entry, routing and reporting system of claim 1 wherein the order includes Good Until information.
13. The order entry, routing and reporting system of claim 1 wherein the order is a buy order.
14. The order entry, routing and reporting system of claim 1 wherein the order is a sell order.
15. The order entry, routing and reporting system of claim 1 wherein the order is a sell short order.
16. The order entry, routing and reporting system of claim 1 wherein the order is a cover short order.
17. The order entry, routing and reporting system of claim 1 wherein the order is an order for a stock.
18. The order entry, routing and reporting system of claim 1 wherein the order is an order for an option.
19. The order entry, routing and reporting system of claim 1 wherein the order is an order for a bond.
20. The order entry, routing and reporting system of claim 1 wherein the order is an order for a future.
21. The order entry, routing and reporting system of claim 1 wherein the order is an order for a
derivative .
22. The order entry, routing and reporting system of claim 1 wherein the order is an order for currency.
23. The order entry, routing and reporting system of claim 1 wherein the user workstation is further coupled to an on-line source of price information.
24. The order entry, routing and reporting system of claim 1 wherein control engine comprises a plurality of processors coupled together over a local area network.
25. A computerized order entry, routing and
reporting system comprising:
a control engine coupled to a plurality of electronic trading systems, the control engine including a database; and
a user workstation coupled to the control engine and including a screen display, the user
workstation receiving an order and electronically
transmitting the order to the control engine and
displaying information about the order on the screen display;
the control engine, upon receipt of the order from the user workstation, stores the order in the database, and automatically and electronically routes the order to one of the plurality of electronic trading systems, and electronically receives an execution report concerning the order from the electronic trading system, stores the execution report in the database and
automatically and electronically makes information in the stored execution report available to the user
workstation, the information in the stored execution report being electronically transmitted by the control engine to the user workstation,
the user workstation displaying the information in the stored execution report on the screen display adjacent to the displayed information about the order.
26. A computerized real-time order entry, routing and reporting system for receiving and routing an order that includes order information to an electronic trading system and for reporting execution information including information about the execution of the order on the electronic trading system, the system comprising:
a control engine coupled to a plurality of electronic trading systems; and
a user workstation coupled to the control engine, the user workstation including a screen display, the user workstation receiving the order and
electronically transmitting the order to the control engine and, in real-time, displaying the order
information on the screen display;
the control engine, upon receipt of the order from the user workstation, automatically and
electronically routes the order to one of the plurality of electronic trading systems, and electronically
receives, in real-time, the execution information
concerning the order from the one of the plurality of electronic trading systems, the execution information being automatically correlated with the order information and electronically transmitted by the control engine to the user workstation,
the user workstation displaying the execution information in real-time on the screen display correlated with the displayed order information.
27. A computerized order entry, routing and reporting system for receiving and routing an order that includes order information to an electronic trading system and for reporting execution information including information about the execution of the order on the electronic trading system, the system comprising:
a control engine coupled to a plurality of electronic trading systems; and
a user workstation coupled to the control engine, the user workstation including a screen display, the user workstation receiving the order and electronically transmitting the order to the control engine and displaying the order information on the screen display;
the control engine being responsive to receipt of the order from the user workstation to automatically and electronically route the order to one of the
plurality of electronic trading systems, and the control engine electronically receives the execution information concerning the order from the one of the plurality of electronic trading systems and being responsive to receipt of the execution information to electronically transmit the received execution information to the user workstation, the execution information being
automatically correlated with the order information for display on the screen display correlated with the displayed order information.
28. A computerized order entry, routing and reporting system comprising:
a control engine coupled to a plurality of electronic trading systems; and
a user workstation including a screen display, coupled to the control engine, the user workstation receiving as input an order and electronically
transmitting the order to the control engine and
displaying information about the order on the screen display such that the information about the order is displayed on one line of the screen display;
the control engine, upon receipt of the order from the user workstation, automatically and
electronically routes the order to one of the plurality of electronic trading systems, and electronically receives execution information related to the order from the one of the plurality of electronic trading systems, and automatically and electronically transmits the execution information to the user workstation, the user workstation displaying the execution information on the same line of the screen display as the information about the order.
29. A computerized order entry, routing and
reporting system comprising:
a control engine coupled to a plurality of electronic trading systems; and
a user workstation including a screen display, coupled to the control engine, the user workstation receiving as input an order and electronically
transmitting the order to the control engine and
displaying information about the order on the screen display such that the information about the order is displayed on one line of the screen display;
the control engine, upon receipt of the order from the user workstation, automatically and
electronically routes the order to one of the. plurality of electronic trading systems, and electronically
receives execution information related to the order from the one of the plurality of electronic trading systems, automatically correlates the execution information with the order information, and automatically and
electronically transmits the execution information to the user workstation,
the user workstation displaying the execution information on the same line of the screen display as the information about the order.
30. A computerized order entry, routing and reporting system for receiving and routing an order that includes order information to an electronic trading system and for reporting execution information including information about the execution of the order on the electronic trading system, the system comprising:
a control engine coupled to an electronic trading system; and a user workstation coupled to the control engine, the user workstation including a screen display, the user workstation receiving the order and
electronically transmitting the order to the control engine and displaying the order information on the screen display;
the control engine, upon receipt of the order from the user workstation, automatically and
electronically routes the order to the electronic trading system, and electronically receives the execution
information concerning the order from the electronic trading system, the execution information being
automatically correlated with the order information and electronically transmitted by the control engine to the user workstation,
the user workstation displaying the execution information on the screen display correlated with the displayed order information.
31. A computerized order entry, routing and
reporting system for receiving and routing an order that includes order information to an electronic trading system and for reporting execution information including information about the execution of the order on the electronic trading system, the system comprising:
a control engine coupled to a plurality of electronic trading systems;
a first workstation coupled to the control engine and including a first screen display;
a second workstation coupled to the control engine and including a second screen display, the second workstation receiving the order and electronically transmitting the order to the control engine and causing the order information to be displayed on the first screen display;
the control engine, upon receipt of the order from the second workstation, automatically and electronically routes the order to one of the plurality of electronic trading systems, and electronically receives the execution information concerning the order from the one of the plurality of electronic trading systems, the execution information being automatically correlated with the order information and electronically transmitted by the control engine to the first
workstation,
the first workstation displaying the execution information on the first screen display correlated with the displayed order information.
32. The system of claim 31 wherein the second workstation causes the order information to be displayed on the second display screen.
33. The system of claim 31 wherein the second workstation causes the execution information to be displayed on the second display screen.
34. A computerized order entry, routing and reporting system for receiving and routing orders that include order information to electronic trading systems and for reporting execution information including information about the execution of the orders on the electronic trading systems, the system comprising:
a control engine coupled to a plurality of electronic trading systems; and
a user workstation coupled to the control engine, the user workstation including a screen display, the user workstation receiving a plurality of orders and electronically transmitting the plurality of orders to the control engine and displaying order information for each of the plurality of orders on the screen display;
the control engine, upon receipt of the plurality of orders from the user workstation,
automatically and electronically routes each one of the plurality of orders to a different one of the plurality of electronic trading systems, and electronically
receives the execution information concerning each one of the plurality of orders from the plurality of electronic trading systems, the control engine correlating the execution information for each of the plurality of orders with the order information for each of the plurality of orders and electronically transmitting the execution information for each of the plurality of orders to the user workstation,
the user workstation displaying the execution information on the screen display correlated with the order information.
35. A computerized order entry, routing and reporting system for receiving and routing an order that includes order information to an electronic trading system and for reporting execution information including information about the execution of the order on the electronic trading system, the system comprising:
a control engine coupled to a plurality of electronic trading systems; and
a user workstation coupled to the control engine, the user workstation including a screen display, the user workstation receiving the order and
electronically transmitting the order to the control engine;
the control engine, upon receipt of the order from the user workstation, automatically and
electronically routes the order to one of the plurality of electronic trading systems, and electronically receives the execution information concerning the order from the one of the plurality of electronic trading systems,
the control engine automatically correlating the execution information with the order information and electronically transmitting the execution information to the user workstation,
the user workstation displaying the order information on the screen display and displaying the execution information correlated with the displayed order information.
36. A computerized order entry, routing and
reporting system for receiving and routing an order that includes order information to an electronic trading system and for reporting execution information including information about the execution of the order on the electronic trading system, the system comprising:
a control engine coupled to a plurality of electronic trading systems; and
a user workstation coupled to the control engine, the user workstation including a screen display, the user workstation receiving the order and a routing instruction, the routing instruction identifying one of the plurality of electronic trading systems, and
electronically transmitting the order to the control engine and displaying the order information and the routing instruction on the screen display;
the control engine, upon receipt of the order from the user workstation, automatically and
electronically routes the order to the one of the plurality of electronic trading systems identified by the routing instruction, and electronically receives the execution information concerning the order from the one of the plurality of electronic trading systems identified by the routing instruction, the execution information being automatically correlated with the order information and electronically transmitted by the control engine to the user workstation for display on the display device with the displayed order information.
37. A computerized order entry, routing and
reporting system comprising:
a control engine coupled to a plurality of electronic trading systems, the control engine including a database;
an expert system generating an order; and a user workstation intercoupling the control engine and the expert system, the user workstation including a screen display, the user workstation
receiving the order from the expert system and
electronically transmitting the order to the control engine and displaying information about the order on the screen display;
the control engine, upon receipt of the order from the user workstation, stores the order in the database, and automatically and electronically routes the order to one of the plurality of electronic trading systems, and electronically receives an execution report concerning the order from the electronic trading system, stores the execution report in the database and
automatically and electronically makes information in the stored execution report available to the user
workstation, the information in the stored execution report being electronically transmitted by the control engine to the user workstation,
the user workstation displaying a portion of the information in the stored execution on the screen display adjacent to the information about the order.
38. A computerized order entry, routing and reporting system for receiving and routing an order that includes order information to an electronic trading system and for reporting execution information including information about the execution of the order on the electronic trading system, the system comprising:
a control engine coupled to a plurality of electronic trading systems; an expert system for processing execution information and for generating an order; and
a user workstation coupled to the control engine and the expert system, the user workstation including a screen display, the user workstation
receiving the order from the expert system,
electronically transmitting the order to the control engine and displaying the order information for the order on the screen display;
the control engine, upon receipt of the order from the user workstation, automatically and
electronically routes the order to one of the plurality of electronic trading systems, and electronically
receives the execution information concerning the order from the one of the plurality of electronic trading systems, the execution information being automatically correlated with the order information and electronically transmitted by the control engine to the user workstation for display on the display device correlated with the order information and for transmission by the user workstation to the expert system.
39. A computerized order entry, routing and reporting system for receiving and routing an order that includes order information to an electronic trading system and for reporting execution information including information about the execution of the order on the electronic trading system, the system comprising:
a control engine coupled to a plurality of electronic trading systems; and
a user workstation coupled to the control engine, the user workstation receiving the order and electronically transmitting the order to the control engine;
the control engine, upon receipt of the order from the user workstation, automatically and
electronically routes the order to one of the plurality of electronic trading systems, and electronically receives the execution information concerning the order from the one of the plurality of electronic trading systems,
the control engine automatically correlating the execution information with the order information and electronically transmitting the execution information to the user workstation,
the user workstation making the execution information available to an expert system.
40. A computerized order entry, routing and reporting system for receiving and routing an order that includes order information to an electronic trading system and for reporting execution information including information about the execution of the order on the electronic trading system, the system comprising:
a control engine coupled to a plurality of electronic trading systems; and
a user workstation coupled to the control engine and to an expert system, the user workstation receiving the order and electronically transmitting the order to the control engine;
the control engine, upon receipt of the order from the user workstation, automatically and
electronically routes the order to one of the plurality of electronic trading systems, and electronically receives the execution information concerning the order from the one of the plurality of electronic trading systems,
the control engine automatically correlating the execution information with the order information and electronically transmitting the execution information to the user workstation,
the user workstation electronically transmitting the execution information to the expert system in real-time.
41. A computerized order entry, routing and reporting system for receiving and routing an order that includes order information to an electronic trading system and for reporting execution information including information about the execution of the order on the electronic trading system, the system comprising:
a control engine coupled to a plurality of electronic trading systems; and
a user workstation coupled to the control engine and including an expert system, the user
workstation receiving the order and electronically transmitting the order to the control engine;
the control engine, upon receipt of the order from the user workstation, automatically and
electronically routes the order to one of the plurality of electronic trading systems, and electronically receives the execution information concerning the order from the one of the plurality of electronic trading systems,
the control engine automatically correlating the execution information with the order information and electronically transmitting the execution information to the user workstation,
the user workstation electronically transmitting the execution information to the expert system in real-time.
42. A computerized order entry, routing and reporting system for receiving and routing an order that includes order information to an electronic trading system and for reporting execution information including information about the execution of the order on the electronic trading system, the system comprising:
a control engine coupled to a plurality of electronic trading systems; and
a user workstation coupled to the control engine, the user workstation receiving the order and electronically transmitting the order to the control engine;
the control engine, upon receipt of the order from the user workstation, automatically and
electronically routes the order to one of the plurality of electronic trading systems, and electronically receives the execution information concerning the order from the one of the plurality of electronic trading systems,
the control engine automatically correlating the execution information with the order information and electronically transmitting the execution information to the user workstation,
the user workstation making the execution information available to an application program.
43. A computerized order entry, routing and reporting system for receiving and routing an order that includes order information to an electronic trading system and for reporting execution information including information about the execution of the order on the electronic trading system, the system comprising:
a control engine coupled to a plurality of electronic trading systems; and
a user workstation coupled to the control engine and including an application program, the user workstation receiving the order and electronically transmitting the order to the control engine;
the control engine, upon receipt of the order from the user workstation, automatically and
electronically routes the order to one of the plurality of electronic trading systems, and electronically receives the execution information concerning the order from the one of the plurality of electronic trading systems,
the control engine automatically correlating the execution information with the order information and electronically transmitting the execution information to the user workstation,
the user workstation electronically
transmitting the execution information to the application program in real-time.
44. A computerized order entry, routing and reporting system for receiving and routing an order that includes order information to an electronic trading system and for reporting execution information including information- about the execution of the order on the electronic trading system, the system comprising:
a control engine coupled to a plurality of electronic trading systems; and
a user workstation coupled to the control engine, the user workstation receiving the order and electronically transmitting the order to the control engine;
the control engine, upon receipt of the order from the user workstation, automatically and
electronically routes the order to one of the plurality of electronic trading systems, and electronically receives the execution information concerning the order from the one of the plurality of electronic trading systems,
the control engine automatically correlating the execution information with the order information and electronically transmitting the execution information to the user workstation,
the user workstation making the execution information available to a neural, network.
45. A computerized order entry, routing and reporting system for receiving and routing an order that includes order information to an electronic trading system and for reporting execution information including information about the execution of the order on the electronic trading system, the system comprising:
a control engine coupled to a plurality of electronic trading systems; and
a user workstation coupled to the control engine and to a neural network, the user workstation receiving the order and electronically transmitting the order to the control engine;
the control engine, upon receipt of the order from the user workstation, automatically and
electronically routes the order to one of the plurality of electronic trading systems, and electronically receives the execution information concerning the order from the one of the plurality of electronic trading systems,
the control engine automatically correlating the execution information with the order information and electronically transmitting the execution information to the user workstation,
the user workstation electronically transmitting the execution information to the neural network in real-time.
46. A computerized order entry, routing and reporting system for receiving and routing an order that includes order information to an electronic trading system and for reporting execution information including information about the execution of the order on the electronic trading system, the system comprising:
a plurality of electronic trading systems; a control engine coupled to the plurality of electronic trading systems; and
a user workstation coupled to the control engine, the user workstation including a screen display, the user workstation receiving the order and
electronically transmitting the order to the control engine and displaying the order information on the screen display;
the control engine, upon receipt of the order from the user workstation, automatically and
electronically routes the order to one of the plurality of electronic trading systems, and electronically
receives the execution information concerning the order from the one of the plurality of electronic trading systems,
the control engine automatically correlating the execution information with the order information and electronically transmitting the execution information to the user workstation,
the user workstation displaying the execution information correlated with the displayed order
information.
47. A computerized order entry, routing and
reporting system for receiving and routing an order that includes order information to a broker on the floor of an exchange and for reporting execution information
including information about the execution of the order, the system comprising:
a control engine;
a booth workstation electronically coupled to the control engine and located on the floor of an
exchange, the booth workstation including an attached printer and a first screen display with a graphical user interface; and
a user workstation electronically coupled to the control engine, the user workstation including a second screen display, the user workstation receiving the order and electronically transmitting the order to the control engine and displaying the order information on the second screen display;
the control engine, upon receipt of the order from the user workstation, automatically and electronically routes the order to the booth workstation where the order is printed at the attached printer and displayed on the first screen display,
the booth workstation receiving the execution information concerning the order at the graphical user interface of the booth workstation and electronically transmitting the execution information to the control engine,
the control engine receiving the execution information, automatically correlating the execution information with the order information and electronically transmitting the execution information to the user workstation,
the user workstation displaying the execution information on the second screen with the displayed order information.
48. A computerized order entry, routing and
reporting system for receiving and routing an order that includes order information and for reporting execution information including information about the execution of the order, the system comprising:
a control engine;
a trading workstation electronically coupled to the control engine, the trading workstation including a first input/output device having a graphical user interface; and
a user workstation electronically coupled to the control engine, the user workstation including a second input/output device, the user workstation
receiving the order at the second input/output device and electronically transmitting the order to the control engine and displaying the order information on the second input/output device;
the control engine, upon receipt of the order from the user workstation, automatically and
electronically routes the order to the trading workstation for output at the first input/output device for execution, the trading workstation electronically receiving execution information concerning execution of the order at the first input/output device, the trading workstation electronically transmitting the execution information to the control engine, the execution
information being received at the control engine and automatically correlated with the order information and electronically transmitted by the control engine to the user workstation,
the user workstation displaying the execution information at the second input/output device correlated with the displayed order information.
49. A computerized order entry, routing and
reporting system for receiving and routing an order that includes order information and for reporting execution information including information about the execution of the order, the system comprising:
a control engine coupled to a plurality of electronic trading systems;
a plurality of booth workstations
electronically coupled to the control engine, each one of the plurality of booth workstations including an attached printer and a first screen display with a graphical user interface; and
a user workstation electronically coupled to the control engine, the user workstation including a second screen display, the user workstation receiving the order and routing information, the routing information including the electronic trading system or booth
workstation to which the order is to be routed, and electronically transmitting the order and the routing information to the control engine and displaying the order information on the second screen display;
the control engine, upon receipt of the order and routing information from the user workstation, automatically and electronically routes the order to the electronic trading system or booth workstation specified in the routing information, and receives at the control engine the execution information from the electronic trading system or booth workstation specified in the routing information, and automatically correlates the order information and the execution information, and electronically transmits the execution information to the user workstation,
the user workstation displaying the execution information correlated with the order information on the second screen display of the user workstation.
50. A computerized order entry, routing and
reporting system comprising:
a control engine coupled to a plurality of electronic trading systems; and
a user workstation coupled to the control engine and operated by a user, the user workstation including a screen display, the user workstation
receiving an order from the user and electronically transmitting the order to the control engine and
displaying information about the order on the screen display;
the control engine, upon receipt of the order from the user workstation, automatically and
electronically routes the order to one of the plurality of electronic trading systems, and electronically
receives execution information concerning the order from the one of the plurality of electronic trading systems, the execution information being electronically
transmitted by the control engine to the user workstation for display to the user on the screen display.
51. A user workstation for the entry order
information and the display of order and execution information, the user workstation coupled to at least one electronic trading system, the user workstation
comprising:
a processor;
a computer interface, coupled to the processor, coupling the user workstation to the at least one
electronic trading system; and
a graphical user interface controlled by the processor, the graphical user including an order entry window for receiving order information about an order and a book-view window for displaying the order information and execution information about an execution for the order,
the computer interface electronically transmitting the order information to the at least one electronic trading system in real-time and receiving the execution information from the at least one electronic trading system in real time,
the graphical user interface displaying the order information and the execution information on one line of the book-view window in real-time.
52. A user workstation for the entry order
information and the display of order and execution information, the user workstation coupled a plurality of electronic trading systems, the user workstation
comprising:
a processor;
an interface, coupled to the processor, coupling the user workstation to the plurality of electronic trading systems; and
a graphical user interface controlled by the processor, the graphical user including an order entry window for receiving order information about an order and a book-view window for displaying the order information and execution information about an execution for the order, the computer interface electronically
transmitting the order information to one of the
plurality of electronic trading systems in real-time and receiving the execution information from the one of the plurality of electronic trading systems in real time, the graphical user interface displaying the order information and the execution information on one line of the book-view window in real-time.
53. A user workstation for the entry order
information and the display of order and execution information, the user workstation coupled to a plurality of electronic trading systems, the user workstation comprising:
a processor coupled to a plurality of electronic trading systems; and
a graphical user interface controlled by the processor, the graphical user including an order entry window for receiving order information about an order and a book-view window for displaying the order information and execution information about an execution for the order,
the processor electronically transmitting the order information to one of the plurality of electronic trading systems in real-time and receiving the execution information from the one of the plurality of electronic trading systems in real time,
the graphical user interface displaying the order information and the execution information on one line of the book-view window in real-time.
54. A user workstation for the entry order
information and the display of order and execution information, the user workstation coupled to a plurality of electronic trading systems, the user workstation comprising: a processor coupled to a plurality of
electronic trading systems; and
a graphical user interface controlled by the processor, the graphical user including an order entry window for receiving order information and routing information for an order and a book-view window for displaying the order information and execution
information about an execution for the order,
the processor electronically transmitting the order information to one of the plurality of electronic trading systems as determined by the routing information and receiving the execution information from the one of the plurality of electronic trading systems,
the graphical user interface displaying the order information and the execution information on one line of the book-view window.
55. A user workstation for the entry order
information and the display of order and execution information, the user workstation coupled a plurality of electronic trading systems, the user workstation
comprising:
a processor coupled to a plurality of electronic trading systems; and
a graphical user interface controlled by the processor, the graphical user including an order entry window for receiving order information about an order and a book-view window for displaying the order information and execution information about an execution for the order,
the processor electronically transmitting the order information to one of the plurality of electronic trading systems in real-time and receiving the execution information from the one of the plurality of electronic trading systems in real time, the graphical user interface displaying the order information correlated with the execution
information on the book-view window in real-time.
56. A user workstation for the entry order
information and the display of order and execution information, the user workstation coupled a plurality of electronic trading systems, the user workstation
comprising:
a processor coupled to a plurality of electronic trading systems; and
a graphical user interface controlled by the processor, the graphical user including an order entry window for receiving order information and routing information for an order and a book-view window for displaying the order information and execution
information about an execution for the order,
the processor electronically transmitting the order information to one of the plurality of electronic trading systems as determined by the routing information and receiving the execution information from the one of the plurality of electronic trading systems,
the graphical user interface displaying the order information correlated with the execution
information on the book-view window.
57. A method for the entry and routing of orders to a plurality of electronic trading systems, and for the reporting of executions of orders, the method comprising the steps of:
accepting an order at a user workstation, the order including order information;
displaying the order information on a screen display at the user workstation;
electronically transmitting the order to a control engine coupled to a plurality of electronic trading systems; at the control engine, electronically routing the order to one of the plurality of electronic trading systems for execution of the order;
at the control engine, receiving execution information related to the order from the one of the plurality of electronic trading systems to which the order was routed;
at the control engine, correlating the
execution information with the order;
electronically transmitting the execution information from the control engine to the user
workstation; and
displaying the execution information on the screen display at the user interface correlated with the displayed order information.
58. The method of claim 57 wherein the order is accepted from a user operating the user workstation.
59. The method of claim 57 wherein the order is accepted from an expert system coupled to the user workstation.
60. The method of claim 57 wherein the order is accepted from an applications program operating on the user workstation.
61. The method of claim 57 wherein the order information includes price information.
62. The method of claim 57 wherein the order information includes quantity information.
63. The method of claim 57 wherein the order information includes routing information.
64. The method of claim 57 wherein the order information includes Good Until information.
65. The method of claim 57 wherein the order is a buy order.
66. The method of claim 57 wherein the order is a sell order.
67. The method of claim 57 wherein the order is a cover short order.
68. The method of claim 57 wherein the order is a sell short order.
69. The method of claim 57 wherein the order is an order for a stock.
70. The method of claim 57 wherein the order is an order for a bond.
71. The method of claim 57 wherein the order is an order for a future.
72. The method of claim 57 wherein the order is an order for an option.
73. The method of claim 57 wherein the order is an order for a derivative.
74. The method of claim 57 wherein the order is an order for currency.
75. The method of claim 57 further comprising the step of selectively hiding the display of the order information from the display screen.
76. The method of claim 57 further comprising the step of selectively hiding the display of execution infφrmation from the display screen.
77. The method of claim 57 further comprising the step of sorting the execution information displayed on the display screen.
78. The method of claim 57 further comprising the step of sorting the order information displayed on the display screen.
79. The method of claim 57 wherein the execution information includes status information.
80. The method of claim 57 further comprising the step of electronically transmitting the execution
information to a clearing agent.
81. The method of claim 57 further comprising the step of utilizing the execution information to produce a profit and loss statement.
82. The method of claim 57 further comprising the step of utilizing the execution information to produce a purchase and sale report.
83. The method of claim 57 further comprising the step of electronically transmitting the execution
information to an accounting application program.
84. A method for the entry and routing of orders to a plurality of electronic trading systems, and for the real-time reporting of executions of orders, the method comprising the steps of:
accepting an order at a user workstation, the order including order information; displaying the order information on a screen display at the user workstation;
electronically transmitting the order to a control engine coupled to a plurality of electronic trading systems;
at the control engine, electronically routing the order to one of the plurality of electronic trading systems for execution of the order;
at the control engine, receiving execution information related to the order in real-time;
at the control engine, correlating the execution information with the order in real-time;
electronically transmitting the execution information from the control engine to the user
workstation; and
displaying in real-time the execution information on the screen display at the user interface correlated with the displayed order information.
85. A method for the entry and routing of orders to a plurality of electronic trading systems, and for the reporting of executions of orders, the method comprising the steps of:
accepting an order at a user workstation, the order including order information;
displaying the order information on a screen display at the user workstation;
electronically transmitting the order to a control engine coupled to a plurality of electronic trading systems;
at the control engine, electronically routing the order to one of the plurality of electronic trading systems for execution of the order;
at the control engine, receiving execution information related to the order from the one of the plurality of electronic trading systems to which the order was routed; electronically transmitting the execution information from the control engine to the user
workstation;
at the user interface, correlating the execution information with the order information; and
displaying the execution information on the screen display at the user interface correlated with the displayed order information.
86. A method for the entry and routing of orders to a plurality of electronic trading systems, and for the reporting of executions of orders, the method comprising the steps of:
accepting an order at a user workstation, the order including order information;
displaying the order information on a screen display at the user workstation, such that the order information is displayed on one line of the screen display;
electronically transmitting the order to a control engine coupled to a plurality of electronic trading systems;
at the control engine, electronically routing the order to one of the plurality of electronic trading systems for execution of the order;
at the control engine, receiving execution information related to the order from the one of the plurality of electronic trading systems to which the order was routed;
electronically transmitting the execution information from the control engine to the user
workstation; and
displaying the execution information on the screen display on the same line as the displayed order information.
87. A method for the entry and routing of orders to a plurality of electronic trading systems, and for the reporting of executions of orders, the method comprising the steps of:
accepting an order at a user workstation, the order including order information;
accepting a routing instruction at the user workstation, the routing instruction designating one of the plurality of electronic trading systems;
displaying the order information on a screen display at the user workstation;
electronically transmitting the order to a control engine coupled to a plurality of electronic trading systems;
at the control engine, electronically routing the order to the one of the plurality of electronic trading systems designated by the routing instruction for execution of the order;
at the control engine, receiving execution information related to the order from the one of the plurality of electronic trading systems designated in the routing instruction;
at the control engine, correlating the execution information with the order;
electronically transmitting the execution information from the control engine to the user
workstation; and
displaying the execution information on the screen display at the user interface correlated with the displayed order information.
88. A method for the entry and routing of orders to a plurality of electronic trading systems, and for the reporting of executions of orders, the method comprising the steps of:
accepting an order at a user workstation, the order including order information; displaying the order information on a screen display at the user workstation;
electronically transmitting the order to a control engine coupled to a plurality of electronic trading systems;
at the control engine, storing the order in a database;
at the control engine, electronically routing the order to one of the plurality of electronic trading systems for execution of the order;
at the control engine, receiving execution information related to the order from the one of the plurality of electronic trading systems to which the order was routed;
at the control engine, storing the execution information in the database correlated to the order;
electronically transmitting the execution information from the control engine to the user
workstation; and
displaying the execution information on the screen display at the user interface correlated with the displayed order information.
89. A method for the entry and routing of orders to a plurality of electronic trading systems, and for the reporting of executions of orders, the method comprising the steps of:
accepting an order at a user workstation, the order including order information;
displaying the order information on a screen display at the user workstation;
electronically transmitting the order to a control engine coupled to a plurality of electronic trading systems;
at the control engine, storing the order in a database; at the control engine, electronically routing the order to one of the plurality of electronic trading systems for execution of the order;
at the control engine, receiving in real-time execution information related to the order from the one of the plurality of electronic trading systems to which the order was routed;
at the control engine, storing the execution information in the database correlated to the order;
electronically transmitting in real-time the execution information from the control engine to the user workstation;
displaying in real-time the execution information on the screen display at the user workstation correlated with the displayed order information;
at the user workstation, accessing the database to obtain the order and execution information; and
electronically transmitting the order and execution information to a computerized clearing system.
90. A method for the entry and routing of orders to a source of liquidity, and for the reporting of
executions of orders, the method comprising the steps of:
accepting an order at a user workstation, the order including order information;
displaying the order information on a screen display at the user workstation;
electronically transmitting the order to a control engine coupled to a plurality of electronic trading systems and a plurality of booth workstations;
at the control engine, electronically routing the order to either one of the plurality of electronic trading systems or one of the plurality of booth
workstations for execution of the order;
at the control engine, receiving execution information related to the order from the one of the plurality of electronic trading systems or the one of the plurality of booth workstations to which the order was routed;
at the control engine, correlating the execution information with the order;
electronically transmitting the execution information from the control engine to the user
workstation; and
displaying the execution information on the screen display at the user interface correlated with the displayed order information.
91. A method for the entry and routing of orders to a source of liquidity, and for the reporting of
executions of orders, the method comprising the steps of:
accepting an order at a user workstation, the order including order information;
displaying the order information on a screen display at the user workstation;
electronically transmitting the order to a control engine coupled to a plurality of electronic trading systems and a plurality of booth workstations;
at the control engine, electronically routing the order to either one of the plurality of electronic trading systems for electronic execution of the order or to one of the plurality of booth workstations for manual execution of the order;
if the order is routed to one of the plurality of booth workstations,
(i) outputting the order information, (ii) accepting execution information, and (iii) electronically transmitting the execution information to the control engine;
at the control engine, receiving execution information related to the order from the one of the plurality of electronic trading systems or the one of the plurality of booth workstations to which the order was routed;
at the control engine, correlating the execution information with the order;
electronically transmitting the execution information from the control engine to the user
workstation; and
displaying the execution information on the screen display at the user interface correlated with the displayed order information.
92. A method for the entry and routing of orders to one of a plurality of booth workstations, and for the reporting of executions of orders, the method comprising the steps of:
accepting an order at a user workstation, the order including order information;
displaying the order information on a screen display at the user workstation;
electronically transmitting the order to a control engine coupled to a plurality of booth
workstations, each booth workstation including a
graphical user interface;
at the control engine, electronically routing the order to one of the plurality of booth workstations for execution of the order;
at the one of the plurality of booth workstations,
(i) outputting the order information at the graphical user interface of the one of the booth workstations,
(ii) accepting execution information related to the order at the graphical user interface, and
(iii) electronically transmitting the execution information to the control engine; at the control engine, receiving the execution information related to the order from the one of the plurality of booth workstations to which the order was routed;
at the control engine, correlating the execution information with the order;
electronically transmitting the execution information from the control engine to the user
workstation; and
displaying the execution information on the screen display at the user interface correlated with the displayed order information.
93. A method for the entry and routing of orders to a plurality of electronic trading systems, and for the reporting of executions of orders, the method comprising the steps of :
accepting an order at a first user workstation, the order including order information;
displaying the order information on a screen display at a second user workstation;
electronically transmitting the order from the first user workstation to a control engine coupled to a plurality of electronic trading systems;
at the control engine, electronically routing the order to one of the plurality of electronic trading systems for execution of the order;
at the control engine, receiving execution information related to the order from the one of the plurality of electronic trading systems to which the order was routed;
at the control engine, correlating the execution information with the order;
electronically transmitting the execution information from the control engine to the second user workstation; and displaying the execution information on the screen display at the second user interface correlated with the displayed order information.
94. A method for the entry and routing of orders to a plurality of electronic trading systems, and for the reporting of executions of orders, the method comprising the steps of:
accepting an first order at a user workstation, the order including first order information;
displaying the first order information on a screen display at the user workstation;
electronically transmitting the first order to a control engine coupled to a plurality of electronic trading systems;
at the control engine, electronically routing the first order to a first one of the plurality of electronic trading systems for execution of the first order;
accepting a second order at the user workstation, the order including second order
information;
displaying the second order information on the screen display at the user workstation simultaneously with the first order information;
electronically transmitting the second order to the control engine;
at the control engine, electronically routing the second order to a second one of the plurality of electronic trading systems for execution of the second order;
at the control engine, receiving first execution information related to the first order from the first one of the plurality of electronic trading systems to which the first order was routed;
at the control engine, correlating the first execution information with the first order; electronically transmitting the first execution information from the control engine to the user
workstation;
displaying the first execution information on the screen display at the user interface correlated with the displayed first order information;
at the control engine, receiving second
execution information related to the second order from the second one of the plurality of electronic trading systems to which the second order was routed;
at the control engine, correlating the second execution information with the second order;
electronically transmitting the second execution information from the control engine to the user workstation; and
displaying the second execution information on the screen display at the user interface correlated with the displayed second order information, the second execution information displayed simultaneously with the first order information and the first execution
information.
95. A method for the entry and routing of orders generated by an expert system to a plurality of
electronic trading systems, and for the reporting of executions of orders to a user and to the expert system, the method comprising the steps of:
accepting an order at a user workstation from the expert system, the order including order information;
displaying the order information to the user on a screen display at the user workstation;
electronically transmitting the order to a control engine coupled to a plurality of electronic trading systems;
at the control engine, electronically routing the order to one of the plurality of electronic trading systems for execution of the order; at the control engine, receiving execution information related to the order from the one of the plurality of electronic trading systems to which the order was routed;
at the control engine, correlating the execution information with the order;
electronically transmitting the execution information from the control engine to the user
workstation;
displaying the execution information on the screen display at the user interface correlated with the displayed order information; and
electronically transmitting the execution information from the user workstation to the expert system.
96. The method of claim 95 wherein the execution information is transmitted to the expert system in realtime.
97. A method for the entry and routing of orders to a plurality of electronic trading systems, and for the reporting of executions of orders, the method comprising the steps of:
accepting an order at a user workstation, the order including an order quantity;
displaying the order and the order quantity on a screen display at the user workstation;
electronically transmitting the order to a control engine coupled to a plurality of electronic trading systems;
at the control engine, electronically routing the order to one of the plurality of electronic trading systems for execution of the order;
at the one of the plurality of electronic trading systems, executing a first part of the order; at the one of the plurality of electronic trading systems, transmitting execution information related to the execution of the first part of the order, the execution information including an execution
quantity;
at the control engine, receiving the execution information from the one of the plurality of electronic trading systems to which the order was routed;
at the control engine, correlating the execution information with the order;
at the control engine, determining a leaves quantity, the leaves quantity being the order quantity less the execution quantity;
electronically transmitting the execution information and the leaves quantity from the control engine to the user workstation; and
displaying the execution. information and the leaves quantity on the screen display at the user
interface correlated with the displayed order
information.
98. A method for the entry and routing of orders to a plurality of electronic trading systems, and for the reporting of executions of orders, the method comprising the steps of:
accepting an order at a user workstation, the order including order information;
at the user workstation, accepting in relation to the order a gun code;
displaying the order information on a screen display at the user workstation;
at the user workstation, accepting a gun execute instruction, the gun execute instruction
identifying the gun code;
upon receipt of the gun execution instruction and in response thereto, electronically and immediately transmitting the order to a control engine coupled to a plurality of electronic trading systems;
at the control engine, electronically routing the order to one of the plurality of electronic trading systems for execution of the order;
at the control engine, receiving execution information related to the order from the one of the plurality of electronic trading systems to which the order was routed;
at the control engine, correlating the execution information with the order;
electronically transmitting the execution information from the control engine to the user
workstation; and
displaying the execution information on the screen display at the user interface correlated with the displayed order information.
99. The method of claim 98 wherein the gun
execution instruction is received from a user.
100. The method of claim 98 wherein the gun
execution instruction is received from an expert system.
101. The method of claim 98 wherein the gun
execution instruction is received from an application program.
102. The method of claim 98 wherein the gun
execution instruction is received from a neural network.
103. A method for the entry and routing of orders to a plurality of electronic trading systems, and for the reporting of executions of orders, the method comprising the steps of:
accepting an order at a user workstation, the order including order information; at the user workstation, accepting in relation to the order a gun code;
at the user workstation, accepting a gun execute instruction, the gun execute instruction
identifying the gun code;
upon receipt of the gun execution instruction and in response thereto, electronically and immediately transmitting the order to a control engine coupled to a plurality of electronic trading systems;
at the control engine, electronically routing the order to one of the plurality of electronic trading systems for execution of the order;
at the control engine, receiving execution information related to the order from the one of the plurality of electronic trading systems to which the order was routed;
at the control engine, correlating the execution information with the order;
electronically transmitting the execution information from the control engine to the user
workstation; and
displaying the order information correlated with the execution information on the screen display at the user interface.
104. A method for the entry and routing of orders to a plurality of electronic trading systems, and for the reporting of executions of orders, the method comprising the steps of:
accepting an order at a user workstation, the order including order information;
at the user workstation, accepting in relation to the order a gun code;
displaying the order information on a screen display at the user workstation;
electronically transmitting the order and the gun code to a control engine coupled to a plurality of electronic trading systems, the control engine including a database;
storing the order and the gun code in the database;
at the user workstation, accepting a gun execute instruction, the gun execute instruction
identifying the gun code;
upon receipt of the gun execution instruction, electronically transmitting the gun execute instruction to the control engine;
at the control engine, electronically routing the order to one of the plurality of electronic trading systems for execution of the order when the control engine receives the gun execute instruction;
at the control engine, receiving execution information related to the order from the one of the plurality of electronic trading systems to which the order was routed;
at the control engine, correlating the
execution information with the order;
electronically transmitting the execution information from the control engine to the user
workstation; and
displaying the execution information on the screen display at the user interface correlated with the displayed order information.
105. The method of claim 104 wherein the gun execution instruction is received from a user.
106. The method of claim 104 wherein the gun execution instruction is received from an expert system.
107. The method of claim 104 wherein the gun execution instruction is received from an application program.
108. The method of claim 104 wherein the gun
execution instruction is received from a neural network.
109. A method for the entry and routing of orders to a plurality of electronic trading .systems, and for the reporting of executions of orders, the method comprising the steps of:
accepting an order at a user workstation coupled to an expert system, the order including order information;
at the user workstation, accepting in relation to the order a gun code;
displaying the order information on a screen display at the user workstation;
electronically transmitting the order and the gun code to a control engine coupled to a plurality of electronic trading systems, the control engine including a database;
storing the order and the gun code in the database;
at the user workstation, accepting a gun execute instruction, the gun execute instruction
identifying the gun code;
upon receipt of the gun execution instruction, electronically transmitting the gun execute instruction to the control engine;
at the control engine, electronically routing the order to one of the plurality of electronic trading. systems for execution of the order when the control engine receives the gun execute instruction;
at the control engine, receiving execution information related to the order from the one of the plurality of electronic trading systems to which the order was routed;
at the control engine, correlating the execution information with the order; electronically transmitting the execution information from the control engine to the user
workstation; and
at the user workstation, electronically transmitting the execution information to the expert system.
110. The method of claim 109 wherein the gun
execution instruction is received from a user.
111. The method of claim 109 wherein the gun
execution instruction is received from the expert system.
112. The method of claim 109 wherein the gun
execution instruction is received from the expert system in response to execution information.
113. A method for the entry and routing of orders to a plurality of electronic trading systems, and for the reporting of executions of orders, the method comprising the steps of:
accepting a plurality of orders at a user workstation, each one of the plurality of orders
including order information;
displaying the order information for each of the plurality of orders on a screen display at the user workstation;
at the user workstation, accepting a gun code relating to the plurality of orders;
at the user workstation, accepting a gun execute instruction, the gun execute instruction
identifying the gun code;
upon receipt of the gun execution instruction and in response thereto, electronically and immediately transmitting the plurality of orders to a control engine coupled to a plurality of electronic trading systems; at the control engine, electronically routing each one of the plurality of orders to the plurality of electronic trading systems for execution;
at the control engine, receiving from the plurality of electronic trading systems a plurality of execution reports, each one of the plurality of execution reports related to one of the plurality of orders from the plurality of electronic trading systems;
at the control engine, correlating each one of the plurality of execution reports with each one of the plurality of orders as each one of the plurality of execution reports is received by the control engine;
electronically transmitting the plurality of execution reports from the control engine to the user workstation as each one of the plurality of execution reports is received by the control engine; and
displaying the plurality of execution reports on the screen display at the user interface correlated with the displayed order information.
114. A method for the entry and routing of orders to a plurality of electronic trading systems, and for the reporting of executions of orders, the method comprising the steps of:
accepting a plurality of orders at a user workstation, each one of the plurality of orders
including order information;
displaying the order information for each of the plurality of orders on a screen display at the user workstation;
at the user workstation, accepting a gun code relating to the plurality of orders;
electronically transmitting the plurality of orders to a control engine including a database and coupled to a plurality of electronic trading systems;
at the control engine, storing the plurality of orders and the gun code in the database; at the user workstation, accepting a gun execute instruction, the gun execute instruction
identifying the gun code;
upon receipt of the gun execution,
electronically transmitting the gun execution instruction to the control engine;
at the control engine, electronically routing each one of the plurality of orders to the plurality of electronic trading systems for execution when the gun execute instruction is received at the control engine;
at the control engine, receiving from the plurality of electronic trading systems a plurality of execution reports, each one of the plurality of execution reports related to one of the plurality of orders from the plurality of electronic trading systems;
at the control engine, correlating each one of the plurality of execution reports with each one of the plurality of orders as each one of the plurality of execution reports is received by the control engine;
electronically transmitting the plurality of execution reports from the control engine to the user workstation as each one of the plurality of execution reports is received by the control engine; and
displaying the plurality of execution reports on the screen display at the user interface correlated with the displayed order information.
115. A method for the entry and routing of orders to a plurality of electronic trading systems, and for the reporting of executions of orders, the method comprising the steps of:
accepting a plurality of orders at a user workstation, each one of the plurality of orders
including order information;
displaying the order information for each of the plurality of orders on a screen display at the user workstation; at the user workstation, accepting a gun code relating to the plurality of orders;
storing the plurality of orders and the gun code;
at the user workstation, accepting a dollar limit;
at the user workstation, accepting a gun execute instruction, the gun execute instruction
identifying the gun code;
upon receipt of the gun execute instruction and responsive thereto, electronically transmitting a portion of the plurality of orders to a control engine coupled to a plurality of electronic trading systems such that if the portion of orders are executed, the value of the execution will be the dollar amount;
at the control engine, electronically routing the portion of the plurality of orders to the plurality of electronic trading systems for execution;
at the control engine, receiving from the plurality of electronic trading systems a plurality of execution reports, each one of the plurality of execution reports related to one of the plurality of orders from the plurality of electronic trading systems;
at the control engine, correlating each one of the plurality of execution reports with each one of the plurality of orders as each one of the plurality of execution reports is received by the control engine;
electronically transmitting the plurality of execution reports from the control engine to the user workstation as each one of the plurality of execution reports is received by the control engine; and
displaying the plurality of execution reports on the screen display at the user interface correlated with the displayed order information.
116. A method for the entry and routing of orders to a plurality of electronic trading systems, and for the reporting of executions of orders, the method comprising the steps of:
accepting a plurality of orders at a user workstation, each one of the plurality of orders
including order information;
displaying the order information for each of the plurality of orders on a screen display at the user workstation;
at the user workstation, accepting a gun code relating to the plurality of orders;
electronically transmitting the plurality of orders to a control engine and coupled to a plurality of electronic trading systems;
storing the plurality of orders and the gun code;
at the user workstation, accepting a dollar limit;
at the user workstation, accepting a gun execute instruction, the gun execute instruction
identifying the gun code;
electronically transmitting the gun execution instruction and the dollar limit to the control engine;
at the control engine, electronically routing a portion of the plurality of orders to the plurality of electronic trading systems for execution when the gun execute instruction is received at the control engine such that if the portion of orders are executed, the value of the execution will be the dollar amount;
at the control engine, receiving from the plurality of electronic trading systems a plurality of execution reports, each one of the plurality of execution reports related to one of the plurality of orders from the plurality of electronic trading systems;
at the control engine, correlating each one of the plurality of execution reports with each one of the plurality of orders as each one of the plurality of execution reports is received by the control engine; electronically transmitting the plurality of execution reports from the control engine to the user workstation as each one of the plurality of execution reports is received by the control engine; and
displaying the plurality of execution reports on the screen display at the user interface correlated with the displayed order information.
117. A method for the entry and routing of orders to a plurality of electronic trading systems, and for the reporting of executions of orders, the method comprising the steps of:
accepting a plurality of orders at a user workstation, each one of the plurality of orders
including order information;
displaying the order information for each of the plurality of orders on a screen display at the user workstation;
at the user workstation, accepting a gun code relating to the plurality of orders;
storing the plurality of orders and the gun code;
at the user workstation, accepting a percentage limit;
at the user workstation, accepting a gun execute instruction, the gun execute instruction
identifying the gun code;
upon receipt of the gun execution instruction and responsive thereto, electronically transmitting a portion of the plurality of orders to a control engine coupled to a plurality of electronic trading systems such that the percentage of the plurality of orders
transmitted equals the percentage limit;
at the control engine, electronically transmitting the portion of the plurality of orders to the plurality of electronic trading systems for
execution; at the control engine, receiving from the plurality of electronic trading systems a plurality of execution reports, each one of the plurality of execution reports related to one of the plurality of orders from the plurality of electronic trading systems;
at the control engine, correlating each one of the plurality of execution reports with each one of the plurality of orders as each one of the plurality of execution reports is received by the control engine;
electronically transmitting the plurality of execution reports from the control engine to the user workstation as each one of the plurality of execution reports is received by the control engine; and
displaying the plurality of execution reports on the screen display at the user interface correlated with the displayed order information.
118. A method for the entry and routing of orders to a plurality of electronic trading systems, and for the reporting of executions of orders, the method comprising the steps of:
accepting a plurality of orders at a user workstation, each one of the plurality of orders
including order information;
displaying the order information for each of the plurality of orders on a screen display at the user workstation;
at the user workstation, accepting a gun code relating to the plurality of orders;
electronically transmitting the plurality of orders to a control engine including a database and coupled to a plurality of electronic trading systems;
at the control engine, storing the plurality of orders and the gun code in the database;
at the user workstation, accepting a percentage limit; at the user workstation, accepting a gun execute instruction, the gun execute instruction
identifying the gun code;
electronically transmitting the gun execution instruction and the percentage limit to the control engine;
at the control engine, electronically routing a percentage of the plurality of orders to the plurality of electronic trading systems for execution when the gun execute instruction is received at the control engine such that the percentage of the plurality of orders sent for execution equals the percentage limit;
at the control engine, receiving from the plurality of electronic trading systems a plurality of execution reports, each one of the plurality of execution reports related to one of the plurality of orders from the plurality of electronic trading systems;
at the control engine, correlating each one of the plurality of execution reports with each one of the plurality of orders as each one of the plurality of execution reports is received by the control engine;
electronically transmitting the plurality of execution reports from the control engine to the user workstation as each one of the plurality of execution reports is received by the control engine; and
displaying the plurality of execution reports on the screen display at the user interface correlated with the displayed order information.
119. A method for the entry and routing of orders to a plurality of electronic trading systems, and for the reporting of executions of orders, the method comprising the steps of:
accepting an order at a user workstation, the order including order information;
if required by a user, displaying the order information on a screen display at the user workstation; electronically transmitting the order to a control engine coupled to a plurality of electronic trading systems;
at the control engine, electronically routing the order to one of the plurality of electronic trading systems for execution of the order;
at the control engine, receiving execution information related to the order from the one of the plurality of electronic trading systems to which the order was routed;
at the control engine, correlating the execution information with the order;
electronically transmitting the execution information from the control engine to the user
workstation; and
if required by the user, displaying the
execution information on the screen display at the user interface correlated with the displayed order
information.
120. A method for the fast entry of orders by a user at a user workstation including a graphical user
interface and for the routing of the orders to a
plurality of electronic trading systems, the method comprising the steps of:
at a user workstation, displaying on the graphical user interface a plurality of order type buttons, a plurality of symbol buttons, a plurality of routing buttons and an enter order button;
receiving an order type instruction from the user when the user selects one of the plurality of order type buttons;
receiving a symbol instruction from the user when the user selects one of the plurality of symbol buttons; receiving a routing instruction from the user when the user selects one of the plurality of routing buttons;
displaying a pre-selected order quantity on the graphical user interface;
displaying a pre-selected order price on the graphical user interface;
electronically transmitting the order type instruction, the symbol instruction, the routing
instruction, the order quantity and the order price to a control engine coupled to a plurality of electronic trading systems when the user selects the enter order button; and
at the control engine, electronically routing an order for execution to one of the plurality of
electronic trading systems specified by the routing instruction, the order including an order type as
specified by the order type instruction, an instrument as specified by the symbol instruction, the order quantity and the order price.
121. A method for the fast entry of orders by a user at a user workstation including a graphical user
interface and for the routing of the orders to a
plurality of electronic trading systems, the method comprising the steps of:
at a user workstation, displaying on the graphical user interface a plurality of order type buttons, a plurality of symbol buttons, a plurality of routing buttons and an enter order button;
receiving an order type instruction from the user when the user selects one of the plurality of order type buttons;
receiving a symbol instruction from the user when the user selects one of the plurality of symbol buttons; receiving a routing instruction from the user when the user selects one of the plurality of routing buttons;
obtaining an order quantity from a database; displaying the order quantity on the graphical user interface;
obtaining an order price from the database;
displaying the order price on the graphical user interface;
electronically transmitting the order type instruction, the symbol instruction, the routing
instruction, the order quantity and the order price to a control engine coupled to a plurality of electronic trading systems when the user selects the enter order button; and
at the control engine, electronically routing an order for execution to one of the plurality of
electronic trading systems specified by the routing instruction, the order including an order type as
specified by the order type instruction, an instrument as specified by the symbol instruction, the order quantity and the order price.
122. A method for the fast entry of orders by a user at a user workstation including a graphical user
interface and for the routing of the orders for
execution, the method comprising the steps of:
at a user workstation, displaying on the graphical user interface a plurality of order type buttons, a plurality of symbol buttons, a plurality of routing buttons and an enter order button;
receiving an order type instruction from the user when the user selects one of the plurality of order type buttons;
receiving a symbol instruction from the user when the user selects one of the plurality of symbol buttons; receiving a routing instruction from the user when the user selects one of the plurality of routing buttons;
displaying a pre-selected order quantity on the graphical user interface;
displaying an order price related to the current market price on the graphical user interface; and electronically transmitting the order type instruction, the symbol instruction, the routing
instruction, the order quantity and the order price to a control engine for routing by the control engine when the user selects the enter order button.
123. A method for the fast entry of orders by a user at a user workstation including a graphical user
interface and for the routing of the orders for
execution, the method comprising the steps of:
at a user workstation, displaying on the graphical user interface a plurality of order type buttons, a plurality of symbol buttons, a plurality of routing buttons and an enter order button;
receiving an order type instruction from the user when the user selects one of the plurality of order type buttons;
receiving a symbol instruction from the user when the user selects one of the plurality of symbol buttons;
receiving a routing instruction from the user when the user selects one of the plurality of routing buttons;
displaying a pre-selected order quantity on the graphical user interface;
allowing the user to modify the pre-selected order quantity at the graphical user interface;
allowing the user to enter an order price at the graphical user interface; and electronically transmitting the order type instruction, the symbol instruction, the routing
instruction, the order quantity and the order price to a control engine coupled to a plurality of electronic trading systems when the user selects the enter order button.
124. A method for the fast entry of orders by a user at a user workstation including a graphical user
interface and for the routing of the orders for
execution, the method comprising the steps of:
at a user workstation, displaying on the graphical user interface a plurality of order type buttons, a plurality of symbol buttons, a plurality of routing buttons and an enter order button;
receiving an order type instruction from the user when the user selects one of the plurality of order type buttons;
receiving a symbol instruction from the user when the user selects one of the plurality of symbol buttons;
receiving a routing instruction from the user when the user selects one of the plurality of routing buttons;
allowing the user enter an order quantity at the graphical user interface;
allowing the user to enter an order price at the graphical user interface; and
electronically transmitting the order type instruction, the symbol instruction, the routing
instruction, the order quantity and the order price to a control engine coupled to a plurality of electronic trading systems when the user selects the enter order button.
125. A method for the entry and routing of orders to a plurality of electronic trading systems, and for the reporting of executions of orders, the method comprising the steps of:
accepting an order at a user workstation, the order including order information;
displaying the order information on a screen display at the user workstation;
electronically transmitting the order to a control engine coupled to a plurality of electronic trading systems for routing by the control engine to one of the plurality of electronic trading systems;
receiving, in real-time, electronically
transmitted execution information relating to the order from the control engine; and
displaying, in real-time, the execution
information on the screen display at the user interface correlated with the displayed order information.
126. A method for the entry and routing of orders to a plurality of electronic trading systems, and for the reporting of executions of orders, the method comprising the steps of:
receiving on-line market information at a user workstation from an on-line source of market information;
accepting instrument information identifying a instrument at the user workstation, the user workstation including a graphical user interface;
displaying market information about the
instrument on the graphical user interface of the user workstation;
accepting an order at a user workstation related to the instrument, the order including order information;
displaying the order information on a screen display at the user workstation;
accepting a boolean condition at the user workstation; examining the on-line market information to determine if the boolean condition is true;
electronically transmitting the order to a control engine coupled to a plurality of electronic trading systems when the boolean condition becomes true;
at the control engine, electronically routing the order to one of the plurality of electronic trading systems for execution of the order;
at the control engine, receiving execution information related to the order from the one of the plurality of electronic trading systems to which the order was routed;
at the control engine, correlating the execution information with the order;
electronically transmitting the execution information from the control engine to the user
workstation; and
displaying the execution information on the screen display at the user interface correlated with the displayed order information.
127. A method for the entry and routing of orders to a plurality of electronic trading systems, and for the reporting of executions of orders, the method comprising the steps of:
accepting an order at a user workstation, the order including order information;
displaying the order information on a screen display at the user workstation;
electronically transmitting the order to a control engine coupled to a plurality of electronic trading systems, the control engine including an
electronic database;
at the control engine, storing the order in the database; at the control engine, electronically routing the order to one of the plurality of electronic trading systems for execution of the order;
at the user workstation, receiving a command to suspend the order;
at the user workstation, displaying a suspend indicator with the displayed order information on the screen display;
electronically transmitting a cancel order to the control engine to cancel the execution of the order;
at the control engine, electronically routing the cancel order to the one of the plurality of
electronic trading systems; and
modifying the stored order in the database to indicate that the order has been suspended.
128. A method for the entry and routing of orders to a plurality of electronic trading systems, and for the reporting of executions of orders, the method comprising the steps of:
accepting an order at a user workstation, the order including order information;
displaying the order information on a screen display at the user workstation;
electronically transmitting the order to a control engine coupled to a plurality of electronic trading systems, the control engine including an
electronic database;
at the control engine, storing the order in the database;
at the control engine, electronically routing the order to one of the plurality of electronic trading systems for execution of the order;
at the user workstation, receiving a suspend command to suspend the order; at the user workstation, displaying a suspend indicator with the displayed order information on the screen display;
electronically transmitting a cancel order to the control engine to cancel the execution of the order;
at the control engine, electronically routing the cancel order to the one of the plurality of
electronic trading systems;
modifying the stored order in the database to indicate that the order has been suspended;
at the user workstation, receiving a release command to release the suspended order;
at the user workstation, replacing the display of the suspend indicator with a release indicator on the screen display;
electronically transmitting a release order to the control engine to execution of the order;
at the control engine, retrieving the order from the database; and
at the control engine, electronically routing the order to the one of the plurality of electronic trading systems for re-entry of the order.
129. A method for the entry and routing of orders to a plurality of electronic trading systems, and for the reporting of executions of orders, the method comprising the steps of:
accepting an order at a user workstation, the order including order information;
electronically transmitting the order to a control engine coupled to a plurality of electronic trading systems;
at the control engine, electronically routing the order to one of the plurality of electronic trading systems for execution of the order;
at the control engine, receiving execution information related to the order from the one of the plurality of electronic trading systems to which the order was routed;
at the control engine, correlating the
execution information with the order;
electronically transmitting the execution information from the control engine to the user
workstation;
displaying the order information on a screen display at the user workstation; and
displaying the execution information on the screen display at the user interface correlated with the displayed order information.
PCT/US1994/009398 1993-08-23 1994-08-22 Real-time automated trading system WO1995006918A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU76714/94A AU7671494A (en) 1993-08-23 1994-08-22 Real-time automated trading system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11066693A 1993-08-23 1993-08-23
US08/110,666 1993-08-23

Publications (2)

Publication Number Publication Date
WO1995006918A2 true WO1995006918A2 (en) 1995-03-09
WO1995006918A3 WO1995006918A3 (en) 1995-04-13

Family

ID=22334235

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1994/009398 WO1995006918A2 (en) 1993-08-23 1994-08-22 Real-time automated trading system

Country Status (2)

Country Link
AU (1) AU7671494A (en)
WO (1) WO1995006918A2 (en)

Cited By (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0845749A2 (en) * 1996-11-28 1998-06-03 Hitachi, Ltd. Electronic commerce support method and apparatus
WO1999019821A1 (en) * 1997-10-14 1999-04-22 Derivatives Net, Inc. Systems, methods and computer program products for electronic trading of financial instruments
US5950177A (en) * 1995-04-27 1999-09-07 Optimark Technologies, Inc. Crossing network utilizing optimal mutual satisfaction density profile
US6012046A (en) * 1995-12-12 2000-01-04 Optimark Technologies, Inc. Crossing network utilizing satisfaction density profile with price discovery features
US6098051A (en) * 1995-04-27 2000-08-01 Optimark Technologies, Inc. Crossing network utilizing satisfaction density profile
US6112189A (en) * 1997-03-19 2000-08-29 Optimark Technologies, Inc. Method and apparatus for automating negotiations between parties
GB2352849A (en) * 1999-03-15 2001-02-07 Gary Renner Virtual marketplace
US6393409B2 (en) 1997-10-31 2002-05-21 Morgan Stanley Dean Witter & Co. Computer method and apparatus for optimizing portfolios of multiple participants
US6408282B1 (en) * 1999-03-01 2002-06-18 Wit Capital Corp. System and method for conducting securities transactions over a computer network
US20030018569A1 (en) * 1999-10-06 2003-01-23 Joshua Eisenthal Enhanced interface for communicating with a handheld trading system
US6671676B1 (en) * 2000-05-04 2003-12-30 Metreo Markets, Inc. Method and apparatus for analyzing and allocating resources of time-varying value using recursive lookahead
US6968318B1 (en) 1997-05-15 2005-11-22 Itg Software Solutions, Inc. Computer method and system for intermediated exchanges
US6983259B1 (en) 2000-06-23 2006-01-03 Ebs Group Limited Anonymous trading system
US6996540B1 (en) 1997-10-14 2006-02-07 Blackbird Holdings, Inc. Systems for switch auctions utilizing risk position portfolios of a plurality of traders
US7024386B1 (en) 2000-06-23 2006-04-04 Ebs Group Limited Credit handling in an anonymous trading system
EP1690227A2 (en) * 2003-11-18 2006-08-16 eSPEED, Inc. System and method for managing relationships between brokers and traders
US7130823B1 (en) 1995-09-14 2006-10-31 Citibank Aktiengesellschaft Computer system for data management and method for operation of the system
US7184982B1 (en) 2000-06-23 2007-02-27 Ebs Group Limited Architecture for anonymous trading system
US7333952B1 (en) 2000-06-23 2008-02-19 Ebs Group Limited Compound order handling in an anonymous trading system
US7366690B1 (en) 2000-06-23 2008-04-29 Ebs Group Limited Architecture for anonymous trading system
US7418422B2 (en) 2002-11-13 2008-08-26 Trading Technologies International, Inc. Method, apparatus and interface for trading multiple tradeable objects
US7523064B2 (en) 2002-11-13 2009-04-21 Trading Technologies International, Inc. System and method for facilitating trading of multiple tradeable objects in an electronic trading environment
US7571134B1 (en) 2002-11-13 2009-08-04 Trading Technologies International, Inc. Trading interface for facilitating trading of multiple tradeable objects in an electronic trading environment
US7610240B2 (en) 2002-02-19 2009-10-27 Trading Technologies International, Inc. System and method for simulating an electronic trading environment
US7685051B2 (en) 2002-05-31 2010-03-23 Intercontinentalexchange, Inc. System for settling over the counter trades
US7693775B2 (en) 2003-01-21 2010-04-06 Lavaflow, Inc. Automated system for routing orders for financial instruments based upon undisclosed liquidity
US7752121B2 (en) 2006-04-04 2010-07-06 Omx Technology Ab Trader order preservation in trading system
US7761368B2 (en) 2000-05-16 2010-07-20 Blackbird Holdings, Inc. Systems and methods for conducting derivative trades electronically
US7774260B2 (en) 2000-06-23 2010-08-10 Ebs Group Limited Deal matching in an anonymous trading system
US7827085B1 (en) 2000-06-23 2010-11-02 Ebs Group Limited Conversational dealing in an anonymous trading system
US7970686B1 (en) 2000-09-15 2011-06-28 Citigroup Global Markets, Inc. System and method of interfacing for client application programs to access a data management system
US8027902B2 (en) 2003-11-18 2011-09-27 Bgc Partners, Inc. System and method for managing relationships between brokers and traders using a messaging format
US8117105B2 (en) 2007-04-18 2012-02-14 Pulse Trading, Inc. Systems and methods for facilitating electronic securities transactions
US8170945B2 (en) 2004-01-15 2012-05-01 Bgc Partners, Inc. System and method for providing security to a game controller device for electronic trading
US8469808B2 (en) 2004-01-15 2013-06-25 Bgc Partners, Inc. System and method for managing a game controller device for electronic trading
US8478687B2 (en) 1999-10-14 2013-07-02 Edge Capture, Llc Automated trading system in an electronic trading exchange
US8521627B2 (en) 2007-04-18 2013-08-27 Blockross Holdings, LLC Systems and methods for facilitating electronic securities transactions
US8660940B2 (en) 2000-07-18 2014-02-25 Edge Capture Llc Automated trading system in an electronic trading exchange
US9727916B1 (en) 1999-12-30 2017-08-08 Chicago Board Options Exchange, Incorporated Automated trading exchange system having integrated quote risk monitoring and integrated quote modification services
US9824395B2 (en) 2003-01-31 2017-11-21 Trading Technologies International, Inc. System and method for displaying profit related information in an electronic trading environment
US9892459B2 (en) 2003-12-04 2018-02-13 Goldman Sachs & Co. LLC Methods and apparatus for routing securities orders
US9928550B2 (en) 1999-12-30 2018-03-27 Cboe Exchange, Inc. Automated trading exchange system having integrated quote risk monitoring and integrated quote modification services
US10223747B2 (en) 2001-05-09 2019-03-05 Bgc Partners, Inc. Controlling traders from manipulating electronic trading markets
US10304097B2 (en) 2004-01-29 2019-05-28 Bgc Partners, Inc. System and method for controlling the disclosure of a trading order
US10395310B2 (en) 2005-08-04 2019-08-27 Bgc Partners, Inc. System and method for apportioning trading orders based on size of displayed quantities
US10424015B2 (en) 2005-08-05 2019-09-24 Bgc Partners, Inc. Managing trading orders based on priority
US10565646B2 (en) 2015-08-05 2020-02-18 Trading Technologies International, Inc. Methods and apparatus to internalize trade orders
US10592984B2 (en) 2005-03-24 2020-03-17 Bgc Partenrs, Inc. Systems and methods for protecting against erroneous price entries in the electronic trading of financial and other instruments
US10817938B2 (en) 2005-06-07 2020-10-27 Bgc Partners, Inc. Systems and methods for routing trading orders
US10817937B1 (en) 2003-02-28 2020-10-27 Trading Technologies International, Inc. Method and system for internal matching
US11010834B2 (en) 2006-04-04 2021-05-18 Bgc Partners, Inc. System and method for optimizing execution of trading orders
US20210278944A1 (en) * 2002-10-31 2021-09-09 Bgc Partners, Inc. Keyboard trading system
US11620705B2 (en) 2007-03-15 2023-04-04 Bgc Partners, Inc. System and method for providing an operator interface for displaying market data, trader options, and trader input

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6850907B2 (en) 1996-12-13 2005-02-01 Cantor Fitzgerald, L.P. Automated price improvement protocol processor
US7136834B1 (en) 2000-10-19 2006-11-14 Liquidnet, Inc. Electronic securities marketplace having integration with order management systems
US7207885B2 (en) 2004-01-15 2007-04-24 Espeed, Inc. System and method for using a game controller device for electronic trading

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4677552A (en) * 1984-10-05 1987-06-30 Sibley Jr H C International commodity trade exchange
US5077665A (en) * 1989-05-25 1991-12-31 Reuters Limited Distributed matching system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4677552A (en) * 1984-10-05 1987-06-30 Sibley Jr H C International commodity trade exchange
US5077665A (en) * 1989-05-25 1991-12-31 Reuters Limited Distributed matching system

Cited By (115)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5950177A (en) * 1995-04-27 1999-09-07 Optimark Technologies, Inc. Crossing network utilizing optimal mutual satisfaction density profile
US6098051A (en) * 1995-04-27 2000-08-01 Optimark Technologies, Inc. Crossing network utilizing satisfaction density profile
US7130823B1 (en) 1995-09-14 2006-10-31 Citibank Aktiengesellschaft Computer system for data management and method for operation of the system
US6012046A (en) * 1995-12-12 2000-01-04 Optimark Technologies, Inc. Crossing network utilizing satisfaction density profile with price discovery features
US6996535B1 (en) 1996-11-28 2006-02-07 Hitachi, Ltd. Electronic commerce support method and apparatus
EP0845749A3 (en) * 1996-11-28 2000-02-09 Hitachi, Ltd. Electronic commerce support method and apparatus
EP0845749A2 (en) * 1996-11-28 1998-06-03 Hitachi, Ltd. Electronic commerce support method and apparatus
US6112189A (en) * 1997-03-19 2000-08-29 Optimark Technologies, Inc. Method and apparatus for automating negotiations between parties
US6968318B1 (en) 1997-05-15 2005-11-22 Itg Software Solutions, Inc. Computer method and system for intermediated exchanges
US6317727B1 (en) 1997-10-14 2001-11-13 Blackbird Holdings, Inc. Systems, methods and computer program products for monitoring credit risks in electronic trading systems
US6421653B1 (en) 1997-10-14 2002-07-16 Blackbird Holdings, Inc. Systems, methods and computer program products for electronic trading of financial instruments
US7689497B2 (en) 1997-10-14 2010-03-30 Blackbird Holdings, Inc. Switch engine for risk position discovery in an electronic trading system
US7571136B2 (en) 1997-10-14 2009-08-04 Blackbird Holdings, Inc. Methods for risk portfolio management within an electronic trading system
US6996540B1 (en) 1997-10-14 2006-02-07 Blackbird Holdings, Inc. Systems for switch auctions utilizing risk position portfolios of a plurality of traders
WO1999019821A1 (en) * 1997-10-14 1999-04-22 Derivatives Net, Inc. Systems, methods and computer program products for electronic trading of financial instruments
US7613652B2 (en) 1997-10-31 2009-11-03 Morgan Stanley Computer methods and apparatus for optimizing portfolios of multiple participants
US6393409B2 (en) 1997-10-31 2002-05-21 Morgan Stanley Dean Witter & Co. Computer method and apparatus for optimizing portfolios of multiple participants
US6408282B1 (en) * 1999-03-01 2002-06-18 Wit Capital Corp. System and method for conducting securities transactions over a computer network
GB2352849A (en) * 1999-03-15 2001-02-07 Gary Renner Virtual marketplace
US20030018569A1 (en) * 1999-10-06 2003-01-23 Joshua Eisenthal Enhanced interface for communicating with a handheld trading system
US8725621B2 (en) 1999-10-14 2014-05-13 Dcfb Llc Automated trading system in an electronic trading exchange
US8498923B2 (en) 1999-10-14 2013-07-30 Edge Capture, Llc Automated trading system in an electronic trading exchange
US8478687B2 (en) 1999-10-14 2013-07-02 Edge Capture, Llc Automated trading system in an electronic trading exchange
US10891692B2 (en) 1999-10-14 2021-01-12 Dcfb Llc Automated trading system in an electronic trading exchange
US9846910B2 (en) 1999-10-14 2017-12-19 Dcfb Llc Automated trading system in an electronic trading exchange
US9727916B1 (en) 1999-12-30 2017-08-08 Chicago Board Options Exchange, Incorporated Automated trading exchange system having integrated quote risk monitoring and integrated quote modification services
US9928550B2 (en) 1999-12-30 2018-03-27 Cboe Exchange, Inc. Automated trading exchange system having integrated quote risk monitoring and integrated quote modification services
US6671676B1 (en) * 2000-05-04 2003-12-30 Metreo Markets, Inc. Method and apparatus for analyzing and allocating resources of time-varying value using recursive lookahead
US7761368B2 (en) 2000-05-16 2010-07-20 Blackbird Holdings, Inc. Systems and methods for conducting derivative trades electronically
US7774260B2 (en) 2000-06-23 2010-08-10 Ebs Group Limited Deal matching in an anonymous trading system
US7024386B1 (en) 2000-06-23 2006-04-04 Ebs Group Limited Credit handling in an anonymous trading system
US8639607B2 (en) 2000-06-23 2014-01-28 Ebs Group Limited Conversational dealing in an anonymous trading system
US8090643B2 (en) 2000-06-23 2012-01-03 Ebs Group Limited Compound order handling in an anonymous trading system
US8027895B2 (en) 2000-06-23 2011-09-27 Ebs Group Limited Architecture for anonymous trading system
US7937306B2 (en) 2000-06-23 2011-05-03 Ebs Group Limited Architecture for anonymous trading system
US8566221B2 (en) 2000-06-23 2013-10-22 Ebs Group Limited Compound order handling in an anonymous trading system
US7882017B2 (en) 2000-06-23 2011-02-01 Ebs Group Limited Deal matching in an anonymous trading system
US7366690B1 (en) 2000-06-23 2008-04-29 Ebs Group Limited Architecture for anonymous trading system
US7333952B1 (en) 2000-06-23 2008-02-19 Ebs Group Limited Compound order handling in an anonymous trading system
US7827085B1 (en) 2000-06-23 2010-11-02 Ebs Group Limited Conversational dealing in an anonymous trading system
US6983259B1 (en) 2000-06-23 2006-01-03 Ebs Group Limited Anonymous trading system
US7184982B1 (en) 2000-06-23 2007-02-27 Ebs Group Limited Architecture for anonymous trading system
US8732048B2 (en) 2000-07-18 2014-05-20 Edge Capture, Llc Automated trading system in an electronic trading exchange
US10832322B2 (en) 2000-07-18 2020-11-10 Dcfb Llc Automated trading system in an electronic trading exchange
US8660940B2 (en) 2000-07-18 2014-02-25 Edge Capture Llc Automated trading system in an electronic trading exchange
US10810668B2 (en) 2000-07-18 2020-10-20 Dcfb Llc Automated trading system in an electronic trading exchange
US7970686B1 (en) 2000-09-15 2011-06-28 Citigroup Global Markets, Inc. System and method of interfacing for client application programs to access a data management system
US10223747B2 (en) 2001-05-09 2019-03-05 Bgc Partners, Inc. Controlling traders from manipulating electronic trading markets
US8239315B2 (en) 2002-02-19 2012-08-07 Trading Technologies International, Inc. System and method for simulating an electronic trading environment
US7672895B2 (en) 2002-02-19 2010-03-02 Trading Technologies International, Inc. System and method for simulating an electronic trading environment
US8694414B2 (en) 2002-02-19 2014-04-08 Trading Technologies International, Inc System and method for simulating an electronic trading environment
US7610240B2 (en) 2002-02-19 2009-10-27 Trading Technologies International, Inc. System and method for simulating an electronic trading environment
US10304131B2 (en) 2002-02-19 2019-05-28 Trading Technologies International, Inc. System and method for simulating an electronic trading environment
US7685051B2 (en) 2002-05-31 2010-03-23 Intercontinentalexchange, Inc. System for settling over the counter trades
US7904377B2 (en) 2002-05-31 2011-03-08 Intercontinentalexchange, Inc. System for settling over the counter trades
US11704017B2 (en) * 2002-10-31 2023-07-18 Bgc Partners, Inc. Keyboard trading system
US20210278944A1 (en) * 2002-10-31 2021-09-09 Bgc Partners, Inc. Keyboard trading system
US8321331B2 (en) 2002-11-13 2012-11-27 Trading Technologies International, Inc. Method, apparatus and interface for trading multiple tradeable objects
US7571134B1 (en) 2002-11-13 2009-08-04 Trading Technologies International, Inc. Trading interface for facilitating trading of multiple tradeable objects in an electronic trading environment
US8332304B2 (en) 2002-11-13 2012-12-11 Trading Technologies International, Inc. Trading interface for facilitating trading of multiple tradeable objects in an electronic trading environment
US7418422B2 (en) 2002-11-13 2008-08-26 Trading Technologies International, Inc. Method, apparatus and interface for trading multiple tradeable objects
US7512561B2 (en) 2002-11-13 2009-03-31 Trading Technologies International, Inc. Method, apparatus and interface for trading multiple tradeable objects
US10755353B2 (en) 2002-11-13 2020-08-25 Trading Technologies International, Inc. Trading interface for facilitating trading of multiple tradeable objects in an electronic trading environment
US10755352B2 (en) 2002-11-13 2020-08-25 Trading Technologies International, Inc. System and method for facilitating trading of multiple tradeable objects in an electronic trading environment
US10726481B2 (en) 2002-11-13 2020-07-28 Trading Technologies International, Inc. Method, apparatus and interface for trading multiple tradeable objects
US8655766B2 (en) 2002-11-13 2014-02-18 Trading Technologies International, Inc System and method for facilitating trading of multiple tradeable objects in an electronic trading environment
US7523064B2 (en) 2002-11-13 2009-04-21 Trading Technologies International, Inc. System and method for facilitating trading of multiple tradeable objects in an electronic trading environment
US8015100B2 (en) 2002-11-13 2011-09-06 Trading Technologies International, Inc. Method, apparatus, and interface for trading multiple tradeable objects
US9773280B2 (en) 2002-11-13 2017-09-26 Trading Technologies International, Inc. Trading interface for facilitating trading of multiple tradeable objects in an electronic trading environment
US7774267B2 (en) 2002-11-13 2010-08-10 Trading Technologies International, Inc. System and method for facilitating trading of multiple tradeable objects in an electronic trading environment
US9760948B2 (en) 2002-11-13 2017-09-12 Trading Technologies International, Inc. Method, apparatus and interface for trading multiple tradeable objects
US8768822B2 (en) 2002-11-13 2014-07-01 Trading Technologies International, Inc. Trading interface for facilitating trading of multiple tradeable objects in an electronic trading environment
US8793181B2 (en) 2002-11-13 2014-07-29 Trading Technologies International, Inc. Method, apparatus and interface for trading multiple tradeable objects
US9679334B2 (en) 2002-11-13 2017-06-13 Trading Technologies International, Inc. System and method for facilitating trading of multiple tradeable objects in an electronic trading environment
US7627519B2 (en) 2002-11-13 2009-12-01 Trading Technologies International, Inc. Method, apparatus and interface for trading multiple tradeable objects
US7693775B2 (en) 2003-01-21 2010-04-06 Lavaflow, Inc. Automated system for routing orders for financial instruments based upon undisclosed liquidity
US9824395B2 (en) 2003-01-31 2017-11-21 Trading Technologies International, Inc. System and method for displaying profit related information in an electronic trading environment
US9972050B2 (en) 2003-01-31 2018-05-15 Trading Technologies International, Inc. System and method for displaying profit related information in an electronic trading environment
US10102574B2 (en) 2003-01-31 2018-10-16 Trading Technologies International, Inc. Systems and method for displaying money management information in an electronic trading environment
US10817937B1 (en) 2003-02-28 2020-10-27 Trading Technologies International, Inc. Method and system for internal matching
US11120501B2 (en) 2003-02-28 2021-09-14 Trading Technologies International, Inc. Method and system for internal matching
EP1690227A4 (en) * 2003-11-18 2007-03-21 Espeed Inc System and method for managing relationships between brokers and traders
US8027902B2 (en) 2003-11-18 2011-09-27 Bgc Partners, Inc. System and method for managing relationships between brokers and traders using a messaging format
JP2007511847A (en) * 2003-11-18 2007-05-10 イースピード, インコーポレイテッド System and method for managing relationships between brokers and traders
EP1690227A2 (en) * 2003-11-18 2006-08-16 eSPEED, Inc. System and method for managing relationships between brokers and traders
US8725587B2 (en) 2003-11-18 2014-05-13 Bgc Partners, Inc. System and method for managing relationships between brokers and traders
US7562045B2 (en) 2003-11-18 2009-07-14 Bgc Partners, Inc. System and method for managing relationships between brokers and traders
JP2014194790A (en) * 2003-11-18 2014-10-09 Bgc Partners Inc System and method of managing relationship between broker and trader
US10757085B2 (en) 2003-11-18 2020-08-25 Bgc Partners, Inc. System and method for managing relationships between brokers and traders
JP2016095857A (en) * 2003-11-18 2016-05-26 ビージーシー パートナーズ,インコーポレイテッド System and method for managing relationship between broker and trader
JP4871730B2 (en) * 2003-11-18 2012-02-08 ビージーシー パートナーズ,インコーポレイテッド System and method for managing relationships between brokers and traders
JP2018067324A (en) * 2003-11-18 2018-04-26 ビージーシー パートナーズ,インコーポレイテッド System and method for managing relationship between broker and trader
US9892459B2 (en) 2003-12-04 2018-02-13 Goldman Sachs & Co. LLC Methods and apparatus for routing securities orders
US8469808B2 (en) 2004-01-15 2013-06-25 Bgc Partners, Inc. System and method for managing a game controller device for electronic trading
US8170945B2 (en) 2004-01-15 2012-05-01 Bgc Partners, Inc. System and method for providing security to a game controller device for electronic trading
US10810667B2 (en) 2004-01-15 2020-10-20 Bgc Partners, Inc. System and method for providing security to a game controller device for electronic trading
US10304097B2 (en) 2004-01-29 2019-05-28 Bgc Partners, Inc. System and method for controlling the disclosure of a trading order
US11244365B2 (en) 2004-01-29 2022-02-08 Bgc Partners, Inc. System and method for controlling the disclosure of a trading order
US11397987B2 (en) 2005-03-24 2022-07-26 Bgc Partners, Inc. Systems and methods for protecting against erroneous price entries in the electronic trading of financial and other instruments
US10592984B2 (en) 2005-03-24 2020-03-17 Bgc Partenrs, Inc. Systems and methods for protecting against erroneous price entries in the electronic trading of financial and other instruments
US11625777B2 (en) 2005-06-07 2023-04-11 Bgc Partners, Inc. System and method for routing a trading order based upon quantity
US10817938B2 (en) 2005-06-07 2020-10-27 Bgc Partners, Inc. Systems and methods for routing trading orders
US11094004B2 (en) 2005-08-04 2021-08-17 Espeed, Inc. System and method for apportioning trading orders based on size of displayed quantities
US10395310B2 (en) 2005-08-04 2019-08-27 Bgc Partners, Inc. System and method for apportioning trading orders based on size of displayed quantities
US11030693B2 (en) 2005-08-05 2021-06-08 Bgc Partners, Inc. System and method for matching trading orders based on priority
US10424015B2 (en) 2005-08-05 2019-09-24 Bgc Partners, Inc. Managing trading orders based on priority
US11010834B2 (en) 2006-04-04 2021-05-18 Bgc Partners, Inc. System and method for optimizing execution of trading orders
US7752121B2 (en) 2006-04-04 2010-07-06 Omx Technology Ab Trader order preservation in trading system
US11620705B2 (en) 2007-03-15 2023-04-04 Bgc Partners, Inc. System and method for providing an operator interface for displaying market data, trader options, and trader input
US8521627B2 (en) 2007-04-18 2013-08-27 Blockross Holdings, LLC Systems and methods for facilitating electronic securities transactions
US8117105B2 (en) 2007-04-18 2012-02-14 Pulse Trading, Inc. Systems and methods for facilitating electronic securities transactions
US8583544B2 (en) 2007-04-18 2013-11-12 State Street Global Markets, Llc Systems and methods for facilitating electronic securities transactions
US11270378B2 (en) 2015-08-05 2022-03-08 Trading Technologies International, Inc. Methods and apparatus to internalize trade orders
US10565646B2 (en) 2015-08-05 2020-02-18 Trading Technologies International, Inc. Methods and apparatus to internalize trade orders
US11631134B2 (en) 2015-08-05 2023-04-18 Trading Technologies International, Inc. Methods and apparatus to internalize trade orders

Also Published As

Publication number Publication date
WO1995006918A3 (en) 1995-04-13
AU7671494A (en) 1995-03-22

Similar Documents

Publication Publication Date Title
WO1995006918A2 (en) Real-time automated trading system
US20200364789A1 (en) Interactive grid-based graphical trading system for real time security trading
US5243331A (en) Keypad for computer system
US5297031A (en) Method and apparatus for order management by market brokers
US7024387B1 (en) Automated system for conditional order transactions in securities or other items in commerce
US7685054B2 (en) System and method for real-time options trading over a global computer network
EP0752135B1 (en) Computerized stock exchange trading system
US7430532B2 (en) System and method for trade entry
US20170287071A1 (en) Method and System for Quantity Entry
US20080270321A1 (en) System and method for real-time options trading over a computer network
US20070005481A1 (en) Real time graphical user interface for on-line trading
US20080288391A1 (en) Method and system for automatically inputting, monitoring and trading spreads
US20100076907A1 (en) Method and system for automatically inputting, monitoring and trading risk- controlled spreads
US20030004853A1 (en) Graphical front end system for real time security trading
US20100076906A1 (en) Method and system for using quantitative analytics on a graphical user interface for electronic trading
US20060095361A1 (en) Methods and apparatus for automatic settlement of foreign securities trades in trader's operating currency
US20060184447A1 (en) Automated system for conditional order transactions in securities or other items in commerce
JP2012074047A (en) Network and method for dealing in derivative with enhanced visibility of rfq
WO2006121814A2 (en) Method and apparatus for display of data with respect to certain tradable interests
US8706593B2 (en) System for access to and exchange of market data
JP2003050912A (en) Financial order management system using information system
WO2004061729A2 (en) Interactive real time grid-based graphical trading system
US20080168128A1 (en) System for providing immediate assistance in an electronic trading system
WO2002007041A2 (en) A method and system for investment integration

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AM AT AU BB BG BR BY CA CH CN CZ DE DK ES FI GB GE HU JP KE KG KP KR KZ LK LT LU LV MD MG MN MW NL NO NZ PL PT RO RU SD SE SI SK TJ TT UA UZ VN

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): KE MW SD AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN ML MR NE SN TD TG

AK Designated states

Kind code of ref document: A3

Designated state(s): AM AT AU BB BG BR BY CA CH CN CZ DE DK ES FI GB GE HU JP KE KG KP KR KZ LK LT LU LV MD MG MN MW NL NO NZ PL PT RO RU SD SE SI SK TJ TT UA UZ VN

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): KE MW SD AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase in:

Ref country code: CA