Transactions Based on Adequacy Ratio

By prioritizing orders based on fulfillment rates and response times within a trader's order book, the system addresses inefficiencies in existing trading systems, resulting in improved trading efficiency and execution outcomes.

JP7695978B2Active Publication Date: 2025-06-19CFPH LLC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2023140662
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2014-04-01
Filing Date
2023-08-31
Publication Date
2025-06-19
Estimated Expiration
2034-08-13

AI Technical Summary

Technical Problem

Existing systems for electronic matching and trading of items struggle with efficiently executing orders based on fulfillment rates and response times, leading to suboptimal trading outcomes.

Method used

An apparatus with a processor and memory that receives orders with associated fulfillment rates and response times, prioritizes and executes orders in a trader's order book based on these metrics, ensuring that orders with higher fulfillment rates and faster response times are executed first.

Benefits of technology

This approach enhances trading efficiency by prioritizing orders with higher fulfillment rates and faster response times, leading to better execution outcomes and reduced trading risks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007695978000001
    Figure 0007695978000001
  • Figure 0007695978000002
    Figure 0007695978000002
  • Figure 0007695978000003
    Figure 0007695978000003
Patent Text Reader

Abstract

To provide an apparatus for trading, a method, and a non-transitory computer-readable medium.SOLUTION: The apparatus causes at least one processor to execute: a step to receive a first order for an item, the first order associated with a first fill rate and a first response time; a step to receive a second order for the item associated with a second fill rate and a second response time; a step to order the second order ahead of the first order; a step to cause an order of the specific trader to be executed against the second order before any executing of any order of the specific trader against the first order; a step to allocate routing of communication on execution of a trading command for an order of the specific trader to a port of an electronic communication network; and a step to generate electronic signals for executing the trading command for the order of the specific trader in order to route communication via the allocated port of the electronic communication network.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Cross - Reference to Related Applications This application is a continuation - in - part of U.S. Patent Application No. 14 / 348,919, filed on April 1, 2014, which is the national stage application of International Application No. PCT / US / 2014 / 032433, filed on March 31, 2014, entitled "Foreign Exchange Trading", and claims the benefit of U.S. Provisional Patent Application No. 61 / 901,438 (Jacob Loveless), filed on November 7, 2013, the entire disclosures of which are incorporated herein by reference in their entirety.

[0002] Some embodiments relate to the matching and / or trading of items.

Background Art

[0003] The system may be used for electronic matching and / or power trading of items among users.

Summary of the Invention

Problems to be Solved by the Invention

[0004] The present invention is for solving the problems of the background art.

Means for Solving the Problems

[0005] According to various exemplary embodiments, an apparatus may include at least one processor associated with a particular trader's workstation and at least one memory storing instructions that, when executed by the at least one processor, further instruct the at least one processor to perform various steps. The instructions may instruct the at least one processor to receive a first order associated with a first fulfillment rate and a first response time for an item. The instructions may instruct the at least one processor to, after receiving the first order, receive a second order associated with a second fulfillment rate and a second response time for the item. The instructions may instruct the at least one processor to, in a particular trader's order book, order the second order prior to the first order, at least partially based on the first fulfillment rate and the first response time associated with the first order and the first fulfillment rate and the first response time of the second order. The instructions may instruct the at least one processor to, in response to ordering the second order prior to the first order in the order book, cause the particular trader's order to be executed against the second order before any execution of any order by the particular trader against the first order.

[0006] In some embodiments, receiving the first order may include receiving the first fulfillment rate. In some embodiments, receiving the second order may include receiving the second fulfillment rate.

[0007] In some embodiments, the first fulfillment rate may be determined based on a comparison of the number of times an order routed to a provider of the first order was responded to by the provider of the first order and the number of times an order routed to the provider of the first order was not responded to by the provider of the first order.

[0008] According to some embodiments, the first fulfillment rate may be determined based on a comparison between the number of orders for items routed to the provider of the first order that were fulfilled by the provider of the first order and the number of orders for items routed to the provider of the first order that were not fulfilled by the provider of the first order.

[0009] According to some embodiments, the first fulfillment rate may be determined based on a comparison between the total quantity of items routed to the provider of the first order that were fulfilled by the provider of the first order and the total quantity of items routed to the provider of the first order that were not fulfilled by the provider of the first order.

[0010] According to some embodiments, the first fulfillment rate may be determined based on a comparison between the total quantity of items routed to the provider of the first order that were fulfilled by the provider of the first order and the total quantity of items routed to the provider of the first order that were not fulfilled by the provider of the first order.

[0011] According to some embodiments, the first fulfillment rate may be determined based on a comparison between the number of orders for a specific quantity range of items routed to the provider of the first order that were fulfilled by the provider of the first order and the number of orders for a specific quantity range of items routed to the provider of the first order that were not fulfilled by the provider of the first order.

[0012] In some embodiments, the second order may be associated with a first response time, and the instruction may direct at least one processor to receive, from at least one server, a third order from a third user for an item prior to receiving the second order, where the third order has a price equal to the price of the second order and is associated with a second response time that is longer than the first response time, and further direct at least one server to order the second order prior to the third order in the order book, at least partially based on the second response time associated with the third order that is longer than the first response time associated with the second order, and the step of transmitting a transaction command to the second user by at least one server is performed prior to the step of transmitting any transaction command regarding the item to the third user by at least one server, and the transmitting step is performed in response to the second order being ordered prior to the third order in the order book.

[0013] In some embodiments, the instruction may further direct at least one processor, when executed by at least one processor, to receive a third order and a fourth order, determine a probability that at least a portion of the third order is not independent of at least a portion of the first order, and order the third order and the fourth order listed in the order book at least partially based on the determined probability that at least a portion of the third order is not independent of at least a portion of the first order.

[0014] In some embodiments, the first fulfillment rate may include a probability of response per unit time, and the second fulfillment rate may include a probability of response per unit time.

[0015] Also contemplated herein are corresponding methods and machine-readable media for the above-described embodiments.

[0016] According to an exemplary embodiment, a method includes receiving a first order and a second order for an item, wherein the first order is associated with a first user, the second order is associated with a second user, the first and second orders have the same associated price, the first order is received before the second order, a fulfillment rate is associated with the first order, and a fulfillment rate is associated with the second order; receiving a command to buy or sell the item, the command having a threshold associated therewith; determining that the fulfillment rate associated with the first order is less than the threshold; as a result of determining that the fulfillment rate associated with the first order is less than the threshold, ignoring the first order and comparing the fulfillment rate associated with the second order to the threshold; determining that the fulfillment rate associated with the second order is greater than or equal to the threshold; as a result of determining that the fulfillment rate associated with the second order is greater than or equal to the threshold, transmitting a trading command to the second user; and receiving, in response to transmitting the trading command to the second user, a notification that the second user is attempting to make a trade counter to the trading command. Also contemplated herein are corresponding systems and machine-readable media.

[0017] According to various exemplary embodiments, a method may include various steps. At least one server may receive a first order and a second order for an item. The first order may be associated with a first user, and the second order may be associated with a second user. The first and second orders may have the same associated price. The first order may be received before the second order. A first fulfillment rate may be associated with the first order, and a second fulfillment rate may be associated with the second order. At least one server may receive a command to buy or sell an item. The command may have a threshold associated therewith. At least one server may determine that a first fulfillment rate associated with the first order is less than the threshold. As a result of determining that the fulfillment rate associated with the first order is less than the threshold, at least one server may ignore the first order and compare the fulfillment rate associated with the second order to the threshold. At least one server may determine that a second fulfillment rate associated with the second order is greater than a first fulfillment rate associated with the first order. As a result of determining that the second fulfillment rate associated with the second order is greater than the first fulfillment rate associated with the first order, at least one server may transmit the transaction command to the second user before transmitting any transaction command to the first user. In response to transmitting the transaction command to the second user, a notification may be received that the second user is attempting to make a transaction counter to the transaction command. Also contemplated herein are corresponding systems and machine-readable media.

[0018] According to various exemplary embodiments, a method includes steps of: receiving, by at least one server, a first order and a second order for an item, wherein the first order is associated with a first user, the second order is associated with a second user, the first and second orders have the same associated price, the first order is received prior to the second order, the first order is associated with a first fulfillment rate, and the second order is associated with a second fulfillment rate; receiving, by at least one server, a command to buy or sell the item, the command having conditions associated therewith; determining, by at least one server, that the first fulfillment rate associated with the first order does not meet a threshold; as a result of determining that the first fulfillment rate associated with the first order does not meet the threshold, ignoring, by at least one server, the first order and determining whether the second fulfillment rate associated with the second order meets the conditions; determining, by at least one server, that the second fulfillment rate associated with the second order meets the conditions; as a result of determining that the second fulfillment rate associated with the second order meets the conditions, transmitting, by at least one server, the transaction command associated with the second order to the second user prior to transmitting any transaction command associated with the first order; and receiving, in response to transmitting the transaction command to the second user, a notification that the second user is attempting to make a transaction counter to the transaction command. Also contemplated herein are corresponding systems and machine-readable media.

[0019] According to various embodiments, a non-transitory computer-readable medium stores instructions that, when executed by at least one processor, may instruct the at least one processor to perform various steps. The instructions may instruct the processor to receive a first order associated with a first fulfillment rate and a first response time for an item. The instructions may instruct the processor to receive, after receiving the first order, a second order associated with a second fulfillment rate and a second response time for the item. The instructions may instruct the processor to order the second order prior to the first order in an order book of a particular trader, based at least in part on the first fulfillment rate and the first response time associated with the first order and the first fulfillment rate and the first response time of the second order. The instructions may instruct the processor to, in response to ordering the second order prior to the first order in the order book, cause at least one processor to execute an order of the particular trader in opposition to the second order before executing any order in opposition to the first order. Also contemplated herein are corresponding systems and methods.

[0020] The advantages and features described above are only those of representative embodiments and are shown only to assist in the understanding of the present invention. They should not be considered as limitations to the present invention defined by the claims. Further features and advantages of embodiments of the present invention will become apparent from the following description, drawings, and claims.

Brief Description of the Drawings

[0021]

Figure 1

Figure 2

Figure 3

Figure 4

Best Mode for Carrying Out the Invention

[0022] Referring to FIG. 1, a system example 100 according to an exemplary embodiment is shown. The system 100 may include one or more computing systems (e.g., servers) 101 to 106. The computing systems 101 to 106 may be referred to as servers herein for the purpose of explanation. However, it should be understood that the use of the term "server" is non-limiting and that other types of computing systems may be used.

[0023] Each of the servers 101 to 106 may include one or more processors and one or more memories, and may include one or more databases. Each server may include one or more interfaces based on network hardware / software / firmware that enable the server to connect to the network 110 and communicate via the network 110. The network 110 may include a public network and / or a private network, and may be a wired network and / or a wireless network based on any type of technology. The network 110 may also include a bus-type and / or backplane-type architecture. The network 110 may include one or more elements including routers, switches, etc. The network 110 may be configured to enable at least each of the servers 101 to 106 to communicate with each other. The network 110 may also be configured to enable the servers 101 to 106 to communicate with other computing systems (for example, the computing system 150) that may be on the network 110 or on other networks not shown in FIG. 1 but accessible via the network 110. As an example, the network 110 may be a private network that interfaces with one or more other private networks and / or public networks via, for example, one or more routers, switches, etc., thereby enabling any of the servers 101 to 106 to communicate with other computing systems on such other networks. One or more of the servers 101 to 106 and the network 110 may be configured to support unicast communication, broadcast communication, and / or multicast communication. Multicast communication may include IP multicast, but other types of multicast may be used. Multicast may be reliable multicast or unreliable multicast.As will be understood by those skilled in the art, what has been described above regarding servers 101 to 106 and network 110 is merely an example, and additional and / or other server / network configurations and functionality may be used. For example, in addition to network 110, one or more of servers 101 to 106 may be interfaces based on additional network hardware / software / firmware, enabling the server to connect to one or more other public and / or private networks not shown in FIG. 1 and communicate via these networks, and may include one or more such interfaces.

[0024] One or more of servers 101 to 106 within system 100 may have the same configuration in terms of hardware (e.g., processor configuration, number of processors, processor speed, memory size, memory speed, etc.), and / or system software (e.g., operating system), and / or network interface speed, and / or may have a substantially the same configuration. Similarly, the ability of one or more of servers 101 to 106 to communicate with any other server via network 110 may be the same. One or more of servers 101 to 106 may be arranged within the same rack, the same room, the same building, etc. Further, the network elements constituting network 110 may also be arranged in the same location as servers 101 to 106. Again, additional and / or other configurations are possible. For example, each server may have different performance.

[0025] System 100 may be referred to as a cloud computing system. System 100 may be owned and / or partially owned and / or maintained / operated by one or more entities that lease or rent the resources of System 100 to one or more other users / customers, such as Users A - F. Users A - F may be individual persons and / or companies, such as banks, investment funds, trading companies, etc. Alternatively and / or additionally, one or more of Users A - F may own the resources of System 100. As an example, Server 101 may be leased to User A or User A may own it, Server 102 may be leased to User B or User B may own it, Server 103 may be leased to User C or User C may own it, Server 104 may be leased to User D or User D may own it, Server 105 may be leased to User E or User E may own it, and / or Server 106 may be leased to User F or User F may own it. Generally, each of Servers 101 - 106 may be assigned to a specific user who can access the resources of that server. Any user may be associated with, leased, or owned multiple servers within System 100. According to an example, System 100 may be expandable in that additional servers may be added to the system, and those servers may be leased or owned by Users A - F and / or new users. System 100 may be configured such that the addition and / or removal of one or more servers does not affect other users. As another example, any server may be leased / rented to multiple different users who are not associated with each other. The servers may be configured such that the use of a server by one user does not affect other users and the use of a server by other users does not affect that one user.

[0026] According to one example, system 100 may operate as, and / or may be configured as, a trading system or a matching system, particularly a decentralized trading / matching system, which enables users such as users A - F to trade and / or buy and sell one or more items with each other. The items traded on system 100 may be owned by one or more of the users A - F of the system. Alternatively and / or additionally, one or more of the users A - F may be a principal and / or an intermediary and / or an agent (e.g., acting on behalf of an entity that may own an item). The items traded may include tangible items and / or intangible items. According to one example, system 100 may be configured to trade one or more financial commodities, including, for example, fixed - income securities, common stocks, foreign exchange, etc. Thus, each of the users A - F can use system 100 to trade one or more financial commodities with one or more other users of the system. As would be understood by those skilled in the art, other types of items, such as real estate (e.g., land, houses, and / or buildings), consumer products (e.g., automobiles, electronic devices), tickets (e.g., airline tickets, concert tickets), etc., may also be traded and / or bought and sold via system 100. As would be understood by those skilled in the art, as an addition and / or alternative to a trading system or a matching system, system 100 may operate as, and may be configured as, other types of systems.

