U.S. patent application number 12/780361 was filed with the patent office on 2011-01-13 for products and processes for differentiating trading orders.
Invention is credited to Matthew W. Claus, James R. Driscoll.
Application Number | 20110010285 12/780361 |
Document ID | / |
Family ID | 39795965 |
Filed Date | 2011-01-13 |
United States Patent
Application |
20110010285 |
Kind Code |
A1 |
Driscoll; James R. ; et
al. |
January 13, 2011 |
PRODUCTS AND PROCESSES FOR DIFFERENTIATING TRADING ORDERS
Abstract
In various embodiments, a data signal differentiates between
real and test trading orders and a computer system processes the
orders based on differing values.
Inventors: |
Driscoll; James R.; (New
York, NY) ; Claus; Matthew W.; (Summit, NJ) |
Correspondence
Address: |
INNOVATION DIVISION
CANTOR FITZGERALD, L.P., 110 EAST 59TH STREET (6TH FLOOR)
NEW YORK
NY
10022
US
|
Family ID: |
39795965 |
Appl. No.: |
12/780361 |
Filed: |
May 14, 2010 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
11695257 |
Apr 2, 2007 |
7747516 |
|
|
12780361 |
|
|
|
|
Current U.S.
Class: |
705/37 |
Current CPC
Class: |
G06Q 40/06 20130101;
G06Q 40/025 20130101; G06Q 40/04 20130101; G06Q 40/00 20130101 |
Class at
Publication: |
705/37 |
International
Class: |
G06Q 40/00 20060101
G06Q040/00 |
Claims
1. A data signal transmitting to a trading and processing computer
system indicating that an order is a test order, thereby
instructing the trading and processing computer system to process
said test order differently from a real order such that no
transaction with said test order occurs.
2. The signal of claim 1 wherein said signal includes said test
order.
3. A data signal transmitting to a trading and processing computer
system comprising a flag value, a data format, or account
information, and an order, wherein said flag value, said data
format, or said account information indicates that an order is a
test order, thereby instructing the trading and processing computer
system to process said test order differently from a real order
such that no transaction with said test order occurs.
4. A data signal indicating whether a test order was matched,
transmitted from a trading and processing computer system to an
originator of said test order.
5. A data signal indicating whether a test order was executed,
transmitted from a trading and processing computer system to an
originator of said test order.
6. A data signal indicating that a test order was not matched,
transmitted from a trading and processing computer system to an
originator or said test order, said data signal also indicating
either (1) at least one of price, time of execution, or
creditworthiness of a closest order in price, time of execution, or
creditworthiness or (2) difference between at least one of price,
time of execution, or creditworthiness of said closest order to
said test order.
7. A trading and processing computer system designed to trade
instruments and process real orders and test orders, and designed
to transmit the data signal defined by any one of claims 1 and 3-7.
Description
BACKGROUND
[0001] A securities exchange includes a computer system for trading
securities. Instrument is synonymous with a security. A computer
system includes one or more computers. A trading computer system
includes structure and code for receiving orders, storing orders in
an order book, matching bids and offers in the order book,
executing orders in the order book, and reporting on status of
orders and executions.
[0002] An order means an instruction placed with a securities
exchange to buy or sell a quantity of securities under certain
conditions. An order specifies that it is either a bid or an offer,
and specifies a price, a quantity, and an identify of the market
participant entity placing the order.
[0003] A bid is an order to buy. An offer is an order to sell.
[0004] An order book means a list of orders, including bid orders
and offer orders.
[0005] Matching means associating a bid having a price that equals
or exceeds an offer price, with the offer.
[0006] Executing an order means updating the order book to indicate
changes to the order as a result of a matching involving the
order.
[0007] Transaction means a legally binding contract that binds the
parties whose matching bid and offer were executed to tender the
securities or money specified in their respective orders.
[0008] Done, with respect to an order, means the order was fully
executed such that no quantity remains in the order book associated
with that order.
[0009] Settlement means payment in exchange for legal title.
Settlement requires the parties who had placed bids and offers that
were involved in a transaction to tender the security or money
specified by their orders.
[0010] Typically, there is an order book for each security being
traded. Computerized trading systems report on status of an order
to the entity originating the order.
[0011] In exchanges that use clearinghouses, the trading computer
system also reports each executed order to a clearinghouse. A
clearinghouse receives actual securities, reassigns ownership
corresponding to the executed order, and accepts the risk of non
settlement for executed orders.
[0012] Certain exchanges do not use clearinghouses, and in these
exchanges, the trading entities participating in the exchange
accept the risk of non settlement for executed orders.
[0013] Parties accepting the risk of non settlement usually have
risk limiting policies implemented in risk limiting algorithms.
These algorithms are intended to prevent that party from accepting
or executing orders that would extend to another entity credit
exceeding the amount defined by that party's risk limit policy. A
trading computer system may include a risk limiting algorithm.
Variables typically used in risk limiting algorithms include
identify of the legal entity involved in the transaction, and
quantities and values for that entities orders.
[0014] Each trading computer system implements trades using its own
protocol for matching bids to offers. However, the two main
matching protocols are (1) price and time and (2) price and pro
rata. In trading systems implementing a price and time protocol,
for orders specifying the same price, orders placed earlier in time
take priority over orders placed later in time such that the orders
placed earlier in time execute prior to the orders placed later in
time. In trading systems implementing a price and pro rata
protocol, orders having the same price are partially executed at a
pro rata amount against quantity of a matching order.
[0015] There exist variations on the foregoing, such as protocols
implementing last buyer and/or last seller rights. These are rights
accorded to the last buyer or last seller of an instrument to be
the next in line buyer or the next seller of the same instrument
for a period of time, typically on the order of seconds.
[0016] Trading computer systems may be either anonymous, or not
anonymous. Anonymous means that the system provides to traders a
version of the order book that does not include identify of the
legal entities placing the orders.
[0017] A securities exchange typically charges a fee for placing
orders in its trading computer system. Information relating to the
fee may be associated with each order in each order book.
Typically, there is one order book per security. A clearinghouse
typically charges a fee for assuming the risk of non settlement.
Information regarding a clearinghouse fee may be included in the
report of executed transactions transmitted from the trading
computer system to the originators of the orders, and to the
clearinghouse. Information transmitted to a clearinghouse in
association with an execution includes the identity of the legal
entities involved in the executed transaction.
[0018] A conventional order as described above is referred to
herein below as a real order.
[0019] Traders run a variety of tools to test trading strategies.
The goal of such tools is to determine trading strategies that will
result in maximal profit to the trader.
BRIEF DESCRIPTIONS OF THE DRAWINGS
[0020] The figures show elements of embodiments of the inventions.
The same reference number in different figures refers to identical
elements or elements with similar structure or function.
[0021] FIG. 1 is a schematic of an electronic exchange network
including a trading and processing computer system and various
trader, investment company (agent), and clearinghouse computer
systems communicating therewith.
[0022] FIG. 2 is a schematic of a trading and processing computer
system;
[0023] FIG. 3 is a schematic of a computer;
[0024] FIG. 4 is a design view schematic of a first data structure
for an order book for one instrument in a trading and processing
computer system;
[0025] FIG. 5 is a schematic of a second data structure for order
books for one instrument in a trading and processing computer
system, showing two order books, one for processing a test
order;
[0026] FIG. 6 is a flow chart showing processing of orders for an
instrument;
[0027] FIG. 7 is a flow chart showing one embodiment of order book
processing of orders for an instrument, including processing of
tests orders;
[0028] FIGS. 8A-C are flow charts showing alternative order book
processing of orders for an instrument, including processing
matching orders that are both tests orders;
[0029] FIG. 9 is a flow chart showing processing for removal from
the order book of unexecuted orders; and
[0030] FIG. 10 is a data signal specification specifying to a
trading and processing computer system that an order in a data
signal is a test order or a real order, and for specifying to an
originator of a test order that a response is for a response for a
test order or a real order.
DETAILED DESCRIPTION OF THE EMBODIMENTS
[0031] Various embodiments provide traders a means to test trading
strategies on a securities exchange in which actual securities are
traded, and without actually trading securities when testing
trading strategies. To facilitate this in certain embodiments, this
application discloses, among other things, systems and methods for
placing test orders and real orders, processing the test orders and
the real orders, and transmitting results of processing the tests
orders and real orders back to the entities originating the
orders.
[0032] A test order means a new kind of order that does not bind
the party placing the test order to fulfill a contract to tender
the money or securities specified in the test order. A test order
may be used to test the state and response of a trading computer
system. For all embodiments that involve test orders, there are
corresponding embodiments achieved by using other types of orders
in placed of a test order, such as any of various specific types of
test orders, and other orders such as an order that may be
converted from a test order or converted to a test order.
[0033] In an embodiment, a trading and processing computer system
processes a test order similarly to a real order by matching the
test order with another order and then generally executing the test
order, but it does not generate a transaction involving the test
order. In one embodiment, the trading and processing computer
system does not execute a real order matching the test order. In
another embodiment, the test order and all other orders are placed
in a parallel universe, a test order book. The trading and
processing computer system sends a test signal specifying
processing of the test order back to the entity originating the
test order. That test signal may include information normally
contained in a signal sent as a result of submission of a real
order, as well as additional information. The normal information
may include time, price, and quantity of execution. The additional
information may include price difference, time difference, and risk
differential between a real order and the test order if the test
order failed to execute.
[0034] In one aspect, an embodiment provides a computerized method
and system for trading instruments and processing test orders
comprising structure for: receiving, in a trading and processing
computer system, real orders and test orders for an instrument;
matching a test order with a real order in said trading and
processing computer system; responsive to said matching said test
order with said real order, (1) automatically executing said test
order so that said trading and processing computer system reduces a
value for a quantity of said instrument associated with said test
order and (2) not executing said real order so that a value for a
quantity of said instrument associated with said real order remains
unchanged.
[0035] In another aspect, an embodiment provides a computerized
method and system for trading instruments and processing test
orders comprising structure for: receiving, in a trading and
processing computer system, real orders and test orders for an
instrument; entering said real orders for said instrument in an
electronic real order book, wherein read and write access to said
electronic real order book is controlled by said trading and
processing computer system, and wherein said electronic real order
book contains a bid table containing only real bid orders and an
offer table containing only real offer orders; copying said
electronic real order book to generate an electronic test order
book containing a bid table containing said real bid orders and an
offer table containing said real offer orders; and entering into
said electronic test order book a test order.
[0036] Another embodiment provides a method and computer network
for processing a test order comprising structure for: generating a
test order for an instrument in a trader's computer system;
transmitting said test order from said trader's computer system to
a trading and processing computer system; ranking said test order
in said trading and processing computer system; entering said test
order in an order book for said instrument in said trading and
processing computer system; generating a response for said test
order indicating at least whether said test order executed; and
transmitting said response for said test order from said trading
and processing computer system to said trader's computer
system.
[0037] Other embodiments provide novel data signals, including: a
data signal transmitting to a trading and processing computer
system indicating that an order is a test order, thereby
instructing the trading and processing computer system to process
said test order differently from a real order such that no
transaction with said test order occurs; a data signal transmitting
to a trading and processing computer system comprising a flag
value, a data format, or account information, and an order, wherein
said flag value, said data format, or said account information
indicates that an order is a test order, thereby instructing the
trading and processing computer system to process said test order
differently from a real order such that no transaction with said
test order occurs; a data signal indicating whether a test order
was matched, transmitted from a trading and processing computer
system to an originator of said test order; a data signal
indicating whether a test order was executed, transmitted from a
trading and processing computer system to an originator of said
test order; and a data signal indicating that a test order was not
matched, transmitted from a trading and processing computer system
to an originator or said test order, said data signal also
indicating either (1) at least one of price, time of execution, or
creditworthiness of a closest order in price, time of execution, or
creditworthiness or (2) difference between at least one of price,
time of execution, or creditworthiness of said closest order to
said test order.
[0038] Another embodiment provides a computer system on which is
installed a computerized trading program, said computerized trading
program designed to place orders with a trading and processing
computer system, including test orders and real orders, and capable
of being switch from placing test orders to partially or entirely
placing real orders.
[0039] In various aspects, the order specifies at least one price
(including one or more ranges or sets of prices), at least one
quantity (including one or more ranges or sets of quantities), and
an instrument (including one or more instruments). The order may
also specify type, such as real or test, or a connection
identification or previously transmitted information may specify
whether an order is real or test. The order may also specify
parameters, such as limit or market.
[0040] FIG. 1 shows electronic exchange network 1 including trading
and processing computer system 100, individual trader I1's computer
system 10, individual trader I2's computer system 20, individual
trader I3's computer system 30, individual trader I4's computer
system 40, agent A1's computer system 50, agent A2's computer
system 60, clearinghouse C1's computer system 70, and clearinghouse
C2's computer system 80. Lines connecting the aforementioned
computer systems represent data paths enabling data flow between
the computer systems so connected, either wired, wireless, or via
intermediate network nodes. FIG. 1 shows individual trader's
computer systems 10, 20 connecting to computer system 100, thereby
enabling computer systems 10 and 100, and 20 and 100 to communicate
there between, and enabling traders I1, I2 to place orders directly
with computer system 100. FIG. 1 shows individual traders I3, I4
having computer systems 30, 40 separated from computer system 10
via agent computer systems 50, 60. The agent computer systems 50,
60, represent brokerage company computer systems, one for each
brokerage company, with which brokerage companies individuals I3,
I4, have accounts. FIG. 1 shows computer system 100 having data
communication with clearinghouses' computer systems 70, 80.
Optionally, some of all of the aforementioned computer systems may
have addresses on a network such as the Internet, and be capable of
transmitting to and from one another using the network medium.
Three ellipses ". . . " indicate continuation of a series
representing an indefinite number of individuals, brokerage
computer systems, and clearinghouse computer systems. It should be
noted that "individual trader" and similar reference to real people
may also refer to a representative of an artificial legal entity,
such as a corporation or institution, and that an order may be
placed either by persons manually entering data into computers
input devices and instructing them to transmit orders or by trading
programs running on computers and performing part or all of the
order generation and transmission process.
[0041] The functional roll of the computer system 30, 40 is to
place orders on the accounts of individuals I3, I4, with the
computer systems 50, 60 of their respective brokerage agents, and
to receive responses from their agents' computer systems indicating
action on those orders. The functional role of computer systems 10,
20, 50, and 60, is to place orders on their accounts (and in the
case of computer systems 50, 60, on behalf of clients of the
agents) with trading and processing computer system 100. The
functional role of clearinghouse computer systems 70, 80 is to
accept transaction data from trading and processing computer system
100 and effect settlement of those transactions. The functional
role of trading and processing computer system 100 is to accept or
reject orders, manage the order book, by entering, removing,
matching, executing, and transacting orders, and generating and
transmitting responses to the order originators and the
clearinghouses.
[0042] FIG. 2 shows trading and processing computer system 100
including an input/output (I/O) 210, an order/response router, and
a series of internal computer systems 230, 240, . . . . I/O 210 is
structure and optionally also code for receiving orders from
computer systems 10-60, and transmitting responses to computer
system 10-60. Order router 220 is structure and optionally also
code for routing orders for an instrument to the corresponding
computer system 230, 240 . . . designed to process the order book
for that instrument. Computer systems 230, 240, . . . are
functionally identical processing systems each processing the order
books for different instruments. Computer system 230 processes
order book for instrument IN1. Computer system 240 processes order
book for instrument IN2. Optionally, certain order book processing
computer systems may process order books for more than one
instrument.
[0043] In operation, I/O 210 receives orders for computer systems
10-60. Order router 220 routes order for a particular instrument to
the corresponding one of the order book processing computer systems
230, 240, . . . depending upon the instrument specified in the
order. Each order book processing computer system, like computer
system 230, manages adding and removing orders to the order book,
matching orders, executing orders, and transacting orders, and
preferably logging data, and generating responses.
[0044] Alternatively, each one of computer systems 230, 240 may
have their own network address and receive orders transmitted to
that address. In this alternative, computer systems originating
orders (computer systems 10-60) specify the appropriate address of
computer systems 230, 240, . . . for instruments specified in the
orders.
[0045] In any case, computer system 100 preferably transmits
transaction information to clearinghouse computer systems 70, 80,
for the clearinghouses to perform clearing (settlement) of
transactions.
[0046] FIG. 3 schematically illustrates core elements of computer
300, including central processing unit 310 for processing
instructions, memory 320 for storing instructions and data, and I/O
330 for computer 300 communicating with other devices and people.
Each computer may include additional components of various types,
including additional processors, various types of memory, such as
RAM and disk memory, peripheral controllers, monitors, keyboards,
pointing devices, etc. Each computer employs an operating system
and typically is used to run certain applications code. Each
computer system disclosed herein includes at least one computer,
and may include a plurality of computers communicating with one
another and operating in a cooperative fashion.
[0047] FIG. 4 shows an implementation of an order book (electronic
order book) for an instrument implemented in any one of computer
systems 230, 240; order book 400. Order book 400 includes bid table
410 and offer table 420. Fields in each table include rank, price,
quantity, User ID (UID), and type. Type herein means at least real
or test. Rank is preferably included in each table to avoid having
to perform ranking calculations prior to each time the
corresponding computer system checks its order book 400 for a
match. Parameters indicates the possible existence of additional
fields, such as duration of order or alternatively good till cancel
instruction, whether the order is a "market" order, and limitations
on execution of the order. Parameters may include a field
indicating whether an order has previously been matched. UID may
be, or may include, a specification of a network address to send
responses for that order. Alternatively, computer system 230 may
store in a lookup table network addresses to which to send
responses associated with orders from each UID.
[0048] Market orders preferably have their price determined upon
entry into the order book based upon entries existing in the order
book. Thus, actual market orders transmitted from an order placer
may not have a specified price, or may have a dummy price, such as
zero or a negative number.
[0049] Limitations on execution of test orders may include identity
of any matching order. For example, a test order may include a
field specifying that it not be executed only if matched to another
test order, and/or only under certain additional conditions. For
example, the certain additional conditions may be if the matching
order has the same UID, a UID in a range or class, not having the
same UID, or a UID not in a range or class, or a certain order
identifications.
[0050] Another limitation on execution of an order is a flag value
that indicates whether an order has previously been matched. For
example, in one embodiment, a test order may not execute against a
real order having a flag value indicating the real order has
already been matched. Specifically, consider the situation where
the quantity of a test order exceeds the quantity of the real
order. The test order is executed in an amount of the quantity of
the real order, thereby reducing but not eliminating the quantity
of the test order. Since the real order remains in the order book
not executed, the test order would again execute against the same
real order, unless a mechanism exists to prevent that second
execution on the same order. One such prevention mechanism is a
parameter value associated with real orders indicating whether a
real order was previously matched to a test order. Computer system
230 may be programmed to check the value of that parameter for a
real order and not execute a test order matched to that real order.
Alternatively, one or more parameter fields for the test order may
store one or more identifications of the real orders against which
the test order has already executed, and computer system 230 may be
programmed to check values of those parameter fields and not
execute the test order if the currently matching real order has one
of those real order identification values. In both of the foregoing
alternatives in this paragraph, computer system 230 may be
programmed to compare the test order with successively lower ranked
potential matching orders until executions of the test order result
in the test order's quantity reaching zero, and the test order
being removed from the order book.
[0051] In practice, computer system 230 ranks the bids and orders
at least by price, such that computer system 230 can identify and
retrieve for comparison, to see if a match exists, one or more
orders having the lowest offering price and one or more bids having
the highest bid price. Bids are only matched to offers, and offers
are only matched to bids.
[0052] FIG. 5 shows an implementation of an order book; order book
500. Order book 500 includes bid table 410 and offer table 420, and
also temp bid table 510 and temp offer table 520. The temp tables
510, 520, may be generated by computer system 230 in response to a
certain condition occurring. For example, that condition may be
when computer system 230 detects a match involving any test order,
or a test order meeting certain conditions, or when a test order is
received by computer system 230, or when or when a test order is
ranked by computer system 230. Computer system 230 generates temp
tables 510, 520 by copying bid table 410 and offer table 420. From
that point in time, forward, computer system 230 may process tables
410, 420 as one order book and process in parallel tables 510, 520
as one order book. Specifically, computer system 230 may enter each
subsequent in time new bid into both bid tables 410, 510, and enter
each subsequent in time new offer into both offer tables 420, 520.
Thereafter differences in subsequent matching, executing, and
transacting between tables 410, 420, compared to tables 510, 520,
represent a perturbation caused by the existence and transaction in
the temp order book of said certain test order.
[0053] More specifically, computer system 230 may be programmed to
treat the certain test order in the order book defined by tables
510, 520 by executing both the test order and its matching order,
either regardless of whether the matching order is a real or a test
order, or alternatively only if the matching order is real.
However, computer system 230 is programmed to not generate any
transactions based upon executions of orders in tables 510, 520,
and computer system 230 is programed to not generate responses for
transmission to any entity other than the originator of the test
order, in response to executions in tables 510, 520. Computer
system 230 may determine differences between tables 410 and 510,
and between tables 420 and 520, at one or more points in time after
execution of the certain test order, and report those difference in
a response to the originator of the certain test order.
Alternatively, computer system 230 may report certain log data for
matchings, executions, and transactions of both sets of tables for
some period of time to the originator of the certain test order.
Computer system 230 may thereafter erase tables 510, 520, from
memory.
[0054] computer system 230 may generate a pair of tables like table
510, 520 for each test order, such as each time computer system 230
detects a match involving any test order, or when a test order
meeting certain conditions. The certain conditions may be data in
the test order specifying this type of parallel processing. The
certain conditions may be a system condition, such as a system load
processing load, or memory usage below threshold values, thereby
enabling this type of memory and processor intensive processing
without substantial detrimental impact on transaction
processing.
[0055] In addition, computer system 230 may be programmed to match
and execute in tables 510, 520, any test order and a real order,
two matched test orders, or two matched test orders only under
certain conditions, or only one of two test orders in a matched
pair of test orders, depending on certain conditions, as discussed
herein below with reference to FIGS. 8A-C.
[0056] FIG. 6 shows processing 600 of orders from order generation
through transmission of response to an executed order.
[0057] In step 610, a person or a computerized trading program
enters or programmatically generates an order for an instrument in
a computer system, such as any one of computer systems 10-60.
[0058] In step 610, a person or a computerized trading program
instructs the corresponding computer system to transmit that order
to trading and processing computer system 100. In step 620, the
corresponding computer system transmits the order. Alternatively,
the corresponding computer system first runs a risk algorithm to
determine whether placing the order would exceed a risk threshold
or credit limit associated with an identification of a user,
account, or entity associated with the order. Alternatively,
computer systems 10-60 only transmits the order to trading and
processing computer system 100 even if the risk threshold is
exceeded. That is, in one embodiment it may transmit the order if
the order is a test order even if the risk threshold is
exceeded.
[0059] A transmitted order is thereafter received by trading and
processing computer system 100. Trading and processing computer
system 100 maintains various log records, such as records of
transaction, purchases, and sales, and associated identifications
of users, accounts, and entity. This log information may be used by
computer system 100 amongst other things to perform a risk
determination.
[0060] In step 630, trading and processing computer system 100
preferably runs a risk algorithm on the order and generates a risk
value and determines if that value exceeds risk threshold. If the
risk threshold is exceeded, computer system 100 implements step 640
of rejecting the order by not entering it into the order book for
the corresponding instrument. In step 650, computer system 100
sends a response to the originator of the order indicating that the
order was rejected. If the risk value does not exceed a risk
threshold, processing proceeds in one of computer systems 230, 240,
etc., (hereinafter computer system 230) for entry into the order
book for the corresponding instrument.
[0061] In one alternative, test orders that, if real, would exceed
a risk threshold, are not rejected. In this alternative, computer
system 230 either bypasses risk analysis step 630, or continues
after step 630, or step 640 to step 660 with the test order. This
allows traders to implement test orders that otherwise would exceed
their credit limit.
[0062] In another alternative, a person or a computerized trading
program specifies to computer system 230 or computer system 100 a
test credit limit, which is a credit limit other than a real credit
limit. The purpose of setting a test credit limit may be to
determine overall return on investment performance when taking into
account the cost of credit, such as cost of a performance bond.
[0063] In another alternative, agent A1, A2, have their computer
systems 50, 60 assess credit of orders placed by individuals I3,
I4, and individuals I3, I4, may impose a test credit limit on the
risk algorithms implemented by computer systems 50, 60. Then,
computer systems 50, 60 act on test orders placed by people or
trading programs running on computer systems 50, 60, using the test
credit limit to determine whether to accept or reject those test
orders.
[0064] Steps similar to 630-650 may also be implemented by agent
computer systems A1, A2, for orders requested by individuals I3,
I4, etc.
[0065] Risk data may be associated with the order when it is
subsequently entered in the order book, or parameters indicating
entities not accepting or accepting that level of risk from that
originator may be associated with the order when it is subsequently
entered in the order book. In exchanges that do not implement
clearinghouses, the risk data may be passed to the originator of a
matching order so that that originator can determine whether to
accept the risk of non settlement, and therefore determine whether
to accept the order.
[0066] In step 660, computer system 230 ranks the order.
[0067] In step 670, computer system 230 enters the order in the
order book.
[0068] In step 680, computer system 230 processes the order book by
matching, executing, transacting and preferably logging, as
described elsewhere in this application. Preferably, if the order
book is updated as a result of computer system 230 identifying a
match, processing proceeds along path 680A by repeating step 680 of
determining if another match exists. If computer system 230
identifies no match, preferably precessing proceeds along 680B to
660 by entering another ranked order into the order book.
Alternatively, processing from 680 may proceed to step 690 instead
of 680A or 680B.
[0069] In step 690, computer system 230 generates and transmits
responses to the address associated with the UID associated with
the order. The responses typically indicate whether the order was
executed and transacted, and may also indicate other information as
discussed elsewhere herein. Processing may proceed from 690 along
paths 690A or 690B back to steps 680 or 660.
[0070] If processing does not proceed from 680 to 690, the step 680
preferably includes logging of execution and transaction data such
that a separate processing unit can perform step 690. Not shown
herein is the generation and transmission of transaction data to
clearinghouse computer systems. However, this may occur
concurrently with transmission of responses to order originators on
transacted orders, periodically, or aperiodically, and be based
upon logs of transactions generated by computer system 230
resulting from processing of orders in the order book.
[0071] FIG. 7 shows processing 680 of an order book, including
steps 660 and 710-810. These steps include determinations whether
orders match, whether matching orders are test or real orders, and
under what conditions to execute and transact matching orders.
[0072] In step 710, computer system 230 determines whether orders A
and B match. Orders A and B are the highest ranked bid and offer
orders in the order book. A is an order having the highest bid
price and B is an offer having the lowest offer price. If no match
exists, processing returns to step 660 to rank and enter into the
order book the next new order. If a match exists, processing
proceeds to step 720.
[0073] This paragraph discusses the steps along the right column of
steps in FIG. 7, for matching real orders. In step 720, computer
system 230 determines whether A is a test order. If not, computer
system 230 executes step 730. In step 730, computer system 230
determines whether B is a test order. If no, then computer system
230 executes step 740. In step 740 computer system 230 has
determined that both A and B are real orders. Computer system 230
thereafter executes and transacts those orders, sends responses to
the UIDs associated with each order, and sends transaction
information to the clearinghouse handling clearing for the
corresponding instrument, and then checks for another match or new
orders (steps 740-760 followed by step 710).
[0074] This paragraph discusses the steps along the left column of
steps in FIG. 7, for matching test orders. In step 720, computer
system 230 determines whether A is a test order. If yes, computer
system 230 executes step 770. In step 770, computer system 230
determines whether B is a test order. If yes, computer system 230
has determined that the matching orders are both test orders, and
proceeds to step 810 shown in FIGS. 8A-C.
[0075] This paragraph discusses the steps along the middle column
of steps in FIG. 7. This processing occurs when computer system 230
has determined that one of the matched orders is a test order and
the other of the matched orders is a real order. In step 780,
computer system 230 executes the test order, and does not execute
the real order, and performs no transaction, and proceeds to step
790. In step 790, computer system 230 generates and sends a test
order response to the address associated with the UID of the
originator of the test order. After executing step 790, computer
system 230 returns to step 710 to determine if another match exists
in the order book. It should be noted that computer system 230/100
performs a transaction by sending responses to the originators
(UIDs) of the orders transacted noting the transaction in addition
to updating the order book, and in exchanges employing
clearinghouses, sends responses containing the details of the
transaction to a clearinghouse handling clearing transactions for
that instrument.
[0076] FIGS. 8A-C show alternatives for processing matching test
orders including respectively executing both, executing none, and
conditionally executing one or both test orders. In FIGS. 8A-C, in
step 810, computer system 230 has determined that both A and B are
test orders.
[0077] In FIG. 8A, in step 820, computer system 230 executes both A
and B. In step 830, computer system 230 generates and transmits
responses resulting from the executions.
[0078] In FIG. 8B, computer system 230 returns processing to either
710 or 660 (checking for another order match or entering another
order into the order book) in response to determining that both
orders are test orders.
[0079] In FIG. 8C, in step 840, computer system 230 reviews
execution criteria associated with order A and determines whether
order A meets the execution criteria. If no, it returns processing
to either 710 or 660. If yes, computer system 230 executes order A.
Similar steps may be implemented by computer system 230 on order B.
The execution criteria may be specified in the order, and may
include criteria based upon the originator (person, entity, or
account code) of the order. For example, the order may include code
specifying UIDs of the matching B order for which order A will be
executed, or may include code specifying UIDs of the matching B
order for which order A will not be executed. The execution
criteria may also be based upon any other value of any field
associated with the order, or with the matching order, such as
price, quantity, market, limit, etc.
[0080] FIG. 9 shows a process 900 for removing unexecuted orders
from an order book. Unexecuted orders may be removed based upon a
cancel order to cancel an order in the order book. Cancel orders
are typically transmitted by the originator of the order in the
order book. Orders may also be removed from the order book as a
result of expiration times specified in the order. Although not
shown, computer system 230 preferably executes an order removal
step either periodically or before or after steps 710, 660. In
multi processor environments implementing the order book in data
structures implementing record level locking, a separate process
may implement removal of orders concurrent with the order book
processing shown in FIGS. 7 and 8.
[0081] In step 910, computer system 230 checks for an instruction
to remove order X. If yes, computer system 230 determines if order
X is a test order.
[0082] In step 920, if X is not a test order, computer system 230
generates and transmits a conventional order cancellation response
to the originator of order X.
[0083] In step 930, if X is a test order, computer system 230
preferably determines one or more of delta T, delta P, and delta R.
Delta T, delta P, and delta R respectively are the closest in time
real order in the order book that could have matched the test
order, over some defined time interval prior to when the test order
was in the order book, the closest in price order to the test order
during the presence of the test order in the order book, and the
difference in risk of any order having the same price as the test
order during the presence of the test order in the order book and
that executed in lieu of the test order. Computer system 230
preferably preforms these determinations by analyzing data in logs
it generated for changes to the order book. In step 950, computer
system 230 generates and transmits to the originator of the test
order a response notifying the originator of cancellation of the
order, and preferably also including any delta T, delta P, and
delta R data.
[0084] FIG. 10 shows a message format 1000 for transmitting
messages containing orders, similar to the format specified in the
New York Stock Exchange Common access point specification, revision
1.3. It differs from that specification by allocating to a reserved
portion of the message stream, data indicating whether an order
contained in the data stream is real or test. FIG. 10 includes
message format 1010 including header portion and message portion.
The header portion includes length, flags, and application data.
Length is a 16 bit binary specifying total message length, and
having left to right ordering. Flags is a 16 bit binary in which
the value zero indicates a real order, and the value 1 indicates a
test order. Application data is variable length constrained to have
an even number of bytes. The message portion of the data stream,
not specified here, contains in conventional format data specifying
the order parameters, but may be modified to enable test orders to
specify additional criteria, such as execution criteria when
matching a test order. Obviously, this specification is only one of
many obvious embodiments of how to incorporate data into an order
to specify that it is a test order or a real order.
[0085] In one preferred embodiment, a computerized trading program
for placing orders and receiving responses from trading and
processing computer system 100, may be manually or programmatically
switched from test mode in which it places test orders, to real
mode in which it places real orders. It may be programmatically
switched to real mode in response to any market event. It may be
programmatically switched to real mode in response to exceeding one
or more trading criteria, such as a fractional or absolute increase
in test portfolio value, a rate of increase with time in test
portfolio value, a ratio of executed to total test orders, a ratio
of test orders not exceeding a risk limit to total test orders,
etc. In one alternative, the computerized trading program, when
switched from test mode to live mode, may also generate real orders
identical to some or all of the pending test orders. In addition,
the computerized trading program for placing orders and receiving
responses from trading and processing computer system 100, may be
only partially manually or programmatically switched from test mode
in which it places test orders, to real mode in which it places
real orders. Partially switching to real orders may be a switch for
only one or more specified instruments. Partially switching may be
limited to placing real orders not exceeding a dollar or value
limit, such as a value defined by a risk threshold. Partially
switching may define a fraction of a test order quantity, and that
fraction may be truncated to so that the real order quantity is the
next lowest integer amount of one, tens, or hundreds, or rounded up
to the next closest one, tens or hundreds. Partially switching may
also define placing a defined number of orders as real orders, such
as the next 1, 5 or 10 orders. Partially switching may also define
placing only during a period of time real orders, such as all
placing real orders during a 10, 60, or 3600 hour time period, and
then not placing real orders in a subsequent time period. Partially
switching may also define alternating between test and real orders,
either by sequence, such as every other order, every third, or
every tenth order be a real order and the remaining be test orders,
or every order during alternate set intervals of time be real
orders, such as all orders during alternate seconds, tens or
hundreds of seconds be real orders, and the remaining be test
orders. Partially switching may also include a ramping up feature,
in which the quantity or fraction of real orders compared to test
orders per time interval increases with time, either by increasing
a quantity associated with real orders or increasing fractions of
time during which orders placed are real instead of test. Partially
switching may also define placing orders that do not exceed a risk
limit as real orders, and placing all remaining orders as test
orders.
[0086] Additional aspects of a novel trading system are disclosed
below.
Additional Information that Cs 230 May Provide
[0087] A response provided by computer system 230 to the originator
of either a test order, a real order, or an order only for
information, may include data indicating the number of orders,
duration of each order, or quantity of instruments in orders, of
higher rank and lower rank than the originator's order, at any
time, when the order is cancelled, and when the order is executed.
The response provided by computer system 230 to the originator of a
real or test order may include data indicating the number of
transactions, prices of transactions, during the time the
originator's order was pending, periodically, and in response to
matching, execution, or transaction of the originator's order.
[0088] If data exists in the orders, response to an originator's
order (test order, a real order, or an order only for information)
may also specify which of the orders in the order book originated
from programmed trading systems and which from people manually
entering orders into computer systems and then instructing the
computer systems to transmit them to computer system 100. The
responses noted in this paragraph do not require the existence of a
real or test order. That is, an originator may place an information
order via one of computer systems 10-60 with trading and processing
computer system 100 to provide this information, without placing a
bid or offer order.
[0089] Another data provided in a response from computer system 100
may include one or more message rates, such as the rate of all
incoming orders, or all bids or all offers, to computer system 100,
to computer system 230, the rate of all executions or transactions
in computer system 230, the rate of executions or transactions in
computer system 230 for a specific instrument, or in computer
system 100 for all or a specific instrument. Rate may be determined
from system data specifying instantaneous rate, or based upon log
data averaged over a period of time, such as 10, 50, 100,
milliseconds, a second, a minute or an hour.
[0090] A response provided by computer system 230 to the originator
of either a test order or a real order may include positional
information relative to the originator's order. This information
includes how many orders are in the same bid or offer queue or
table; how many of higher rank and how many of lower rank; quantity
of shares in the offers in the queue of higher and lower rank than
the originator's offer, age of each such order relative to the age
of the originator's order, and all of that information at one or
more times during the presence of the originator's order in the
order book. The positional information may include timing
information. Specifically, the duration of time prior to which an
order was placed that it would have had to have been placed in
order to execute, and the during of time prior to which an order
was attempted to be canceled that it would have had to have been
canceled in order to not have executed.
[0091] For orders that are updated, that is changed after entry in
the order book, both the original order time, and the update time
may be included in responses, if that data is available to computer
system 230.
[0092] Any message transmitted from computer system 100 to an order
originator may also specify the amount of credit that the
originator (or the originator's account) has with computer system
100, and value at risk.
[0093] Preferably, computer system 100 includes, in a response to
an order that did not execute or trade, information relating to why
the order did not execute or trade. This information includes the
highest ranking of the order while the order was pending, the
minimum price difference between the order and any potentially
matching orders during the pendency of the order, and the amount of
time prior to when the order was actually placed, that it would
have had to have been placed, in order to execute, or to have a
price that could match some other order's price. Preferably,
computer system 100 also includes, in a response to an order that
executed, the time at which a request to cancel the order would
have had to have been placed in order to have prevented the order
from executing. For orders for which a request to cancel was
placed, preferably computer system 100 provides in a response the
difference in time between when the request to cancel was placed
and would have need to be placed to avoid execution of the order.
Computer system 100 can derive this information by appropriate
queries directed to the data in the order book or to log data
storing information about orders removed from the order book,
including time of matching, execution, and/or removal from the
order book, and quantity and price. Computer system 100 may also
incorporate estimates of time from when an order is placed by a
trader to when the order is received by computer system 100,
computer system 230, and entered into an order book. This data may
vary from trader to trader, depending upon network configuration.
Network packets may store time of order origination, and this data,
compared to time of receipt provided by a clock in computer system
100, 230, may be used to generated transmission time estimates, or
may be used as an actual transmission time for a particular
order.
[0094] The test orders disclosed herein may be used in a
computerized trading program, typically implementing application
programming interfaces (APIs) for trading and processing computer
system 100 in order to place orders and receive responses from
computer system 100.
[0095] Trading and processing computer system 100 may allocate
resources and charge for use of test trades in a variety of ways.
It may prioritize use amongst various users, prioritize based upon
system resources, implement pay per execution, pay per period of
use, or make the test order services free. It may also accept bids
for exclusivity of use of test orders for specified instruments or
for period of time.
Uses of Test Orders with Various Types of Real Orders
[0096] Max Display Orders--A max display order is an order that
specifies a quantity to be shown to the market participants, but
that also specifies an additional quantity stored in computer
system 100 and not shown by computer system 100 to market
participants. The additional quantity remains "hidden" in the order
book, but it may be matched against other real orders or other max
display orders.
[0097] A test order could be used to "probe" the marketplace to
determine if there was additional quantity associated with a
matching order, that is if the matching order were a max display
order.
[0098] Double secret video--Refers to procedure that allows a
market participant having the bid at the best price to offer to the
best offerer a trade at an improved bid price, a price closer to
the best offerer's price. The offer at the improved price is
referred to as a double secret video offer. The best offerer can
accept or decline the double secret video offer. If the offerer
accepts, then the bidder and offerer trade at the agreed upon
improved price. The existence of the improved bid, and/or a trade
resulted from acceptance of the improved bid by the best offerer,
may not be made available to other bidders and offerers (other
market participants) by trading and processing computer system
100.
[0099] The existence of a double secret video offer may be embedded
in an order. Computer system 100 may respond to a real order that
includes a double secret video offer to which a test order is the
best offerer by transmitting to the originator of the test offer
the double secret video offer. Alternatively to the existence of
the double secret video offer being embedded in an offer, computer
system 100 may accept from a trader whose bid is at the best price
a double secret video offer, and present that offer to the best
offerer, even if the best offerer's offer is a test offer order.
This alternative requires the bidder with the bid at the best price
to know his bid is at the best price; computer system 100 may send
the bidder such a notification. In either alternative, a test offer
may provides the test offerer knowledge of the double secret video
offer.
[0100] Additionally, a test order may include a double secret video
offer. The double secret video offer in the test order may be a
real offer or a test offer. Alternatively, the originator of a test
offer that is at the best price may be granted by computer system
100 the right to originate a double secret video offer, real or
test.
[0101] Cloaked Orders--Some orders may include data specifying to
computer system 100 that they not be made publicly available to
market participants, even though they reside in the order book.
These orders are called cloaked orders. Test orders may be used to
identify the existence of cloaked orders. For example, by noting
prices at which the test orders execute, the orders against which
test orders execute, and optionally other data provided by trading
and processing computer system 100 such as order book log data.
[0102] Repeated test orders may be used to identify patterns to the
placing of cloaked orders, max display orders, and double secret
video orders.
[0103] Locking preferences and locked markets - Users may set a
preference in their order called a locking preference. The locking
preference provides for an order to not match, execute, or trade
with a corresponding order having the same price (one being a bid
and the other being an offer). Instead, an offer having a locking
preference set will only trade with a corresponding bid order at a
price a predetermined amount lower than the offer price. Likewise,
a bid offer that has a locking preference set will only trade with
an offer having a price at a predetermined amount above the price
of the offer order. The predetermined amount may correspond to a
commission charged by the exchange to implement a trade, in which
case setting the locking preference indicates that the trader is
not willing to pay the exchange's commission. A locked market is
one in which the spread is zero, and the best bid is at the same
price as the best offer. This occurs if one or both of the best
orders has a locking preference set. A crossed market is one in
which the best offer has a price below the best bid, which occurs
when an order having a locking preference set is about to trades
with another order. Locked and crossed markets may exist in
exchanges that implement locking preferences.
[0104] A first user may wish to lock such a market by having their
order's locking preference set and then wait for a second user that
is willing to pay the market price plus the additional
predetermined amount, such as a commission cost, above the locked
market's price (crossed market). A user less sensitive to
commission costs may wish to trade in a locked; not have their
locking preference set. In addition, computer system 100 may
respond to orders in a locked market that are within the
predetermined amount of the market price, either by querying
parameters set in the order, or by querying the originator of the
order, whether to unlock their order in response to a locked market
(and thereby pay the commission charge). Locking preferences of
orders may not, and typically are not, provided by exchanges to the
market participants.
[0105] Test order may be used to probe the locking preferences of
the orders at the best bid and offer prices. That is, a test order
that would match another order, but for a locking preference set in
the other order, will not execute. Hence, indicating that the other
order has a locking preference set. Test orders at a some higher
price will execute, that is, when the spread between the test order
price and other order's price exceeds the predetermined amount
defined by a locking preference of the other order. Thus, test
orders may be used to determine the existence of, and the currency
amount of another order's locking preference.
[0106] In addition, if computer system 100 is so programmed,
matching of a test order that is locked to a locked order may
provide to the originator of the test order information whether the
locked order will unlock upon matching in price to another locked
order.
Evaluating Trading Strategies and Alternative Implementations
[0107] Test orders disclosed herein may be used effectively in a
variety of ways to test the response of a market in order to
evaluate the effectiveness in trading strategies in generating
profit.
[0108] One use is to evaluate a modification of an existing trading
strategy. Suppose a trader has automated trading strategy A and has
incorporated changes, generating strategy B. The trader may desire
to continue to run strategy A if it is profitable. The trader would
also like to evaluate the profitability of strategy B to determine
if it would be profitable to switch from A to B. In this situation,
the trader would want strategy B to submit test orders that would
match against all real order except those orders from the traders
strategy A. There are many permutations of this type of trading
testing and execution selectivity, a couple of which are described
below.
[0109] Suppose a trader runs trading strategies A and B. The trader
would like to evaluate adding strategy C, which means concurrently
running all three strategies to place orders and generate trades.
In this case the test orders submitted by C should match against
any real order. However, in this case, if orders generated by
strategy C trade with A or B, it might be the case that the trader
wishes executions (though not settlement) to be sent to in response
to trades between C and A, and C and B, as the trader wants trading
strategies A and B to function as if trades generated by orders
originating from trading strategy C were real, so that the trader
can evaluate the impact of implementing strategy C with real orders
on orders generated by strategies A and B. In this case, there is a
meaningful reason for real order to get an execution from a match
with a test order. Thus, in this alternative specified real orders
(orders generated by strategies A, B) will execute when matched to
specified test orders (orders generated by strategy C).
[0110] Alternatively, a trader implementing strategies A and B
might wish to test modifications of both strategies, C and D. That
is, for example when contemplate replacing A and B with C and D. In
this case, test orders from C and D should match with each other,
since if implemented running real orders, C and D would in fact
match with each other. However, test orders from C and D should not
match or execute with any other test orders. Also, test orders from
C and D should not match and should not execute with real orders
from A and B, since, if C and D were implemented with real orders
and replaced A and B, orders from A and B would not exist.
Straight Through Processing Testing Concept
[0111] In an alternative concept, the exchange may be configured to
use certain alternative test orders, referred to herein as straight
through processing test orders, to test reliability of all
components of an exchange trading system, from order entry to
clearing. The goal of such testing using straight through
processing test orders is to ensure that the exchange in its
entirety functions reliably to implement trading. For example, when
hardware or software of any portion of network 1 changes, there is
the possibility that such changes may result in data errors and
incorrect programming resulting in inaccurate information being
stored regarding trading. This possibility may be minimized by
testing trading using straight through processing test orders upon
any change of any network component to identify problems before
they result in erroneous trade data. In this alternative, software
in the computer systems 10-80 include code or structure for
recognizing orders that are straight through processing test orders
and processing the straight through processing test orders exactly
the same as any real orders, with the exception of actual
settlement (exchange of legal title). In this concept, computer
system 100 receives straight through processing test orders and
generates responses indicating whether the straight through
processing test orders executed, transacted, cleared, and would
have settled correctly. Network 1 passes information with or as
part of orders indicating orders that are straight through
processing test orders from the order originators through the
computer system 100 and through the clearinghouse computer systems
70, 80. Computer systems 70, 80. However, the clearinghouses do not
reassign actual legal title to instruments identified in
transactions involving straight through processing test orders. In
one embodiment, each relevant data structure for orders, starting
with the order originator, and including computer system 100 and
clearinghouse computer systems 70, 80, includes a field in a data
structure for storing orders, indicating whether each order is a
straight through processing test order. Each element of network 1
is programmed to process transactions including a straight through
processing test orders preferably through clearing.
[0112] Preferably, computer system 100 is programmed to only match
straight through processing test orders against other straight
through processing test orders. Alternatively, computer system 100
may be programmed to execute straight through processing test
orders against either or both of straight through processing test
orders and real orders. Preferably, clearinghouse computer systems
70, 80 perform processing identical to when they clear real orders,
including generation of a response to the order originators, except
that the response notes the orders are straight through processing
test orders, not real orders, and except that computer systems 70,
80 do not perform processing changing legal title for what would be
transactions if involving real orders, when involving straight
through processing test orders. Thus, computer systems 70, 80, run
code determining whether an order is a straight through processing
test order, and differ in processing depending upon that
determination.
[0113] The following sections I-X provide a guide to interpreting
the present application.
[0114] I. Determining
[0115] The term "determining" and grammatical variants thereof
(e.g., to determine a price, determining a value, determine an
object which meets a certain criterion) is used in an extremely
broad sense. The term "determining" encompasses a wide variety of
actions and therefore "determining" can include calculating,
computing, processing, deriving, investigating, looking up (e.g.,
looking up in a table, a database or another data structure),
ascertaining and the like. Also, "determining" can include
receiving (e.g., receiving information), accessing (e.g., accessing
data in a memory) and the like. Also, "determining" can include
resolving, selecting, choosing, establishing, and the like.
[0116] The term "determining" does not imply certainty or absolute
precision, and therefore "determining" can include estimating,
extrapolating, predicting, guessing and the like.
[0117] The term "determining" does not imply that mathematical
processing must be performed, and does not imply that numerical
methods must be used, and does not imply that an algorithm or
process is used.
[0118] The term "determining" does not imply that any particular
device must be used. For example, a computer need not necessarily
perform the determining.
[0119] II. Forms of Sentences
[0120] Where a limitation of a first claim would cover one of a
feature as well as more than one of a feature (e.g., a limitation
such as "at least one widget" covers one widget as well as more
than one widget), and where in a second claim that depends on the
first claim, the second claim uses a definite article "the" to
refer to the limitation (e.g., "the widget"), this does not imply
that the first claim covers only one of the feature, and this does
not imply that the second claim covers only one of the feature
(e.g., "the widget" can cover both one widget and more than one
widget).
[0121] When an ordinal number (such as "first", "second", "third"
and so on) is used as an adjective before a term, that ordinal
number is used (unless expressly specified otherwise) merely to
indicate a particular feature, such as to distinguish that
particular feature from another feature that is described by the
same term or by a similar term. For example, a "first widget" may
be so named merely to distinguish it from, e.g., a "second widget".
Thus, the mere usage of the ordinal numbers "first" and "second"
before the term "widget" does not indicate any other relationship
between the two widgets, and likewise does not indicate any other
characteristics of either or both widgets. For example, the mere
usage of the ordinal numbers "first" and "second" before the term
"widget" (1) does not indicate that either widget comes before or
after any other in order or location; (2) does not indicate that
either widget occurs or acts before or after any other in time; and
(3) does not indicate that either widget ranks above or below any
other, as in importance or quality. In addition, the mere usage of
ordinal numbers does not define a numerical limit to the features
identified with the ordinal numbers. For example, the mere usage of
the ordinal numbers "first" and "second" before the term "widget"
does not indicate that there must be no more than two widgets.
[0122] When a single device, article or other product is described
herein, more than one device/article (whether or not they
cooperate) may alternatively be used in place of the single
device/article that is described. Accordingly, the functionality
that is described as being possessed by a device may alternatively
be possessed by more than one device/article (whether or not they
cooperate).
[0123] Similarly, where more than one device, article or other
product is described herein (whether or not they cooperate), a
single device/article may alternatively be used in place of the
more than one device or article that is described. For example, a
plurality of computer-based devices may be substituted with a
single computer-based device. Accordingly, the various
functionality that is described as being possessed by more than one
device or article may alternatively be possessed by a single
device/article.
[0124] The functionality and/or the features of a single device
that is described may be alternatively embodied by one or more
other devices which are described but are not explicitly described
as having such functionality/features. Thus, other embodiments need
not include the described device itself, but rather can include the
one or more other devices which would, in those other embodiments,
have such functionality/features.
[0125] III. Terms
[0126] The term "product" means any machine, manufacture and/or
composition of matter, unless expressly specified otherwise.
[0127] The term "process" means any process, algorithm, method or
the like, unless expressly specified otherwise.
[0128] Each process (whether called a method, algorithm or
otherwise) inherently includes one or more steps, and therefore all
references to a "step" or "steps" of a process have an inherent
antecedent basis in the mere recitation of the term `process` or a
like term. Accordingly, any reference in a claim to a `step` or
`steps` of a process has sufficient antecedent basis.
[0129] The term "invention" and the like mean "the one or more
inventions disclosed in this application", unless expressly
specified otherwise.
[0130] The terms "an embodiment", "embodiment", "embodiments", "the
embodiment", "the embodiments", "one or more embodiments", "some
embodiments", "certain embodiments", "one embodiment", "another
embodiment" and the like mean "one or more (but not all)
embodiments of the disclosed invention(s)", unless expressly
specified otherwise.
[0131] The term "variation" of an invention means an embodiment of
the invention, unless expressly specified otherwise.
[0132] A reference to "another embodiment" in describing an
embodiment does not imply that the referenced embodiment is
mutually exclusive with another embodiment (e.g., an embodiment
described before the referenced embodiment), unless expressly
specified otherwise.
[0133] The terms "including", "comprising" and variations thereof
mean "including but not limited to", unless expressly specified
otherwise.
[0134] The terms "a", "an" and "the" mean "one or more", unless
expressly specified otherwise.
[0135] The term "plurality" means "two or more", unless expressly
specified otherwise.
[0136] The term "herein" means "in the present application,
including anything which may be incorporated by reference", unless
expressly specified otherwise.
[0137] The phrase "at least one of', when such phrase modifies a
plurality of things (such as an enumerated list of things) means
any combination of one or more of those things, unless expressly
specified otherwise. For example, the phrase "at least one of a
widget, a car and a wheel" means either (i) a widget, (ii) a car,
(iii) a wheel, (iv) a widget and a car, (v) a widget and a wheel,
(vi) a car and a wheel, or (vii) a widget, a car and a wheel. The
phrase "at least one of', when such phrase modifies a plurality of
things does not mean "one of each of the plurality of things.
[0138] Numerical terms such as "one", "two", etc. when used as
cardinal numbers to indicate quantity of something (e.g., one
widget, two widgets), mean the quantity indicated by that numerical
term, but do not mean at least the quantity indicated by that
numerical term. For example, the phrase "one widget" does not mean
"at least one widget", and therefore the phrase "one widget" does
not cover, e.g., two widgets.
[0139] The phrase "based on" does not mean "based only on", unless
expressly specified otherwise. In other words, the phrase "based
on" describes both "based only on" and "based at least on". The
phrase "based at least on" is equivalent to the phrase "based at
least in part on".
[0140] The term "represent" and like terms are not exclusive,
unless expressly specified otherwise. For example, the term
"represents" do not mean "represents only", unless expressly
specified otherwise. In other words, the phrase "the data
represents a credit card number" describes both "the data
represents only a credit card number" and "the data represents a
credit card number and the data also represents something
else".
[0141] The term "whereby" is used herein only to precede a clause
or other set of words that express only the intended result,
objective or consequence of something that is previously and
explicitly recited. Thus, when the term "whereby" is used in a
claim, the clause or other words that the term "whereby" modifies
do not establish specific further limitations of the claim or
otherwise restricts the meaning or scope of the claim.
[0142] The term "e.g." and like terms mean "for example", and thus
does not limit the term or phrase it explains. For example, in the
sentence "the computer sends data (e.g., instructions, a data
structure) over the Internet", the term "e.g." explains that
"instructions" are an example of "data" that the computer may send
over the Internet, and also explains that "a data structure" is an
example of "data" that the computer may send over the Internet.
However, both "instructions" and "a data structure" are merely
examples of "data", and other things besides "instructions" and "a
data structure" can be "data".
[0143] The term "respective" and like terms mean "taken
individually". Thus if two or more things have "respective"
characteristics, then each such thing has its own characteristic,
and these characteristics can be different from each other but need
not be. For example, the phrase "each of two machines has a
respective function" means that the first such machine has a
function and the second such machine has a function as well. The
function of the first machine may or may not be the same as the
function of the second machine.
[0144] The term "i.e." and like terms mean "that is", and thus
limits the term or phrase it explains. For example, in the sentence
"the computer sends data (i.e., instructions) over the Internet",
the term "i.e." explains that "instructions" are the "data" that
the computer sends over the Internet.
[0145] Any given numerical range shall include whole and fractions
of numbers within the range. For example, the range "1 to 10" shall
be interpreted to specifically include whole numbers between 1 and
10 (e.g., 1, 2, 3, 4, . . . 9) and non-whole numbers (e.g., 1.1,
1.2, . . . 1.9).
[0146] Where two or more terms or phrases are synonymous (e.g.,
because of an explicit statement that the terms or phrases are
synonymous), instances of one such term/phrase does not mean
instances of another such term/phrase must have a different meaning
For example, where a statement renders the meaning of "including"
to be synonymous with "including but not limited to", the mere
usage of the phrase "including but not limited to" does not mean
that the term "including" means something other than "including but
not limited to".
[0147] IV. Disclosed Examples and Terminology Are Not Limiting
[0148] Neither the Title (set forth at the beginning of the first
page of the present application) nor the Abstract (set forth at the
end of the present application) is to be taken as limiting in any
way as the scope of the disclosed invention(s). An Abstract has
been included in this application merely because an Abstract of not
more than 150 words is required under 37 C.F.R. .sctn.1.72(b).
[0149] The title of the present application and headings of
sections provided in the present application are for convenience
only, and are not to be taken as limiting the disclosure in any
way.
[0150] Numerous embodiments are described in the present
application, and are presented for illustrative purposes only. The
described embodiments are not, and are not intended to be, limiting
in any sense. The presently disclosed invention(s) are widely
applicable to numerous embodiments, as is readily apparent from the
disclosure. One of ordinary skill in the art will recognize that
the disclosed invention(s) may be practiced with various
modifications and alterations, such as structural, logical,
software, and electrical modifications. Although particular
features of the disclosed invention(s) may be described with
reference to one or more particular embodiments and/or drawings, it
should be understood that such features are not limited to usage in
the one or more particular embodiments or drawings with reference
to which they are described, unless expressly specified
otherwise.
[0151] No embodiment of method steps or product elements described
in the present application constitutes the invention claimed
herein, or is essential to the invention claimed herein, or is
coextensive with the invention claimed herein, except where it is
either expressly stated to be so in this specification or expressly
recited in a claim.
[0152] All words in every claim have the broadest scope of meaning
they would have been given by a person of ordinary skill in the art
as of the priority date. No term used in any claim is specially
defined or limited by this application except where expressly so
stated either in this specification or in a claim. The preambles of
the claims that follow recite purposes, benefits and possible uses
of the claimed invention only and do not limit the claimed
invention.
[0153] The present disclosure is not a literal description of all
embodiments of the invention(s). Also, the present disclosure is
not a listing of features of the invention(s) which must be present
in all embodiments.
[0154] Devices that are described as in communication with each
other need not be in continuous communication with each other,
unless expressly specified otherwise. On the contrary, such devices
need only transmit to each other as necessary or desirable, and may
actually refrain from exchanging data most of the time. For
example, a machine in communication with another machine via the
Internet may not transmit data to the other machine for long period
of time (e.g. weeks at a time). In addition, devices that are in
communication with each other may communicate directly or
indirectly through one or more intermediaries.
[0155] A description of an embodiment with several components or
features does not imply that all or even any of such
components/features are required. On the contrary, a variety of
optional components are described to illustrate the wide variety of
possible embodiments of the present invention(s). Unless otherwise
specified explicitly, no component/feature is essential or
required.
[0156] Although process steps, algorithms or the like may be
described or claimed in a particular sequential order, such
processes may be configured to work in different orders. In other
words, any sequence or order of steps that may be explicitly
described or claimed does not necessarily indicate a requirement
that the steps be performed in that order. The steps of processes
described herein may be performed in any order possible. Further,
some steps may be performed simultaneously despite being described
or implied as occurring non-simultaneously (e.g., because one step
is described after the other step). Moreover, the illustration of a
process by its depiction in a drawing does not imply that the
illustrated process is exclusive of other variations and
modifications thereto, does not imply that the illustrated process
or any of its steps are necessary to the invention(s), and does not
imply that the illustrated process is preferred.
[0157] Although a process may be described as including a plurality
of steps, that does not imply that all or any of the steps are
preferred, essential or required. Various other embodiments within
the scope of the described invention(s) include other processes
that omit some or all of the described steps. Unless otherwise
specified explicitly, no step is essential or required.
[0158] Although a process may be described singly or without
reference to other products or methods, in an embodiment the
process may interact with other products or methods. For example,
such interaction may include linking one business model to another
business model. Such interaction may be provided to enhance the
flexibility or desirability of the process.
[0159] Although a product may be described as including a plurality
of components, aspects, qualities, characteristics and/or features,
that does not indicate that any or all of the plurality are
preferred, essential or required. Various other embodiments within
the scope of the described invention(s) include other products that
omit some or all of the described plurality.
[0160] An enumerated list of items (which may or may not be
numbered) does not imply that any or all of the items are mutually
exclusive, unless expressly specified otherwise. Likewise, an
enumerated list of items (which may or may not be numbered) does
not imply that any or all of the items are comprehensive of any
category, unless expressly specified otherwise. For example, the
enumerated list "a computer, a laptop, a PDA" does not imply that
any or all of the three items of that list are mutually exclusive
and does not imply that any or all of the three items of that list
are comprehensive of any category.
[0161] An enumerated list of items (which may or may not be
numbered) does not imply that any or all of the items are
equivalent to each other or readily substituted for each other.
[0162] All embodiments are illustrative, and do not imply that the
invention or any embodiments were made or performed, as the case
may be.
[0163] V. Computing
[0164] It will be readily apparent to one of ordinary skill in the
art that the various processes described herein may be implemented
by, e.g., appropriately programmed general purpose computers,
special purpose computers and computing devices. Typically a
processor (e.g., one or more microprocessors, one or more
microcontrollers, one or more digital signal processors) will
receive instructions (e.g., from a memory or like device), and
execute those instructions, thereby performing one or more
processes defined by those instructions. Instructions may be
embodied in, e.g., one or more computer programs, one or more
scripts.
[0165] A "processor" means one or more microprocessors, central
processing units (CPUs), computing devices, microcontrollers,
digital signal processors, or like devices or any combination
thereof, regardless of the architecture (e.g., chip-level
multiprocessing/multi-core, RISC, CISC, Microprocessor without
Interlocked Pipeline Stages, pipelining configuration, simultaneous
multithreading).
[0166] Thus a description of a process is likewise a description of
an apparatus for performing the process. The apparatus that
performs the process can include, e.g., a processor and those input
devices and output devices that are appropriate to perform the
process.
[0167] Further, programs that implement such methods (as well as
other types of data) may be stored and transmitted using a variety
of media (e.g., computer readable media) in a number of manners. In
some embodiments, hard-wired circuitry or custom hardware may be
used in place of, or in combination with, some or all of the
software instructions that can implement the processes of various
embodiments. Thus, various combinations of hardware and software
may be used instead of software only.
[0168] The term "computer-readable medium" refers to any medium, a
plurality of the same, or a combination of different media, that
participate in providing data (e.g., instructions, data structures)
which may be read by a computer, a processor or a like device. Such
a medium may take many forms, including but not limited to,
non-volatile media, volatile media, and transmission media.
Non-volatile media include, for example, optical or magnetic disks
and other persistent memory. Volatile media include dynamic random
access memory (DRAM), which typically constitutes the main memory.
Transmission media include coaxial cables, copper wire and fiber
optics, including the wires that comprise a system bus coupled to
the processor. Transmission media may include or convey acoustic
waves, light waves and electromagnetic emissions, such as those
generated during radio frequency (RF) and infrared (IR) data
communications. Common forms of computer-readable media include,
for example, a floppy disk, a flexible disk, hard disk, magnetic
tape, any other magnetic medium, a CD-ROM, DVD, any other optical
medium, punch cards, paper tape, any other physical medium with
patterns of holes, a RAM, a PROM, an EPROM, a FLASH-EEPROM, any
other memory chip or cartridge, a carrier wave as described
hereinafter, or any other medium from which a computer can
read.
[0169] Various forms of computer readable media may be involved in
carrying data (e.g. sequences of instructions) to a processor. For
example, data may be (i) delivered from RAM to a processor; (ii)
carried over a wireless transmission medium; (iii) formatted and/or
transmitted according to numerous formats, standards or protocols,
such as Ethernet (or IEEE 802.3), SAP, ATP, Bluetooth, and TCP/IP,
TDMA, CDMA, and 3G; and/or (iv) encrypted to ensure privacy or
prevent fraud in any of a variety of ways well known in the
art.
[0170] Thus a description of a process is likewise a description of
a computer-readable medium storing a program for performing the
process. The computer-readable medium can store (in any appropriate
format) those program elements which are appropriate to perform the
method.
[0171] Just as the description of various steps in a process does
not indicate that all the described steps are required, embodiments
of an apparatus include a computer/computing device operable to
perform some (but not necessarily all) of the described
process.
[0172] Likewise, just as the description of various steps in a
process does not indicate that all the described steps are
required, embodiments of a computer-readable medium storing a
program or data structure include a computer-readable medium
storing a program that, when executed, can cause a processor to
perform some (but not necessarily all) of the described
process.
[0173] Where databases are described, it will be understood by one
of ordinary skill in the art that (i) alternative database
structures to those described may be readily employed, and (ii)
other memory structures besides databases may be readily employed.
Any illustrations or descriptions of any sample databases presented
herein are illustrative arrangements for stored representations of
information. Any number of other arrangements may be employed
besides those suggested by, e.g., tables illustrated in drawings or
elsewhere. Similarly, any illustrated entries of the databases
represent exemplary information only; one of ordinary skill in the
art will understand that the number and content of the entries can
be different from those described herein. Further, despite any
depiction of the databases as tables, other formats (including
relational databases, object-based models and/or distributed
databases) could be used to store and manipulate the data types
described herein. Likewise, object methods or behaviors of a
database can be used to implement various processes, such as the
described herein. In addition, the databases may, in a known
manner, be stored locally or remotely from a device which accesses
data in such a database.
[0174] Various embodiments can be configured to work in a network
environment including a computer that is in communication (e.g.,
via a communications network) with one or more devices. The
computer may communicate with the devices directly or indirectly,
via any wired or wireless medium (e.g. the Internet, LAN, WAN or
Ethernet, Token Ring, a telephone line, a cable line, a radio
channel, an optical communications line, commercial on-line service
providers, bulletin board systems, a satellite communications link,
a combination of any of the above). Each of the devices may
themselves comprise computers or other computing devices, such as
those based on the Intel.RTM. Pentium.RTM. or Centrino.TM.
processor, that are adapted to communicate with the computer. Any
number and type of devices may be in communication with the
computer.
[0175] In an embodiment, a server computer or centralized authority
may not be necessary or desirable. For example, the present
invention may, in an embodiment, be practiced on one or more
devices without a central authority. In such an embodiment, any
functions described herein as performed by the server computer or
data described as stored on the server computer may instead be
performed by or stored on one or more such devices.
[0176] Where a process is described, in an embodiment the process
may operate without any user intervention. In another embodiment,
the process includes some human intervention (e.g., a step is
performed by or with the assistance of a human).
[0177] VI. Continuing Applications
[0178] The present disclosure provides, to one of ordinary skill in
the art, an enabling description of several embodiments and/or
inventions. Some of these embodiments and/or inventions may not be
claimed in the present application, but may nevertheless be claimed
in one or more continuing applications that claim the benefit of
priority of the present application.
[0179] Applicants intend to file additional applications to pursue
patents for subject matter that has been disclosed and enabled but
not claimed in the present application.
[0180] VII. 35 U.S.C. 112, paragraph 6
[0181] In a claim, a limitation of the claim which includes the
phrase "means for" or the phrase "step for" means that 35 U.S.C.
.sctn.112, paragraph 6, applies to that limitation.
[0182] In a claim, a limitation of the claim which does not include
the phrase "means for" or the phrase "step for" means that 35
U.S.C. .sctn.112, paragraph 6 does not apply to that limitation,
regardless of whether that limitation recites a function without
recitation of structure, material or acts for performing that
function. For example, in a claim, the mere use of the phrase "step
of or the phrase "steps of in referring to one or more steps of the
claim or of another claim does not mean that 35 U.S.C. .sctn.112,
paragraph 6, applies to that step(s).
[0183] With respect to a means or a step for performing a specified
function in accordance with 35 U.S.C. .sctn.112, paragraph 6, the
corresponding structure, material or acts described in the
specification, and equivalents thereof, may perform additional
functions as well as the specified function.
[0184] Computers, processors, computing devices and like products
are structures that can perform a wide variety of functions. Such
products can be operable to perform a specified function by
executing one or more programs, such as a program stored in a
memory device of that product or in a memory device which that
product accesses. Unless expressly specified otherwise, such a
program need not be based on any particular algorithm, such as any
particular algorithm that might be disclosed in the present
application. It is well known to one of ordinary skill in the art
that a specified function may be implemented via different
algorithms, and any of a number of different algorithms would be a
mere design choice for carrying out the specified function.
[0185] Therefore, with respect to a means or a step for performing
a specified function in accordance with 35 U.S.C. .sctn.112,
paragraph 6, structure corresponding to a specified function
includes any product programmed to perform the specified function.
Such structure includes programmed products which perform the
function, regardless of whether such product is programmed with (i)
a disclosed algorithm for performing the function, (ii) an
algorithm that is similar to a disclosed algorithm, or (iii) a
different algorithm for performing the function.
[0186] Where there is recited a means for performing a function hat
is a method, one structure for performing this method includes a
computing device (e.g., a general purpose computer) that is
programmed and/or configured with appropriate hardware to perform
that function.
[0187] Also includes a computing device (e.g., a general purpose
computer) that is programmed and/or configured with appropriate
hardware to perform that function via other algorithms as would be
understood by one of ordinary skill in the art.
[0188] VIII. Disclaimer
[0189] Numerous references to a particular embodiment does not
indicate a disclaimer or disavowal of additional, different
embodiments, and similarly references to the description of
embodiments which all include a particular feature does not
indicate a disclaimer or disavowal of embodiments which do not
include that particular feature. A clear disclaimer or disavowal in
the present application shall be prefaced by the phrase "does not
include" or by the phrase "cannot perform".
[0190] IX. Incorporation By Reference
[0191] Any patent, patent application or other document referred to
herein is incorporated by reference into this patent application as
part of the present disclosure, but only for purposes of written
description in accordance with 35 U.S.C. .sctn.112, paragraph 1 and
enablement in accordance with 35 U.S.C. .sctn.112, paragraph 1, and
should in no way be used to limit, define, or otherwise construe
any term of the present application where the present application,
without such incorporation by reference, would not have failed to
provide an ascertainable meaning, but rather would have allowed an
ascertainable meaning for such term to be provided. Thus, the
person of ordinary skill in the art need not have been in any way
limited by any embodiments provided in the reference
[0192] Any incorporation by reference does not, in and of itself,
imply any endorsement of, ratification of or acquiescence in any
statements, opinions, arguments or characterizations contained in
any incorporated patent, patent application or other document,
unless explicitly specified otherwise in this patent
application.
[0193] X. Prosecution History
[0194] In interpreting the present application (which includes the
claims), one of ordinary skill in the art shall refer to the
prosecution history of the present application, but not to the
prosecution history of any other patent or patent application,
regardless of whether there are other patent applications that are
considered related to the present application, and regardless of
whether there are other patent applications that share a claim of
priority with the present application.
* * * * *