Trading circle
The trading circle manager addresses the challenge of delayed market data sharing in electronic trading systems by enabling real-time data exchange among trading circle members, facilitating quicker market reactions and a more comprehensive market view.
Patent Information
- Application Number
- JP2024151892
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2013-03-15
- Filing Date
- 2024-09-04
- Publication Date
- 2025-06-30
- Estimated Expiration
- 2033-04-08
AI Technical Summary
Existing electronic trading systems lack efficient mechanisms for sharing market data and order information among users in real-time, leading to delayed reactions to market changes.
The implementation of a trading circle manager that facilitates the creation and management of trading circles, allowing users to share circle data related to trading orders, market conditions, and latency information, thereby enabling faster and more informed decision-making.
This solution allows members of a trading circle to react swiftly to market changes by sharing real-time data, providing a more complete market view and reducing in-flight delays, while non-members are delayed in receiving updated market data from the exchange.
Smart Images

Figure 0007700339000001 
Figure 0007700339000002 
Figure 0007700339000003
Abstract
Description
Technical Field
[0001] This disclosure relates to a trading circle.
Background Art
[0002] An electronic trading system generally includes a trading device that communicates with an electronic trading venue. The electronic trading venue transmits market data to the trading device. The market data includes, for example, price data, market depth data, last trade quantity data, and / or other market-related data regarding tradable objects. In some electronic trading systems, the trading device transmits a trading order to the electronic trading venue. The trading order includes, for example, price, quantity, one or more thresholds or limits, and / or other data regarding a trade including one or more tradable objects provided to the electronic trading venue. Upon receiving the trading order, the electronic trading venue inputs the trading order into the venue's order book and attempts to match it with the quantity of one or more opposing trading orders.
[0003] Embodiments are disclosed with reference to the following drawings.
Brief Description of the Drawings
[0004]
Figure 1
Figure 2
Figure 3
Figure 4A
Figure 4B
Figure 4C
Figure 5
Figure 6
Figure 7
Figure 8
Mode for Carrying Out the Invention
[0005] One embodiment is better understood by reading in conjunction with the drawings provided as examples. However, it should be understood that the embodiments are not limited to the arrangements and means shown in the accompanying drawings.
[0006] In the following detailed description of the invention, embodiments including software executed on hardware among components are disclosed, but these embodiments are merely illustrative and should not be construed as limiting. For example, any one or all of these hardware and software components may be implemented exclusively in hardware, exclusively in software, exclusively in firmware, or in any combination of hardware, software, and / or firmware. Therefore, the disclosed embodiments may be implemented and carried out in other ways.
[0007] According to the disclosed embodiments, mechanisms and processes are provided for defining and establishing a trading circle that links or groups two or more users. A trading circle (also referred to as a "circle") is established using one or more common characteristics or parameters, whereby each individual user can be identified as a member of the circle. For example, aggregating users within an enterprise to define a circle; linking users who trade common tradable objects to define a circle; defining a circle by users who communicate via a common communication network; defining a circle by users who trade one or more related tradable objects; or defining a circle by users who trade at a specific frequency or volume. Alternatively, a user can choose to join one or more existing circles and / or establish a new circle, for example, based on one or more specific preferences, requirements, and / or characteristics common to the members of the new circle.
[0008] Once a trading circle is established, according to the disclosed embodiments, it is facilitated to communicate circle data related to a first member to other members of the circle. For example, when a circle member communicates a trading order to an electronic trading venue, according to the embodiments disclosed herein, it is facilitated to communicate circle data related to the trading order data to some or all of the trading circle members. The circle data may include trading order data such as offer price, purchase price, quantity data, order threshold / limit, and / or any data related to the purchase or sale of a tradable object provided to the electronic trading venue. The circle data may further include price data, market depth data, final trade quantity data, and / or other data of the market related to the tradable object. In some examples, the circle data includes information related to the conditions and / or operations of the market where the trading is submitted. The circle data includes, for example, latency information based on the calculated round-trip time between the trading device and the trading venue. In an attempt to limit in-flight delays, the latency information shared within the circle data can be utilized to evaluate the network performance and route orders. Similarly, the circle data can include information regarding rejections and / or throttling specific to a given trading venue. Thus, the circle data can be utilized to share market performance information and / or characteristics of the market with the circle members.
[0009] By communicating circle data representing potential changes in the market to members of a trading circle, most non-members can consider and / or react to information about potential market changes before receiving updated market data from the electronic trading venue. In this way, members of the trading circle can react quickly based on the information contained in the circle data, while non-members of the trading circle are delayed in taking action until the updated market data is received from the electronic trading venue. For example, when a first circle member transmits an order for 20 lots of a particular tradable object, the circle member is notified that the available quantity of that tradable object is likely to immediately decrease by at least 20 lots being submitted by the first circle member. Further, when the first circle member receives an exchange notice such as a rejection / execution notice, the circle member is informed of the notice. Additional and alternative examples are described in detail below.
[0010] Communication of the circle data is facilitated by point-to-point connections between members of the trading circle or is controlled or directed via one or more centralized hubs such as gateways or other suitable network devices.
[0011] According to the disclosed embodiments, communication of circle data among members of one or more trading circles is facilitated. Using the disclosed embodiments, trading circles can be formed to include members of trading entities such as a group of brokers, individual traders, members of social networking groups, or other types of users. When a member of a trading circle conducts a trading activity and / or receives a notification from an exchange (e.g., via a trading device or application), according to the disclosed embodiments, circle data regarding the activity and / or notification is communicated to other members of the circle. For example, when a first member of a trading circle transmits an order to an exchange or otherwise communicates with the exchange, according to one or more of the disclosed embodiments, in conjunction with (e.g., simultaneously with) transmitting the order to the electronic exchange, circle data including at least one indication regarding the order or communication is transmitted. Other members of the circle, non-affiliated individuals, and non-members of other trading circles are not informed by the exchange of the order transmission, communication with the exchange, or the effect that the market activity may have on the exchange until the order is processed by the exchange. As a result, members of the trading circle are provided with circle data related to communication with the exchange performed by other members of the trading circle earlier than non-members of the trading circle. Thus, according to the disclosed embodiments, members of the same trading circle can receive information regarding future market activities by other members without waiting for processing by the exchange. The improved communication of trading data among circle members according to the disclosed embodiments is described in detail herein.
[0012] Furthermore, according to the disclosed embodiments, mechanisms and processes are provided for developing and / or sharing market data that is not provided by an exchange or otherwise made available. For example, exchanges often limit the number of price levels they disseminate beyond the best bid and best offer. In some examples, an exchange disseminates quantity data for four price levels each above and below the best bid / offer. In such examples, since the exchange does not disseminate price information beyond a limited number of price levels (e.g., eight price levels), the market view provided to users communicating with the exchange is incomplete. According to the disclosed embodiments, communication among trading circle members regarding price information beyond the limitations imposed by the exchange is facilitated. As described in detail below, according to the disclosed embodiments, by utilizing price information related to outstanding orders by one or more individual members of a trading circle, a more complete market view is provided to other members of the circle. When an exchange, for example, disseminates only quantity information for the eight price levels closest to the best bid / offer, according to the disclosed embodiments, quantity information for the 20 price levels closest to the best bid / offer or quantity information for all price levels is developed and / or disseminated among members of the trading circle. In such examples, according to the disclosed embodiments, a more complete market view is provided to members of the trading circle than when the exchange provides it alone to non-circle members. Additionally or alternatively, according to the disclosed embodiments, by using price information associated with one or more individual members of a trading circle together with the price information disseminated by the exchange, estimated price information is generated for portions of the market where the exchange is not currently disseminating price information. In such examples, according to the disclosed embodiments, a market view that is substantially closer to complete is provided to individual members of the trading circle. The expansion of price information provided by the disclosed embodiments is described in more detail below.
[0013] Furthermore, according to the disclosed embodiments, an indication is provided to members of the trading circle that an outstanding order or at least a portion thereof may be filled based on market activity by other members of the trading circle. As described in more detail below, according to the disclosed embodiments, by analyzing outstanding orders by members of the trading circle, it is determined whether one or more other members of the same trading circle have outstanding orders for the same tradable object. If the identified outstanding orders are of complementary types of orders (one order is a buy order and the other order is a sell order), then according to the disclosed embodiments, it is determined whether these orders may result in one or more fills. Likely fills identified by the disclosed embodiments are also referred to as "theoretical fills." According to the disclosed embodiments, individual members of the trading circle are notified of theoretical fills without waiting for the exchange to process the orders. As a result, individual members of the trading circle that receive an indication of a theoretical fill are informed of market conditions or positions that are likely to result from the theoretical fill earlier than waiting for the exchange to process market data. The indication of likely order fills provided by the disclosed embodiments is described in more detail below.
[0014] One embodiment provides a method for defining a group that includes a plurality of members. One or more of the plurality of members communicate with an exchange for facilitating market trading. The method further detects a first communication of a first group member with the exchange. The method further communicates data regarding the first communication to a second group member in response to detecting the first communication, before the first group member receives a confirmation communication regarding the first communication from the exchange.
[0015] One embodiment provides a tangible computer-readable medium having instructions that, when executed by a computing device, cause the steps of defining a group that includes a plurality of members, where one or more of the plurality of members communicate with an exchange for facilitating market transactions; detecting a first communication of a first group member with the exchange; and in response to detecting the first communication, communicating data regarding the first communication to a second group member before the first group member receives an acknowledgement communication regarding the first communication from the exchange.
[0016] One embodiment provides an apparatus including a defining unit that defines a group that includes a plurality of members, where one or more of the plurality of members communicate with an exchange for facilitating market transactions; a detecting unit that detects a first communication of a first group member with the exchange; and a communicating unit that, in response to the detecting unit detecting the first communication, communicates data regarding the first communication to a second group member before the first group member receives an acknowledgement communication regarding the first communication from the exchange.
[0017] One embodiment provides a method including defining a group that includes a plurality of members, where one or more of the plurality of members communicate with an exchange that distributes data regarding a range of price levels; collecting data regarding an ongoing order by a first group member at a first price level outside the distribution range; and communicating the collected data to a second group member.
[0018] One embodiment provides a tangible computer-readable medium including instructions. When executed, the instructions cause a computing device to define a group including a plurality of members. One or more of the plurality of members communicate with an exchange that distributes data regarding a range of price levels. The instructions further cause the computing device to collect data regarding an ongoing order by a first group member at a first price level outside the distribution range. The instructions further cause the computing device to communicate the collected data to a second group member.
[0019] One embodiment provides an apparatus. The apparatus includes a defining unit that defines a group including a plurality of members. One or more of the plurality of members communicate with an exchange that distributes data regarding a range of price levels. The apparatus further includes an expander that collects data regarding an ongoing order by a first group member at a first price level outside the distribution range. The apparatus further includes a communication unit that communicates the collected data to a second group member.
[0020] II. Example of Electronic Trading System FIG. 1 shows a block diagram of an exemplary electronic trading system 100 that can adopt one embodiment. The system 100 includes a trading device 110, a gateway 120, and an electronic exchange 130. The trading device 110 communicates with the gateway 120. The gateway 120 communicates with the exchange 130.
[0021] As used herein, the term "communication" includes direct communication and / or indirect communication via one or more intermediate components.
[0022] During operation, the trading device 110 sends an order to buy and sell tradable objects at the exchange 130. For example, the user uses the trading device 110 to send an order. The order is sent to the exchange 130 via the gateway 120. Further, market data is sent from the exchange 130 to the trading device 110 via the gateway 120. The user uses the trading device 110 to monitor the market data and / or make a decision to send an order to buy and sell tradable objects based on the market data.
[0023] A tradable object is anything that is traded at a certain quantity and / or price. Tradable objects may include, for example, stocks, options, bonds, futures, currencies, warrants, fund derivatives, securities, commodities, swaps, interest rate products, index-based products, trading events, goods, collections, and / or financial products that are combinations of these. A tradable object may be "real" or "synthetic". "Real tradable objects include products listed and / or managed on an exchange. Synthetic tradable objects include products defined by the user. For example, a synthetic tradable object may be a combination of real products (or other synthetic products) (such as a synthetic spread generated by the user using the trading device 110). There may be real tradable objects corresponding to and / or similar to the synthetic trading object.
[0024] The trading device 110 may include one or more electronic computing platforms such as a handheld device, a laptop, a desktop computer, a workstation equipped with a single or multi-core processor, a server equipped with multiple processors, and / or a cluster of computers. Although the trading device 110 is shown as a logically single device, it may include, for example, a trading terminal that communicates with a server and together with the server collectively constitutes the trading device 110. The trading terminal can provide a trading screen to the user and further communicate commands to the server for further processing of the user's input (such as submission of an order) through the trading screen.
[0025] The trading device 110 is generally owned, operated, controlled, programmed, configured, or otherwise used by a user. As used herein, the phrase "user" may include, but is not limited to, a human (e.g., a trader) or an electronic trading device (e.g., an algorithmic trading system or a trading application). For example, one or more users may be involved with respect to the aforementioned ownership, operation, control, programming, configuration, or other use.
[0026] The trading device 110 can include one or more trading applications. The trading application may process market data, for example, by arranging and displaying the market data in a trading chart window. The market data can be received, for example, from the exchange 130. As another example, market data can be received from a simulation environment that provides historical data and / or simulates an exchange but does not conduct real-world trading. This processing may be based on, for example, user preferences. The trading application includes, for example, automated trading tools such as an automated spread trading tool. One or more trading applications may be distributed to one or more computing devices in the trading device 110. For example, a component of the trading application may be executed on a trading workstation, and other components may be executed on a server that communicates with the workstation.
[0027] The trading device 110 may include, for example, an electronic trading workstation, a portable trading device, an algorithmic trading system such as a "black box" or "gray box" system, an embedded trading system, and / or an automated trading tool. The trading device 110 may be, for example, a computing system that executes a copy of X_TRADER (registered trademark), an electronic trading platform provided by Trading Technologies International, Inc. of Chicago, Illinois. As another example, the trading device 110 may be a computing device that executes an automated trading tool such as AUTOSPREADER (registered trademark) and / or AUTOTRADER (trademark) provided by Trading Technologies International, Inc.
[0028] As another example, the trading device 110 includes a user interface for algorithmically processing market data to perform manual order submission based on the algorithmic processing or for manipulating automatically placed orders. An algorithmic trading application is a trading application that includes an algorithm that is automatically processed to execute a specific action. That is, this trading application includes a series of automated instructions for executing a defined action. Actions include processing market data in a specific way, submitting orders, changing existing orders, deleting orders, regulating order submission, selecting which tradable objects to execute, determining the price at which to submit an order or the price after changing an order, determining the quantity at which to submit an order or the quantity after changing an order, deciding whether to buy or sell an order, or delaying an action for a predetermined time, and the like.
[0029] In this specification, an algorithm (also referred to as a trading algorithm) is specified by a definition that includes a logical formula and parameters that describe the algorithm for use in trading. The logical formula specifies the relationship between parameters and can generate a plurality of parameters. The parameters may include, for example, inputs to the logical formula of the algorithm. The definition of the algorithm may be at least partially specified by an algorithmic trading application. The algorithmic trading application may, for example, allow a user to specify only the parameters used in a predefined logical formula. As another example, the algorithmic trading application may allow a user to specify some or all of the logical formula and some or all of the parameters. A trading algorithm in which the logical formula is specified by a user is a user-defined trading algorithm.
[0030] The trading application may be stored on a computer-readable medium of the trading device 110. In certain embodiments, one or more components of the trading application may be stored on a trading workstation, and other components may be stored on a server that communicates with the workstation. In certain embodiments, one or more components of the trading application are loaded onto the computer-readable medium of the trading device 110 from another computer-readable medium. For example, the trading application (or an update to the trading application) may be stored on one or more CDs, DVDs by a manufacturer, developer, or publisher, and then provided to a person responsible for loading the application onto the trading device 110, or to a server from which the trading device 110 obtains the trading application. As another example, the trading device 110 may receive the trading application (or an update to the trading application) from a server, for example, via the Internet or an internal network. The trading device 110 may receive the trading application and / or an update thereto when requested by the trading device 110 (the former being "pull distribution") or when not requested (the latter being "push distribution").
[0031] The trading device 110 is configured to send an order regarding a tradable object. The order can be sent, for example, as one or more messages or data packets, or via a shared memory system. The trading device 110 is configured, for example, to cancel an order, modify an order, and / or query an exchange. As another example, the trading device 110 may be configured to send commands to a simulated exchange in a simulated environment that does not affect real-world trading.
[0032] Orders sent by the trading device 110 may be sent, for example, in response to a user's request or automatically. A trader may, for example, use an electronic trading workstation to manually provide one or more parameters such as order price and / or order quantity and place an order for a specific tradable object. As another example, an automated trading tool calculates one or more parameters related to an order and automatically sends the order. In some examples, the automated trading tool prepares an order that is not actually sent without confirmation from the user but is to be sent later.
[0033] In one embodiment, the trading device 110 includes a user interface. The user interface may include, for example, one or more display devices for presenting a text-based and / or graphical interface of a trading application to the user. The display devices may include, for example, a computer monitor, a display of a handheld device, a projector, and / or a television. The user interface allows for specifying or reviewing parameters for an order using the trading application. The user interface includes, for example, one or more input devices for receiving input. The input devices may include, for example, a keyboard, a trackball, a two-button or three-button mouse, and / or a touch screen. The user interface may include other devices for communicating with the user. Information may be provided to the user, for example, via a speaker and / or received via a microphone.
[0034] In one embodiment, the trading application includes one or more trading screens that enable a user to communicate with one or more markets. The trading screens enable, for example, a user to obtain and view market information, set order input parameters, enter and cancel orders, and / or confirm positions while implementing various trading strategies. The trading application receives information (bid price, bid quantity, ask price, ask quantity, price and quantity in past trades, and / or other market-related information) from, for example, an exchange 130, and some or all of this information may be displayed by the user interface of the trading device 110. Based on the received information, the trading screen may display a range of price levels and corresponding bid-ask quantities for tradable objects. To provide relevant trading information to the user, the trading screen may display a price range (and corresponding bid-ask quantities) centered on the internal market. The information may be provided to the trading application continuously or periodically, whereby the trading application can update the trading screen to reflect current market information. The user can use the trading screen to submit orders, for example, to buy or sell tradable objects based on the displayed information, or to trade tradable objects in other ways.
[0035] The trading screen may display one or more trading tools. The trading tools are electronic tools that enable, assist in, and / or facilitate electronic trading. Representative trading tools include, but are not limited to, charts, trading ladders, order input tools, automated trading tools, automated spread tools, risk management tools, order parameter tools, order input systems, market grids, execution windows, market order windows, combinations thereof, or other electronic tools used to trade, prepare for trading, manage trading, or analyze the market.
[0036] In one embodiment, an order from the trading device 110 is sent to the exchange 130 via the gateway 120. When communicating with the gateway 120, the trading device 110 uses, for example, a local area network, a wide area network, a wireless network, a virtual private network, a T1 line, a T3 line, an integrated services digital network (「ISDN」) line, a point of presence, the Internet, and / or a shared memory system.
[0037] The gateway 120 communicates with the trading device 110 and the exchange 130. The gateway 120 is configured to facilitate communication between the trading device 110 and the exchange 130. For example, the gateway 120 receives an order from the trading device 110 and sends the order to the exchange 130. As another example, the gateway 120 receives market data from the exchange 130 and sends the market data to the trading device 110.
[0038] In one embodiment, the gateway 120 processes data communicated between the trading device 110 and the exchange 130. For example, the gateway 120 processes an order received from the trading device 110 into a data format understandable by the exchange 130. Similarly, the gateway 120 can convert market data in an exchange-specific format received from the exchange 130 into a format understandable by the trading device 110. Processing by the gateway 120 includes, for example, tracking of orders from the trading device 110 and updating of order status based on trade confirmations received from the exchange 130. As another example, the gateway 120 combines market data from the exchange 130 and provides it to the trading device 110.
[0039] In one embodiment, the gateway 120 provides services other than processing of data communicated between the trading device 110 and the exchange 130. For example, the gateway 120 provides risk processing.
[0040] The gateway 120 includes one or more electronic computing platforms, such as, for example, a handheld device, a laptop, a desktop computer, a workstation equipped with a single or multi-core processor, a server equipped with multiple processors, and / or a cluster of computers.
[0041] The gateway 120 may include one or more gateway applications. The gateway applications handle, for example, order processing and market data processing. This processing may be based, for example, on user preferences.
[0042] In certain embodiments, the gateway 120 communicates with the exchange 130 using, for example, a local area network, a wide area network, a virtual private network, a T1 line, a T3 line, an ISDN line, a point of presence, the Internet, and / or a shared memory system.
[0043] Generally, the exchange 130 is owned, operated, controlled, or used by an exchange group. Examples of exchange groups include the CME Group, the New York Stock Exchange / London International Financial Futures and Options Exchange ("NYSE LIFFE"), the Intercontinental Exchange ("ICE"), and Euronext. The exchange 130 has an electronic matching system, such as a computer, a server, or other computing device configured to enable the buying and selling of tradable objects (e.g., provided by the exchange). The electronic matching system includes, for example, a matching engine. The exchange 130 includes separate groups, some of which may list and / or manage tradable objects, and others may receive and match orders. The exchange 130 includes, for example, an electronic communication network ("ECN").
[0044] The exchange 130 is configured to match orders for buying and selling tradable objects. The tradable objects may be listed for trading by the exchange 130. The orders may include, for example, orders received from the trading device 110. The orders are received, for example, from the trading device 110 via the gateway 120. Further, the orders may be received from other devices communicating with the exchange 130. That is, the exchange 130 generally communicates with various other trading devices (which may be similar to the trading device 110) that provide orders to be matched.
[0045] The exchange 130 is configured to provide market data. The market data is provided, for example, by one or more messages or data packets, or via a shared memory system. The market data is provided, for example, to the trading device 110. The market data is provided to the trading device 110, for example, via the gateway 120. The market data includes, for example, data representing the internal market. The internal market is the lowest selling price (also referred to as the "best ask") and the highest buying price (also referred to as the "best bid") at a specific point in time (which may change over time). The market data may include market depth. Market depth refers to the quantity available at the internal market or the quantity available at other prices away from the internal market. Thus, the internal market can be regarded as the first level of market depth. One tick based on the internal market can be regarded as, for example, the second level of market depth. In certain embodiments, the market depth is provided at all price levels. In certain embodiments, the market depth is provided at price levels fewer than all price levels. The market depth may be provided, for example, at the first five price levels in both directions based on the internal market. As another example, the market depth may be provided at the first ten price levels having quantities available in the market. The market data may also include information such as the last trade price (LTP), the last trade quantity (LTQ), and order matching information.
[0046] In one embodiment, system 100 includes a plurality of trading devices 110. For example, a plurality of trading devices similar to the trading device 110 described above communicate with the gateway 120 to send orders to the exchange 130.
[0047] In one embodiment, system 100 includes a plurality of gateways 120. For example, a plurality of gateways similar to the gateway 120 described above communicate with the trading device 110 and the exchange 130. Such a configuration can provide redundancy in case one of the gateways 120 fails.
[0048] In one embodiment, system 100 includes a plurality of exchanges 130. The gateway 120 communicates with, for example, a plurality of exchanges similar to the exchange 130 described above. According to such a configuration, for example, the trading device 110 can trade with a plurality of exchanges via the gateway 120.
[0049] In one embodiment, system 100 includes a plurality of exchanges 130 and a plurality of gateways 120. For example, a plurality of gateways similar to the gateway 120 described above communicate with a plurality of exchanges similar to the exchange 130 described above. Each gateway communicates with, for example, one or more different exchanges. According to such a configuration, for example, one or more trading devices 110 can trade with a plurality of exchanges (and / or provide redundant connections to a plurality of exchanges).
[0050] In some embodiments, the trading device 110 includes one or more computing devices or processing components. In other words, the functions of the trading device 110 may be performed by multiple computing devices. For example, one computing device may generate instructions for transmission to the trading venue 130, and another computing device may provide a graphical user interface to the user. In some embodiments, the gateway 120 includes one or more computing devices or processing components. In other words, the functions of the gateway 120 may be performed by multiple computing devices. In some embodiments, the trading venue 130 includes one or more computing devices or processing components. In other words, the functions of the trading venue 130 may be performed by multiple computing devices.
[0051] In some embodiments, the gateway 120 is part of the trading device 110. For example, the components of the gateway 120 may be part of the same computing platform as the trading device 110. As another example, the functions of the gateway 120 may be performed by components of the trading device 110. In some embodiments, the gateway 120 does not exist. Such a configuration may be employed, for example, when the trading device 110 does not need to utilize the gateway 120 when communicating with the trading venue 130. The trading device 110 may be configured, for example, to communicate directly with the trading venue 130.
[0052] In some embodiments, the gateway 120 is physically located at the same location as the trading device 110. In some embodiments, the gateway 120 is physically located at the same location as the trading venue 130. In some embodiments, the trading device 110 is located at the same location as the trading venue 130. In some embodiments, the gateway 120 is physically located at a location separate from both the trading device 110 and the trading venue 130.
[0053] In one embodiment, system 100 includes other devices specific to the communication architecture, such as middleware, firewall, hub, switch, router, exchange-specific communication devices, modem, security manager, and / or encryption / decryption devices.
[0054] II. Examples of Computing Devices FIG. 2 shows a block diagram of an exemplary computing device 200 that can be used to implement the disclosed embodiments. The trading device 110 of FIG. 1 includes, for example, one or more computing devices 200. The gateway 120 of FIG. 1 includes, for example, one or more computing devices 200. The exchange 130 of FIG. 1 includes, for example, one or more computing devices 200.
[0055] The computing device 200 includes a processor 202, an interconnect bus 204, a chipset 206, a memory controller 208, an input / output (I / O) controller 210, a system memory 212, a mass storage memory 214, an I / O bus 216, a network interface 218, a display 220, an input device 222, and an output device 224. The computing device 200 may include additional, different, or fewer components. For example, multiple buses, multiple processors, multiple memory devices, multiple network interfaces, multiple display devices, multiple input devices, multiple output devices, or any combination thereof may be provided. As another example, the computing device 200 does not include an output device 224 separate from the display device 220. As another example, the computing device 200 does not include a display device 220. As another example, the computing device 200 may not include an input device 222. Instead, for example, the computing device 200 is controlled by an external or remote input device via the network interface 218.
[0056] Computing device 200 includes a processor 202 connected to an interconnect bus 204. The interconnect bus 204 may include a communication bus, channel, network, circuit, switch, fabric, or other mechanism for communicating data between components within the computing device 200. The interconnect bus 204 may be communicatively connected between components of the computing device 200 to transfer data. For example, during the installation process of a trading application, one or more computer-readable instructions executable by the processor 202 may be transferred from the input device 222 and / or network interface 218 to the system memory 212 and / or mass storage memory 214. When the computing device 200 is executing or preparing to execute a trading application stored in the system memory 212 and / or mass storage memory 214, the processor 202 may read instructions from the system memory 212 and / or mass storage memory 214 via the interconnect bus 204.
[0057] The processor 202 may be, for example, a processor, processing unit, or microprocessor. The processor 202 may include, for example, one or more general-purpose processors, digital signal processors, application specific integrated circuits, field programmable gate arrays, analog circuits, digital circuits, programmed processors, and / or combinations thereof. The processor 202 may be a single device or combination of devices, such as one or more devices associated with a network or distributed processing. Any processing strategy may be used, such as multiprocessing, multitasking, parallel processing, and / or remote processing. The processing may be local or remote and may also move from one processor to another. The computing device 200 may be a multiprocessor system, in which case it may include one or more additional processors communicatively connected to the interconnect bus 204.
[0058] The processor 202 may be operable to execute logic encoded within one or more tangible media such as the system memory 212 and the mass storage memory 214, and / or may be operable to execute logic via the network interface 218. As used herein, logic encoded within one or more tangible media includes instructions executable by the processor 202 or a different processor. The logic may be stored, for example, as part of software, hardware, integrated circuits, firmware, and / or microcode. The logic is received, for example, from an external communication device via a communication network connected to the Internet. The processor 202 can execute logic for performing the functions, actions, or tasks described in the drawings or the specification.
[0059] The processor 202 of FIG. 2 is connected to a chipset 206. The chipset 206 includes a memory controller 208 and an I / O controller 210. A chipset generally provides I / O and memory management functions and provides a plurality of general-purpose and / or special-purpose registers and timers accessible and usable by one or more processors connected to the chipset 206. The memory controller 208 performs functions that enable access to the system memory 212 and the mass storage memory 214 by the processor 202 (s).
[0060] The system memory 212 and the mass storage memory 214 may be one or more tangible media such as, for example, computer-readable storage media. The system memory 212 includes various types of volatile and non-volatile storage media such as, for example, random access memory (RAM), read-only memory (ROM), programmable read-only memory (PROM), electrically programmable read-only memory (EPROM), electrically erasable read-only memory (EEPROM), flash memory, other tangible data storage devices, and any combination thereof. The mass storage memory 214 includes various types of mass storage devices such as, for example, hard disk drives, optical media, magnetic tapes, any other tangible data storage devices, or any combination thereof. In certain embodiments, the system memory 212 and the mass storage memory 214 are non-transitory.
[0061] The system memory 212 and the mass storage memory 214 may be, for example, a single memory module. The system memory 212 and the mass storage memory 214 may be adjacent to the processor 202, part of the processor 202, programmed by the processor 202, networked by the processor 202, and / or remote from the processor 202 such that data stored therein can be read by the processor 202. The system memory 212 and the mass storage memory 214 can store instructions executable by the processor 202. When the instructions are executed, one or more actions or functions described herein or shown in the drawings are performed.
[0062] The I / O controller 210 performs functions that enable the processor 202 to communicate with the network interface 218, the display 220, the input device 222, and the output device 224 via the I / O bus 216. In FIG. 2, the memory controller 208 and the I / O controller 210 are shown as separate blocks within the chipset 206, but the functions performed by these blocks may be integrated within a single semiconductor circuit or may be implemented using two or more separate integrated circuits. One or more components in the computing device 200 may be implemented as a system-on-chip (e.g., the system-on-chip in an iPhone (registered trademark)).
[0063] The network interface 218 may be a connection by one-way communication or two-way communication. For this reason, the network interface 218 can communicatively connect one, two, or more communication networks or communication devices. For example, by connecting the interconnect bus 204 to a gateway similar to the gateway 120 in FIG. 1 described above, one, some, or all of the components of the computing device 200 can be made accessible or may communicate with the gateway. As another example, the network interface 218 connects the interconnect bus 204 to other communication networks. The network interface 218 may be, for example, an integrated services digital network (ISDN) card or modem that provides a data communication connection. As another example, the network interface 218 may be a local area network (LAN) card that provides a data communication connection to a compatible LAN connected to the Internet, for example. A wireless link may be implemented. The network interface 218 transmits and receives electrical, electromagnetic, or optical signals that transmit analog or digital data streams corresponding to various types of information, for example.
[0064] The display device 220 includes, for example, a visual output device, a cathode ray tube (CRT) display, an electronic display, electronic paper, a flat panel display, a light emitting diode (LED) display, an electroluminescent display (ELD), a plasma display panel (PDP), a liquid crystal display (LCD), a thin film transistor display (TFT), an organic light emitting diode display (OLED), a surface conduction electron emission display (SED), a laser television, a carbon nanotube, a nanocrystal display, a head mounted display, a projector, a three-dimensional display, and / or a transparent display device.
[0065] The display device 220 is configured to display a transaction screen. The transaction screen is, for example, similar to the transaction screen described above. The transaction screen is interactive. Using the interactive transaction screen, for example, it becomes possible to execute one or more transaction actions. For example, one or more order input parameters can be set and / or transmitted using one or more order input actions on the transaction screen. The display device 220 and / or the input device 222 may be used, for example, to communicate with the transaction screen.
[0066] The input device 222 includes, for example, a keyboard, a mouse, a microphone, a touch screen, a trackball, a keypad, a joystick, and / or other devices for input. The input device 222 can be used, for example, to provide command selections to the processor 202. The input device 222 may be, for example, a mouse used to control a cursor displayed on the transaction screen. The mouse may include, for example, one or more buttons for selection and control.
[0067] The output device 224 includes, for example, a keyboard, a mouse, a speaker, a touch screen, a trackball, a keypad, a tactile device or system, a joystick, and / or other devices for providing output. The output device 224 is used, for example, to output one or more signals, such as tactile signals or audio signals, to the user. In FIG. 2, the input device 222 and the output device 224 are shown as separate blocks, but the functions performed by these blocks may be integrated into a single I / O device.
[0068] III. Communication of Transaction Data to Transaction Circle Members FIG. 3 shows an exemplary transaction circle manager 300 that can be used to implement the embodiments disclosed herein. In one embodiment, the transaction circle manager 300 of FIG. 3 is implemented on or in association with the transaction device 110 of FIG. 1. In certain embodiments, the transaction circle manager 300 comprises, for example, a separate computing device configured to cooperate with the transaction device 110 of FIG. 1. In other embodiments, the transaction circle manager 300 includes instructions or code implemented by the transaction device 110 of FIG. 1 or otherwise executed.
[0069] In one embodiment, an instance of the transaction circle manager 300 of FIG. 3 is provided for each circle (also referred to as a group), and each transaction circle manager 300 can be dedicated to the corresponding transaction circle. The transaction circle manager 300 can manage multiple circles for one or more unrelated individuals or groups.
[0070] According to the transaction circle manager 300, for example, a user of the transaction device 110 or a user of other transaction devices can establish one or more transaction circles with other users for the purpose of communicating transaction data among circle members. The communication of transaction data among transaction circle members is facilitated by the transaction circle manager 300, whereby the transaction data can be provided to the circle members without waiting for the exchange to process the information received in relation to the transaction data and generate an appropriate response. As a result, compared with the current system, transaction circle members can receive transaction data associated with other members faster. In the current system, a user communicating with the exchange waits until the exchange processes the order and / or other transactions before recognizing the submission of an order or the start of a transaction by another user or entity. In contrast to the current system, the transaction circle manager 300 provides, for example, data regarding an order etc. submitted by a fellow circle member at the exchange to the circle members, and the member who has received the data does not need to wait for the processing and distribution of the data regarding the order by the exchange.
[0071] For example, when a first member of a circle established and managed by the trading circle manager 300 in FIG. 3 has a first order that includes a first tradable object that is pending at an exchange, a second member of the same trading circle may submit a second order that includes the same first tradable object to the exchange. In the current system, in order to be aware of the second order, the first circle member needs to wait for the exchange to process the order submitted by the second circle member and distribute information related to the changes in the market brought about by the order. Conversely, as soon as the trading circle manager 300 determines that a second circle member (or a trading device associated with and / or used by the second circle member) has transmitted a second order to the exchange, the trading circle manager 300 transmits data related to the second order to the first circle member. In other words, the trading circle manager 300 transmits an indication of the second order along with (e.g., simultaneously or substantially simultaneously with) the transmission of the second order to the exchange. As a result, due to the trading circle manager 300, the first circle member can receive data regarding the first tradable object and an estimate and prediction of the impact on the exchange by the first tradable object, at which time the first circle member does not need to wait for the exchange to process the second order of the second circle member.
[0072] A circle member that receives transaction data from the same circle member via the transaction circle manager 300 of FIG. 3 has a clearer advantage over non-circle members regarding the market activities of other circle members. In particular, individuals and / or groups organized into a transaction circle and using the transaction circle manager 300 are likely to receive transaction data before non-members. Continuing with the above example, if a first circle member utilizes the transaction circle manager 300 to receive data related to a second order submitted by a second circle member (e.g., price and quantity information included in the second order and / or an indication showing that an additional order has been submitted in relation to a first tradable object) at a first time, non-members are likely to receive data related to the second order at a second time later than the first time. In such a case, the first time corresponds to the time when the second order is transmitted to the exchange, and the second time corresponds to the time after the exchange receives and processes the second order and distributes data regarding the processing. The first circle member can utilize the period between the first and second times brought about by the transaction circle manager 300 to perform one or more actions regarding the first tradable object, for example, before non-members become aware of the second order.
[0073] The trading circle manager 300 of FIG. 3 includes a circle definition module 302 that communicates with a circle definition database 304 via a communication interface 322. The trading circle manager 300 further includes a communication module 306 configured to provide connections to one or more managed and controlled trading circle members. The communication module 306 provides connectivity to the order status monitor 308, for example, in the form of received or detected trading orders and / or updates thereto. The order status monitor 308 may be configured to identify trading orders and their updates or modifications communicated between individual circle members or between a circle member and the exchange 130 of FIG. 1. In one example, the exchange analysis module 310 is arranged to communicate with the order status module 308 and other modules and components of the manager 300 and is configured to determine the impact that the identified trading order communication has on the exchange. The trading circle manager 300 further includes a circle data manager 312 that correlates the individual location data of each circle member operable within one or more managed and controlled trading circles with each other. The trading circle manager 300 includes a price data monitor 314 that comprehensively monitors, increments, and / or estimates trading order data available to the individual circle members that make up each trading circle. The trading circle manager 300 may further include a theoretical agreement module 320 that synchronizes trading order data between individual circle members identified as potential trading partners for a particular tradable object.
[0074] The transaction circle manager 300 in FIG. 3 includes a circle definition module 302. The circle definition module 302 communicates with a circle definition database 304 and, for example, when receiving a request from a user registered in the transaction circle manager 300, establishes a circle. During operation, the circle definition module 302 prompts the requesting user for the information necessary to define a transaction circle. The circle definition module 302 requests, for example, information such as a transaction circle name, an administrator name, one or more management passwords, a circle password or a user password, membership restrictions, selection of predefined terms and / or restrictions, contact information, an invitation list for prospective members, market information, and the like. The membership restrictions can include, for example, restrictions by a company, restrictions by a department within a company, restrictions by the asset class being traded, restrictions by a user's title or class (e.g., manager, market maker), risk restrictions, or other circle criteria definable by other users. Depending on the requirements established by the user, additional, different, and / or fewer numbers of information may be requested and utilized to define a transaction circle. The circle definition module 302 uses the provided information to create a definition of the requested transaction circle. Creating the definition includes, for example, generating a unique identifier that is assigned to the transaction circle and used to communicate data within the transaction circle (e.g., by tagging packets of data with the unique identifier). The circle definition module 302 adds an entry to the circle definition database 304, and the entry includes the generated unique identifier, the information provided by the requesting user, and / or any other appropriate information regarding the entry.
[0075] If the information provided by the original user includes a list of the persons and / or groups who invite others to the trading circle, the circle definition module 302 in FIG. 3 sends an invitation to each of the inviters. To send the invitation, the circle definition module 302 uses the contact information such as the email address and the social network account identifier (e.g., FACEBOOK (registered trademark) account name) provided in relation to the list. The circle definition module 302 can include in the invitation information for enabling the inviter to access and participate in the established trading circle. The invitation can include, for example, a web address, a trading circle name, and a password. The invitation sent by the circle definition module 302 can include instructions for visiting the web address and entering the trading circle name and password in the corresponding input fields on the web page of the web address. If the inviter follows the instructions in the invitation, the circle definition module 302 receives an indication associated with the inviter and uses the indication to add the corresponding inviter to the established trading circle. Adding an inviter to the established trading circle includes, for example, including the identity associated with the inviter in the corresponding entry in the definition database 304.
[0076] The transaction circle manager 300 can facilitate additional and alternative ways to inform people about transaction circles. That is, people can learn about one or more transaction circles through communication means other than the initial invitation process described above. In some examples, after a transaction circle is established and / or operating, people can be invited to the transaction circle, whether they are transaction circle members, administrators, or non-administrator members. Alternatively, people can learn about transaction circles without receiving an invitation. To enable people to opt in or otherwise request admission to a transaction circle, the circle definition module 302 may provide a web link or other mechanism to trigger the submission of a request to the transaction circle manager 300. The information requested in relation to the submission options provided by the circle definition module 302 can be customized based on the requirements established by the administrator for each transaction circle. The circle definition module 302 receives an opt-in request and communicates information regarding the request, for example, to the founder or administrator of the corresponding transaction circle. The circle definition module 302 waits for a response indicating whether the individual or group requesting transaction circle membership has been approved. If approved, the circle definition module 302 adds the requesting individual or group to the appropriate entry in the definition database 304. If not approved, the circle definition module 302 notifies the requesting user that membership has been rejected (denied).
[0077] Figures 4A-4C and 5 illustrate exemplary circle configurations and communication architectures that can be implemented by the transaction circle manager 300. FIG. 4A shows an exemplary circle configuration that can be implemented by the transaction circle manager 300 in accordance with the disclosure herein. Features, elements, and functions associated with the circle configuration shown in FIG. 4A are further described in association with the transaction circle manager 300 shown in FIG. 3. FIG. 4B shows an exemplary distributed communication architecture that can be implemented by the transaction circle manager 300 in accordance with the disclosure herein. FIG. 4C shows an exemplary centralized communication architecture that can be implemented by the transaction circle manager 300 in accordance with the disclosure herein.
[0078] The circle definition module 302 establishes a trading circle, which includes any individual, user, and / or trading application or component having one or more characteristics predefined in relation to each circle. FIG. 4A shows exemplary multiple trading circles that can be established and managed by the trading circle manager 300. FIG. 4A includes a first trading organization 400 and a second trading organization 402. The first trading organization 400 represents individual traders and their associated trading devices 400a - 400m and / or in other ways, and the second trading organization 402 represents individual traders and their associated trading devices 402a - 402n and / or in other ways. The individual trading devices 400a - 400m, 402a - 402n are configured, for example, to communicate with the exchange 130 of FIG. 1. The trading devices 400a - 400m, 402a - 402n and the remaining trading devices shown in FIGS. 4A - 4C may be implemented as described in relation to the trading device 110 of FIG. 1. The trading devices 404, 406, 408 represent individual traders and / or groups of traders independent of the trading organizations 400, 402. In certain embodiments, the trading devices shown in FIGS. 4A - 4C can represent different trading programs operating on the same or different trading devices. In certain embodiments, the trading devices shown in FIGS. 4A - 4C can represent instances of AUTOSPREADER (registered trademark) and / or AUTOTRADER (trademark) operating on the same or different trading devices.
[0079] The configuration example shown in FIG. 4A includes a social network 410 such as FACEBOOK (registered trademark) and LINKEDIN (registered trademark), and the social network 410 includes a plurality of users and contributors of the same social network service. The social network may be a private network established for a specific group such as a business or a community organization. Individual users of the social network 410 can use the social network service to self-organize small groups and communities based on shared university attendees, common geographical areas, or shared or common interests. Members of the community can send or post messages accessible to other members of the same community. In the example of FIG. 4A, the users of the social network 410 include individuals or groups of individuals represented by transaction devices 412-418, 420-426.
[0080] Figure 4A further shows an example of a trading circle that can be established among the individual trading devices, trading organizations, and social networks described above. The first trading circle 450 includes individuals and trading devices including the first trading organization 400. The second trading circle 452 includes individuals and trading devices including the second trading organization 402. The third trading circle 454 includes trading devices 412-418 representing a subset of the members of the social network 410. The fourth trading circle 456 includes the second trading organization 402 (and the second trading circle 452) and the individual trading devices 404, 406. The fifth trading circle 458 is defined as including the individual trading device 408 and the trading device 406 of the fourth trading circle 456. The trading device 406 indicates that an individual and the associated trading device may belong to multiple trading circles simultaneously (for example, belonging to the fourth trading circle 456 and the fifth trading circle 458). The trading circle manager 300 of FIG. 3 can form and manage additional or alternative trading circles. For the purpose of discussion, the first trading circle 450 and its trading devices 400a-400m are used in the following description. However, the following description and examples disclosed herein may be applied and / or utilized to the trading circles of FIGS. 4A-4C and / or other groups of users.
[0081] Returning to the example of the transaction circle manager 300 shown in FIG. 3, the communication module 306 facilitates transaction data communication among transaction circle members such as the transaction circle 450 shown in FIG. 4A. In one embodiment, the transaction circle 450 includes each member or user of TTNET (trademark) provided by Trading Technologies International, Inc. The communication module 306 may be configured to compile, prioritize, and communicate any type of transaction data that individual circle members have agreed to share with fellow circle members. In some examples, each of the circle members has access to and / or receives the same information of other circle members. In one embodiment, the communication module 306 communicates circle data regarding fellow circle members via a feed or other multicast communication configured to send data to each subscriber of the feed. In another embodiment, the communication module 306 may be configured to directly broadcast individual messages and / or communication packets to individual circle members. In yet another embodiment, the communication module 306 communicates transaction data in response to a query for information received from one or more circle members. The communication module 306 also generates a feed based on a portion of the feed information of the circle definition stored in the definition database 304. Further, the circle definition module 302 causes circle members to subscribe to the feed executed by the communication module 306. For example, the transaction device 400a associated with the first member of the transaction circle 450 is configured to receive data via a feed executed and provided by the communication module 306. The communication module 306 can utilize additional or alternative communication technologies for transmitting transaction data to the transaction devices 400a - 400m including the transaction circle 450.
[0082] In the illustrated example, the order status monitor 308 of FIG. 3 detects orders and / or order modifications communicated to the exchange 130 by one or more of the trading devices 400a - 400m. During operation, the order status monitor 308 detects one or more messages transmitted to the trading devices 400a - 400m or transmitted from the trading devices 400a - 400m to the exchange 130 via the gateway 120 and the Internet or other wide area network 470. The order status monitor 308 determines the type of the detected message (e.g., to which of order, order change request, or any other type of message transmitted to the exchange the detected message belongs). The trading circle manager 300 can include additional or alternative analysis modules for identifying additional or alternative communication with the exchange by circle members.
[0083] In some examples, the order status monitor 308 immediately causes the communication module 306 to send data regarding the detected message to the exchange analysis module 310 including the trading circle 450 and / or to the trading devices 400a - 400m. In the illustrated example, the exchange analysis module 310 determines (if any) the impact that the detected order and / or order change has on, for example, the order book of the corresponding exchange. The detected message may correspond, for example, to the head order of the lean leg of a spread trade submitted to the exchange by the trading device 400a of the trading circle 450 in response to the leg of the call value being executed. In such a case, the analysis module 310 determines that the quantity available at the corresponding price level is reduced (depending on the quantity of the head order and the current available quantity of tradable objects at the price level of the head order). Other members of the trading circle 450 may lean on tradable objects at the same or similar prices. If they do, knowledge of the detected head order and the resulting reduction in the quantity of tradable objects is valuable information for the circle members who are leaning on the tradable objects. By receiving data regarding the detected head order before non - circle members, circle members can respond to the reduction in quantity before non - circle members.
[0084] As another example, if the detected message is a buy order with a quantity of 100 and a price of 90, and the exchange indicates that the available quantity at the price of 90 for the tradable object is 75 (less than the order quantity), the exchange analysis module 310 determines that the tradable object is not available at the price of 90, or determines that it is at least unlikely to be available at the price of 90 for a predetermined period (for example, the buy quantity of the tradable object may be added at the price of 90 after the initial buy order is detected). Repeatedly, knowledge about the expected changes at the exchange is valuable information for the members of the circle of peers, and the trading circle manager 300 provides such knowledge to the circle members before making it available to non-circle members.
[0085] As another example, if the detected message is a buy order with a quantity of 100 and a price of 90, and the exchange indicates that the available quantity at the price of 90 for the tradable object is 500 (more than the order quantity), the exchange analysis module 310 determines that the quantity of the tradable object at the price of 90 will soon decrease by 100, or determines that it is at least highly likely that the quantity will decrease by 100 (for example, the quantity of the tradable object may increase or decrease after the initial buy order is detected). Repeatedly, knowledge about the expected changes at the exchange is valuable information for the members of the circle of peers, and the trading circle manager 300 provides such knowledge to the circle members before making it available to non-circle members.
[0086] In the illustrated example, the trading devices 400a - 400m and other trading devices can generate and communicate a wide variety of orders, trading strategies, configurations, etc. Different types of messages detected by the order status monitor 308 and analyzed by the exchange analysis module 310 can affect different types of corresponding orders and / or trading strategies in different ways. The analysis module 310 of FIG. 3 is configured to determine these effects and prepare for such effects for communication with the trading devices 400a - 400m of the trading circle 450. Members of the trading circle 450 can utilize the information provided by the order status monitor 308 and / or the exchange analysis module 310 in any suitable manner (e.g., by configuring individual trading devices 400a - 400m to automatically adjust or reconstruct trading strategies in response to indications of price and / or quantity changes).
[0087] The trading circle manager 300 includes a circle data manager 312. The circle data manager 312 maintains comprehensive access to the location data (e.g., ongoing orders) of the individual circle members that make up the trading circle 450. Using this data, the circle data manager 312 comprehensively monitors and tracks a data feed that includes aspects of a particular market (e.g., tradable objects, one or more market events, and defined and identifiable metrics included in the circle definition) in which the individual circle members that make up the trading circle 450 have an interest and participate. In other words, the circle data manager 312 in FIG. 3 tracks which individual circle members will be affected by different types of changes related to one or more exchanges. The circle data manager 312 operates in cooperation with the analysis module 310 to filter or otherwise restrict the communication of trading data to relevant or interested members in the trading circle 450. In particular, the circle data manager 312 receives from the exchange analysis module 310 information regarding which aspects of the exchange are affected by detected orders / amendments related to circle members. The order status monitor 308 detects, for example, a message sent to the exchange 130 (see FIG. 1) that includes the tradable object "X" by a trading device 400a operable within the trading circle 450. Further, the exchange analysis module 310 determines that the detected message will result in or is likely to result in a decrease in the quantity of the tradable object "X" at one or more price levels. Further, the circle data manager 312 recognizes that the second trading device 400b has at least one order in progress at the exchange 130 that includes the quantity X, and that the third trading device 400c does not have a subscription, order, or trading strategy that includes the tradable object "X".In such an example, the circle data manager 312 instructs the communication module 306 to transmit information related to the detected message (e.g., data related to the trading device 400a provided to the trading device 400b) and / or the analysis performed by the exchange analysis module 310 to the second trading device 400b, and filters and foregoes the communication of the information to a third trading device 400c (not shown).
[0088] The selective communication performed by the circle data manager 312 can be made partially or fully ineffective for the members of the trading circle 450. Instead of filtering the information transmitted by the communication module 306, the circle data manager 312 can be disabled and the analysis module 310 and / or the order status monitor 308 can instruct the communication module 306 to transmit data to all circle members as well.
[0089] The trading circle manager 300 of FIG. 3 includes a price data monitor 314 for increasing and / or estimating the amount of price information available to members of the trading circle 450. As described above, many exchanges limit the number of price levels that distribute volume data. FIG. 5 represents a screen shot of a trading window 500 that reflects price level and market depth information related to tradable objects available at the exchange 130 of FIG. 1. Different price levels are shown in the price column 502, including an increment or tick of 25 units (e.g., $0.25). The bid volume column 504 is aligned adjacent to the first edge of the price column 502, and the ask volume column 506 is aligned adjacent to the second edge of the price column 502. As shown in FIG. 5, the exchange 130 indicates that the bid volume at price level 525 is 54, and the bid volume at price level 500 is 97, etc. The exchange 130 further indicates that the sell volume at price level 550 is 61, and the sell volume at price level 575 is 47. However, the exchange does not distribute data at prices exceeding price level 425 in the bid column 504, nor does it distribute data at prices exceeding price level 675 in the sell column 506. As a result, the view of the market provided by the exchange 130 is limited.
[0090] To provide a more complete view of the market, the price data monitor 314 collects information from the trading devices 400a - 400m of the trading circle 450 and uses this information to provide to the circle members information related to price levels that the exchange 130 does not distribute information about. Referring to the example of FIG. 5, the price data monitor 314 provides to the members of the trading circle 450 information related to the bid - side price levels of price levels 400, 375, 350 and below. Further, the price data monitor 314 provides to the members of the trading circle 450 information related to the ask - side price levels of price levels 700, 725, 750 and above. In the example of FIG. 5, the price data monitor 314 displays the additional information provided in the first and second extended columns 508, 510. However, the price data monitor 314 can communicate the additional information of the price levels provided via additional or alternative means.
[0091] To collect information, the price data monitor 314 accesses, for example, the outstanding orders of the trading devices 400a - 400m that have price levels outside the range of price levels distributed by the exchange 130. The price data monitor 314 determines the range of price levels that the exchange is currently distributing information about, and further queries the trading devices 400a - 400m to determine whether any of the trading devices 400a - 400m have outstanding orders outside the determined range. Alternatively, the price data monitor 314 can collect data on all outstanding orders of the trading devices 400a - 400m and also determine which orders are outside the price level range currently being distributed information about by the exchange.
[0092] To utilize the collected information, the price data monitor 314 of FIG. 3 includes an aggregator 316 and an extrapolator 318. In the example of FIG. 3, the aggregator 316 and the extrapolator 318 perform separate but related functions. The aggregator 316 forms the respective quantities of the price levels by combining the data of the price levels not distributed by the exchange 130, which are collected from the trading devices 400a - 400m. For example, if the first trading device 400a in the trading circle 450 has an outstanding order with a bid quantity of 20 at the price level 400 including the tradable object shown in FIG. 5, and the second trading device 400b has an outstanding order with a bid quantity of 14 at the price level 400 including the tradable object shown in FIG. 5, the aggregator 316 combines these quantities to indicate that there are at least 34 quantities at the price level 400. That information is reflected in the first extended column 508 of FIG. 5. If one of the additional trading devices 400a - 400m in the trading circle 450 has an outstanding order at the price level 400, the aggregator 316 adds the corresponding quantity to the total shown in FIG. 5.
[0093] If the additional price level data provided by the aggregator 316 is accurate, the aggregator 316 is limited by the proportion of outstanding orders resulting from the trading circle 450 in the exchange 130. In some examples, the outstanding orders in the trading circle 450 correspond to a very small portion of the total outstanding orders in the exchange 130. Thus, the above-mentioned value of 34 corresponds to only a small part of the actual quantity available at the price level 400. Nevertheless, the aggregator 316 provides additional information on the price level that is valuable but not available to non - circle members to circle members.
[0094] To provide a broader market view than the collection unit 316, the extrapolation unit 318 in FIG. 3 generates estimates of the available quantity at a plurality of different price levels where the exchange 130 is not distributing information. The extrapolation unit 318 uses known price information related to the trading circle 450 and the exchange 130 to generate estimates of unknown price information related to the exchange 130. To do this, the extrapolation unit 318 determines the portion of the overall market for tradable objects due to the trading circle 450 that is within the range of price levels for which the exchange 130 is distributing price information. In certain embodiments, the extrapolation unit 318 can operate using a variety of techniques such as historical estimation, linear estimation, polynomial estimation, percentage estimation, and any other known or ad hoc techniques.
[0095] For example, referring to FIG. 5, the extrapolation unit 318 determines that there are a total of 118 outstanding orders of the trading devices 400a - 400m in the trading circle 450 at the price level at which the exchange 130 is distributing information. At the same time, the extrapolation unit 318 determines that the total quantity distributed by the exchange 130 is 590 (this total is the sum of the bid - ask quantity columns 504, 506). Therefore, the extrapolation unit 318 determines that the outstanding orders of the trading devices 400a - 400m at the price level at which the exchange 130 is distributing information correspond to 20% of the market. The extrapolation unit 318 uses the calculated percentage to generate one or more extrapolations or estimations regarding price levels outside the range for which the exchange 130 is distributing price information. In particular, the extrapolation unit 318 determines the total quantity of outstanding orders of the trading devices 400a - 400m at price levels at which the exchange 130 is not distributing information. The extrapolation unit 318 applies the calculated percentage to the total quantity to generate the estimated quantity at the exchange 130 for each price level outside the range of the distributed price levels. Continuing with the above example, if the extrapolation unit 318 determines that the quantity at price level 375 for the entire trading devices 400a - 400m is 15, the extrapolation unit 318 reaches 75 as the estimated quantity at price level 375 for the entire market by multiplying 15 by 5 (using the 20% mentioned above). The extrapolation unit 318 performs similar calculations for any appropriate number of price levels outside the range of price levels for which the exchange 130 is distributing price information. The price data monitor 314 facilitates communication regarding the estimation via one or more columns added to the window 500 of FIG. 5 and / or any other appropriate user interface.
[0096] Accordingly, the price data monitor 314 of FIG. 3 develops price information at price levels for which the exchange 130 is not distributing price information, using data related to members of the trading circle 450. Whether it is the collection unit 316 or the extrapolation unit 318 that provides the additional price information, members of the trading circle 450 are involved in the information while non-members are not. Thus, the price data monitor 314 provides a distinct advantage to members of the trading circle 450 over non-circle members when the members of the trading circle 450 interact with the exchange 130.
[0097] The trading circle manager 300 of FIG. 3 includes a theoretical execution module 320. The theoretical execution module 320 notifies a first member of the trading circle 450 that one or more orders related to the first member are likely to be executed based on trading data related to one or more fellow members of the trading circle 450. The theoretical execution module 320 tracks the orders being executed by circle members and the details of such orders. The theoretical execution module 320 tracks, for example, the identity of the tradable object related to the order being executed, its bid / price, and its quantity. That is, with respect to a particular order being tracked, the theoretical execution module 320 tracks and stores (or accesses) information indicating what the market conditions are that are required for the order to be executed.
[0098] Furthermore, the theoretical matching module 320 receives an indication from the order status monitor 308 indicating that one or more orders have been submitted by someone within the trading circle 450. Alternatively, the theoretical matching module 320 can detect one or more orders being submitted by fellow circle members. The theoretical matching module 320 determines whether the market conditions necessary for the execution of the orders being tracked are generated by the orders submitted by fellow circle members. In other words, the theoretical matching module 320 determines that an action such as a member of the trading circle 450 submitting an order will result in or is likely to result in the execution of an ongoing order by another member of the trading circle 450 being filled or at least partially filled. The theoretical matching module 320 makes these determinations based on information shared among circle members simultaneously or prior to the information being sent to the exchange 130. Thereby, the theoretical matching module 320 can notify circle members that an order is likely to be filled or has a high probability of being filled before the exchange 130 notifies of the fill.
[0099] For example, a first member of trading circle 450 may execute an order at exchange 130 to buy 100 units of a tradable object of symbol GEH1 at $9,968.00. While the order of the first circle member is being executed, a second member of trading circle 450 may submit an order to sell "n" units of symbol GEH1 at $9,968.00 (n < 100). In the illustrated example, the theoretical match detection unit 320 detects the order submitted by the second circle member and determines that the order is likely to match based on the position of the first circle member. In particular, since the quantity at the price level of $9,968.00 is more than "N", the order of the second circle member is likely to match. In response to this detection, the theoretical match module 320 causes the communication module 306 to send an indication of the theoretical match to the second circle member along with the details of the calculations performed by the theoretical match module 320 (e.g., the likelihood that quantity "n" will match). Further, the communication module 306 may include a flag or other type of indicator that identifies the theoretical match as a likely fill as opposed to a certainty that the order will match. In connection with the operation of the theoretical match module 320, additional or alternative information (e.g., details regarding the order being executed by the first circle member or the identity of the first circle member) may be communicated to the second circle member.
[0100] Theoretical commitment module 320 further tracks and analyzes the priority and / or queue position of circle members at the exchange 130 shown in FIG. 1. The exchange 130 may employ different types of priority / queue policies, such as a FIFO (first-in, first-out) priority policy. The theoretical commitment module 320 may use the queue position information to calculate the likelihood that an order in execution by a circle member will be committed based on the activities of fellow circle members. Continuing with the scenario of the above example, if the theoretical commitment module 320 determines that the first member of trading circle 450 has a high priority or favorable queue position at the exchange 130, the theoretical commitment module 320 can inform the first member of trading circle 450 that an order submitted by the second member of trading circle 450 is attempting to commit a quantity n of the orders in execution. If the quantity of the order of the second member of trading circle 450 is more than n, the theoretical commitment module 320 may notify the first member of trading circle 450 that the entire quantity 100 of the order in execution is attempting to be committed. Also, if the priority of the first member of trading circle 450 is low or the queue position is not favorable, the theoretical commitment module 320 reduces the expectation of committing the order in execution by the first circle member. A message sent to the first member of trading circle 450 via communication module 306 can include the likelihood data (e.g., percentage) calculated by the theoretical commitment module 320. When determining the likelihood (e.g., percentage) that an order in execution by the first member of trading circle 450 will be committed (e.g., due to the submission of an order by the second member of trading circle 450 and / or other information from the exchange 130 or fellow members of trading circle 450), the quantity ahead of the first member of trading circle 450 with respect to priority at the exchange may be additionally or alternatively considered in the calculation by the theoretical commitment module 320. Thereby, the theoretical commitment module 320 provides an indication and / or likelihood that a position will be committed based on the activities of fellow members of trading circle 450 at the exchange 130.The theoretical convention module 320 provides benefits to all circle members by providing indications and / or possibilities before the exchange processes the information.
[0101] FIG. 4B shows a distributed communication configuration such as a point-to-point or mesh configuration that can be implemented and managed by the trading circle manager 300. In particular, an instance and / or version of the trading circle manager 300 can operate in each of the trading devices 400a-400m, 402a-402n, 404, 406, 408, 412-418 shown in FIG. 4B and may be configured to share trading circle data with other circle members. By individual instances of the trading circle manager 300, associated trading devices can communicate trading orders to the exchange 130 directly or via a gateway. The trading circle manager 300 may be a distributed instance of the trading circle manager 300.
[0102] In the example shown in FIG. 4B, the trading devices 400a - 400m of the trading organization 400 form a trading circle 450 and each has an instance of the trading circle manager 300. During operation, the trading device 400a may be configured to communicate a trading order to the network 440 (arrow 460). In this example, the network 440 may be a public network such as the Internet and / or a private network such as a corporate wide - area network. The communicated trading order 460 is routed and delivered to the exchange 130 via the network 440. By communicating the trading order 460 to the exchange 130, the trading circle manager 300 starts providing updates to one or more circle members. For example, if the trading order 460 is an order to buy 10 units of a tradable object at price level 450 as shown in FIG. 5, the order status monitor 308 of the trading circle manager 300 detects and acquires information related to the order. The order status monitor 308 cooperates with the communication module 306 and the exchange analysis module 310 to determine the impact of the trading order 460 on the order book for tradable objects maintained at the exchange 130. The circle data generated by the exchange analysis module 310 and including the expected / predicted effects of the trading order 460 can be communicated by the trading circle manager 300 and the communication module 306 to the remaining trading devices 400b, 400m as shown by reference arrows 462a, 462b. In this way, before the response 461 is generated by the exchange 130 and distributed to the original trading device 400a, the individual members of the trading circle 450 can react to the information contained in the trading order 460 (based on the effects or estimated effects included in one or more of the received update information 462a, 462b).
[0103] Members of circle 450 may share and communicate latency information based on, for example, the calculated round-trip time associated with the transmission of a trading order 460 and the receipt of a response 461 from an exchange 130. In particular, the timestamps of each communication transmitted and received by each member of trading circle 450 can be tracked and saved. Using the values of the saved timestamps, the time representing the message latency experienced by a user when interacting with an exchange 130 can be calculated. Since this information changes over time due to trading activity (e.g., the availability of network resources), individual latency profiles for each exchange 130 may be constructed using cumulative latency information. Traders, trading algorithms, or other information consumers may utilize the individual latency information and latency profiles to direct market communications to exchanges and / or markets with minimal latency.
[0104] In response to a trading order 460 being communicated to an exchange 130, members of circle 450 may share and communicate market condition information based on, for example, executions, rejections, and / or market conditions based on generated or experienced limits. For example, if one or more circle members receive a rejection during a predetermined period, it may mean that there is a throttle limit at the target exchange 130. By measuring and tracking rejections from a given exchange 130 as a function of time, the trading circle manager 300 can estimate the throttle limit. Similarly, by measuring and tracking rejections from a given exchange 130 as a function of price level, the trading circle manager 300 can estimate the requirements for the active price range where effectiveness occurs at the exchange. By using the collected market condition information by traders, trading algorithms, or other information consumers, market communications may be directed to suitable exchanges and / or markets.
[0105] In one or more exemplary embodiments, the circle data manager 312 of the trading circle manager 300 determines that one or more trading devices 400b - 400m do not have an open position related to a tradable object of a trading order 460. In this example, trading devices that do not have an open position with respect to a tradable object may be identified by the circle data manager 312 as not requiring the results of the determination and / or prediction. Thus, trading devices without an open position can avoid receiving unnecessary communications and update information from the trading circle manager 300. Alternatively, trading devices without an open position with respect to a tradable object can choose to subscribe to a data feed that includes circle data in order to monitor (and in some cases react to) activities in the market.
[0106] Figure 4B further shows that the individual trading devices 404 of trading circle 456 are configured to communicate trading orders 463 to network 440 and exchange 130 via gateway 120. In this example, the trading orders 463 generated by trading device 404 are associated with one or more tradable objects identified in circle definition module 302 and circle definition database 304 and are utilized to establish trading circle 456. Communication of trading order 463 to gateway 120 and exchange 130 initiates simultaneous communication of circle data to the remaining circle members. Trading device 404 specifically communicates circle data update 464a to trading organization 402 and circle data update 464b to individual trading devices 406. Thus, trading organization 402, including trading devices 402a - 402n, and individual trading devices 406 can react to the information contained within updates 464a, 464b before order acknowledgement / agreement 465 becomes available for a trading device 404 or any other non - circle member to respond. In this way, members of trading circle 456 have an advantage in terms of time and / or speed over non - circle members such as members of social network 410 and individual trading devices 408.
[0107] Figure 4C is a diagram showing a centralized communication configuration that can be implemented and managed by trading circle manager 300. In particular, each of the trading devices 400a - 400m, 402a - 402n, 404, 406, 408, 412 - 418 shown in Figure 4C communicates and provides updates to a stand - alone version of trading circle manager 300. In this configuration, trading and circle data may be collected and / or edited by the stand - alone trading circle manager 300 with respect to one or more trading circles or associated circle members. The stand - alone trading circle manager 300 may further be configured to aggregate and distribute latency and / or agreement information associated with individual circle members.
[0108] In the example shown in FIG. 4C, the trading devices 402a-402n of the trading organization 402, the individual trading devices 404, 406, and the remaining trading devices 400a-400m, 408, 412-416 are configured to communicate with the centralized stand-alone trading circle manager 300. During operation, the trading device 402a may be configured to communicate a trading order to the centralized trading circle manager 300 (reference arrow 480). In this example, the stand-alone / centralized trading circle manager 300 is communicatively connected to the exchange 130 via the network 440. When the trading circle manager 300 receives the trading order 480, as described above, it can analyze the details included in the order and communicate an update including circle data to the remaining members of the trading circle 456. In this way, when the trading order 480 is communicated to the centralized trading circle manager 300, the communication of the trading data updates 482a-482c to the trading devices 402n, 404, 406 and the related circle data is respectively initiated. Due to the circle data included in the trading data updates 482a-482c, the trading devices 402n, 404, 406 within the trading circle 456 can react to the information without waiting for a confirmation or update from the exchange 130. On the contrary, the original trading order 480 continues to proceed on the exchange 130 and the network 440.
[0109] As shown in FIG. 4C, in response to receiving a trading order 480, the exchange 130 generates a response, execution, or other communication 484. The communication 484 generated by the exchange 130 is provided to the gateway 120 for transmission to one or more trading devices that are subscribed to the feed. The communication 484 is provided to one or more trading devices, such as the trading organization 400 via the subscribed feed 484b and the social network 410 via the subscribed feed 484c. Similarly, the acknowledgments and / or executions included in the communication 484 can be provided to the trading device 402a via the subscribed feed 484a. Thus, members of the trading circle 456 can cooperate with the centralized trading circle manager 300 to share and react to the information included in the trading order 480 before the communication 484 is generated and received by non-circle members.
[0110] FIG. 6 is a block diagram showing an example of a method of implementing the circle definition module 302 of FIG. 3. As described above, the circle definition module 302 receives requests from users to start a trading circle and similarly receives requests to participate in an existing trading circle. In the example of FIG. 6, the circle definition module 302 receives a request from a first user of the trading circle manager 300 to participate in an existing trading circle (block 600). In response to the request, the circle definition module 302 sends a message to a corresponding person or device related to the trading circle, such as a trading circle administrator. The message includes user-related information such as the identity and / or certificate of the requesting user. When the circle definition module 302 receives approval from the administrator for the requesting user, it approves the joining of the trading circle (block 604). In the illustrated example, adding a user to a trading circle includes adding an identifier corresponding to the requesting user to the definition of the trading circle. The circle definition module 302 stores the updated circle definition in a corresponding entry in the circle definition database 304 (block 606). Returning to the approval process (block 602), if the circle definition module 302 does not receive approval from the administrator for the requesting user or does not receive a response (e.g., within a certain time), the circle definition module 302 communicates the rejection to the requesting user (block 608). Thereafter, the example of FIG. 6 ends (block 610).
[0111] FIG. 7 is another block diagram showing an exemplary method for implementing the trading circle manager 300 of FIG. 3. The example of FIG. 7 begins with the order status monitor 308 detecting a change in an order by one of a plurality of circle members in the trading circle defined in the database 304 (block 700). The order status monitor 308 detects, for example, an order transmitted from the trading device 400a associated with the first member of the trading circle 450 to the exchange 130 (see FIG. 4A). The exchange analysis module 310 determines the effect of the detected order / modification by analyzing the detected order / modification and information related to the current state of the exchange 130 (block 702). The exchange analysis module 310 determines, for example, whether and how the detected order / modification affects the order book of the exchange 130.
[0112] When the circle data manager 308 is active (block 704), the circle data manager 308 identifies which circle members have an interest in data regarding the detected order / modification or its effect on the exchange 130. For example, if the detected order / modification includes first and second tradable objects (e.g., where each of the first and second tradable objects constitutes a call leg and a lean leg of a spread trade), the circle data manager 308 identifies circle members having an ongoing order that includes one (or both) of the first and second tradable objects as circle members having an interest in receiving the relevant information. Thus, when active, the circle data manager 308 can prevent circle members from flocking to information that is not necessarily relevant to them. In such a case, the communication module 306 transmits the information to the circle members identified as having an interest in the information. The information includes, for example, the detected order / modification, related data (e.g., the identity of the corresponding circle member), and its effect on the exchange 130 and / or any other market entity (block 708). Further, the information transmitted by the communication module 306 can include the theoretical trade identified by the theoretical trade detector 320.
[0113] In the illustrated example, when the circle data manager 308 is not active (block 704), the communication module 306 transmits the information to each of the circle members (block 710). Then, the example of FIG. 7 ends (block 712).
[0114] FIG. 8 is another block diagram showing an exemplary method for implementing the price data monitor 314 of FIG. 3. The example of FIG. 8 begins, for example, with the price data monitor 314 being triggered in response to a scheduled event or other type of instruction (block 800). The price data monitor 314 collects price information from the exchange 130 (block 802). As described above, the exchange 130 provides price information only for a limited number of price levels. The price data monitor 314 also collects price information related to outstanding orders by members of the trading circle 450 (block 804). In the example shown, the collecting step involves querying the trading devices 400a - 400m of the trading circle 450 to identify outstanding orders by members of the trading circle 450 outside the price level range distributed by the exchange 130. The collecting unit 316 of the price data monitor 314 combines the data collected from the trading devices 400a - 400m with the information collected from the exchange 130 (block 806). The combined information forms a collected view of the market depth for the members of the trading circle 450. In the example shown, the collected view of the market provided by the collecting unit 316 is presented to the members of the trading circle via, for example, the window 500 of FIG. 5.
[0115] As described above, the price data monitor 314 includes an extrapolation unit 318 for providing a more complete (and perhaps less accurate) market view than the collection unit 316. In the example of FIG. 8, the extrapolation unit 318 determines price information related to circle members within the range of price levels at which the exchange 130 distributes quantity data (block 808). The extrapolation unit 318 further determines price information related to members of the trading circle 450 outside the range of price levels at which the exchange 130 distributes quantity data (block 810). The extrapolation unit 318 uses the price information related to members of the trading circle 450 within the range of distributed price levels to calculate the portion of the market corresponding to the trading circle 450 (block 812). The extrapolation unit 318 determines, for example, the total percentage of quantities at the exchange 130 attributable to the trading circle 450. The extrapolation unit 318 uses the calculated ratio or percentage to estimate the price information collected from the trading circle 450 with respect to price levels outside the distribution range (block 814). That is, the extrapolation unit 318 applies the ratio of quantities by the trading circle 450 in the market for price levels within the distribution range to the price information collected from the trading circle 450 with respect to price levels outside the distribution range. As a result, the extrapolation unit 318 generates an expanded market view for the members of the trading circle 450. The data generated by the collection unit 316 and / or the extrapolation unit 318 is transmitted to the circle members (block 816). Thereafter, the example of FIG. 8 ends (block 818).
[0116] Some of the drawings illustrate exemplary block diagrams, systems, and / or flow diagrams that can be used to implement all or part of an embodiment. One or more components, elements, blocks, and / or functions in the exemplary block diagrams, systems, and / or flow diagrams may be implemented alone or in combination, for example, in hardware, firmware, discrete logic (as a set of computer-readable instructions stored in a tangible computer-readable medium), and / or any combination thereof.
[0117] Exemplary block diagrams, systems, and / or flowcharts can be implemented, for example, using any combination of application specific integrated circuits (ASICs), programmable logic devices (PLDs), field programmable logic devices (FPLDs), discrete logic, hardware, and / or firmware. Also, some or all of the exemplary methods may be performed, for example, manually or in combination with the technologies described above.
[0118] Exemplary block diagrams, systems, and / or flowcharts are performed, for example, using one or more processors, controllers, and / or other processing devices. For example, as an example, it is executed using encoded instructions such as computer-readable instructions stored on a tangible computer-readable medium. Tangible computer-readable media include various types of volatile and non-volatile storage media such as, for example, random access memory (RAM), read-only memory (ROM), programmable read-only memory (PROM), electrically programmable read-only memory (EPROM), electrically erasable read-only memory (EEPROM), flash memory, hard disk drives, optical media, magnetic tapes, file servers, any other tangible data storage device, or any combination thereof. The tangible computer-readable medium is non-volatile.
[0119] Furthermore, although the exemplary block diagrams, systems, and / or flowcharts have been described with reference to the drawings, other implementations are possible. For example, the execution order of components, elements, blocks, and / or functions can be changed, and / or some of the components, elements, blocks, and / or functions described can be changed, deleted, subdivided, or combined. Furthermore, any or all of the components, elements, blocks, and / or functions may be implemented serially and / or in parallel, for example, by separate processing threads, processors, devices, discrete logic, and / or circuits.
[0120] Although multiple embodiments have been disclosed, various modifications are possible and they may be replaced by equivalents. Further, many modifications may be made to adapt to a particular situation or material. Thus, the disclosed technology is not intended to be limited to the disclosed embodiments, but is intended to cover all embodiments included within the scope of the appended claims.
Claims
1. 1. A method comprising: receiving data relating to one or more orders including a first order, where each order of the one or more orders is associated with a member of a group including a plurality of members, each order of the one or more orders is executing on an electronic exchange, and the first order is associated with a first member of the group; detecting a second order transmitted to the electronic exchange, the second order being associated with a second member of the group; determining that a match is likely based on the first order and the second order before the market effect of the second order is received from the electronic exchange; and sending a theoretical match confirmation based on the determined likely match before the market effect of the second order is received from the electronic exchange. A method comprising:
2. The method of claim 1 , wherein the data regarding the one or more orders is received by tracking orders of members of the group.
3. The method of claim 1 , wherein data regarding the one or more orders is provided by members of the group.
4. The method of claim 1 , wherein the step of determining a likely match is based on a queue position for the first order.
5. The method of claim 1 , wherein determining the likelihood of a match is based on a priority policy of the electronic exchange.
6. The method of claim 1 , wherein the step of determining that a match is likely is based on market conditions.
7. The method of claim 1 , wherein the theoretical fill confirmation is sent to the first member of the group for the first order.
8. 8. The method of claim 7, wherein the theoretical match confirmation indicates a likely partial match of the first order.
9. The method of claim 1 , wherein the theoretical fill confirmation is sent to the second member of the group for the second order.
10. 10. The method of claim 9, wherein the theoretical match confirmation indicates a likely partial match of the second order.
11. The method of claim 1 , wherein the market effect of the second order is a fill confirmation from the electronic exchange.
12. A computer readable storage medium storing instructions that, when executed, cause a computing device to perform the method of any one of claims 1 to 11.
13. A method for controlling a computer-implemented computer-implemented system, comprising: a processor; and a storage medium storing instructions for causing the processor to carry out a method according to any one of claims 1 to 11. Computing device.
14. A computer program product for causing a processor to carry out the method according to any one of claims 1 to 11.
Citation Information
Patent Citations
Internet-based systems for the recognition, measurement and ranking of investment portfolio management and operation of fund supermarkets, including the best investor-managed funds.
JP2003531444A
Device, method and program for providing agreement information
JP2004070534A
System and method for conducting web-based financial transactions in capital markets
JP2006012189A
Execution probability calculation system, and execution probability calculation program for limit order
JP2006189995A
Power transaction support system and power transaction support program
JP2007004646A