[0027] One or more of servers 101 to 106 may include one or more applications 120a to f that are executed on that server (for example, may be stored in memory). As an example, applications 120a to f may be referred to as a matching engine in this specification. However, other types and / or additional types of applications are also possible. The matching engines 120a to f may enable users A to F to conduct item trading transactions with each other. The matching engines 120a to f may be applications based on software and / or firmware and / or hardware that are executed on servers 101 to 106. Each server may include one and / or a plurality of matching engines. Each server may include additional applications and / or other applications. The matching engines of each of servers 101 to 106 may be the same and / or substantially the same application, or may be different applications. For example, each matching engine may execute a similar matching algorithm. As another example, if the matching engines are different, the executed matching algorithms may also be different. The matching engines 120a to f may be developed / maintained by the entity that owns / operates system 100. Also, such an entity may develop / maintain other applications and / or additional applications executed on each server.

[0028] Also, each server may include one or more applications 122a - e associated with users such as User A - E and executed on each server (for example, may be stored in memory). As an example, applications 122a - e may be referred to as trading applications in this specification. However, other types and / or additional types of applications are also possible. According to another example, one or more trading applications (for example, application 122f) may not be executed on servers 101 - 105. Instead, this application may be executed on a computing system (for example, computing system 130) connected to a server (for example, server 106). Computing system 130 may or may not be located in the same place as server 106 and / or other elements of system 100. Computing system 130 and server 106 may communicate via one or more private networks and / or public networks 131. As another example, computing system 130 and server 106 may communicate via network 110. According to one example, computing system 130 may be owned and operated by the entity that owns and operates system 100. According to another example, computing system 130 may be owned and operated by a user (here, User F) associated with the server to which this computing system is connected. As will be understood by those skilled in the art, these configurations are merely examples, and other configurations and / or additional configurations are also possible. For example, each of servers 101 - 105 / computing system 130 may include one and / or a plurality of trading applications. Each of servers 101 - 105 / computing system 130 may also include additional applications and / or other applications associated with users such as User A - F.

[0029] According to one example, each trading application 122a - f may be configured to enable users A - F of the system 100 to trade items by communicating with their respective matching engines 120a - f. Each trading application 122a - f may be an automated trading algorithm that generates trading orders (e.g., bids, offers, hits, takes) by executing a trading strategy, for example, on behalf of their respective users A - F. Each trading application in any server may be configured to trade one or more items. Each trading application 122a - f may be an application based on software and / or firmware and / or hardware, and may be an application executed in each of servers 101 - 105 / computing system 130. Each trading application may be different from other trading applications and may be developed by the user assigned to each server. For example, user A may develop trading application 122a and load this application onto server 101 (e.g., using a management application) or have it loaded and execute this application on server 101. Similarly, user B may develop trading application 122b and load this application onto server 102 (e.g., using a management application) or have it loaded and execute this application on server 102. Further, and / or as another example, trading applications 122a - f may be general - purpose applications (such as APIs) provided by the entity that owns / operates system 100. In each instance, each of users A - F may customize their respective applications (e.g., via an API through which the user interfaces, such as via a computing system remote from their respective servers, via a management application, and / or via a user interface device (keyboard, mouse, etc.) connected to their respective servers) to meet their respective needs. As will be understood by those skilled in the art, these configurations are merely examples and other configurations and / or additional configurations are possible.For example, instead of the trading applications 122a - f being automated trading algorithms that execute trading strategies, one or more of the trading applications 122a - f may each enable a respective user to interface with the system 100 to generate an order. For example, each user may be able to manually submit an order to the respective matching engine of the server (such as via a remote computing system and / or via a user interface device (keyboard, mouse, etc.) connected to the respective server).

[0030] As described above, in each server, the matching engines 120a - f may, together with the respective trading applications 122a - f, enable users A - F to trade items with each other. As an example, one instance of the matching engine may be configured to trade a particular item (e.g., a 10 - year bond). Thus, if any of the users A - F attempts to trade multiple different items (e.g., a 5 - year bond and a 10 - year bond), multiple instances of the matching engine 120 may be executed in each server, and each instance communicates with one or more instances of the respective trading application 122. As another example, one instance of the matching engine that communicates with one or more instances of each trading application may be configured to trade multiple items. As will be understood by those skilled in the art, these are merely examples, and other configurations and / or additional configurations are possible. For example, if a server is being used by multiple different users, this server may have multiple instances of the matching engine configured to conduct trades of the same item with multiple different users. For purposes of illustration only, the matching engine 120 is described as enabling the trading of one item.

[0031] According to one example, for certain users A to F who attempt to trade a certain item, the matching engines 120a to f of their respective servers may maintain, or may be configured to maintain, order books 124a to f regarding that item on those servers. As an example, each order book may be maintained in the memory of its respective server. For example, when each of users A to E attempts to trade a certain item, each server 101 to 105 may have an order book 124a to e regarding that item. If user F does not attempt to trade that item, server 106 need not have an order book regarding that item. In this way, the order book regarding a certain item may be distributed or decentralized across multiple servers. Similarly, when each of users A to E also attempts to trade a second item, the matching engines 120a to e of their respective servers 101 to 105 may also maintain, on those servers, a second order book regarding the second item. As will be understood by those skilled in the art, additional and / or other order book configurations are also possible.

[0032] According to a further example, for each item that may be transacted via system 100, a port (e.g., an Internet Protocol (IP) port) or a channel, etc. on network 100 may be assigned. For example, port "x" may be assigned to the first item, port "y" may be assigned to the second item, and so on. As detailed herein, some or all of the communication between servers 101 - 106 via network 110 regarding the first item may be performed via port "x", and similarly, some or all of the communication between servers 101 - 106 via network 110 regarding the second item may be performed via port "y". According to a further example, when a certain user, e.g., A, attempts to transact the first item and the second item, server 101 / matching engine 120a may be configured to perform message / command / information / data transmission and / or reception (and / or listen, monitor, etc.) at port "x" and port "y". In this way, user A may perform information / data transmission / reception regarding the two items (e.g., using trading application 122a). Similarly, for example, when user A attempts to transact the first item but not the second item, server 101 / matching engine 120a may be configured to perform message / command / information / data transmission and / or reception (and / or listen, monitor, etc.) at port "x" and not at port "y". In this way, for example, server 101 / user A may choose not to receive messages / commands / information / data regarding the second item that is not of interest. Similarly, when user A attempts to receive information regarding the second item later (e.g., using trading application 122a), server 101 / matching engine 120a may be configured to perform message transmission and / or reception (and / or listen, monitor, etc.) at port "y".According to one example, the trading applications 122a - f may determine (possibly under user control) which items are traded and / or which items are not traded, and in this way, control the respective server / matching engine configurations, for example, regarding which ports are monitored and regarding which items an order book is maintained. As another example, a user may control the respective server / matching engine configurations regarding which ports are monitored and regarding which items an order book is maintained (e.g., using an API through which the user interfaces, such as via a computing system remote from the respective servers, via a management application, and / or via a user interface device (keyboard, mouse, etc.) connected to the respective servers).

[0033] According to an example operation of system 100, if a certain user / trading application, for example, user A / trading application 122a, is interested in trading a certain item, for example, item "w", user A / trading application 122a may generate a bid order or an offer order for item "w" (this order may include price and / or size). The trading application 122a may transfer this order to the matching engine 120a, and the matching engine 120a may record this order in the order book 124a (i.e., the order book regarding item "w" on server 101). This order is shown as order 140 in the order book 124a in FIG. 1. According to an example operation of system 100, since user A generated order 140, the matching engine 120a may play a role in managing the execution of an order that counters order 140 (for example, matching contra-orders that counter order 140). According to a further example operation of system 100, the matching engine 120a may multicast order 140 from the port assigned to item "w" via network 110. The multicast order may include some designation indicating that this order was issued from user A / trading application 122a / matching engine 120a and / or server 101. Each of the other users / servers on system 100 may be interested in item "w", and thus, if each is configured to receive on the port regarding that item, each matching engine may receive order 140 and record this order in its respective order book regarding that item. For example, user B / trading application 122b and user C / trading application 122c may be interested in item "w", and thus, the matching engines 120b and 120c may be configured to receive order 140 and record this order (shown as 140' and 140" in FIG. 1) in their respective order books 124b and 124c.Similarly, matching engines 120b and 120c may record some indication that this order was issued from user A / transaction application 122a / matching engine 120a and / or server 101. Each of the matching engines 120b and 120c may also transfer information regarding order 140 to respective transaction applications 122b and 122c and / or users B and C. Order 140 may become known to users B - C / transaction applications 120b - c, but the origin of this order (i.e., the identity of user A) may or may not become known depending on whether system 100 is an anonymous matching system.

[0034] Similarly, when user B / transaction application 122b generates an order for item "w", transaction application 122b may transfer this order to matching engine 120b, and matching engine 120b may record this order in order book 124b (i.e., the order book regarding item "w" located in server 102). This order is shown as order 142 in order book 124b in FIG. 1. Since user B generated order 142, matching engine 120b may play a role in managing the execution of an order that counters order 142 (e.g., matching a counterorder to order 140). Matching engine 120b may multicast order 142 from the port assigned to item "w" via network 110. The multicast order may include some indication meaning that this order was issued from user B / transaction application 122b / matching engine 120b and / or server 102. Each of the other users / servers on system 100 may have an interest in item "w", and thus, if configured to receive on the port regarding that item, each matching engine may receive order 142 and record this order in its respective order book regarding that item. For example, as described above, since user A / transaction application 122a and user C / transaction application 122c have an interest in item "w", matching engines 120a and 120c may receive order 142 and record this order in their respective order books 124a and 124c (shown as 142' and 142" in FIG. 1). Similarly, matching engines 120a and 120c may record some indication meaning that this order was issued from user B / transaction application 122b / matching engine 120b and / or server 102. Each of the matching engines 120a and 120c may also transfer information regarding order 142 to their respective transaction applications 122a and 122c and / or users A and C.

[0035] According to a further operation example of the system 100, when the user A / transaction application 122a cancels all or part of the order 140 later, it may generate a cancellation command for this order, and this command may be transferred to the matching engine 120a. The matching engine 120a may cancel this order from its order book 124a, or may multicast the cancellation command via the network 110 from the port assigned to the item "w". The cancellation command may include some indication that the cancellation command was issued from the user A / transaction application 122a / matching engine 120a and / or the server 101 so that other servers can know up to which order the cancellation command refers. Each of the other users / servers may be interested in the item "w", and thus, if each is configured to receive on the port related to that item, each matching engine may receive the cancellation command and cancel each order from its respective order book. For example, the matching engines 120b-c may receive the cancellation command and cancel the order 140 from the order books 124b-c. The matching engines 120b-c may also notify the transaction applications 122b-c and / or the users B and C that the order 140 has been invalidated.

[0036] Assuming that the bid / offer order 140 from A has not been cancelled, user B / transaction application 122b may generate a transaction command / contrary order / opposing order to counter this order, for example, a hit / take (the hit / take command may include price and size) (as another example, the transaction command may be a bid or offer that crosses / matches order 140 (e.g., at a specific price)). Transaction application 122b may transfer the transaction command to matching engine 120b, and matching engine 120b may search for matching orders in its own order book 124b and may recognize / determine that this command matches at least order 140 from user A (if matching engine 120b recognizes that order 142 was issued by user B, it may not attempt to match a transaction command to order 142). In contrast, matching engine 120b may multicast the transaction command via network 110 from the port assigned to item "w". In addition to adding some indication that this transaction command was issued, for example, by user B / transaction application 122b / matching engine 120b / and / or server 102, the transaction command may be explicitly tagged / specified / directed to user A / transaction application 122a / server 101 / and / or matching engine 120a, because, as described above, matching engine 120a may play the role of executing against orders issued from user A / server 101. As would be understood by those skilled in the art, other means may be used to notify matching engine 120a that the transaction command is against an order that matching engine 120a may play the role of executing against. According to an operating example of system 100, other servers / matching engines (e.g., a server / matching engine listening at the port assigned to item "w") may receive the multicast transaction command, and may ignore commands recognized as being designated for user A / transaction application 122a / server 101 / and / or matching engine 120a.According to another operation example of system 100, such a server / matching engine may receive multicast transaction commands and notify each trading application and / or user of the trading possibility. According to one example, the actual transaction commands may be encrypted.

[0037] According to a further example, there are additional orders in order book 124b that are not those of user B, and the transaction command from user B / trading application 122b is of a size exceeding order 140 and / or, thus, in case of competing with these other orders, matching engine 120b may multicast an additional transaction command (tagged to the server etc. responsible for those additional orders) via network 110 from the port assigned to item "w". As another alternative, matching engine 120b may use the same transaction command tagged to user A / trading application 122a / server 101 / and / or matching engine 120a, and further, this transaction command may be tagged to the server etc. responsible for the additional orders. As will be understood by those skilled in the art, other variations are also possible.

[0038] When the server 101 / matching engine 120a receives a trading command, it will recognize that the command is tagged for the server 101 / matching engine 120a. Next, the matching engine 120a may determine whether the order 140 is still available (e.g., whether it has not been canceled and / or whether it has not been executed against by another user and whether it is still listed in the order book 124a). If the order 140 is still available, the matching engine 120a may execute the trading command against the order 140 by deleting the order 140 from its own order book 124a (or, if not all of the order 140 is to be executed against, by reducing the available quantity of the order 140 in the order book). The matching engine 120a may also communicate with the trading application 122a and / or User A to notify them that the execution against the order 140 has been performed. Further, the matching engine 120a may multicast a transaction confirmation message from the port assigned to the item "w" via the network 110. The confirmation message may include a notification regarding the quantity of the order 140 that has actually been executed against. The confirmation message may be clearly tagged for User B / trading application 122b / matching engine 120b and / or server 102. When the matching engine 124b receives the confirmation message, it may delete the order 140 (or a portion thereof) from its own order book 124b and may notify User B and / or the trading application 122b of the matched order. In addition to User B, all other users / servers / matching engines interested in the item "w" may receive the confirmation message, which causes each matching engine to delete the order 140 (or a portion thereof) from its own order book. Also, such a matching engine may notify the respective user and / or trading application of the matched order. Thus, the matching engine 120c may delete the order 140 from its own order book 124c and may notify the trading application 122c and / or User C.According to another example and / or additional examples, in addition to multicasting a confirmation message, the matching engine 120a may cause another matching engine (such as engine 120c) to delete order 140 from its order book by multicasting some other command (such as a cancellation command). As will be understood by those skilled in the art, other command sequences and / or additional command sequences may be used.

[0039] As another example, when the matching engine 120a determines that order 140 is not available (e.g., has been cancelled and / or has already been executed against by another user) when receiving a trading command from user B as described above, the matching engine 120a may multicast a cancellation message for order 140, and / or a message clearly indicating unconfirmation of the transaction, and / or that the transaction has failed and / or has not been completed, etc. (these may be clearly tagged to user B / trading application 122b / matching engine 120b and / or server 102). In any case, the message may act on all matching engines applicable to deleting order 140 from their respective order books. Again, each trading application and / or user may be notified by its respective matching engine that command 140 is no longer available. Trading application 122b and / or user B may be clearly notified that the transaction has failed.

[0040] According to another example, the matching engine 120a may determine that the order 140 is still available as described above, and then the matching engine 120a may first communicate with the trading application 122a and / or user A to determine whether there is still a request for execution against the order 140. If so, the matching engine 120a may proceed with the processing as described above regarding generating a confirmation message, etc. As another example, the trading application 122a and / or user A may notify that there is still a request for execution against the order 140, but may notify that the request is for a size smaller than the available size of the order 140 (i.e., smaller than the size requested by the trading command). Here too, the matching engine 120a may proceed with the processing as described above regarding generating a confirmation message, etc., and the message may notify, for example, the size of the order 140 executed in opposition. Alternatively, if the user A and / or the trading application 122a no longer have a request for execution against the order 140, the matching engine 120a may delete the order 140 from its order book 124a, and then may proceed with the processing as described above regarding generating a cancellation message and / or an unconfirmed message, and as a result, the order 140 is deleted from other order books. Here too, each trading application / user on other servers may be notified by their respective matching engines that the command 140 is no longer available. For these, it may also be notified that each sender of this order (i.e., user A) no longer requests execution against the order while the order 140 is pending. As will be understood by those skilled in the art, other message flows and / or additional message flows regarding execution or non - execution against the order 140 are also possible.

[0041] According to a further aspect of the above operation example, for example, if user C / transaction application 122c generates a transaction command to counter order 140 at approximately the same timing as user B / transaction application 122b discussed here, matching engine 120c may multicast the transaction command via network 110 in a manner similar to matching engine 120b. In such an event, matching engine 120a may receive two transaction commands (one from user B and one from user C) that counter order 140, and each will necessarily enter the queue earlier than the other depending on which arrives at server 101 first. Here too, since matching engine 120a may play the role of managing the execution that counters an order (here, for example, order 140) issued from user A / server 101, matching engine 120a may execute order 140 by countering only one of user B and user C depending on which arrives at server 101 first (assuming both user B and user C attempt to execute the full size of order 140). Matching engine 120a may, for example, send an unacknowledged response to counter other transaction commands. As another example, if the transaction commands of user B and user C are not of a size sufficient for order 140 to respond to both, one transaction command may be fully executed and the other may be only partially executed. As will be understood by those skilled in the art, other variations are possible.

[0042] As will be understood by those skilled in the art, the above-described operation examples of the system 100 are just examples, and other operation examples and / or additional operation examples are also possible. For example, for a certain item, a plurality of ports or channels on the network 100 may be assigned. For example, for a certain item, one port may be used to multicast only bids for that item, another port may be used to multicast only offers for that item, another port may be used to multicast only transaction commands / backorders / opposite orders (e.g., hits / takes) for that item (or, for example, one port may be used for hits and another port may be used for takes), another port may be used to multicast transaction confirmation messages for that item (or, for example, one port may be used for transaction confirmations against hits and another port may be used for transaction confirmations against takes), another port may be used to multicast transaction unconfirmation messages for that item (or, for example, one port may be used for unconfirmations against hits and another port may be used for unconfirmations against takes), another port may be used to multicast bid cancellation messages for that item, and / or another port may be used to multicast offer cancellation messages, etc. for that item, which may include any other combinations of these, including ports for other messages. Here too, other variations are possible.

[0043] According to a further exemplary feature, system 100 may eliminate the generation of drop copies. For example, in matching engine 120a that generates a transaction confirmation message as described herein, for example, in addition to other matching engines 120b - f receiving this message and updating their respective order books 124b - f in some cases, other computing systems (shown as computing system 150) connected to network 110 may also receive these messages. These other computing systems may or may not be associated with a user / customer attempting to trade items using system 100. For example, computing system 150 may be associated with a clearing house that can clear transactions, such as the example of the transaction between user A and user B described herein.

[0044] According to further exemplary features of system 100, for example, if a trading application (e.g., application 122e) starts to submit bids and / or offers at off-market prices for an item, and it becomes necessary to stop the trading application 122e and, in some cases, remove those bids and offers from the market, the server 105 may be taken offline. Taking the server 105 offline may include, for example, taking the entire server offline (such as by a command from an administrator), shutting down / stopping / pausing the matching engine 120e, and preventing the matching engine 120e / server 105 from listening / receiving / transmitting on the ports associated with that item. In particular, each action may prevent the trading application 122e from submitting orders any further. Similarly, since the matching engine 120e is responsible for managing the execution of trading commands in response to orders submitted from the trading application 122e, each of the above actions may prevent the matching engine 120e from doing so any further. For example, if the matching engine 120e / server 105 stops listening / receiving on the ports associated with that item, the matching engine 120e will stop receiving trading commands. As will be understood by those skilled in the art, these are merely examples, and other exemplary features and / or additional exemplary features of system 100 are possible. Foreign exchange trading

[0045] In foreign exchange ("FX") trading, the market may be regarded as consisting of multiple users, one or more of whom may be regarded as liquidity providers ("providers") and one or more of whom may be regarded as liquidity takers ("takers"). As will be understood by those skilled in the art, a user may be both a provider and a taker. A provider may, in response to one or more transactions for one or more FX products, submit or stream one or more orders for an FX product, e.g., a bid and / or an offer for the FX product, each order having, e.g., a price and a size. Each order may be presented to or made available to one or more takers. In contrast, a taker may attempt an execution against an order by submitting a buy or sell trading command, e.g., taking an offer or hitting a bid (as another example, a taker may attempt an execution against an order by submitting a bid or an offer, etc.). The trading command may include a specified price and size. The size of the trading command may be the same size as the corresponding order against which an execution is to occur, or may be for a smaller size. When a trading command is submitted against an order, the command may be sent / routed to the provider that submitted the order. Optionally, a process, which may be referred to as a "second look", may occur. According to the second look, if the order is still available, rather than executing a trading command against the order, the provider that submitted the order may be given a second chance to decide whether to still make the trade. When the provider receives the trading command, the provider may respond with a "done" command, which, e.g., means that the provider still makes a trade for the trade the provider responded to according to the submitted order. The "done" command may include a size, which may correspond to the size of the trading command, or may be for a smaller size. As a result of the "done" command, a trading command may be executed against the order, thereby effecting a trade between the corresponding provider and taker.As another alternative, the provider may respond to the taker's transaction command with a "no / not done" command, which means, for example, that the provider will no longer perform the transaction as per the response the provider made as specified in the order. In this case, the transaction command need not be executed against the order, and the transaction need not be executed between the corresponding provider and taker. As a third alternative, the provider may not respond to the transaction command at all, or may take too long to respond to the transaction command (with a "done" or "cancelled" command). Here, the taker may withdraw or cancel the transaction command. Assuming the transaction command is withdrawn before the provider responds with a "done" command, the transaction command need not be executed against the order, and the transaction need not be executed between the corresponding provider and taker. In the last two cases, if the taker still wants to execute the transaction, the taker needs to resubmit another transaction command against another order.

[0046] According to an example described herein, system 100 may be used for trading one or more foreign exchange ("FX") products. For example, according to the method described herein, a provider on system 100 (e.g., user A and / or a trading application 122a executing on behalf of user A) may submit or stream one or more orders for FX products, such as bids and / or offers, in response to trading of FX products, and each order may have, for example, a price and a size. As discussed herein, for example, each order may be routed from a provider's server (e.g., user A's server 101) to one or more other servers. Assuming that a server, such as user B's server 102, is configured to receive an order for an FX product, a corresponding matching engine of server 102, such as engine 120b, may receive the order and record it in respective order books 124b. Thereafter, the matching engine may transfer the information to user B and / or trading application 122b in the order of receipt. User B and / or trading application 122b may attempt to execute against the order, for example, by submitting a trading command that counteracts the order (thereby potentially becoming a taker). The trading command may include a specified price and size. As discussed herein, for example, if a trading command that counteracts the order / a command that is matched against the order is submitted, this command may be sent / routed to server 101 and matching engine 120a. According to a second look, rather than the matching engine 120a executing a trading command that counteracts the order (assuming the order is still available), the matching engine 120a may first communicate with trading application 122a and / or user A to determine whether there is still a request to maintain the trade as specified by the order.Assume that trading application 122a and / or user A still intends to maintain the order. Then, a "completed" command may be transmitted from trading application 122a and / or user A to matching engine 120a. As a result, subsequently, a trading command counteracting the order (e.g., for the size specified by the "completed" command) may be executed, and then, as discussed herein, a confirmation message or the like may be generated. Alternatively, assume that trading application 122a and / or user A no longer intends to maintain the transaction as specified by the order. Then, a "no / cancel" command may be transmitted from trading application 122a and / or user A to matching engine 120a. And that matching engine 120a may transmit, for example, as discussed herein, a cancellation message for the order, and / or a message clearly indicating the unconfirmation of the transaction, and / or that the transaction has failed, and / or that the transaction has not been completed, etc. As another alternative, assume that trading application 122a and / or user A no longer intends to maintain the transaction as specified by the order. Then, trading application 122a and / or user A may not need to transmit any message to matching engine 120a. As yet another alternative, user B / trading application 122b may withdraw the trading command, and such a request may be transmitted, for example, to matching engine 120b. That matching engine 120b may transmit that withdrawal request, for example, to at least server 101 and matching engine 120a, and server 101 and matching engine 120a may ignore subsequent actions regarding that trading command. As will be understood by those skilled in the art, the above-described operation examples of system 100 for foreign exchange transactions are just examples, and other operation examples and / or additional operation examples are also possible.

[0047] According to another example discussed herein, for example, assume that each of three providers, users A, C, and D, submits an order for a product at the same price, and assume that, for example, the size of A's order is 10, the size of C's order is 5, and the size of D's order is 5. Further, as discussed herein, assume that each order is routed to user B's server 102 and is recorded in the order book 124b. Further, assume that, for example, A's order is time-prioritized over C's order, and C's order is time-prioritized over D's order. User B and / or the trading application 122b may submit a trading command for the product at the price of those three orders and with a size of 20 upon receiving the orders. According to an example discussed herein, the matching engine 120b may transfer a trading command with a size of 5 to the server 101 / matching engine 120a (and thereby may execute against A's order), may transfer another trading command with a size of 10 to the server 103 / matching engine 120c (and thereby may execute against C's order), and may transfer a third trading command with a size of 5 to the server 104 / matching engine 120d (and thereby may execute against D's order). The matching engine 120b may transfer those three trading commands substantially simultaneously. For example, the matching engine 120b may transfer trading commands to each of users C and D's servers 103 and 104 without waiting for a confirmation or unconfirmed message from user A's server 101. According to another example, assume that user A responds with a "completed" command with a size less than 10 or a "canceled" command. Then, upon receiving a notification of such a response from server 101, the matching engine 120b of server 102 may attempt to remain responsive to user B's trading command by transferring another trading command for the unfilled size to user C or user D. As another alternative, the matching engine 120b of server 102 may attempt to remain responsive to user B's trading command by transferring another trading command for each respective portion of the unfilled size to each of users C and D.As another example, assume that in addition to orders from users A, C, and D, there is another order for size 10 from user E. Here, rather than (or in addition to) the matching engine 120b attempting to respond to user B's transaction command via user C and / or user D, the matching engine 120b may automatically attempt to respond to user B's transaction command by forwarding another transaction command for the unfilled size or a portion thereof to user E. Again, as would be understood by one of ordinary skill in the art, the foregoing is an example of an operation of the system 100, and other variations are possible.

[0048] From the taker's perspective, it is not desirable for the provider to respond to the transaction command with a "cancel" command, or for the provider to take too long to respond to the transaction command, or to not respond at all. Both of these could potentially result in the taker withdrawing the transaction command. In these cases, as a result, either the taker does not execute the desired transaction, or the taker searches for another provider to transact with by executing against other orders, and such transactions take too long.

[0049] According to one example, the fulfillment rate of a provider may be calculated by evaluating the responses of the "completed" and "abort" commands of a provider, and / or the absence of a response, and / or a delayed response. The fulfillment rate of a provider may be regarded as, for example, the ratio of the number of transaction commands sent to the provider and executed by the provider to the total number of transaction commands sent to the provider that the provider is capable of accepting. The fulfillment rate may be determined, for example, by measuring the number of transaction commands sent to the provider and executed by the provider and dividing this by the total number of transaction commands sent to the provider that the provider is capable of accepting. The resulting value may be a value from 0 to 1, including 0 and 1, and may be expressed as a percentage value (i.e., multiplied by 100). For example, if 10 transaction commands are sent to a provider and the provider responds with a "completed command" to all 10 transaction commands and each leads to the execution of a transaction, the fulfillment rate of the provider would be 100%. As another example, if 10 transaction commands are sent to a provider and the provider responds with a "completed" command to 7 transaction commands, each leading to the execution of a transaction, and responds with an "abort" command to 3 transaction commands, the fulfillment rate of the provider would be 70%. As another example, if 10 transaction commands are sent to a provider and the provider responds with a "completed" command to 3 transaction commands, each leading to the execution of a transaction, responds with an "abort" command to 4 transaction commands, does not respond to another transaction command, responds with a "completed" command to another transaction command but takes too long, and responds with a "completed" command to another transaction command after the taker has submitted a withdrawal command, the fulfillment rate of the provider would be 30% (this is because only 3 out of 10 transaction commands lead to the execution of a transaction).As another example, if a trading command counteracting an order is sent to a provider and the order is cancelled by the provider and / or executed against prior to receipt of the trading command, such unexecuted trading commands are considered not to adversely affect the provider's determined fill rate. As will be understood by those skilled in the art, the fill rate may be defined and determined in other ways.

[0050] According to another example and / or additional examples, the fill rate may be determined and updated for the provider regardless of time such that the entire history of the provider's responses to trading commands is considered. According to another example and / or additional examples, the fill rate may be determined and updated for the provider over a specified duration, e.g., a specified number of hours, a specified number of days, etc. For example, the duration may be the trading day prior to the day the market is open. Thus, the fill rate may be determined / updated at the end of each trading day, e.g., considering only the provider's response to the trading commands of that day. As another example, the duration may be measured over a moving duration such as the last x hours. Thus, the fill rate may be determined / updated hourly considering the trading commands of the last x hours. As will be understood by those skilled in the art, the fill rate may be defined and determined in additional ways and / or different ways than those discussed herein. For example, if a provider responds "filled" to a trading command for a size smaller than the size specified in the trading command, this incomplete fill may potentially adversely affect the fill rate, i.e., the fill rate may be a smaller value than if a "filled" response was made for the same size as specified in the trading command. In a given market, each provider's fill rate may be determined in the same way, or if the providers are different, the methods for determining each provider's fill rate may also be different. As will be understood by those skilled in the art, other variations are possible.

[0051] According to another example and / or additional example, the fulfillment rate may be determined based on, for example, a comparison of the fulfilled amount and the unfulfilled amount for a certain trading item over a certain period. As an appropriate period, there may be a historical period (e.g., the past two trading weeks), or there may also be a response time (e.g., the percentage of orders typically responded to within a few milliseconds of an execution request). In some embodiments, the number of various orders that have or have not been responded to may be inappropriate, and instead, the comparison between the total amount responded to and the total amount not responded to may be appropriate. For example, if a trader only responds to half of the total amount of a specific trading item routed for execution for a certain trader, the fulfillment rate for that trader for that trading item may be calculated to be 50%. In this example, even if the 50% responded to represents 80% of the number of orders, the calculated fulfillment rate may be 50% (e.g., this may occur when the number of orders responded to tends to be smaller than the number of orders not responded to, or when the trader partially responds to various orders).

[0052] According to another example and / or additional example, a provider may have one or more fulfillment rates in a given instance. For example, the provider may have one or more determined fulfillment rates for each FX product to which the provider responds to a transaction. For example, for a given FX product, the provider may have a single fulfillment rate based on how the provider responds to a transaction command, regardless of the source (i.e., taker) of the transaction command. As another example and / or additional example, for a given FX product, the provider may have multiple fulfillment rates, each corresponding to a respective taker, e.g., a fulfillment rate based on how the provider responds to a transaction command from that taker. As another example and / or additional example, for a given FX product, the provider may have a fulfillment rate based on how the provider responds to transaction commands from a plurality of takers, not necessarily all the takers to which the provider responds. As another example and / or additional example, the provider may have a fulfillment rate determined across multiple FX products. As would be understood by one of ordinary skill in the art, other variations are possible, including that the number of determined fulfillment rates may vary if the providers are different. For example, each provider may have a single fulfillment rate based on how the provider responds to a transaction command, regardless of the source (i.e., taker), and one or more providers may have a fulfillment rate associated with a specified taker.

[0053] According to another example and / or additional examples, the fulfillment rate of a provider may be determined manually and / or electronically. For example, referring to the system 100 as an example, a server, such as any one of servers 101-106, may monitor orders generated by user / transaction applications associated with that server, and may also monitor transaction commands counteracting such orders. From such measurements, the server may determine the fulfillment rate. In other words, a server assigned / associated with a provider may determine the fulfillment rate of that provider. As an example, an application running on the server, such as the matching engine 120, may perform such measurements to determine the fulfillment rate. As another example and / or additional example, a server, such as any one of servers 101-106, may monitor transaction commands generated by user / transaction applications associated with that server, and may also monitor orders against which such transaction commands are issued, and determine the fulfillment rate from such measurements. In other words, a server assigned / associated with a taker may determine the fulfillment rate of the provider. As an example, an application running on the server, such as the matching engine 120, may perform such measurements to determine the fulfillment rate. As another example and / or additional example, a server of the system 100 not associated with a user, such as server 150, may monitor orders, transaction commands, etc. to determine the fulfillment rate of the provider of the system 100. As another example and / or additional example, any one or more servers of the system 100 may monitor orders, transaction commands, etc. Thereafter, for example, an administrator may manually determine the fulfillment rate of the provider of the system 100. As will be understood by those skilled in the art, the fulfillment rate may be determined by other and / or additional methods.

[0054] According to another example and / or additional examples, the fulfillment rate of a certain provider may be made such that other servers of system 100 (in other words, servers other than the servers associated with a certain provider and / or servers added to the servers associated with a certain provider) can also be used. For example, when an administrator of system 100 determines the fulfillment rate, the administrator may configure such a fulfillment rate so that one or more servers of system 100 can be used. As another example and / or additional example, when a certain server of system 100, such as server 150, determines the fulfillment rate, this server may communicate the fulfillment rate to one or more servers of system 100. As another example and / or additional example, when a server associated with a certain provider determines the fulfillment rate of that provider, this server may communicate the fulfillment rate to one or more other servers of system 100. As an example, the fulfillment rate of a certain provider may be included in the orders generated by that provider. As will be understood by those skilled in the art, the fulfillment rate may be communicated in other ways and / or additional ways.

[0055] According to another example and / or additional examples, multiple fulfillment rates of a certain provider may be determined for different multiple quantities, for example, may be determined for specific traded goods. For example, the fulfillment rate may be determined for quantities such as less than or equal to 100, between 101 and 1000 (including 101 and 1000), between 1001 and 5000 (including 1001 and 5000), between 5001 and 10000, etc. This is particularly useful, for example, when a provider has a high fulfillment rate for small quantities and a low fulfillment rate for large quantities. For example, in a certain provider, the fulfillment rate calculated for the euro-dollar amount between 1M and 2M may be 30%, and the fulfillment rate for the euro-dollar amount between 100,000 and 500,000 may be 85%.

[0056] According to another example and / or additional example, the fulfillment rate may be determined based on which side of the transaction, e.g., it may be determined based on whether the provider is on the buy side or the sell side for a particular item. For example, in a transaction for a particular item, some providers may be more likely to respond to orders as a buyer than as a seller. Thus, when the provider is a buyer (or seller), the fulfillment rate of the provider may be calculated based on the ratio of the number (or quantity, etc.) of orders responded to by the provider when the provider was a buyer (or seller) to the number (or quantity) of orders not responded to by the provider when the provider was a buyer (or seller).

[0057] According to another example and / or additional example, the fulfillment rate may be determined based on the spread, e.g., it may be determined based on the spread between the national best bid and offer (NBBO) prices. For example, some traders may be more likely to respond to orders when the spread meets a particular threshold or range, which may be, for example, when the spread is less than $1, or when the spread is less than its average spread, or when the spread is less than one standard deviation below the average spread of the traded commodity from the start of the trading day, or when the spread is greater than (and / or equal to) $0.10 and less than (and / or equal to) $0.20. Thus, the fulfillment rate of a particular provider may depend on the current spread for the item for which the fulfillment rate is being calculated.

[0058] In some embodiments, the fulfillment rate may be determined based on various factors described herein. Such factors may include, for example, the comparison of the total quantity of all traded goods that have been fulfilled versus those that have not been fulfilled, the comparison of the total quantity of a specific traded good that has been fulfilled versus those that have not been fulfilled, the comparison of the total number of orders from all sources that have been fulfilled versus those that have not been fulfilled, the comparison of the number of orders for a specific traded good that has been fulfilled versus those that have not been fulfilled, the comparison of the number of orders of the same quantity and scope as a specific order that has been fulfilled versus those that have not been fulfilled, and the like. For example, the fulfillment rate (e.g., the net fulfillment rate) may be calculated as the simple average or weighted average of two or more fulfillment rate values calculated as discussed herein. For example, the fulfillment rate calculated for a provider that may be used to fulfill an order for a specific traded good for a specific trader in the order book of the specific trader may be calculated as the average of (1) the total calculated fulfillment rate of the provider considering all traded goods for all parties, (2) the calculated fulfillment rate of the provider for all traded goods competing against the specific trader, and (3) the calculated fulfillment rate of the provider for the specific traded good competing against the specific trader.

[0059] In some embodiments, the fulfillment rate may be determined based at least in part on the response time. For example, a provider may be determined such that the fulfillment rate varies if the response time varies. For example, a provider may be calculated to typically respond to 70% of average orders within 10 milliseconds and 85% of average orders within 20 milliseconds.

[0060] In some embodiments, the fulfillment rate may be expressed as the probability of response per unit time, which reflects both the fulfillment rate and the response time (as calculated in various examples herein).

[0061] According to another example and / or additional example, when the provider's adequacy rate is transmitted to the server and made available for use at the server, the adequacy rate may be notified, for example, to the matching engine of that server, but may not be notified to the trading application and / or user of that server. According to another example and / or additional example, the adequacy rate may be notified to the trading application and / or user of the server. According to another example and / or additional example, when the received order is transmitted by the matching engine to the respective trading application / user, the adequacy rate of the provider that generated the order may also be transmitted to the trading application / user.

[0062] As will also be understood by those skilled in the art, the determination of the adequacy rate and its use as defined herein are not limited to a distributed architecture such as System 100. For example, the use of the adequacy rate may also apply to a centralized order book. Here, for example, a centralized trading system (e.g., a central server that manages the order book and the receipt of orders and manages the execution of trading commands in response to such orders) may determine the provider's adequacy rate. Such a server may also transmit the adequacy rate to the computer systems used by end users.

[0063] According to another example, for instance, assume that each of three providers, users A, C, and D, submits an order for a product at the same price. Assume, for example, that the size of A's order is 10, the size of C's order is 5, and the size of D's order is 5. Further, assume as discussed herein that each order is routed to user B's server 102 and recorded in the order book 124b. Further, assume, for example, that A's order is time-prioritized over C's order, and C's order is time-prioritized over D's order. Still further, assume that the fulfillment rate of user A is 70%, the fulfillment rate of user C is 80%, and the fulfillment rate of user D is 90%. User B and / or the trading application 122b may, upon receiving the order, submit a trading command for the product at the price of those three orders and with a size of 10. According to one example, the matching engine 120b may prioritize the orders of users A, C, and D in the order book 124b based on the price and then the time at which the order is submitted to the market. Thus, A's order may be prioritized over C's order, and C's order may be prioritized over D's order. Here, the matching engine 120b may, in response to the trading command from user B, transfer the trading command with a size of 10 to server 101 / matching engine 120a (whereby execution against A's order may be made). This is because A's order has the highest priority. According to another example, the matching engine 120b may prioritize the orders of users A, C, and D in the order book 124b based on the price and then the fulfillment rate (i.e., not based on time unless two or more orders have the same fulfillment rate associated with the same price). Thus, D's order may be prioritized over C's order, and C's order may be prioritized over A's order. Here, the matching engine 120b may, in response to the trading command from user B, transfer the trading command with a size of 5 to server 104 / matching engine 120d (whereby execution against D's order may be made). This is because D's order has the highest priority.Furthermore, the matching engine 120b may attempt to respond according to the remaining size 5 of the transaction command with User D. Alternatively, the matching engine 120b may transfer the transaction command to the server 103 / matching engine 120c with the remaining size being 5 (whereby execution against the order of C may be made). This is because the order of User C has the next highest priority (e.g., in the order book). As will be understood by those skilled in the art here as well, the above is an example operation of the system 100, and other variations are possible.

[0064] According to another example, for instance, assume that each of three providers, users A, C, and D, submits an order for a product at a different price. For example, assume that the price of A's order is more favorable than the price of C's order, and the price of C's order is more favorable than the price of D's order (more favorable means, for example, a higher price in the case of a bid and a lower price in the case of an offer). Further, as discussed herein, assume that each order is routed to user B's server 102 and recorded in the order book 124b. Additionally, for example, assume that A's order is temporally prioritized over C's order, and C's order is temporally prioritized over D's order. Moreover, assume that the fulfillment rate of user A is 70%, the fulfillment rate of user C is 80%, and the fulfillment rate of user D is 90%. According to one example, the matching engine 120b may prioritize the orders of users A, C, and D in the order book 124b based on the fulfillment rate and then the price (again, time may be used as an additional factor when the fulfillment rates of two or more orders are the same). Thus, D's order may be prioritized over C's order, and C's order may be prioritized over A's order. According to this example, user B and / or the trading application 122b may be interested in the price at which a trading command is to be responded to more than the price at which the trading command is to be responded to. Thus, even if user B and / or the trading application 122b do not recognize the respective fulfillment rates of the providers who placed the orders, if it is known that a certain order is prioritized over another order at a different price, the user may be able to select what the user perceives to be a fulfillment rate that is favorable with respect to the price.

[0065] According to another example and / or additional example, orders may be placed according to a weighted average of price and fulfillment rate. For example, in some embodiments, a 5% difference in fulfillment rate may be given the same weight as a $0.10 price difference, such that an order with a price $0.09 lower and a fulfillment rate 5% higher is ordered preferentially. Response time may also be considered with a weight. In some embodiments, a particular trader may specify the weighting of various factors such as fulfillment rate, response time, price, etc. in the order book of that particular trader for a particular tradable item. For example, the user may specify a percentage of fulfillment rate equal to the price difference, or for example, a percentage of fulfillment rate equal to the response time difference. For example, for the purpose of ordering the order book of a particular trader, that particular trader may specify that a 1 price unit (i.e., a price that is only 1 unit better for that particular trader) is equal to a 3% improvement in fulfillment rate and a 2.5 millisecond improvement in response time. In this example, if the price of the first sell order is $12.25, the associated fulfillment rate is 80%, and the associated response time is 13 milliseconds, and the price of the second sell order is $12.26 (1 unit worse than $12.25), the associated fulfillment rate is 86%, and the associated response time is 15.5 milliseconds, then the first sell order and the second sell order may be considered to have equal priority, and both of these orders may be ordered preferentially over a third order with a price of $12.25, a fulfillment rate of 80%, and a response time of 15.5 milliseconds.

[0066] According to another example and / or additional examples, one or more users of the system 100 may have a defined threshold corresponding to the minimum fill rate that the user wishes to achieve upon submission of a trading command. In other words, if a user of the system 100 acts as a taker, the user may define the minimum fill rate that the user wishes to achieve upon submission of a trading command. A user may have a single threshold that applies to all financial products for which the user wishes to trade. As another example, a user may have a plurality of thresholds, each corresponding to a respective product for which the user wishes to trade. If the users are different, the defined thresholds that each user has may be different, and the number of defined thresholds may also be different. According to one example, a user / trade application / administrator of the system 100 may use the user's threshold to configure each respective server associated with the user, for example, configure each respective matching engine having the threshold. According to another example and / or additional examples, when a user / trade application submits a trading command to each respective matching engine, the order may include a threshold. For example, when user B and / or trade application 122b submits a trading command to counter a certain order to the matching engine 120b, this trading command may include a threshold. As will be understood by those skilled in the art, other variations are possible.

[0067] In some embodiments, the higher the fill rate, the more likely, correspondingly, the price is disadvantaged and the spread is high, because the counterparty is generally more likely to respond to the order at a price more favorable to itself. (For example, if the current best bid / offer for a certain trading product is $5.00 / $5.50, a certain trader is more likely to respond to the bid at $5.50 rather than $4.75, and a certain trader is more likely to respond to the offer at $5.75 rather than $5.50.) Thus, by enabling a user to specify a minimum fill rate, various embodiments enable the user to express a trade-off between the fill rate and the price. For example, the user may specify a high fill rate, but typically at a more disadvantaged price, or may specify a lower fill rate, typically at a more favorable price.

[0068] Figures 2 and 3 are exemplary graphs showing the relationship between average spread and estimated fill rate according to several embodiments. Figure 2 shows an exemplary graph when the trade order size is equal to 1,000,000. Figure 3 shows an exemplary graph when the trade order size is 5,000,000. As shown in these graphs for both the exemplary Model A and the exemplary Shift Book, the estimated fill rate tends to increase with the average spread. The exemplary graphs of Figures 2 and 3 also show the non-linear relationship between these variables for the graphed dataset, e.g., the estimated fill rate increases more rapidly where the spread is low than where the spread is high.

[0069] According to another example and / or additional example, when a taker (e.g., user B and / or trading application 122b) submits a trading command to counter an order in the taker's order book 124b that was submitted by a provider (e.g., user A and / or trading application 122a), the matching engine 120b may, for example, compare the specified threshold of user B with the determined fulfillment rate of user A, and transmit the trading command to the server 101 of user A only if the fulfillment rate of user A is greater than (or equal to or greater than) the threshold of user B for potential execution of the trading command to counter that order. Otherwise, the matching engine 120b may not attempt to execute the trading command to counter that order. According to another example and / or additional example, assume that there are, for example, two orders described in the order book 124b, each from a different provider, each at the same price, and the first order is given priority over the second order, for example, based on the time when they were submitted to the market. Here, when the matching engine 120b receives a trading command from user B and / or trading application 120b, first, it compares the specified threshold of user B with the determined fulfillment rate of the provider who submitted the first order, and transmits the trading command to the server of that provider for potential execution of the trading command to counter that order only if the fulfillment rate is greater than (or equal to or greater than) the threshold of user B. Otherwise, the matching engine 120b may skip / ignore the first order and compare the specified threshold of user B with the determined fulfillment rate of the provider who submitted the second order. Here too, the matching engine 120b may transmit the trading command to the server of the provider who submitted the second order for potential execution only if the fulfillment rate is greater than (or equal to or greater than) the threshold of user B. More generally, when the matching engine 120b receives a trading command from user B and / or trading application 120b, if the fulfillment rate of the orders in the order book 124b is less than, for example, the specified threshold of user B at that time, those orders may be skipped / ignored. Here too, using the fulfillment rate in this way may also be applied to a centralized trading system.As will be understood by those skilled in the art, using the fill rate in this manner may also be applicable when the order book is prioritized by price and fill rate in that order, or by fill rate and price in that order.

[0070] According to another example and / or additional example, if an order is submitted to the system 100 by a certain provider and the order is transmitted to a plurality of other servers and their respective matching engines, some matching engines may not automatically record the order in their respective order books. For example, assume that user A and / or trading application 122a submits an order to the system 100 and the order is received at server 102 of user B. When receiving the order, the matching engine 120b may compare the defined threshold of user B with the determined fulfillment rate of user A. If this fulfillment rate is greater than (or equal to) the threshold of user B, the matching engine may record the order in the order book 124b (in some cases, information regarding the order may be transferred to the user and / or trading application 122b). Alternatively, if the fulfillment rate is less than (or equal to) the threshold of user B, the matching engine may not record the order in the order book 124b (and may not transfer information regarding the order to user B and / or trading application 122b). In this way, user B / trading application 124b is only provided with orders having an associated fulfillment rate that meets a certain threshold (and thereby has an opportunity to conduct a transaction against that order). From the user's perspective, orders having an associated fulfillment rate that does not meet the defined threshold of that user are not visible (therefore, the user does not have an opportunity to conduct a transaction against that order). Furthermore, according to this example, different users in the system 100 may have different thresholds and / or may use different fulfillment rates for each provider, so the order books at each server for a certain product may be different (i.e., the current representation of the market may be different). As will be understood by those skilled in the art, using the fulfillment rate in this way may also be applicable when the order book is prioritized in the order of price, fulfillment rate or in the order of fulfillment rate, price.

[0071] According to another example and / or additional example, the order book may be ordered based at least in part on response time. Response time may include the time (e.g., on average) it takes to receive a responsive response or a non-responsive response. Response time may vary between system components, between times, between users, etc. For example, two nodes that are very close to each other in the system may have a very small response time, and the response time may be longer if the nodes are farther apart. Also, the response time may be longer during periods of heavy network traffic. In any case, the response times of responsive messages and non-responsive messages may be tracked and measured. Similar to the fulfillment rate, the response time may be measured for various time periods and situations. Specifically, the response time may be calculated for a particular message path (e.g., the response time for Provider #2 to respond to Trader #3 (e.g., over the past 3 trading days)), or it may be calculated for a particular trading entity (e.g., the average response time for all responsive and non-responsive messages from Provider #2 to all other trading entities).

[0072] In some cases, if the response time is long (e.g., 100 milliseconds), the trader can expect to obtain a single response from a single provider within the time it takes for the trader to obtain a single response. If the response time is short (e.g., 0.1 - 1 millisecond), the trader can expect to receive multiple responses from multiple providers. For example, a trader attempting to respond to an order of 1000 units may have the following opposing orders in the trader's order book. (1) An order from Provider #1. The quantity is 1000. The response time is 1 millisecond. The fill rate is 40%. (2) An order from Provider #2. The quantity is 1200. The response time is 5 milliseconds. The fill rate is 50%. (3) An order from Provider #3. The quantity is 1200. The response time is 10 milliseconds. The fill rate is 60%. And, (4) An order from Provider #3. The quantity is 2000. The response time is 40 milliseconds. The fill rate is 90%. In particular, the trader can obtain a response or no response from Provider #1, (if the order is not fully responded to by #1) from Provider #2, (if the order is not fully responded to by #1 and #2) from Provider #3, all within a time (16 milliseconds) shorter than the time it would take to obtain a response from Provider #4 in sequence. While order #4 may have the best fill rate, the trader is more likely to respond to the order (and more quickly) by sending the order to Provider #1, #2, and / or #3 (if necessary).

[0073] Depending on the embodiment, an order may be routed to the same provider multiple times. For example, an order may be routed to Provider #1 multiple times and then a response from Provider #4 may be received. The probability of responding to one routing to Provider #1 can be calculated as 40%, while the probability of responding to five routings of an order to Provider #1 may be significantly higher than 40%. One calculation of such a probability may be (probability of responding after five routings to Provider #1) = 1 - (1 - 0.4)^5 = 92.224%, which is higher than the probability of Provider #4 responding after one routing. However, the probability of responding after multiple routings may not increase in this way, because the individual routings to the same provider may not be mathematically independent events. Conversely, the probability of a provider responding may decrease each time such a provider does not respond to an order. These values may also be tracked and measured. For example, it may be determined that a provider with a fulfillment rate of 50% will have a 30% fulfillment rate for orders that were previously routed to that provider and did not receive a response, and that the provider will have a 10% fulfillment rate for orders that were rejected twice. In any case, it may be determined that the overall fulfillment rate after several routings will be higher than the fulfillment rate in the case of one routing.

[0074] Therefore, depending on the embodiment, it may be preferable to reduce the response time in order to increase the fulfillment rate (and / or to make the price somewhat more favorable, or to increase the quantity somewhat).

[0075] According to another example and / or additional example, there may be a high correlation between rejection rates (e.g., by liquidity providers) (e.g., the rate at which a provider rejects an order or type of order, which is, in a sense, the inverse of the fill rate). For example, there may be a single order behind orders from multiple liquidity providers. For example, if user A wants to buy 1000 units, all of liquidity providers #1, #2, and #3 may place sell orders for 1000 units in order to acquire those units and sell them to user A. The order book may reflect three separate orders for 1000 units (which may appear to be a total volume of 3000 units), but only 1000 units are actually needed. If one liquidity provider acquires 1000 units and fills user A's buy order, the other sell orders for 1000 units from other liquidity providers are likely to be canceled. In this example, trader #1 may want to buy 2000 units, and the order book for trader #1 may show orders for 1000 units from liquidity providers #1, #2, and #3 with fill rates of 75%, 80%, and 90%. In this scenario, trader #1 may conduct a 1000-unit transaction with provider #3, and then it may be found that providers #1 and #2 do not respond to the remaining 1000 orders of the trader. In this case, the fill rates of providers #1 and #2 will be highly correlated.

[0076] Accordingly, in some embodiments, the probability that two (or more) orders are independent or not may be determined based on, for example, historical transaction information (e.g., the correlation between two parties who cancel all or some of the orders, for example, after one corresponding order has been fulfilled (e.g., within a certain period of time)), quantity similarity, and time similarity (e.g., being entered simultaneously or almost simultaneously). For example, if two similar orders from providers A and B (e.g., orders that are similar because they have the same or nearly the same price and quantity and are entered simultaneously or almost simultaneously) are such that in 3 out of the last 4 instances where similar orders for the same product were entered from providers A and B, one of those orders was cancelled within 3 milliseconds of the other order that was being fulfilled, then it may be determined that there is a high likelihood of duplication.

[0077] In some embodiments, the rejection rate may be a function of the size shown. For example, the higher the same order quantity indicated by the providers, the higher the likelihood that their rejection rates are correlated. (For example, this may be because their orders are based on the same potential quantity from a third party and reflect the overlapping quantity of the same potential order). In some embodiments, the rejection rate may be a function of the microstructure. The correlation between the fulfillment rate and the rejection rate may be tracked and measured.

[0078] In some embodiments, the flow dependency between two or more orders may be estimated based on, for example, the correlation between the fill rate and the rejection rate. For example, the server may determine, calculate, or otherwise estimate the likelihood that two (or more) orders are independent of each other or that they (in whole or in part) overlap with each other. For example, the system may determine that two orders with completely different liquidity are likely to be independent, and thus, fulfilling one order does not affect the amount available for the other, and thus, it may be possible for both orders to be filled (e.g., in their entirety). The system may determine that another three orders are likely to at least partially overlap with each other, and thus, it is less likely that any party can fill all three orders in their entirety. For example, the system may determine that three orders overlap by 80%, and thus, after one order is fulfilled, the other two orders will only have 20% of their respective amounts still available for trading. In some embodiments, to estimate the flow dependency, the router may detect the link state between each counterparty. In some embodiments, the system may detect Granger causality to estimate flow independence.

[0079] FIG. 4 shows an exemplary flowchart according to various embodiments of the present invention.

[0080] In block 405, a trader may receive orders for tradable goods including quantity and price. These orders may include a specific side of a buy / sell transaction, e.g., may include a bid (or offer). Each order may include a quantity. Some orders may be received earlier than other orders.

[0081] In block 410, information regarding the order and the order provider may be determined, e.g., the fill rate, response time, flow independence (or dependence), and other conditions may be determined. Of course, the information determined in block 210 may not be determined at any particular point in time or relative to any other block in the flowchart at any particular point in time.

[0082] In block 415, the trader may receive information related to the order, for example, the information determined in block 210. This information may include information regarding fill rate, response time, flow independence (or dependence), and other information.

[0083] In block 420, the trader may be prompted to submit trader preferences, for example, to submit a threshold fill rate, a threshold response time, a minimum volume requirement, and / or other trading conditions. The trader may enter conditions and / or user preferences, for example, a target fill rate (e.g., regarding a specific trading commodity), a threshold response time, a minimum volume requirement, and / or other trading conditions. For example, the user may specify 1000 units as the minimum volume requirement, 70% as the minimum fill rate, and 20 milliseconds as the maximum expected response time.

[0084] In block 425, the trader may enter a trading command, for example, to enter a trading command to respond to an order for a certain quantity of a trading commodity, for example, at a specified price (or at the best price). The trading command may be associated with conditions such as a target fill rate, a minimum volume requirement, etc. The trading command may be interpreted as an instruction to respond to the order according to the order book and conditions, for example, by responding to the order according to the trader's order specification against a contra order in the trader's order book that meets the conditions (e.g., satisfies the conditions). For example, this command may be interpreted as an instruction to respond to the order against a contra order that meets various conditions at the best price in the shortest time.

[0085] In block 430, one or more order instructions (e.g., execution requests) from a trader may be routed to one or more providers of the order (e.g., according to the trader's order book and conditions). For example, an instruction to execute one or more orders at the head of the order book may be routed to the providers of those orders. Those orders may be selected based on their price, quantity, fill rate, response time, flow independence, and / or other factors. One or more of the providers may be given a "second look" to determine whether to respond to the requested order.

[0086] In block 435, one or more orders listed in the trader's order book may be executed, e.g., by one or more liquidity providers. Information regarding the execution may be routed to the trader, and the trader's order book (and the orders therein) may be updated to reflect the trade. For example, an unfulfilled order near the head of the order book may be moved to the end of the order book, which may be based on the determination that (e.g., in block 430) the provided liquidity is likely to overlap by the amount of the unfulfilled order, meaning that the unfulfilled order is less likely to be executed against.

[0087] In block 440, if a portion of the trader's desired quantity remains unfulfilled, one or more order instructions (e.g., execution requests) may be routed to one or more providers of those orders according to the trader's updated order book and conditions. One or more of the orders listed in the updated order book may be executed in response thereto.

[0088] In block 445, information regarding fulfillment, non-fulfillment, and response time may be tracked. Such information may be used to determine and update estimates of fill rate, response time, and other information related to the order book and routing.

[0089] Although the present disclosure has been described from the perspective of specific embodiments and generally related methods, changes and substitutions to these embodiments and methods will be apparent to those skilled in the art. For example, although various features have been described in relation to FX products, such features may also apply to other products and trading goods (e.g., stocks, bonds, retail goods, and other products and services). Accordingly, the above description of the exemplary embodiments does not limit the present disclosure. Other changes, substitutions, and modifications are possible without departing from the spirit and scope of the present disclosure.

[0090] The following sections provide guidance in interpreting this specification.

[0091] I. Terms The term "product" means a machine, manufacture, and / or composition of matter, unless otherwise expressly stated.

[0092] The term "process" means a process, algorithm, method, etc., unless otherwise expressly stated.

[0093] Each process (whether called a method, algorithm, or otherwise) essentially includes one or more steps. Thus, any reference to a "step" (singular or plural) of a process has an essential antecedent basis in the mere description of the process or the mere recitation of terms such as "process". Accordingly, references to a "step" (singular or plural) of a process in the claims have an adequate antecedent basis.

[0094] Terms such as "invention" mean "one or more inventions disclosed herein", unless otherwise expressly stated.

[0095] Terms such as "an embodiment", "embodiment", "embodiments", "the embodiment", "the embodiments", "one or more embodiments", "some embodiments", "a predetermined embodiment", "an embodiment", "another embodiment", etc. mean "one or more (but not all) embodiments of the invention" unless otherwise explicitly stated.

[0096] The term "variant" of the present invention means an embodiment of the present invention unless otherwise explicitly stated.

[0097] The term "indicator" is used in a very broad sense. It should be understood that an "indicator" of a matter includes anything that can be used to determine the matter.

[0098] An indicator of a matter may include an electronic message that identifies the matter (e.g., identification of a widget by a serial number attached to the widget, identification of a widget by one or more characteristics of the widget). An indicator of a matter may include information that can be used to calculate and / or reference the matter (e.g., information by which a widget identifies a machine that is part of what can be used to determine the widget). An indicator of a matter may specify a matter related to the matter (e.g., a characteristic of the matter, a name of the matter, a name of a matter related to the matter). An indicator of a matter may not specify a matter related to the matter (e.g., the letter "a" can be an indicator of a widget in a computer system configured to interpret the letter "a" to identify the widget). An indicator of a matter may include signs, omens, and / or tokens of the matter. An indicator may include, for example, codes, references, examples, links, signals, and / or identifiers. An indicator of a matter may represent, explain, and / or otherwise contain information specifically associated with the matter.

[0099] The conversion of an indication of a matter can be an indication of the matter (e.g., an encrypted indication of a matter can be an indication of the matter). An indication of a matter can include the matter itself, a copy of the matter, and / or a part of the matter. An indication of a matter may be meaningless to a matter not configured to understand the indication (e.g., a person does not understand that the character "a" indicates a widget, but since a computer system can determine a widget from the character "a", it can still be an indication of the widget). It should be understood that an indication of a matter can be used to determine that the matter does not mean that the matter or anything is determined. An indication of a matter can include any number of indications of the matter, unless otherwise specified. An indication of a matter may include an indication of another matter (e.g., an electronic message indicating many matters). (An indication can be used as a very broad term in the language of the claims. For example, receiving an indication of a financial product.)

[0100] The term "represent" means (1) to function to express, specify, represent, or indicate, as words, symbols, the like do; (2) to be expressed or specified by some terms, characters, symbols, the like; (3) to depict, or describe, or present itself, as a photograph does; or (4) to function as a sign or symbol itself.

[0101] A reference to "another embodiment" in describing an embodiment does not imply, unless otherwise explicitly stated, that the referenced embodiment is mutually exclusive with another embodiment (e.g., an embodiment described before the referenced embodiment). Similarly, the mere fact that two (or more) embodiments are referenced does not imply that these embodiments are mutually exclusive.

[0102] One embodiment of the present invention may include, cover, or encompass two or more other embodiments of the present invention. For example, a first embodiment including elements a, b, and c may cover a second embodiment including elements a, b, c, and d, as well as a third embodiment encompassing elements a, b, c, and e. Similarly, each of the first, second, and third embodiments may cover a fourth embodiment including elements a, b, c, d, and e.

[0103] The terms "comprising," "including," and their variations mean "including but not necessarily limited to" unless otherwise explicitly stated. Thus, for example, the sentence "The machine includes a red widget and a blue widget" means that the machine includes a red widget and a blue widget, but may also potentially include one or more other items as well.

[0104] The term "consisting of" and its variations mean "including and limited to" unless otherwise explicitly stated. Thus, for example, the sentence "The machine consists of a red widget and a blue widget" means that the machine includes a red widget and a blue widget, but nothing else.

[0105] The term "constituting" and its variations mean "forming the components, constituent parts, or elements thereof" unless otherwise explicitly stated. Thus, for example, the sentence "A red widget and a blue widget constitute the machine" means that the machine includes a red widget and a blue widget.

[0106] The term "consisting essentially of" and variations thereof mean, unless otherwise explicitly stated, "consisting exclusively of that component, of only those components, or of only those elements". Thus, for example, the sentence "Red widgets and blue widgets essentially constitute the machine" means that the machine consists only of red widgets and blue widgets (i.e., nothing else).

[0107] The terms "a", "an", and "the" mean "one or more", unless otherwise explicitly stated. Thus, for example, the term "widget" means "one or more widgets", unless otherwise explicitly stated. Similarly, after the term "widget" is written, a subsequent description of the term "widget" means "one or more widgets". Therefore, it should be understood that the word "the" can also refer to a specific term with a preceding basis. For example, if a paragraph states "a certain single feature" and then refers to "the feature", it should be understood that the term "the feature" refers to the previously stated "certain single feature" (it should be understood that the term "a" in "a certain single feature" refers to "one" certain single feature, not "one or more" certain single features).

[0108] The term "plurality" means "two or more", unless otherwise explicitly stated.

[0109] The term "as used herein" means "as used in this specification, including any matter that may be incorporated by reference", unless otherwise explicitly stated.

[0110] The phrase "at least one of" means, when such a phrase modifies a plurality of things (a list of enumerated things), any combination of one or more of those things, unless otherwise specifically stated. For example, the phrase "at least one of widget, car, handle" means (i) a widget, (ii) a car, (iii) a handle, (iv) a widget and a car, (v) a widget and a handle, (vi) a car and a handle, or (vii) a widget, a car, and a handle. The phrase "at least one of" does not mean "one of each" of the plurality of things when such a phrase modifies a plurality of things. For example, the phrase "at least one of widget, car, handle" does not mean "one widget, one car, and one handle".

[0111] Numerical terms such as "one", "two", etc., when used as cardinal numbers to indicate some quantity (e.g., one widget, two widgets), mean the quantity indicated by that numerical term, but not at least the quantity indicated by that numerical term. For example, the phrase "one widget" does not mean "at least one widget", and thus the phrase "one widget" does not cover, for example, two widgets.

[0112] The phrase "based on" does not mean "based only on", unless otherwise specifically stated. That is, the phrase "based on" encompasses 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". For example, the phrase "Element A is calculated based on Element B and Element C" covers embodiments where Element A is calculated as the product of B times C (i.e., A = B×C), embodiments where A is calculated as the sum of B plus C (i.e., A = B + C), embodiments where A is calculated as the product of B times C times D, embodiments where A is calculated as the sum of the square root of the sum of B plus C plus D times E, etc.

[0113] Terms such as "represent" are not exclusive unless otherwise expressly stated. For example, the term "represent" does not mean "represent only" unless otherwise expressly stated. For example, the phrase "data represents a credit card number" encompasses both "data represents only the credit number" and "data represents a credit card number and the data also represents something else."

[0114] The term "thereby" is used in this specification only to precede a clause or other set of words that express only some intended result, purpose, or consequence of something expressly stated before the term "thereby." Thus, when the term "thereby" is used within a claim, the clause or other words modified by the term "thereby" do not establish a particular further limitation of the claim, nor do they limit the claim or its meaning.

[0115] The terms "for example," "etc." and similar terms mean "for example," and thus do not limit the terms or phrases they explain. For example, in the sentence "A computer transmits data (for example, instructions, data structures) via the Internet," the term "for example" explains that "instructions" are an example of "data" that a computer can transmit via the Internet, and also explains that "data structures" are an example of "data" that a computer can transmit via the Internet. However, both "instructions" and "data structures" are merely examples of "data," and other things besides "instructions" and "data structures" can also be "data."

[0116] The term "respectively" and like terms mean "individually". Thus, when two or more things each have a characteristic "respectively", each such thing has its own characteristic, and these characteristics may be different from each other, but need not be different from each other. For example, the phrase "each of two machines has its own function" means that the first of the two machines has a function and the second of the two machines also has a function. The function of the first machine may or may not be the same as the function of the second machine.

[0117] The term "i.e." and like terms mean "that is", and thus limit the terms or phrases it explains. For example, in the sentence "A computer transmits data (i.e., instructions) via the Internet", the term "i.e." explains that the "instructions" are the "data" that the computer transmits via the Internet.

[0118] A numerical range includes integers and non-integers within that range, unless otherwise explicitly stated. For example, the range "1 to 10" includes the integers from 1 to 10 (e.g., 1, 2, 3, 4,... 9, 10) and non-integers (e.g., 1.0031415926, 1.1, 1.2,..., 1.9).

[0119] If two or more terms or phrases are synonyms (e.g., due to an explicit statement that the terms or phrases are synonyms), an instance of one such term or phrase does not mean that another such term or phrase must have a different meaning. For example, if a sentence indicates that the meaning of "comprises" is synonymous with "comprises, but is not limited to", the mere use of the phrase "comprises, but is not limited to" does not mean that the term "comprises" means something other than "comprises, but is not limited to".

[0120] II. Determining The term "determining" and its grammatical variations (e.g., determining a price, determining a value, determining an object that meets a particular criterion) are used in a very broad sense. Since the term "determining" encompasses a wide range of operations, "determining" can include calculating, computing, processing, deriving, inspecting, referring to (e.g., referring to a table, database, or another data structure), rendering in an electronic format or digital representation, specifying, etc. "Determining" can also include receiving (e.g., receiving information), accessing (e.g., accessing data in a memory), etc. Further, "determining" can include resolving, selecting, choosing, establishing, etc.

[0121] The term "determining" does not imply certainty or absolute accuracy, and thus, "determining" can include estimating, inferring, predicting, speculating, averaging, etc.

[0122] The term "determining" does not imply that a mathematical process must be performed, that a numerical method must be used, and that an algorithm is used.

[0123] The term "determining" does not imply that a particular device must be used. For example, it is not always necessary for a computer to perform the act of determining.

[0124] The term "determining" may include "calculating". The term "calculating" should be understood to include performing one or more calculations. Calculating may include computing, processing, and / or deriving. Calculating can be performed by a computing device. For example, calculating a matter can include applying an algorithm to data by a computer processor and generating the matter as the output of the processor.

[0125] The term "determine" may include "refer to". The term "refer to" should be understood to include making one or more references to, for example, a matter. Referring may include querying, accessing, selecting, choosing, reading, and / or searching. The act of referring may be performed by a computing device. For example, referring to a matter may include reading a memory location in which the matter is stored by a processor.

[0126] The term "determine" may include "receive". For example, receiving a matter may include taking in the matter. In some embodiments, receiving may include acts performed to take in a matter such as operating a network interface through which the matter is taken in. In some embodiments, receiving may be performed without acts performed to take in the matter in a direct memory write or hardwired circuit or the like. Receiving a matter may include receiving the matter from a remote information source that may have calculated the matter.

[0127] III. Form of the Article If the limitation of the first claim includes one of the features as well as two or more of the features (for example, a limitation such as "at least one widget" includes one widget as well as two or more widgets), and in a second claim that depends on the first claim, when the second claim uses the definite article "the" to refer to that limitation (for example, "the widget"), this mere use does not imply that the first claim includes only one of the features, nor does it imply that the second claim includes only one of the features (for example, "the widget" can include both one widget and two or more widgets).

[0128] When an ordinal number (such as "first", "second", "third", etc.) is used as an adjective before a term, that ordinal number is (unless otherwise expressly stated) simply used to indicate a particular feature, such as to distinguish a particular feature from another feature described by the same or a similar term, but the ordinal number is merely a name for convenience and has no other meaning or limiting effect. For example, "a first widget" may simply have such a name to distinguish it, for example, from "a second widget". Thus, simply using the ordinal numbers "first" and "second" before the term "widget" does not indicate any other relationship between the two widgets, nor does it indicate any other characteristics of either or both of the widgets. For example, simply using the ordinal numbers "first" and "second" before the term "widget" does not (1) indicate that the order or location of either widget comes before or after any other widget, (2) indicate that either widget occurs or operates either temporally before or after any other widget, and (3) indicate that either widget is ranked above or below any other widget in terms of importance or quality. The mere use of an ordinal number does not define a numerical limitation on the feature identified by the ordinal number. For example, the mere use of the ordinal numbers "first" and "second" before the term "widget" does not indicate that there are exactly two widgets.

[0129] When a single device, article, or other product is described herein, in another embodiment, alternatively, two or more devices or articles (regardless of whether they cooperate) may be used instead of the single device or article described. Thus, in another embodiment, a function described as being performed by a device may alternatively be owned by two or more devices or articles (regardless of whether they cooperate).

[0130] Similarly, when two or more devices, articles, or other products are described herein (regardless of whether they cooperate), in another embodiment, alternatively, instead of the two or more devices or articles described, a single device or article may be used. For example, multiple computer-based devices may be replaced by a single computer-based device. In some embodiments, such multiple computer-based devices may operate together to perform one step of a process such as is common in a grid computing system. In some embodiments, such multiple computer-based devices may operate and provide additional functionality to each other such that they perform one step of a process such as is common in a cloud computing system. (Conversely, a single computer-based device may be replaced by multiple computer-based devices that operate in cooperation with each other. For example, a single computing device may be replaced by a server and a workstation that communicate with each other over the Internet.) Accordingly, the various functions described as being processed by two or more devices or articles may alternatively be owned by a single device or article.

[0131] The functions and / or features of the single device described may, in another embodiment, alternatively, be implemented by one or more other devices that are described but not explicitly described as having such functions or features. Accordingly, other embodiments need not include the device itself that is described, but rather, in these other embodiments, may include one or more other devices having such functions or features.

[0132] IV. The examples and terms disclosed are non-limiting Neither the title (set forth at the beginning of the first page of this specification) nor the abstract (set forth at the end of this specification) shall be construed as limiting the scope of the disclosed invention, shall be used in construing the meaning of any claim, nor shall be used in limiting the scope of any claim. The abstract is included in this specification only for the reason that it is required under 37 C.F.R. 1.72(b).

[0133] The headings of the sections provided in this application are for convenience only and shall in no way be construed as limiting the present disclosure.

[0134] Numerous embodiments are described in this application and presented for purposes of illustration only. The described embodiments are in no way limiting and are not intended to be limiting. The disclosed invention is widely applicable to numerous embodiments, as will be readily apparent from this disclosure. Those skilled in the art will understand that various modifications and changes, such as structural, logical, software, and electrical modifications, may be made to practice the disclosed invention. Specific features of the disclosed invention may be described with reference to one or more specific embodiments and / or drawings, but it should be understood that such features are not limited to their usage within the one or more specific embodiments or drawings to which they are referenced, unless otherwise explicitly stated.

[0135] One embodiment may be disclosed as including several features, but other embodiments of the invention may include fewer features than all such features. Thus, for example, one claim may relate to fewer features than the overall set of features in the disclosed embodiment, and such a claim shall not be construed as requiring features other than those explicitly recited in the claim.

[0136] Embodiments of method steps or product elements described in this application do not constitute the invention claimed herein, are not essential to the invention claimed herein, or do not have the same scope as the invention claimed herein, except as explicitly described herein or (with respect to the invention defined by the claims and their scope) explicitly recited within the scope of those claims.

[0137] Any preamble of a claim that recites anything other than a statutory classification is to be construed as stating the purpose, advantages, and possible uses of the claimed invention, and such a preamble is not to be construed as limiting the claimed invention.

[0138] This disclosure is not an exact description, word for word, of all embodiments of the invention. Nor is this disclosure an enumeration of features of the invention that must be present in all embodiments.

[0139] Not all disclosed embodiments are necessarily covered by the claims (including all withdrawn, amended, published, and cancelled claims). Additionally, disclosed embodiments may be covered by some claims (but not necessarily). Thus, the fact that one claim (regardless of withdrawal, amendment, publication, or cancellation) relates to a particular embodiment is not evidence that the scope of other claims also relates to that embodiment.

[0140] Devices described as communicating with each other need not communicate continuously with each other, unless otherwise specifically stated. Conversely, such devices need only transmit to each other as necessary or desired, and in fact, may not exchange data most of the time. For example, a machine communicating with another machine via the Internet may not transmit data to the other machine for a long period of time (e.g., several weeks at a time). In addition to this, devices communicating with each other may communicate directly or indirectly through one or more intermediaries. Devices are communicating with each other if they are capable of at least one-way communication with each other. For example, a first device is communicating with a second device if the first device is able to transmit information to the second device. Similarly, the second device is communicating with the first device if the second device is able to receive information from the first device.

[0141] The description of an embodiment having several components or features does not imply that all or any of such components or features are required. Conversely, various optional components are described to show the broad range of possible embodiments of the present invention. Unless otherwise expressly specified, a component or feature is not essential or required.

[0142] Process steps, algorithms, etc. may be described or claimed in a particular sequential order, but such processes can be configured to operate in a different order. In other words, any order or sequence of steps that can be explicitly described or claimed does not necessarily indicate a requirement to perform the steps in that order. The steps of the processes described herein can be performed in any order possible. Further, although not described or implied as being performed simultaneously (for example, because one step is described after another step), some steps may be performed simultaneously. Further, the illustration of a process by way of the description in the drawings does not imply that the illustrated process excludes other variations and modifications, does not imply that any of the illustrated processes or steps thereof are necessary for the present invention, and does not imply that the illustrated process is preferred.

[0143] A process may be described as including a plurality of steps, but this does not imply that all or any of the steps are preferred, essential, or required. Various other embodiments within the scope of the present invention include other processes that omit some or all of the described steps. Unless otherwise specifically stated, no step is essential or necessary.

[0144] A process may be described alone, i.e., without reference to other products or methods, but in one 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 can be provided to improve the flexibility or desirability of the process.

[0145] A product may be described as including a plurality of components, aspects, quantities, characteristics, and / or features, but this does not indicate that some or all of these are preferred, essential, or required. Various other embodiments within the scope of the described invention include other products that omit some or all of the described plurality.

[0146] A list of enumerated items (some of which may be numbered and some may not) does not imply that any or all of the items are mutually exclusive, unless otherwise expressly stated. Similarly, a list of enumerated items (some of which may be numbered and some may not) does not imply that any or all of the items encompass any category, unless otherwise expressly stated. For example, the list "computer, laptop, and PDA" does not imply that any or all of the three items in the list are mutually exclusive, nor does it imply that any or all of the three items in the list encompass any category.

[0147] A list of enumerated items (some of which may be numbered and some may not) does not imply that any or all of the items are equivalent to each other or are easily substitutable for each other.

[0148] All embodiments are illustrative and do not imply, in some cases, that the invention or any embodiment has been made or implemented.

[0149] V. COMPUTING Those skilled in the art will readily understand that the various processes described herein may be implemented, for example, by a general-purpose computer, a dedicated computer, and a computing device appropriately programmed. Generally, a processor (e.g., one or more microprocessors, one or more microcontrollers, one or more digital signal processors) receives instructions (e.g., from a memory or a similar device), executes those instructions, and thereby performs one or more processes defined by the instructions. The instructions can be implemented, for example, by one or more computer programs, one or more scripts.

[0150] The term "computing" shall be taken to mean determining the use of a processor with respect to a software algorithm.

[0151] "Processor" means one or more microprocessors, central processing units (CPUs), computing devices, microcontrollers, digital signal processors, graphics processing units (GPUs), similar devices, or any combination thereof, regardless of architecture (e.g., chip-level multiprocessing or multicore, RISC, CISC, microprocessor without interlocked pipeline stages, pipeline configuration, simultaneous multithreading, microprocessor with integrated graphics processing unit, GPGPU).

[0152] "Computing device" means one or more microprocessors, central processing units (CPUs), computing devices, microcontrollers, digital signal processors, graphics cards, mobile game devices, similar devices, or any combination thereof, regardless of architecture (e.g., chip-level multiprocessing or multicore, RISC, CISC, microprocessor without interlocked pipeline stages, pipeline configuration, simultaneous multithreading).

[0153] Thus, the description of a process is also a description of an apparatus for performing the process. The apparatus for performing the process can include, for example, a processor and input / output devices suitable for performing the process. For example, the description of a process is a description of an apparatus comprising a processor and a memory storing a program that includes instructions that, when executed by the processor, direct the processor to perform the method.

[0154] The apparatus for carrying out the process can include a plurality of computing devices that operate together to carry out the process. Some of the computing devices can operate together to carry out each step of the process, can operate for separate steps of the process, and can provide services underlying other computing devices that can facilitate the carrying out of the process. Such computing devices can operate under the command of a central authority. In another embodiment, such computing devices can operate without the command of a central authority. Some examples of the apparatus that can operate in some or all of such ways can include a grid computer system, a cloud computer system, a peer-to-peer computer system, a computer system configured to provide software as a service, etc. For example, the apparatus can include a computer system that executes the bulk of its processing load on a remote server, such as a computer system that executes VMware software, but outputs display information to a local user computer and receives user input information from the local user computer.

[0155] Furthermore, a program (as well as other types of data) for carrying out such a method can be stored and transmitted in several ways using various media (e.g., computer-readable media). In some embodiments, instead of, or in combination with, some or all of the software instructions that can carry out the processes of the various embodiments, hardwired circuitry or custom hardware may be used. Thus, instead of only software, various combinations of hardware and software may be used.

[0156] The term "computer-readable medium" refers to any non-transitory medium, multiple identical media, or combination of different media that participates in providing data (e.g., instructions, data structures) that can be read by a computer, a processor, or a similar device. Such media can take many forms including, but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, optical disks, magnetic disks, and other permanent memories. Volatile media typically includes dynamic random access memory (DRAM) that constitutes main memory. Transmission media includes coaxial cables, copper wire, and fiber optics, including the wires that make up the system bus coupled to a processor. Transmission media can include or convey electromagnetic emissions such as those generated during acoustic, optical, and radio frequency (RF) and infrared (IR) data communications. Common forms of computer-readable media include, for example, floppy (registered trademark) disks, flexible disks, hard disks, magnetic tape, any other magnetic media, CD-ROM, DVD, any other optical media, punch cards, paper tape, any other physical media with patterns of holes, RAM, PROM, EPROM, flash EEPROM, any other memory chip or cartridge, a carrier wave described hereinafter, or any other media readable by a computer.

[0157] The term "tangible computer-readable medium" refers to a "computer-readable medium" that comprises a hardware component such as an optical or magnetic disk.

[0158] Various forms of computer-readable media can be involved in the conveyance of data (e.g., instruction sequences) to a processor. For example, data can be (i) sent from RAM to the processor, (ii) conveyed via a wireless transmission medium, (iii) formatted and / or transmitted according to many forms, specifications, or protocols such as Ethernet (registered trademark), wireless local area network communications defined by the IEEE 802.11 specifications whether they are approved by the WiFi Alliance, SAP, ATP, Bluetooth (registered trademark), and TCP / IP, TDMA, CDMA, and 3G, and / or (iv) encrypted in any of various ways well-known in the art to ensure privacy and prevent fraud.

[0159] The term "database" refers to any electronically stored collection of data stored in a searchable format.

[0160] The term "data structure" refers to a database within a hardware machine such as a computer.

[0161] The term "network" means a series of points or nodes interconnected by communication paths. For example, a network can include multiple computers or communication devices interconnected by one or more wired and / or wireless communication paths. A network can interconnect with other networks and can include sub-networks.

[0162] The term "predetermined" means, for example, determined in advance, e.g., prior to the current time or prior to the current operation. For example, the phrase "display a predetermined value" means to display a value determined prior to the operation of the display.

[0163] The term "condition" means (1) a prerequisite based on the fulfillment of an agreement, or (2) something essential for some occurrence or event.

[0164] The term "transaction" means a communication operation or activity that includes (1) the exchange or transfer of goods, services, or funds, or (2) two organizations or matters that affect or interact with each other.

[0165] Accordingly, the description of a process is also a description of a computer-readable medium that stores a program for implementing the process. The computer-readable medium can store program elements suitable for the implementation of the method (in any suitable format). For example, the description of a process is a description of a computer-readable medium that stores a program including instructions that, when executed by a processor, instruct the processor to implement the method.

[0166] Similar to the description of the various steps of a process not indicating that all the described steps are required, an embodiment of an apparatus includes a computer or computing device operable to perform some (but not necessarily all) of the described processes.

[0167] Similarly, similar to the description of the various steps of a process not indicating that all the described steps are required, an embodiment of a computer-readable medium that stores a program or data structure includes a computer-readable medium that stores a program that, when executed, can cause a processor to perform some (but not necessarily all) of the described processes.

[0168] When a database is described, one of ordinary skill in the art will understand that (i) alternative database structures to the described structure can be readily utilized, and (ii) other memory structures other than databases can also be readily utilized. Any illustration or description of any database sample presented herein is an exemplary configuration of the stored information representation. For example, any number of other configurations other than those suggested by the tables shown in the drawings or elsewhere may be utilized. Similarly, one of ordinary skill in the art will understand that any of the illustrated entries in the database are merely illustrative of the information, and the number and content of the entries may differ from those described herein. Further, despite any description of the database as a table, other forms (including relational databases, object-based models, and / or distributed databases) may be used to store and manipulate the data types described herein. Similarly, the methods or behaviors of the database objects can be used to implement the various processes as described herein. In addition to this, the database can be stored in a known manner locally or remotely to the device accessing the data in such a database or the data within such a database.

[0169] Various embodiments can be configured to operate in a network environment that includes a computer that communicates with one or more devices (e.g., via a communication network). The computer can communicate directly or indirectly with the devices via a wired or wireless medium (e.g., the Internet, a LAN, a WAN, or Ethernet, Token Ring, a telephone line, a cable line, a wireless channel, an optical communication line, a commercial online service provider, a bulletin board system, a satellite communication link, any combination of the above). Each device can itself include a computer or other computing device configured to communicate with a computer, such as one based on an Intel® Pentium®, Centrino®, Atom®, or Core™ processor. Any number and type of devices can be in communication with the computer.

[0170] In one embodiment, a server computer or central authority may not be necessary or may be undesirable. For example, in one embodiment, the present invention may be implemented on one or more devices without a central authority. In such an embodiment, any function described herein as being performed by a server computer or data described as being stored on a server computer may instead be performed or stored on such one or more devices, instead of on the server computer.

[0171] When a process is described, in one embodiment, the process can operate without any user intervention. In another embodiment, the process includes some human intervention (e.g., steps are performed by or with the assistance of a human).

[0172] As used herein, the term "encryption" refers to a process for concealing or hiding information so that the information cannot be readily understood without special knowledge. The process of encryption can convert raw information called plaintext into encrypted information. The encrypted information may be referred to as ciphertext, and the algorithm for converting plaintext into ciphertext may be referred to as an encryption method. The encryption method can also be used to perform the reverse operation of converting ciphertext back into plaintext. Examples of encryption methods include substitution encryption methods, transposition encryption methods, and encryption methods implemented using a rotor machine.

[0173] In various encryption methods, the encryption method may require an additional piece of information called a key. The key can consist of, for example, a string of bits. The key can be used in combination with the encryption method for encrypting plaintext. The key can also be used in combination with the encryption method for decrypting ciphertext. In a classification of encryption methods called symmetric key algorithms (e.g., secret key cryptography), the same key is used for both encryption and decryption. The invulnerability of the information being encrypted can thus vary depending on the key whose secret is not revealed. Examples of symmetric key algorithms are DES and AES. In a classification of encryption methods called asymmetric key algorithms (e.g., public key cryptography), different keys are used for encryption and decryption. In an asymmetric key algorithm, any member of the public can use a first key (e.g., a public key) to encrypt plaintext into ciphertext. However, only the holder of a second key (e.g., a secret key) will be able to decrypt the ciphertext back into plaintext. An example of an asymmetric key algorithm is the RSA algorithm.

[0174] VI. Continued Application This disclosure provides those skilled in the art with descriptions of some embodiments and / or enabling requirements of the invention. Some of these embodiments and / or inventions may not be claimed in this application, but may still be claimed in one or more continuation applications claiming the benefit of the priority of this application.

[0175] The application intends to file additional applications to claim patents for the subject matter disclosed in this application and for which enabling requirements were presented but not claimed.

[0176] VII. 35 U.S.C. § 112, Paragraph 6 In a claim, a claim limitation that includes the phrase "means for" or the phrase "step for" means that 35 U.S.C. § 112, Paragraph 6 applies to that limitation.

[0177] In a claim, a claim limitation that does not include the phrase "means for" or the phrase "step for" means that 35 U.S.C. § 112, Paragraph 6 does not apply to that limitation, regardless of whether the limitation describes a function without including a recitation of structure, material, or acts for performing that function. For example, in a claim, the mere use of the phrase "step(s)" in reference to one or more steps of that claim or another claim does not mean that 35 U.S.C. § 112, Paragraph 6 applies to that step(s).

[0178] With respect to a means or step for performing a particular function in accordance with 35 U.S.C. § 112, Paragraph 6, the corresponding structure, material, or acts described in this specification, and equivalents thereof, are capable of performing additional functions as well as the specified function.

[0179] Computers, processors, computing devices, and the like are structures that can perform a wide range of functions. Such products can be operable to perform specified functions by executing one or more programs, such as programs stored in a memory device of the product or a memory device accessed by the product. Unless otherwise specifically stated, such programs need not be based on any particular program, such as any particular algorithm that may be disclosed herein. It is well known to those skilled in the art that the specified functions may be implemented via different algorithms, and that any one of several different algorithms is merely a design choice for performing the specified functions.

[0180] Accordingly, with respect to means or steps for performing a particular function in accordance with 35 U.S.C. § 112, paragraph 6, the structure corresponding to the specified function includes any product programmed to perform the specified function. Such a structure includes a programmed product that performs the function whether the product is programmed using (i) the disclosed algorithm for performing the function, (ii) an algorithm similar to the disclosed algorithm, or (iii) a different algorithm for performing the function.

[0181] If means for performing a function that is a method are described, the structure for performing the method includes a computing device (e.g., a general-purpose computer) programmed and / or configured using appropriate hardware to perform the function.

[0182] Also included is a computing device (e.g., a general-purpose computer) programmed and / or configured using appropriate hardware to perform the function via other algorithms that would be understood by those skilled in the art to perform the function.

[0183] VIII. Disclaimer References to many of the specific embodiments do not imply abandonment or disavowal of additional different embodiments, and similarly, references to descriptions of embodiments containing all of the specific features do not imply abandonment or disavowal of embodiments that do not contain that specific feature. An express abandonment or disavowal in this application would be preceded by the phrase "does not include" or the phrase "is not capable of being implemented".

[0184] IX. Incorporation by Reference Any patent, patent application, or other document referenced herein is hereby incorporated by reference into this patent application as part of the disclosure, but only for the purposes of the written description under 35 U.S.C. § 112, first paragraph, and the enablement requirement under 35 U.S.C. § 112, first paragraph, and should never be used to limit, define, or construe any term of this application unless the ordinary meaning could not be ascertained by one of ordinary skill in the art without such incorporation by reference. Accordingly, one of ordinary skill in the art should never be limited by any of the embodiments provided by the incorporation by reference. Conversely, the definitions provided herein should not be used to limit, define, or otherwise construe any term of any document incorporated herein by reference. The definitions expressly set forth herein control regardless of the description of any specific embodiments that may be inconsistent with the definition(s).

[0185] Incorporation by reference in and of itself does not imply any endorsement, approval, or ratification of any description, opinion, discussion, or feature contained in any patent, patent application, or other document being incorporated, absent a separate express statement in this patent application.

[0186] X. Prosecution History In construing this application (including the claims), one of ordinary skill in the art shall refer to the prosecution history of this application, and not the prosecution history of any other patent or patent application, regardless of whether there are other patent applications that are considered relevant to this application and regardless of whether there are other patent applications that share a claim of priority with this application.

[0187] [Appendix 1] At least one processor associated with a workstation of a particular trader, and at least one memory storing instructions, which, when executed by the at least one processor, cause the at least one processor to receive a first order associated with a first fulfillment rate and a first response time for an item; after receiving the first order, receive a second order associated with a second fulfillment rate and a second response time for the item; in the order book of the particular trader, order the second order with a higher priority than the first order, based at least in part on the first fulfillment rate and the first response time associated with the first order and the first fulfillment rate and the first response time of the second order; in response to ordering the second order with a higher priority than the first order in the order book, cause the order of the particular trader to be executed against the second order, before any execution of any order of the particular trader that counters the first order; An apparatus. 〔Appendix 2〕 The apparatus according to Appendix 1, wherein the step of receiving the first order includes receiving the first fulfillment rate, and the step of receiving the second order includes receiving the second fulfillment rate. 〔Appendix 3〕 The apparatus according to Appendix 1, wherein the first fulfillment rate is determined based on a comparison between the number of times an order routed to a provider of the first order is responded to by the provider of the first order and the number of times an order routed to the provider of the first order is not responded to by the provider of the first order. 〔Appendix 4〕 The first fulfillment rate is determined based on a comparison between the number of orders for the item routed to the provider of the first order that were responded to by the provider of the first order and the number of orders for the item routed to the provider of the first order that were not responded to by the provider of the first order, the apparatus according to Supplementary Note 1. [Supplementary Note 5] The first fulfillment rate is determined based on a comparison between the total quantity of orders for the item routed to the provider of the first order that were responded to by the provider of the first order and the total quantity of orders for the item routed to the provider of the first order that were not responded to by the provider of the first order, the apparatus according to Supplementary Note 1. [Supplementary Note 6] The first fulfillment rate is determined based on a comparison between the total quantity of the item for which orders were routed to the provider of the first order and were responded to by the provider of the first order and the total quantity of the item for which orders were routed to the provider of the first order and were not responded to by the provider of the first order, the apparatus according to Supplementary Note 1. [Supplementary Note 7] The first fulfillment rate is determined based on a comparison between the number of orders for a specific quantity range of the item routed to the provider of the first order that were responded to by the provider of the first order and the number of orders for the specific quantity range of the item routed to the provider of the first order that were not responded to by the provider of the first order, the apparatus according to Supplementary Note 1. [Supplementary Note 8] The second order is associated with a first response time, and when executed by at least one processor, the instruction causes the at least one processor to Before receiving the second order, receiving, by the at least one server, a third order from a third user for the item, wherein the third order has a price equal to the price of the second order and the third order is associated with a second response time that is longer than the first response time; and further instructing, by the at least one server, in the order book, to order the second order prior to the third order, based at least in part on the second response time associated with the third order that is longer than the first response time associated with the second order; and the step of transmitting, by the at least one server, the transaction command to the second user is performed prior to the step of transmitting, by the at least one server, any transaction command for the item to the third user, and the transmitting step is performed in response to the second order being ordered prior to the third order in the order book; The apparatus according to Appendix 1. 〔Appendix 9〕 When executed by the at least one processor, the instructions cause the at least one processor to receive a third order and a fourth order; determine a probability that at least a portion of the third order is not independent of at least a portion of the first order; and order the third order and the fourth order described in the order book, based at least in part on the determined probability that at least a portion of the third order is not independent of at least a portion of the first order; and The apparatus according to Appendix 1. 〔Appendix 10〕 The apparatus according to Appendix 1, wherein the first fulfillment rate includes a probability of responding per unit time, and the second fulfillment rate includes a probability of responding per unit time. 〔Appendix 11〕 Receiving, by at least one server, a first order and a second order for an item, wherein the first order is associated with a first user and the second order is associated with a second user, the first and second orders have the same associated price, the first order is received before the second order, the first order is associated with a first fulfillment rate, the second order is associated with a second fulfillment rate; and Receiving, by at least one server, a command to buy or sell the item, the command having associated conditions; Determining, by at least one server, that the first fulfillment rate associated with the first order does not meet the threshold; In response to determining that the first fulfillment rate associated with the first order does not meet the threshold, ignoring, by at least one server, the first order and determining whether the second fulfillment rate associated with the second order meets the conditions; Determining, by at least one server, that the second fulfillment rate associated with the second order meets the conditions; In response to determining that the second fulfillment rate associated with the second order meets the conditions, transmitting, by at least one server, the transaction command associated with the second order to the second user before transmitting any transaction command associated with the first order; Receiving, in response to transmitting the transaction command to the second user, a notification that the second user is attempting to make a transaction counter to the transaction command; A method comprising. 〔Appendix 12〕 The step of receiving the first order includes receiving the first fulfillment rate, The step of receiving the second order includes receiving the second fulfillment rate, The first fulfillment rate includes the probability of response per unit time, The second fulfillment rate includes the probability of response per unit time, The condition includes a fulfillment rate threshold, The step of determining that the second fulfillment rate satisfies the condition includes determining that the second fulfillment rate is greater than the threshold, The method according to Supplementary Note 11. [Supplementary Note 13] The first fulfillment rate is determined based on a comparison between the number of orders routed to the first user that have been responded to by the first user and the number of orders routed to the first user that have not been responded to by the first user, The condition includes a fulfillment rate threshold, The step of determining that the first fulfillment rate does not satisfy the condition includes determining that the first fulfillment rate is less than the threshold, The method according to Supplementary Note 11. [Supplementary Note 14] The first fulfillment rate is determined based on a comparison between the number of orders for the item routed to the first user that have been responded to by the first user and the number of orders for the item routed to the first user that have not been responded to by the first user, the method according to Supplementary Note 11. [Supplementary Note 15] The first fulfillment rate is determined based on a comparison between the total amount routed to the first user and responded to by the first user and the total amount routed to the first user and not responded to by the first user, the method according to Supplementary Note 11. [Supplementary Note 16] The first fulfillment rate is determined based on a comparison between the total amount of the item routed to the first user and responded to by the first user and the total amount of the item routed to the first user and not responded to by the first user, the method according to Supplementary Note 11. [Appendix 17] The method according to Appendix 11, wherein the first fulfillment rate is determined based on a comparison between the number of times an order within a specific quantity range for the item routed to the first user is responded to by the first user and the number of times an order within the specific quantity range for the item routed to the first user is not responded to by the first user. [Appendix 18] The second order is associated with a first response time, prior to receiving the second order, receiving, by the at least one server, a third order from a third user for the item, wherein the third order has a price equal to the price of the second order and the third order is associated with a second response time longer than the first response time; and further comprising, by the at least one server, in the order book, ordering the second order prior to the third order based at least in part on the second response time associated with the third order, which is longer than the first response time associated with the second order; the step of transmitting the transaction command to the second user by the at least one server is performed prior to the step of transmitting any transaction command regarding the item to the third user by the at least one server, and the transmitting step is performed in response to the second order being ordered prior to the third order in the order book. The method according to Appendix 11. [Appendix 19] receiving a third order and a fourth order; determining a probability that at least a portion of the third order is not independent of at least a portion of the first order; and ordering the third order and the fourth order described in the order book based at least in part on the determined probability that at least a portion of the third order is not independent of at least a portion of the first order. The method according to appendix 11, further comprising [Appendix 20] A non-transitory computer-readable medium storing instructions that, when executed by at least one processor of a particular trader's workstation, cause the at least one processor to Receive a first order associated with a first fulfillment rate and a first response time for an item; After receiving the first order, receive a second order associated with a second fulfillment rate and a second response time for the item; In the order book of the particular trader, order the second order with higher priority than the first order, based at least in part on the first fulfillment rate and the first response time associated with the first order and the first fulfillment rate and the first response time of the second order; In the order book, in response to ordering the second order with higher priority than the first order, cause the orders of the particular trader to be executed against the second order before any execution of any order of the particular trader against the first order; and Non-transitory computer-readable medium

Claims

1. An apparatus comprising at least one processor associated with a workstation of a specific trader, wherein the at least one processor: Receiving, from a first computer associated with a first user, via a communication network, a first order associated with a first fulfillment rate and a first response time for an item; After receiving the first order, receiving, from a second computer associated with a second user, via the communication network, a second order associated with a second fulfillment rate and a second response time for the item, wherein at least one of the first fulfillment rate and the second fulfillment rate is determined based on a percentage of orders that can be responded to within a predetermined time of an execution request; In an electronic database of the order book of the specific trader, prioritizing the second order over the first order based on a first combination of a first weighting of at least the first fulfillment rate and a second weighting of the first response time associated with the first order and a second combination of a third weighting of at least the second fulfillment rate and a fourth weighting of the second response time associated with the second order; Causing the order of the specific trader to be executed against the second order prior to the execution of any order of the specific trader that counteracts the first order; Before receiving the second order, receiving, from a third computer associated with a third user, via the communication network, a third order associated with a third response time longer than the second response time for the item; Prioritizing the second order over the third order based at least in part on the third response time associated with the third order being longer than the second response time associated with the second order; The step of allocating the routing of transaction messages for a specific item to at least one port among a plurality of ports in the communication network, To make the order of the specific trader be executed against the second order, in order to transmit a trading command to the second user before a trading command regarding the item is transmitted to the third user, it includes routing a trading command regarding the second order to a first port among the plurality of ports of the communication network allocated for routing the item. The step that the price of the second order is the same as the price of the third order, being configured to control, device.

2. The at least one processor, is configured to control the step of generating an electronic signal for routing an execution transaction message for a specific order of each first specific trader via a specific allocated port of the communication network. The device according to claim 1.

3. The first order is received at the first fulfillment rate, and the second order is received at the second fulfillment rate, The first response time includes a first value representing the amount of time it takes for at least a part of the quantity to be fulfilled by the first user who sent the first order. The second response time includes a second value representing the amount of time it takes for at least a part of the quantity to be fulfilled by the second user who sent the second order. The device according to claim 1.

4. The first fulfillment rate is based on a comparison between the number of orders routed to the provider of the first order that were responded to by the provider of the first order and the number of orders routed to the provider of the first order that were not responded to by the provider of the first order. The apparatus according to claim 1.

5. The first fulfillment rate is based on a comparison between the number of orders for the item routed to the provider of the first order that were responded to by the provider of the first order and the number of orders for the item routed to the provider of the first order that were not responded to by the provider of the first order. The apparatus according to claim 1.

6. The first fulfillment rate is based on a comparison between the total amount routed to the provider of the first order and responded to by the provider of the first order and the total amount routed to the provider of the first order and not responded to by the provider of the first order. The apparatus according to claim 1.

7. The first fulfillment rate is based on a comparison between the total amount of the item routed to the provider of the first order and responded to by the provider of the first order and the total amount of the item routed to the provider of the first order and not responded to by the provider of the first order. The apparatus according to claim 1.

8. The at least one processor receiving a fourth order for the item from a fourth computer; determining the probability that at least a portion of the third order is not independent of at least a portion of the first order ; and The step of ordering the third order and the fourth order described in the order book is configured to be controlled at least partially based on the probability that at least a part of the third order is not independent of at least a part of the first order. The apparatus according to claim 1.

9. The first fulfillment rate includes a probability of responding per unit time, and the second fulfillment rate includes a probability of responding per unit time. The apparatus according to claim 1.

10. A method including a step of controlling by at least one processor, Receiving a first order for an item from a first computer at a first time via a communication network; Receiving a second order for the item from a second computer at a second time after the first time via the communication network, The first order is associated with a first user, and the second order is associated with a second user, The first and second orders have the same associated price, At the first time when the first order is received, a first fulfillment rate is associated with the first order, At the second time when the second order is received, a second fulfillment rate is associated with the second order, wherein at least one of the first fulfillment rate and the second fulfillment rate is determined based on a percentage of orders that can be responded to within a predetermined time of the execution request. In an electronic database of an order book, based on a first combination of a first weighting of at least the first fulfillment rate and a second weighting of a first response time associated with the first order, and a second combination of a third weighting of at least the second fulfillment rate and a fourth weighting of a second response time associated with the second order, ordering the second order with priority over the first order. Receiving, via the communication network, a command to buy or sell the item, the command having a fulfillment rate condition associated therewith; Determining that the first fulfillment rate associated with the first order does not meet the condition; As a result of determining that the first fulfillment rate associated with the first order does not meet the condition at the first time when the first order was received, ignoring the first order and determining whether the second fulfillment rate associated with the second order meets the condition at the second time when the second order was received; Determining that the second fulfillment rate associated with the second order meets the condition at the second time when the second order was received; As a result of determining that the second fulfillment rate associated with the second order meets the condition at the second time when the second order was received, transmitting, via the communication network, the transaction command associated with the second order to the second user before transmitting any transaction command associated with the first order; Receiving, via the communication network, from a third computer associated with a third user, a third order for the item, the third order having the same price as the second order and being associated with a third response time that is longer than the second response time, prior to receiving the second order; Ordering the second order prior to the third order in the order book, based at least in part on the third response time associated with the third order, which is longer than the second response time associated with the second order; Causing an order of the specific trader associated with the order book to be executed against the second order before any execution of any order of the specific trader that counters the third order; routing the communication of the transaction message for a particular item to at least one port of a plurality of ports in the communication network, causing the order of the particular trader to be executed against the second order includes routing a transaction command regarding the second order to a first port of a plurality of ports of the communication network assigned for routing the item, via the communication network, to transmit a transaction command to the second user before a transaction command regarding the item is transmitted to the third user, A method comprising.

Citation Information

Patent Citations

  • Electronic trading service device and method

    JP2003508860A

  • Exchange transaction support device

    JP2009217295A

  • A multi-computer distributed processing method to prevent information leaks

    JP2012515991A