US20070100735A1 - System and method for automated trading - Google Patents
System and method for automated trading Download PDFInfo
- Publication number
- US20070100735A1 US20070100735A1 US11/415,874 US41587406A US2007100735A1 US 20070100735 A1 US20070100735 A1 US 20070100735A1 US 41587406 A US41587406 A US 41587406A US 2007100735 A1 US2007100735 A1 US 2007100735A1
- Authority
- US
- United States
- Prior art keywords
- user
- market
- price
- trading
- trader
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000000034 method Methods 0.000 title claims description 20
- 238000004891 communication Methods 0.000 abstract description 12
- 230000009471 action Effects 0.000 abstract description 5
- 230000008859 change Effects 0.000 description 23
- 241000238876 Acari Species 0.000 description 16
- 230000000007 visual effect Effects 0.000 description 13
- 239000000047 product Substances 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 239000003086 colorant Substances 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- DFCAFRGABIXSDS-UHFFFAOYSA-N Cycloate Chemical compound CCSC(=O)N(CC)C1CCCCC1 DFCAFRGABIXSDS-UHFFFAOYSA-N 0.000 description 1
- 241001670157 Gymnura Species 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 229910052751 metal Inorganic materials 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 150000002739 metals Chemical class 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000010899 nucleation Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H40/00—ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices
- G16H40/20—ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the management or administration of healthcare resources or facilities, e.g. managing hospital staff or surgery rooms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/22—Social work or social welfare, e.g. community support activities or counselling services
Definitions
- the present invention is generally directed to electronic trading, and in particular, facilitates trading of any tradeable object in an electronic trading environment.
- Exchanges that support electronic trading are generally based on a host, one or more computer networks, and clients.
- the host includes one or more centralized computers to form the electronic heart. Its operations typically include order matching, maintaining order books and positions, price information, and managing and updating a database that records such information.
- the host is also equipped with an external interface that maintains uninterrupted contact to the clients and possibly other trading-related systems.
- a network is a group of two or more computers linked together.
- networks can also be characterized by topology, protocol, and architecture.
- any type of network configuration can be used in electronic trading.
- some market participants may link to the host through a direct connection such as a T 1 or ISDN.
- Some participants may link to the exchange through direct connections and through other common network components such as high-speed servers, routers, and gateways, and so on.
- the Internet can be used to establish a connection between the client and the host.
- networks, and combinations of network types known in the art that can link market participants to the host.
- a client is a computer that accesses one or more networks.
- a client can be a personal computer, laptop computer, hand-held computer, and so on.
- Some clients run software that creates specialized interactive trading screens. In general, the trading screens enable people to enter orders into the market, obtain market quotes, and monitor positions. The range and quality of features available varies according to the specific software application being run.
- traders also use a separate spreadsheet program or another similar program to receive market data feeds and to generate numbers, based on those feeds, which the traders can use to determine whether to buy and/or sell tradeable objects. Then, in response to the generated numbers, the trader can manually enter and execute orders into a trading application. Instead of manual order entry, some traders use a more brute force approach with often limited flexibility by linking a spreadsheet program directly to a trading application. Orders are then automatically entered and executed by the trading application based on the generated numbers. Use of spreadsheets and trading applications in this manner does allow traders to enter orders faster than using traditional methods of order entry and execution. However, to profit in today's rapidly moving markets, traders must be able to react more quickly and assimilate an enormous amount of data.
- a trader may have to assimilate market data, world news, business news, and so on before making trades. Consequently, a skilled trader with even the quickest software, the fastest communications, and the most sophisticated analysis can significantly improve the trader's own or the trader's firm's bottom line. The slightest advantage in speed or ability to assimilate information can generate significant returns in a fast moving market. Therefore, in today's fast and dynamically changing markets, a trader lacking a technologically advanced interface is at a severe competitive disadvantage. Prior use of such programs is still an inadequate solution to handle the dynamics of such a fast moving market.
- FIG. 1 illustrates an example network configuration between multiple exchanges and client sites on which the present embodiments may be implemented
- FIG. 2 illustrates an example software architecture of a preferred embodiment of an automated trader and a client device
- FIG. 3 illustrates an example software architecture of a preferred embodiment of an automated trader.
- FIGS. 4-6 illustrates an example interface to a preferred embodiment of an automated trader
- FIG. 7 illustrates an example flow of operation of a preferred embodiment of the automated trader
- FIG. 8 illustrates an example market grid window for selecting the tradeable objects to trade using a preferred embodiment of the automated trader
- FIG. 9 illustrates an example use of the visual indicator as might be seen in an example interface of FIG. 4 ;
- FIG. 10 illustrates another example use of the status light indicator as might be seen in a trading application interface window
- FIG. 11 illustrates an example profile setup window as used by a preferred embodiment of the automated trader to view, create, edit, and/or change profiles
- FIG. 12 is a graphical illustration of ask, buy, and reserve order offsets
- FIG. 13 is a graphical illustration of ask and bid allowances
- FIG. 14 is a graphical illustration of if quote in, join market and if quote out, join market features
- FIG. 15 is a graphical illustration of an example don't cross-market feature.
- FIG. 16 illustrates another example of a profile setup window.
- the preferred embodiments are provided to facilitate the buying and/or selling of tradeable objects.
- the automated trader implements a user programmable interface.
- the user programmable interface allows a user to simply develop a program (e.g., trading strategy) that is based on a set of specifications and/or relationships given by the user and input into a profile, or if desired, input directly into the programmable interface referred to as direct entry.
- the automated trader can be programmed to automate the entire transaction and management process, or the automated trader can be programmed to only assist the user in trading, whichever is desired.
- a transaction includes any type of discrete activity such as an entry of an order, request to delete an order, entry of a quote, request to cancel and replace, and so on, however each of these terms and the variations (e.g., transactions, orders, quotes, etc.) may be used interchangeably unless otherwise indicated.
- the profile simplifies program creation by providing a set of profile parameters that can assist the user in characterizing his or her particular trading strategy.
- the user can create as many profiles as needed to accommodate any number of trading strategies.
- a profile may be dynamically selected, and then the automated trader can execute the program to perform a series of actions according to that selected profile (and directed order entry, if any).
- the profile can be selected manually by the user or automatically based on market conditions.
- the user can change profiles at any time such as before trading or on the fly (i.e., when the automated trader is on).
- the user can alter one or more profile parameters on the fly.
- the user can, for example, focus on his or her trading strategy while the automated trader is executing its program, which might include order entry and execution.
- the user can also program it through use of direct entry.
- direct entry allows the user to enter numeric values or formulas, which might include mathematical statements that describe the actions to be performed on numeric values, directly into the user programmable interface.
- the automated trader is programmed by the combination of the profile and direct entry, but alternatively, it can be programmed by only direct entry or by only the profile.
- the automated trader accepts formulas in the profile and in direct entry embodiments. Regardless of where the formulas are entered (e.g., the profile or through direct entry) the automated trader will preferably incorporate these formulas into its calculations, if programmed to do so. Formulas can also be linked from a spreadsheet or other known analysis tool.
- the automated trader is capable of accepting instructions for performing a task or an operation, it can assist the user in performing any trade related tasks. For example, as part of the user's strategy, the automated trader can be programmed to automatically enter orders into the market. In this example, the automated trader can be programmed to trade, based on the user's profile, in a complete and automatic fashion, if the user so desires. That way, for example, the user can spend more time on developing his or her strategy rather than manually implementing it.
- the automated trader can be programmed only to assist the user.
- the automated trader can be programmed to assist the user in determining prices, referred to herein as suggested prices, at which orders may be entered into the market. The user can trade according to the suggested prices or the user can trade separately from them, whichever the user desires.
- the automated trader can be programmed to utilize indicators to relay information to the user. Indicators can be used to indicate the suggested prices to the user in the automated trader, or alternatively, the indicators can be exported to another trading related application and used to indicate the suggested prices in that application.
- the automated trader can be programmed in various other ways. For instance, some examples describe how the automated trader can be easily programmed to automatically implement cover orders. This is useful because sometimes a user might want an offsetting order to be sent directly into the market to offset a previous position. Some examples describe how the automated trader can also be programmed to place certain limits on the user's trading, and how the system acts accordingly. This is helpful because it can reduce the number of transactions, such as orders, quotes, delete order requests, cancel/replace requests, etc., unnecessarily entered into the market, especially when markets are undergoing periods of extreme volatility. By reducing the number of transactions entered into the market, the user may avoid extra fees often associated with exceeding transaction limits placed by an exchange.
- an exchange might have an order limit, quoting limit, and so on.
- the automated trader can also reduce or prevent losses in the market by examining the validity of prices of possible orders before they are actually placed into the market.
- tradeable objects refers simply to anything that can be traded with a quantity and/or price. It includes, but is not limited to, all types of tradeable objects such as financial products, which can include, for example, stocks, options, bonds, futures, currency, and warrants, as well as funds, derivatives and collections of the foregoing, and all types of commodities, such as grains, energy, and metals.
- financial products can include, for example, stocks, options, bonds, futures, currency, and warrants, as well as funds, derivatives and collections of the foregoing, and all types of commodities, such as grains, energy, and metals.
- the tradeable object may be “real”, such as products that are listed by an exchange for trading, or “synthetic”, such as a combination of real products that is created by the user.
- a tradeable object could actually be a combination of other tradeable object, such as a class of tradeable objects.
- the automated trader may be implemented in any type of electronic trading environment.
- One such suitable environment is described in U.S. patent application Ser. No. 09/590,692, filed Jun. 9, 2000, entitled “Click Based Trading with Intuitive Grid Display of Market,” and is also described in U.S. patent application Ser. No. 09/589,751, filed Jun. 9, 2000, entitled “Clicked Based Trading with Market Depth Display,” the contents of both applications are incorporated herein by reference.
- the automated trader of the preferred embodiment is not limited to any particular network architecture or trading application, but rather may be applied with utility on any client device in any network that can be used for electronic trading.
- the present invention is not limited to a completely electronic trading environment where orders are sent to an electronic matching engine.
- the present invention could be utilized with an electronic trading application that sends orders electronically to a terminal where a person (e.g., a floor broker) executes those orders in a traditional open-outcry trading floor.
- FIG. 1 shows an example system substantially similar to the one described in the above incorporated patent applications.
- the electronic trading system may be configured to allow for trading in a single or in multiple exchanges simultaneously.
- This illustration shows multiple host exchanges 100 - 104 connected through routers 106 - 110 to gateways 112 - 116 .
- the host exchanges may include Electronic Communication Networks (ECNs) like Island, which is a well-known electronic trading facility.
- Other host exchanges may include the Chicago Mercantile Exchange (CME), the Xetra (a German stock exchange), and the European derivatives market (Eurex).
- CME Chicago Mercantile Exchange
- Xetra a German stock exchange
- Eurex European derivatives market
- an electronic trading system When an electronic trading system is configured to receive data from multiple exchanges, it is preferable to translate the data from each exchange into a format that may be used by a trading application and/or displayed using a graphical user interface.
- an application program interface (“API”) translates the incoming data formats from the different exchanges 100 - 104 to a common data format.
- API application program interface
- This translation function of a preferred embodiment may be disposed anywhere in the network, for example, at the gateway server, at the individual workstations or at both.
- storage elements at the gateway servers, the client workstations, and/or other external storage may cache, buffer, or store historical data, such as order books that list the user's active orders in the market; for example, those orders that have neither been filled nor cancelled.
- Information from different exchanges can be displayed in one or in multiple windows at the client workstation. While reference is made through the remainder of the specification to a single exchange to which a trading terminal is connected, the scope of the invention includes the ability to trade, in accordance with the trading methods described herein, in multiple exchanges using a single trading terminal.
- FIG. 2 shows an example software architecture of a preferred embodiment of an automated trader 204 and a client device 200 .
- a trading application 202 is included in the figure.
- the client device 200 is preferably a computer that is connected to one or more exchanges in a manner similar to that system illustrated in FIG. 1 .
- the client device 200 preferably has a communication interface 210 that allows the client device 200 to communicate either directly or indirectly (using intermediate devices) with one or more exchanges to receive and transmit market, tradeable object, and trading order information.
- the client device 200 is able to interact with the trader and to generate contents and characteristics of a trade order to be sent to the exchange.
- the trading application 202 allows for a trader to view market data, enter and cancel trade orders and/or view orders.
- a commercially available trading application that allows a user to trade in a system like that shown in FIG. 1 is X_TRADER® from Trading Technologies International, Inc. of Chicago, Ill.
- X_TRADER® 0 also provides an electronic trading interface, referred to as MD TraderTM, in which working orders and/or bid and ask quantities are displayed in association with a static price axis or scale.
- MD TraderTM electronic trading interface
- the scope of the present invention is not limited by the type of terminal or device used, and is not limited to any particular type of trading application.
- the client device could be a hand-held device, personal computer, laptop, workstation, and so on.
- these devices include at least one processor 206 and at least one memory device 208 .
- the processor may be a microprocessor, a micro-controller, or any device, which performs arithmetic, logic or control operations, and the memory devices may be a volatile or non-volatile memory, for example.
- the automated trader is a separate and independent software application from the trading application.
- the automated trader does not necessarily interact with the trading application. Therefore, the need for an additional trading application is not necessary for the automated trader to perform its function described herein.
- the trading application is installed on the client device, it is possible for the automated trader to interact with it, such as by sharing any type of commonly used information (e.g., as described in the embodiment above).
- the automated trader's functionality can be implemented anywhere.
- some or all of the functionality of the automated trader can be implemented at the communications interface 210 . That is, many of the functions of the automated trader described herein can be implemented at the communications interface 210 to operate as an intelligent communications interface between one or more third-party software applications and one or more exchanges.
- the automated trader is installed at a server and/or gateway, rather than at the client device.
- the client device can access the automated trader over a computer network.
- the automated trader is partially installed on the server and/or gateway and the remaining portion of the automated trader is installed on the client device. Separating the software and the tasks associated with it onto different computers may be especially useful when the client device has little processing power (e.g., a handheld device).
- the automated trader may be installed and/or accessed by the user.
- an automated trader incorporates a user programmable interface that allows the user to develop a program to implement a trading strategy that is based on a set of specifications and/or relationships given by the user.
- the user programmable interface may include any type of interface that allows the user to communicate with the automated trader.
- One example of a user programmable interface is a command-driven interface.
- Another example of a user programmable interface is a graphical user interface that takes advantage of computer graphics.
- the graphical user interface may include one or more windows that can be moved around the display screen, and their size and shape can be changed at will.
- a window might include icons that represent commands, files, or more windows.
- the present invention can use other types of user programmable interfaces, or alternatively, the present invention does not utilize a programmable interface of this type at all, such as in the intelligent communications interface embodiment.
- a third-party application would simply input one or more variables into the automated trader, such that orders are placed into the market based on those variables.
- the user programmable interface 210 is implemented in a software module or processor, referred to generally as a user programmable interface module.
- the user programmable interface 210 can be a routine and/or data structure (or collection of routines and/or data structures) stored in memory that performs the function of the user programmable interface described herein.
- modules such as the user programmable module 210 can be connected together with other modules to form the collective system of an automated trader.
- one skilled in the art can instead use an integrated architecture, in which no clear divisions exist between components, or where a combination of modular and integrated architecture exists.
- FIGS. 4-6 show one example of a user programmable interface of a preferred embodiment.
- the user programmable interface is referred to as an automated trader window 300 , which might be displayed on a screen of a client device.
- the automated trader window 300 may be implemented on a grid created from a software package such as Stingray® from Rogue Wave® of Boulder, Colo., which is a commercially available product that forms a spreadsheet like grid of rows and columns that intersect to form cells.
- the automatic trading window 300 is used to provide the user with a simple way to program the automated trader by supporting both direct entry and profile creation.
- the automated trader window 300 can include as many functional icons'as the user requests, where an icon is a small (or large) image displayed on the screen to represent an element that can be manipulated by the user.
- Some example icons are shown in FIGS. 4-6 and are generally introduced below. It should be understood, however, that the preferred embodiment is not limited to the number of icons present in the figures, nor are they limited to the example layout also shown in the Figures.
- the automated trader window 300 might be configured in a variety of different ways according to the user's preference, most of which are not illustrated for sake of clarity.
- a user may select the “ON” icon to turn on the automated trader.
- the automated trader by default, enters into a manual mode.
- the user can switch the automated trader from the manual mode into the automatic mode, if so desired.
- the manual mode and automatic mode are both described below, but in general, when the automated trader is in manual mode the user has to select the “Update Orders” icon to enter orders into the market.
- the automated trader can, by default, enter into the automatic mode. Selecting the “OFF” icon turns the automated trader off. Once the automated trader is turned off, the orders in the market are preferably deleted by sending one or more delete transaction messages to the appropriate exchanges.
- the “Hedge Open Position” icon provides a feature that allows a user to manually adjust his or her open position by an amount given in hedge field 302 .
- the “Hedge Open Position” icon allows the automated trader to automatically adjust the user's open position, by an amount given by the user, by hedging into other markets.
- the automated trader can be programmed to reduce the user's open position based on a hedged position in other products. The function of the “Hedge Open Position” icon is described more below.
- the “Delete Orders” icon deletes (or attempts to delete) working orders from the market for all tradeable objects shown in window 300 .
- the “update Orders” icon when selected, immediately enters orders into the market for all of the tradeable objects shown in window 300 at the price and quantity shown in their respective scratch pad cells (e.g., under the “Scratch” column, which is described below).
- the “Selected Orders” box 304 When the “Selected Orders” box 304 is selected, it allows the user to use the “Delete Orders” icon and the “Update Orders” icon only for those tradeable objects which have been selected and highlighted in the window 300 .
- Other means of selection in addition to highlighting, which are known in the art, may also be used.
- tradeable objects can be added to the automated trader window 300 by selecting them using a selection means from a market window onto the automatic trade window 300 .
- Selection means includes menu-driven mechanisms (i.e., pull-down menus,-drop-down menus, pop-up menus, and so on.), command line entry mechanisms, check boxes used to enable or disable one or more features or options, drag-and-drop, and other known methods of selection.
- a contract manager 220 is implemented in a software module or processor to control the selection of the tradeable objects to be managed by the automated trader 204 . Moreover, the contract manager 220 can control the selection and insertion of the contracts into the grid as well as the updating of market and other types of data.
- FIG. 8 shows an example of a market window 700 .
- the market window 700 lists those tradeable objects (e.g., contracts) from exchanges in which the user has logged onto.
- the tradeable object name is given in the “Contract” column.
- information for each tradeable object may also be displayed in the market window 700 .
- the market window 700 provides columns of the working buys (“WrkBuys”), bid quantity (“BidQty”), bid price (“BidPrc”), ask quantity (“AskQty”), ask price (“AskPrc”), and working sells (“WrkSells”).
- the market window 700 is just one example of a market window, but there are many other similar types of market windows with more or fewer items of interest that could be used instead.
- Tradeable objects can also be added to the automated trader window 300 by other mechanisms besides selecting them from a market window.
- the automated trader window 300 employs a command-driven system, in which the user explicitly enters the name of the tradeable object.
- the user can choose a tradeable object from a menu by highlighting it and then pressing the Enter key, or by simply pointing to the item with a mouse and clicking on one of the mouse buttons.
- drag-and-drop can be used to add tradeable objects to the automated trader window 300 .
- the automated trader window 300 includes a section 314 that displays information associated with the tradeable objects selected.
- the section 314 utilizes a grid, which is divided into columns and rows that intersect to form cells, such as example cells 316 - 326 shown in the Figure for illustration.
- each cell can be uniquely identified and each cell can hold text, a value, or a formula.
- the user can input information in the form of numbers and formulas into section 314 .
- each column is labeled at the top and information in each row corresponds to one tradeable object.
- Various kinds of information are displayed in section 314 , each of which is described below with respect to the particular columns.
- the user can use the information displayed in section 314 or the user can input information into section 314 in many different ways other than what is described herein, therefore it should be understood that the present invention is not necessarily limited to displaying or inputting the information in the particular way described below.
- Section 314 provides a “Status” column (e.g., cells 316 , 318 , 320 , etc.) that provides a visual indicator that can be programmed to signify, among other things, the status of the automated trader, and can also serve to indicate to the user when to take action.
- the indicator can be visual to include text, flashing lights, colors, and/or audible such as sounds, or any combination of visual and audible.
- FIGS. 9 and 10 show two example embodiments where color (or a variation of color) is used as a visual indicator.
- FIG. 9 shows an embodiment where the visual indicator is a status light displayed in a preferred embodiment of the automated trader window 300 of FIG. 4 .
- status lights 802 and 804 are located in cells 316 and 318 , respectively.
- the status light when the automated trader is in manual mode, the status light (for example, status lights 802 or 804 ) turns a designated color to indicate that the automated trader is in the process of calculating values, the market conditions have not changed enough to enter another order, the user has reached their maximum position, and/or some other programmed reason.
- the status light (for example, status lights 802 or 804 ) turns a designated color to suggest when an order at a suggested price may be entered into the market. Based on the color of the status light in manual mode, the user can enter orders into the market by simply selecting the “Update Orders” icon.
- the status light when the automated trader is in automatic mode, can be programmed to indicate different things than when the automated trader is in manual mode.
- status lights 802 and 804 include other colors such as “green,” “red,” and “yellow” (all colors are configurable).
- a green status light might indicate that the automated trader is performing transactions with an exchange. For instance, the automated trader is automatically updating and entering the orders into the market.
- a red status light might indicate that the automated trader has stopped entering orders into the market. For instance, the automated trader might stop entering orders into the market because the trading limits have been reached, trading is not occurring in the market, or the connection to the market has been lost.
- a yellow status light might indicate that other conditions have occurred such as trading has temporarily paused because of throttling (throttling is described more below) or the suggested trades are within other trading limits.
- the user can determine what processes the automated trader is currently performing, if any.
- the indicators can be programmed to mean different things other than what was described above.
- FIG. 10 illustrates another embodiment where an indicator is integrated into another trading application and/or another trading interface (e.g., a third-party trading application and/or interface).
- another trading application e.g., a third-party trading application and/or interface
- X_TRADER® a commercially available trading application referred to as X_TRADER® from Trading Technologies International, Inc. of Chicago, Ill. is used to implement the visual indicators.
- X_TRADER® also provides an electronic trading interface, a portion of which is shown in FIG. 10 , referred to as MD TraderTM, in which working orders and/or bid and ask quantities are displayed in association with a static price axis scale. The portion shown in FIG.
- FIG. 10 shows a working order column 904 that displays the working orders, a bid quantity column 906 that displays the bid quantities, an ask quantity column 908 that displays the ask quantities, and a price axis 910 that displays the corresponding prices.
- X_TRADER® trading application is utilized and the MD TraderTM interface is shown in the figure, it should be understood that the preferred embodiments are not limited to any particular trading application and/or trading interface.
- cells, or a portion thereof, within any columns of the trading interface can turn a designated color to suggest when and at what price an order should be entered.
- the automated trader has determined, based on the current market conditions and profile, that the price to submit a sell order is at a price of 106975 and that the price to submit a buy order is at a price of 106850 as shown in the figure. Consequently, according to this embodiment, the automated trader will display a visual indicator in the appropriate cells to indicate this information to the user.
- the visual indicators are displayed in the market depth for easy viewing, that is, the cell that contains ask quantity 447 turns a designated color to distinguish itself from the surrounding cells and the cell that contains buy quantity 168 also turns a designated color to distinguish itself from the surrounding cells.
- a user can implement the trading strategy, which has been programmed into the automated trader, by simply submitting buy and/or sell orders at the suggested prices levels.
- the automated trader is in automatic mode, the user can simply watch the automated trader implement his or her trading strategy in the trading interface.
- a separate column 912 can be used to indicate when and where to enter orders.
- Indicators such as visual and/or audible indicators can be implemented anywhere on a trading interface so long as the user is aware of the location and its purpose.
- the “Active” column allows a user to activate or start trading a tradeable object of a particular row.
- a selection means is provided in a cell that allows the user to actively trade the tradeable object corresponding to the row of the cell. Conversely, the user can stop trading the tradeable object by using the same selection means (or a different selection means) to inactivate trading for that row.
- the “Contract” column indicates the current name of the tradeable object for each row.
- the tradeable object name is the name of the tradeable object given by the exchange, but alternatively, the user can rename the tradeable object to suit his or her particular need.
- Control parameters under the “Control” column give the user the flexibility to change the operation of the automated trader from manual mode to automatic mode, and vice-versa, change the current profile (before trading or on the fly), and change the account name.
- each cell under the “Manual” column utilizes a selection means to change the operation of the automated trader into manual mode.
- each cell under the “Automatic” column utilizes a selection means to change the operation of the automated trader into automatic mode.
- preferably only one mode i.e., manual or automatic
- the automated trader may still perform some automatic operations (e.g., automatically calculating suggested prices in the scratch pad, etc.), of course, this depends on how it is programmed.
- the user can program the automated trader in many unique ways to characterize any type of trading strategy that he or she might want to implement.
- One such way is to develop a profile, such that the profile characterizes the user's particular trading strategy.
- the user can create as many profiles as needed to accommodate any number of trading strategies. Developing and saving a profile is described in the example illustration section below.
- a profile may be selected for each tradeable object.
- the user can change profiles at any time before or while the user is trading.
- each cell under the “Profile” column allows the user to select the profile, at any time.
- each cell under the “Profile” column utilizes a selection means so that the user can select a saved profile. It is also envisioned that the automated trader can automatically select the profile based on market conditions.
- Each tradeable object is preferably associated with an account (or customer). One or more accounts may be added and information corresponding to those accounts can be stored. Then, any trading activity associated with a particular tradeable object is linked to the corresponding account. Through a selection means, the automated trader allows the trader to select the account for each tradeable object in each cell under “Account.”
- the automated trader keeps track of the number of transactions a user has for each row, and the displays the number in the cells under the “TransCount” column.
- the automated trader can keep track of the number of transactions across an account.
- transactions include any type of discrete activity such as an entry of an order, request to delete an order, entry of a quote, request to cancel and replace, etc.
- Some exchanges impose fines for excessive transactions.
- the automated trader can signal to the user when the transaction level has met an exchange's transaction limit. For example, the automated trader can simply warn the user that the exchange limit has been reached; alternatively, the automated trader can prevent the user from participating in any more transactions.
- Transaction limits for each exchange can be programmed (or fed into) into the automated trader.
- the automated trader displays information regarding the user's position in the market and might display the user's net position and open position.
- the user's position is open when the numbers of tradeable objects bought or sold are not equal.
- the user's position is closed when the numbers of tradeable objects bought or sold are equal.
- cells under the “Position” column display the user's various positions including the user's net and open positions in the market.
- the “Net” column displays the total net position for a tradeable object for an account.
- the “Open” column displays the open position for a tradeable object for each row.
- the open position could be a number based on the user's position at an exchange level, customer level, account level, and so on, depending on how it is programmed.
- a user may wish to hedge his or-her open position into other markets, products, and so on.
- the open position can be manually reduced by using the Hedge Open Position feature.
- the user can hedge his or her open position by the value in the hedge field 302 , such as by selecting the “Hedge Open Position” icon.
- the user can manually hedge at any time his or her position elsewhere.
- the automatic trader can automatically hedge the user's position in other markets or products based on his or her trading strategy, for example.
- the automated trader window 300 can display the current market information.
- market information may include the inside market, but alternatively may include market depth information.
- the inside market is the lowest sell price (best ask) and the highest buy price (best bid) at a particular point in time.
- Market depth refers to quantity available at the inside market and can also refer to quantity available at other prices away from the inside market at the same point in time.
- Market information can contain other types of data such as the last traded price (LTP), the last traded quantity (LTQ), and/or order fill information.
- the columns under the “Market” column display the current market information for each tradeable object.
- the “Mkt'idPrice” column shows the market bid price for the corresponding quantity shown in the “MktBidQty” column.
- the “MktAskPrice” column shows the market ask price for the corresponding quantity shown in the “MktAskQty” column.
- the “MktLastQty” column shows the last traded quantity in the market, and the “MktAskPrice” column shows the last traded price in the market at that quantity.
- the “Net Change” column provides the price differential over a period, such as the previous settlement price for each tradeable object.
- a horizontal slide bar 330 allows the user to view more columns and row information for each tradeable object. It should be understood, however, that the columns can be arranged in a different order shown in the figures and/or some of the columns can be deleted, if the user desires. Moreover, the names of the columns may be abbreviated so that more information (e.g., more columns) can fit into the viewing area. Although not shown, a vertical slide bar may appear to indicate to the user that more rows of tradeable objects can also be viewed.
- the slide bar 330 has been moved to view more information. Again, for sake of illustration, the columns are more spaced out more than necessary. To view more information in the automated trader window 300 , smaller font size and/or more abbreviations may be used, for example.
- the automated trader window 300 displays the user's working orders.
- the cells under the “Working” column display the working orders for each tradeable object.
- the “WrkBidPrice” column displays the current working bid price
- the “WrkBidQty” column displays the current working bid quantity.
- the “WrkAskPrice” column displays the current working ask price
- the “WrkAskQty” column displays the current working ask quantity.
- the automated trader window 300 displays one or more scratch pad areas that operate as temporary storage areas used by a preferred embodiment of the automated trader for displaying calculations, data, and other work in progress.
- a scratch pad area can show, among other things, information related to suggested orders that, at any time, can be sent into the market automatically (in automatic mode) or manually (in manual mode).
- the user can use the scratch pad area as a place to monitor and/or change possible order information before an order is actually sent into the market as a working order.
- the user might also, for example, use the scratch pad to test various strategies, and so forth.
- columns under the “Scratch” column form a scratch pad area.
- the “ScrBidQty” column displays the scratch bid quantity
- the “ScrBidPrice” column displays the scratch bid price.
- the “ScrAskQty” column displays the scratch ask quantity
- the “ScrAskPrice” column displays the scratch ask price.
- the values placed in the cells of the “ScrBidQty,” “ScrBidPrice,” “ScrAskQty,” and “ScrAskPrice” columns include those that are manually entered by a user (or linked to a manually entered value) and/or calculated and displayed by the automated trader.
- a strategy processor calculates values that are placed in the scratch pad area.
- the values may include numbers (decimal or whole) and/or formulas, if programmed. Examples are provided below.
- the columns under the “Profile Parameter” column display some or all of the profile parameters entered by the user and saved in a profile.
- the user can change the parameters shown in window 300 on the fly, but the changed parameters do not necessarily alter the saved profile. That way, the user can quickly change one or more of the parameters without having to access the profile window.
- the parameters are described more below, they might include a “Bid Offset” column that displays the bid offset, a “Bid Qty” column that displays the bid quantity, a “Ask Offset” column that displays the ask offset, a “'Ask Qty” column that displays the ask quantity, and a “Max Position” column that displays the maximum position a user can take.
- the bid offset is a value (positive or negative value) that can be subtracted from the base profile price, to indicate a price at which the user is willing to submit a buy order into the market.
- the ask offset is a value (positive or negative value) that can be added to the base profile price, to indicate a price at which the user is willing to submit a sell order into the market.
- the columns under the “Cover Order” column display information related to cover orders.
- the “Cover” column displays the cover order offset
- the “Enable” column provides the user with selection means to enable/disable the cover order feature, and also displays whether the cover order option is enabled and/or disabled.
- a user may wish to trade off a theoretical price (a calculated price other than the market price fed by an exchange). For example, a user may calculate a single theoretical price such that buy and/or sell orders are entered into the market at a price based off the single theoretical price. In another example, a user may calculate bid/ask theoretical prices such that the buy orders are entered into the market at a price based off the bid theoretical and the sell orders are entered into the market at a price based off the sell theoretical.
- a theoretical price a calculated price other than the market price fed by an exchange.
- a user may calculate a single theoretical price such that buy and/or sell orders are entered into the market at a price based off the single theoretical price.
- bid/ask theoretical prices such that the buy orders are entered into the market at a price based off the bid theoretical and the sell orders are entered into the market at a price based off the sell theoretical.
- the user can input the formula (or link to a spreadsheet with the formula) that calculates the theoretical price in a cell under the “Theoretical Price” column.
- a theoretical price e.g., single theoretical, bid theoretical, ask theoretical, etc.
- One or more columns under the “Formulas” column display formulas that are entered by the user (or linked to a spreadsheet), if any.
- the formulas establish mathematical relationships between values in the automated trader window and/or in other programs. More columns can be added or columns can be deleted depending on what the user desires.
- the window 300 is preferably configurable in any fashion so that the user can view the columns of information he or she wishes to view.
- the type of information displayed can also be configurable, for example, which fields or icons are displayed.
- a user can uniquely program the automated trader to suit his or her individual trading strategies.
- the user can program the automated trader in a variety of different ways and at any time, such as before trading begins or on the fly.
- the program is preferably based on a set of specifications and relationships given by the user and input into the profile or input directly into the user programmable interface.
- the automated trader is setup to simplify the task of creating the profile and inputting directly into the user programmable interface. Then, the automated trader can execute the program to perform a series of actions.
- the following example illustrates one way in which a user might program the automated trader.
- FIG. 7 shows a flowchart 600 that, in general, illustrates an example flow of operations performed by the user and a preferred embodiment of an automated trader.
- the example flow of operations includes selecting one or more tradeable objects at step 602 , entering profile(s) for each tradeable object at step 604 , calculating a price at which an order is entered at step 606 , applying one or more quoting limits at step 608 , entering the order into the market, if appropriate at step 610 , and managing the order at step 612 .
- Each step of the flowchart 600 is described with respect to their respective sections below.
- the flowchart 600 provides only an illustrative description, and that more or fewer steps may be included in the flowchart 600 , and/or the steps may occur in one or more orders which are different from the order of steps shown in FIG. 7 .
- the step 602 “Select Objects to Trade,” may occur before or after the step 604 “Enter Profile(s).”
- the step 608 “Quoting Limits,” may not be necessary if the user decides not to use them.
- the step 602 Select Objects to Trade
- the step 604 “Enter Profile(s).”
- the step 608 “Quoting Limits” may not be necessary if the user decides not to use them.
- the user selects one or more tradeable objects from one or more host exchanges.
- one or more tradeable objects may be selected for trade. For example, a user may select one or more tradeable objects by highlighting the tradeable object(s) with an input device such as a mouse, keyboard, or touch screen. Upon highlighting the tradeable objects, the user may then drag them into a user programmable interface such as an automated trader window. A user can use any selection means for selecting the tradeable objects.
- one or more tradeable objects can be selected from a market window or any other window that displays tradeable objects.
- One type of market window that is suitable for selecting tradeable objects is shown in FIG. 8 .
- the market window has a column that lists the tradeable objects (contracts). This example includes tradeable objects “ES JUN02,” “ES SEP02,” “ES DEC02,” “GE JUN02,” etc. (some of the tradeable objects are of the same type but have different expiration dates, June, September, and December, however, this is not necessary).
- Other information associated with each tradeable objects is also displayed in this example market window, such as the inside market and so on, however, it is not necessary to display such information. Nonetheless, one or more objects may be selected from the market window (or a similar window) and dragged into an automated trader window.
- one or more profiles are entered.
- the user can create profiles to characterize his or her trading strategy.
- Profiles provide a way to easily program the automated trader by providing cells (or fields) whereby the user can input information to characterize his or her trading strategy.
- Profiles may also be saved from a previous use in which the step of creating a profile could be skipped.
- auser can-create a-profile by selecting a tradeable object using any selection means and then by selecting the option “Profile Setup.”
- FIG. 11 shows one example of a profile setup window 800 as a result of selecting the “Profile Setup.”
- the user can create, edit, or delete profiles through a profile setup window like the example window 800 shown in FIG. 11 .
- a user may select to view and/or edit an existing profile by selecting the profile in window 812 (no profiles are shown in window 812 ).
- the user may delete an existing profile by selecting the profile in window 800 and pressing the “Delete” icon 802 .
- the user may add a new profile by pressing the “New” icon 804 , once the profile name is entered in the “Name” field 810 .
- profile setup window 800 Once the user is finished with the profile setup window 800 , he or she may save the profile by selecting save 806 , and can select the “Close” icon to close the window 800 .
- save 806 a profile may be created through other means besides a window (e.g., command line entry, program file, etc.), it should be understood that the profile setup window 800 shown in FIG. 11 is just one example of how a profile window might look if such a window is utilized, and that a suitable profile window might represent more or less information in the same or different manner.
- a portion of the profile setup window 800 is broken up into columns that intersect with rows to form cells 820 .
- the user can enter information into cells 820 to create or edit a profile.
- the information that is entered into the cells 820 preferably corresponds to the row titles given in column 822 .
- the row titles shown in column 822 e.g., the row title “Account” to “Stale Quote Timeout” provide only an example of what might be input by a user to program his or her trading strategy. Therefore, the row titles are not meant to limit the present invention, but rather to illustrate the possibilities in developing a profile.
- a profile allows a trader to enter values for parameters that are commonly (or uncommonly) used by the trader in establishing a trading strategy.
- the particular parameters described herein are merely examples of such parameters and a profile could use entirely different parameters.
- the software can be programmed to allow a user to create new types of parameters to be used with the profiles.
- the “Account” allows the user to enter and/or select the account name using a selection means.
- the account name “ABC” is shown.
- the “Profile Base Price” allows the user to select which base price is used in calculating prices. For example, using a selection means, the user has the option to choose between “Market Prices,” or to create his or her own theoretical price, such as “Single Theoretical,” “Bid Theoretical,” and “Ask Theoretical.” If the user decides to use his or her own theoretical price, one way to incorporate this price in a preferred embodiment is to place a formula (or link to formula) in a cell under the “Theoretical Price” column in FIG. 6 . Alternatively, the theoretical price formula (or link) can be placed directly into the profile. In addition, “Direct Entry” may be selected here to allow the user to enter values (i.e., numbers or formulas) directly into one or more scratch pad areas. For this example, the profile base price selected and shown is “Market” for market prices.
- “Throttle Quoting” allows the user to enable throttle quoting (or other transactions, where transactions can includes any type of discrete activity such as an entry of an order, request to delete an order, entry of a quote, request to cancel and replace, and so on).
- throttle quoting can be used to prevent or reduce excess entering of orders and other transactions.
- Another purpose for throttling transaction messages, such as orders, is to prevent automatic re-pricing of orders during a period of time.
- the automated trader continually calculates suggested orders and updates the scratch pad.
- the throttle-quoting feature is used to throttle the entry of orders from the scratch pad into the market.
- throttle quoting can be applied to throttle the calculation of suggested orders by the automated trader.
- a request to delete an order is always entered into the market, whether or not the throttle-quoting feature is enabled.
- cover orders are not throttled. Throttle quoting may be helpful if the markets are moving rapidly and the exchange at which the user is trading charges transaction fees for excessive order entry.
- the system throttles the order (or transaction message) for 500 milliseconds before it is released.
- the order (or transaction message) can be replaced or updated to reflect more recent order information that might have been generated.
- cover orders are placed directly into the market, thereby bypassing the scratch pad area, but alternatively, the cover order may be first placed into the scratch pad area before being sent out into the market. For example, assume that a user enters a buy order of 10, and the buy order is filled. Then, the automated trader will enter a sell order of 10 into the market to offset the previous buy order of 10. Likewise, if a sell order of 10 is filled, a buy order of 10 is entered into the market.
- the cover order color can be set in cell 824 . Preferable, the cover order color distinguishes cover orders from other working orders that might also be in the market. Other types of visual indicators can be used instead of color or in combination to color.
- “Manual Requote” When “Manual Requote” is enabled, if a user gets filled on a buy or sell order, the automated trader will stop sending orders on the side that was filled until the user presses the “Update Orders” icon, which retriggers automated quoting. For example, if the user's quote is a 10 bid and a 12 offer, then if the 10 bid gets filled, the automated trader will not send in another buy order until “Update Orders” icon is pressed. In this example, however, it will continue to quote the sell side.
- the “Days to Expiration” allows an automated trader (or user) to input the days to expiration for a particular tradeable object.
- an expiration date for a futures contract is referred to as the delivery month.
- the delivery month is the month during which a futures contract expires, and during which delivery may take place according to the terms of the of the contract.
- the futures delivery month with the soonest delivery date (or the option delivery month with the soonest expiration date) is referred to as the nearby month.
- the month which has the latest delivery data is referred to as the far month.
- the automated trader can automatically determine the delivery months for a particular tradeable object based on a data feed from the exchange.
- the tradeable object can have a delivery date given in months (e.g., June, September, and December) or days (e.g., 30 days, 60 days, and 90 days).
- An alternative embodiment allows the user to manually input the expiration date.
- FIG. 11 shows 30 days to expiration for the particular tradeable object. It is also possible that the tradeable object doesn't have a particular delivery date or expiration date, and therefore the “Days to Expiration” can be left blank or be programmed not to appear at all.
- Price Units allows a user to change the price units for a given tradeable object.
- the price unit is in ticks, where a tick is the minimum change in a price value that is set by the exchange for each tradeable object.
- other price units might be available such as currency.
- the price units are set to “ticks.”
- the “Bid Offset” allows a user to set the desired offset bid price, which represents the price of a buy order that can be entered into the market from the bid price based on the “Profile Base Price.”
- the “Bid Offset” has units given by the 'Price Units.“The ” Bid Quantity” row allows a user to set the quantity a user is willing to trade at the desired offset bid price.
- the “Ask offset” allows a user to set the desired offset ask price, which represents the price of a sell order that can be entered into the market, from the ask price set by the “Profile base price.”
- the “Ask Offset” also has units given by the 'price Units.“The ” Ask Quantity” allows a user to set the quantity a user is willing to trade at the desired offset ask price.
- FIG. 11 , the “Bid Offset” and the “Ask Offset” are both set to 2 ticks from the market.
- FIG. 12 illustrates a graphical illustration of ask and buy offsets in relation to the inside market (or some other reference price level).
- a preferred embodiment of the automated trader can be programmed to allow a user to enter a second order (reserve) that is entered into the market when the first order (the buy order at the bid price or the sell order at the ask price) is filled.
- This option allows users to immediately enter another order into the market at a predetermined price and quantity that the user knows has a greater chance of filling because the first order was filled.
- the “Bid Reserve Offset” allows the user to enter the desired offset
- the “Bid Reserve Qty” allows the user to enter the desired reserve quantity at the reserved offset price. The same is true for the “Ask Reserve Offset” and the “Ask Reserve Quantity,” except that they apply to sell orders.
- the reserve ask offset and the reserve buy offset may be set by the user, if desired.
- the reserve ask offset and the reserve buy offset can have the same value as the ask and/or buy offset or a different value.
- the “Bid Reserve Offset” and the “Ask Reserve Offset” are both set to 3 ticks from the market.
- FIG. 12 illustrates a graphical illustration of reserve order offsets in relation to the inside market (or some other reference price level).
- the “Cover Order Offset” allows a user to set the offset price for any cover order. For example, if the cover order feature is enabled, then when a buy order of 10 is filled, the automated trader will enter a sell order of 10 into the market at a price 2 ticks above the fill price. Likewise, if a sell order of 10 is filled, then the automated trader will enter a buy order of 10 into the market at a price two ticks below the fill price.
- a profile manager 208 provides an interface through which the user can establish, edit, delete, and save profiles that characterize his or her trading strategy.
- the profile manager 208 can be separate from or the combined with the user programmable interface 210 .
- the user can preferably select the profile before trading begins or on the fly.
- the user can, at any time, use any selection means to select a profile in the “Profile” column.
- the user can quickly adapt to changing market conditions, or simply the user can quickly and easily test his or her different trading strategies.
- the user can change the parameters of the profile through the automated trader window 300 by editing cells under the “Profile Parameters” column. In the preferred embodiment, changing the parameters does not necessarily alter the saved profile.
- the automated trader is programmed to calculate, among other things, the price at which to enter an order/quote into the market.
- a strategy processor calculates the price at which to enter orders into the market.
- some of the calculated values are then displayed in the cells under the “Scratch” column (shown in FIG. 5 ), previously referred to as a scratch pad area.
- values displayed in the scratch pad area include a bid price and bid quantity (under the “ScrBidPrice” and “ScrBidQty” columns, respectively), and an ask price and ask quantity (under the “ScrAskPrice” and “ScrAskQty” columns, respectively).
- More items of interest such as the reserve price and quantity or the cover order offset, may also be displayed under the “Scratch” column, if programmed to do so.
- more than one “Scratch” column can be provided, depending on how it is programmed.
- the user can enter orders directly into the cells under the “Scratch” column, also referred to as direct entry.
- This embodiment referred to as the direct entry allows the user to enter numbers, formulas, or link to other numbers/formulas directly into the scratch pad working area.
- the user can implement direct entry in either the manual or automatic modes.
- the cells under the “Scratch” column provide the user with a scratch pad area to view suggested order information before orders are actually entered into the market. That way, the user can verify order information calculated by the automated trader, or the user can enter his or her own values directly through direct entry.
- the automated trader applies any quoting limits, which were programmed into the profile, to the suggested order information in the scratch pad area. Therefore, in addition to providing the user with flexibility on what to quote, the price to quote at, and the quantity to quote, the automated trader window allows input of quoting limits that can be placed on orders before they are entered into the market. According to the example in FIG. 11 , the quoting limits include “Maximum Position” row through the “Stale Quote Timeout” row, and can include “Throttle Quoting.”
- the “Maximum Position” allows the user to set a quoting limit on the user's open position. Once the open position reaches the maximum position, the automated trader is programmed to notify the user that the limit has been reached.
- the maximum position applies both to the buy side and the sell side. For example, if the buy side reaches the maximum limit and the automated trader is in the automatic mode, then the automated trader will enter only sell orders to reduce the open position. Conversely, if the ask side reaches the maximum limit and the automated trader is in the automatic mode, then the automated trader will enter only buy order s to reduce the open position.
- the automated trader when the user reaches the maximum position, the automated trader provides the user the option to quickly hedge the open position in fall, or partially.
- the user can quickly categorize as hedged his or her open position so that he or she can quickly participate in the market.
- a pop-up window is used to allow a user to categorize as hedged his or her open position, but alternatively, any method of indicating this option to hedge may be used.
- the “Bid Change Allowance” allows a user to enter an allowance of price units that the user is willing to wait before the automated trader enters another order. Similar to Bid change allowance row, the “Ask Change Allowance” allows a user to enter an allowance of price units, but for the sell side.
- FIG. 13 is a graphical illustration of ask and bid allowances in relation to ask and buy offsets.
- the automated trader would delete the previous order and re-enter at the market price minus two ticks.
- the automated trader would not necessarily delete the order and re-enter another. Instead, the automated trader keeps the order so long as the market does not move outside of the allowance.
- the allowance embodiment would not delete the order (with an offset of two ticks and an allowance of one tick), however, if the market moves four ticks in one direction, the order would be deleted and re-entered at two ticks from the new price.
- the market stayed inside the allowance so the order is kept, but in the latter scenario, the market moved outside of the allowance so the order was deleted and re-entered at a new price.
- FIG. 14 is a graphical illustration of the “If Quote Inside, Join Market” option.
- the system compares the price of the suggested order to price levels that are easily programmed as acceptable to the user. If the price of the suggested order is not at an acceptable price level, then the system preferably changes the price of the order to an acceptable price before it is actually sent to the exchange.
- the graphical illustration in FIG. 14 provides one example to illustrate this concept.
- a suggested order is priced below the market ask price (or some other reference price level) on the sell side, however, according to this example, this suggested order price is not at an acceptable price level.
- the automated trader instead sends an order to the market at a price level which is acceptable, such as the market ask price in this example.
- the automated trader can send an order at any pre-set price, for example, some pre-set offset value to the market ask price. This can also be applied to the buy side as illustrated in the Figure.
- FIG. 14 Also shown in FIG. 14 is a graphical illustration of the “If Quote Outside, Join Market” option. This feature is the same as the “If Quote Inside, Join Market” such that when this feature is selected, the system compares the price of the suggested order to price levels that are programmed as acceptable to the user. A difference is that when an order is priced higher (rather than lower) than the market ask price (or some other reference price level) on the sell side, then the system preferably changes the price of the order to an acceptable price before it is actually sent to the exchange. This can also be applied to the buy side as illustrated in the Figure.
- the “If Quote Outside, Join Market” and the “If Quote Inside, Join Market” features can be combined into one feature such that if the price of a suggested order is not an acceptable price, the system can automatically change the price of the order to an acceptable price before it is sent to an exchange.
- FIG. 15 is a graphical illustration of a “Don't Cross the Market” option which is similar to the above features. For example, if the suggested sell order price has crossed the best buy price, the system can be easily programmed to change the sell order price to an acceptable price before sending the order to the market. In this example, the sell order price is changed to a price level higher than the best buy price, so as not to cross the market.
- the market improve limit limits the amount by which the traders generated quote improves the best bid price or best ask price in the market. For example, assume that the market improve limit is set to 2 ticks (although any number of ticks or units may be set). Then, if the best bid price is 10 and the best ask price is 20 and a suggested buy order was calculated having a price of 15, a buy order would be sent to the market at a price of 12 and not 15. Thus, the trader in this example is only willing to better the market by 2 ticks.
- the market improve limit can be applied separately to the buy side, the sell side, or it can be applied for both the buy side and the sell side.
- the market improve limit will use the same units as set in the price units field.
- the “Quote Move Limit” lets a user specify a limit in units, such as ticks or currency, such that if the suggested order in the scratch pad is greater than the existing quote in the market by more than the limit (in either positive or negative direction), automated trader pulls the existing quote from the market and will not submit the new suggested order.
- a limit in units such as ticks or currency
- automated trader pulls the existing quote from the market and will not submit the new suggested order.
- the user can click on the “Update Orders” icon.
- the “Stale Quote Timeout” lets a user specify the timeout period in seconds such that if the quote in the market has not changed when the timeout limit has been reached the quote is pulled from the market. To retrigger automated quoting, the user can click on the “Update Orders” icon.
- steps 606 and 608 in FIG. 7 are preferably performed by a strategy processor 212 .
- the strategy processor 212 can receive information from the profile manager 208 , user programmable interface 210 , and the market to calculate order parameters such as prices and quantities.
- the strategy processor 212 uses trading limits (e.g., maximum position, quoting limits, allowances, throttling, etc.) to determine whether an order should actually be submitted to the market.
- the strategy processor 212 also includes a feature that when enabled prevents orders from crossing the market (e.g., prevents sending an order to market when the suggested buy order is priced greater than the market's best ask price, or prevents sending an order to market when the suggested sell order is priced less than the market's best bid price).
- prevents orders from crossing the market e.g., prevents sending an order to market when the suggested buy order is priced greater than the market's best ask price, or prevents sending an order to market when the suggested sell order is priced less than the market's best bid price.
- the suggested transactions are passed to the order router 214 when the user selects the “Update Orders” icon.
- the transactions are preferably passed to the order router 214 .
- the automated trader also has a cover order processor 222 for calculating and sending cover orders.
- the cover order processor can be combined with the strategy processor.
- an order is entered into the market.
- an order router 214 sends orders into the market and manages the timing of order entry.
- orders in the market are monitored.
- the strategy processor 212 is monitoring market information and is re-calculating the order parameters (e.g., price and quantity) and thereby calculating new suggested orders. Then, trading limits may be applied to determine if it should replace the working orders in the market with the new suggested orders. If the working orders should be replaced, then the strategy processor 212 indicates to the order router 214 to delete the order and send in a new order (or cancel/replace).
- FIG. 16 is an alternative embodiment of the profile window to that shown in FIG. 11 .
- the profile parameter window 1100 allows a user to enter parameters for many tradeable objects of the same type, but having different expiration dates. Thus, a user can put all of the profiles for these tradeable objects into one window. This allows the user to view, edit, create, and/or delete all of the profile parameters for the tradeable objects of the same type.
- automated trader can dynamically pick the appropriate profile for a tradeable object based on the current expiration date of that tradeable object.
- a user may be trading a tradeable object that has a 60 day expiration date, however, as the date is approached and it becomes a 30 day contract, the automated trader can be programmed dynamically switch to from using the profile of the 60 day expiration date to the profile of the 30 day expiration date.
- visual indicators may also be used.
- the tradeable objects have been given the names of colors, but alternatively, the user can rename the name of the tradeable objects.
- white, red, green, blue, orange, and copper identify the tradeable objects.
- the automated trader can be programmed to dynamically change strategies based on the expiration day.
- FIG. 3 in summary, illustrates a block diagram of an example architecture that is suitable for providing the functionality, described herein.
- modules are integrated to provide the functionality described herein, and include a profile manager 208 , user programmable interface 210 , strategy processor 212 , order router 214 , and contract manager 220 .
- a user inputs data into the user programmable user interface 210 and/or the profile manager 208 , which is communicated to the strategy processor 212 .
- the profile manager 208 may also communicate data to the user programmable interface 210 .
- the strategy processor 212 calculates order parameters based on the data received from the user and on data received from the market. Results of these calculations can be relayed to the user programmable interface 210 .
- the strategy processor 212 can instruct the order router to send an order (or transaction) to the market.
- an order or transaction
- a contract manager 220 may provide data about the tradeable objects to the strategy processor and the user programmable interface.
- any programming architecture whether modular or integrated are a combination of both can be used in conjunction with the present invention.
- anyone of the example modules described above can be eliminated or combined with another module without departing from the spirit of invention.
- the present embodiment preferably includes logic to implement the described methods in software modules as a set of computer executable software instructions.
- a processor implements the logic.
- the processor executes software that can be programmed by those of skill in the art to provide the described functionality.
- a hardware embodiment may take a variety of different forms.
- the hardware may be implemented as an integrated circuit with custom gate arrays or an application specific integrated circuit (“ASIC”).
- ASIC application specific integrated circuit
- the embodiment may also be implemented with discrete hardware components and circuitry.
- the logic structures and method steps described in the flow diagrams may be implemented in dedicated hardware such as an ASIC, or as program instructions carried out by a microprocessor or other computing device.
- the automated trader allows formula entry into any cell under the “Scratch” column, the “Formulas” column, the Profile Parameter columns, and the Cover order offset column, which are both shown in the automated trader window 300 , and also in the cells of the profile window 800 .
- each cell accepts many different types of entries such as text, constant numeric values, dates or times, formulas that calculate a value, and graphs. Calculated values may be single numbers or strings, or they can be arrays or tables of values.
- the formulas can include variables, such as market information found under the “Market” column in the automated trader window 300 .
- the user can simply type into the formula the title of the market bid price and bid quantity column.
- the user might use variables given by “MktBidPrice” for the current bid price and “MktBidQty” for the current bid quantity in his or her formula.
- the automated trader can calculate relationships among different cells by typing in the row/column coordinates, or address, or name (e.g., “MktBidQty”) into the formula.
- formulas entered into the user programmable interface and/or into a profile may be accomplished by a two-way link between the trading interface and a third party software, or may link market data from a trading window into the spreadsheet or other third party software.
- any suitable type of data exchange protocol may be used to embed information from the third party software or to link the dynamic indicator to the third party software.
- Microsoft OLE 2.0 may be used to perform these functions when using Microsoft Windows applications as the third party software.
- Microsoft OLE is utilized to provide a link between cells in the interface and/or profile and a cell from a Microsoft EXCEL spreadsheet.
- Data exchange protocols in general, and linking and embedding techniques in particular, are well known to those skilled in the art.
- the automated trader described herein maybe put to advantageous use by providing a user with a simple and flexible trading mechanism to define and implement basic-to-very complex trading programs, allow dynamic entry of program adjustments, automatically monitor market and user data, manage trades, allow efficient configuration of data views, enable order seeding, and more.
- users can quickly and effectively implement program trading with increased functionality and flexibility that can be configured to suit his or her desired trading strategy.
- the automated trader can assist a user in assimilating a large amount of data that is useful in determining his or her trading strategy.
- the automated trader may instead be implemented at the communications interface to operate as an intelligent communications interface between one or more third-party software applications and one or more exchanges.
- This advantageous use of the automated trader allows third-party computer programmers of trading-related software applications to focus their program development on implementing a particular strategy, rather than how to enter orders, how to manage them, and how to place certain limits on the orders.
- This embodiment allows for simpler third-party applications because the intelligent communication interface takes on more functionality so that the third-party applications do not need to.
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Business, Economics & Management (AREA)
- Tourism & Hospitality (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- Theoretical Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Primary Health Care (AREA)
- Human Resources & Organizations (AREA)
- Child & Adolescent Psychology (AREA)
- Development Economics (AREA)
- Technology Law (AREA)
- Medical Informatics (AREA)
- Epidemiology (AREA)
- Public Health (AREA)
- Biomedical Technology (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
An automated trader facilitates automatic trading of tradeable objects over one or more electronic exchanges. According to one embodiment, an automated trader utilizes a user programmable interface. The user programmable interface allows the user to simply develop a program that is based on a set of specifications and relationships given by the user and input into a profile, or if desired, input directly into the programmable interface referred to as direct entry. For each tradeable object, a profile may be selected, and then an automated trader can execute the program to perform a series of actions according to that selected profile and directed order entry, if any. An automated trader may also be used at a communication level to create an intelligent interface between third-party trading-related applications and exchanges.
Description
- The present application claims priority to U.S. Provisional Application Ser. No. 60/389,794 entitled “A System and Method for Automated Trading,” which was filed Jun. 19, 2002.
- The present invention is generally directed to electronic trading, and in particular, facilitates trading of any tradeable object in an electronic trading environment.
- Trading methods have evolved from a manually intensive process to a technology enabled, electronic platform. Advances in technology are having an increasingly large and broad impact on trading and the way in which exchanges conduct business. What was previously seen as just a supplement to the traditional pit trading, electronic trading platforms continue to increase in importance and popularity. The advent of electronic trading has meant that a customer can be in virtually direct contact with the market, from practically anywhere in the world, performing near real-time transactions, and without the need to make personal contact with a broker. Electronic trading systems are also convenient for floor brokers on the floor at an exchange for receiving orders electronically.
- Exchanges that support electronic trading are generally based on a host, one or more computer networks, and clients. In general, the host includes one or more centralized computers to form the electronic heart. Its operations typically include order matching, maintaining order books and positions, price information, and managing and updating a database that records such information. The host is also equipped with an external interface that maintains uninterrupted contact to the clients and possibly other trading-related systems.
- Typically, market participants link to the host through one or more networks. A network is a group of two or more computers linked together. There are many types of networks such as local area networks and wide area networks. Networks can also be characterized by topology, protocol, and architecture. However, any type of network configuration can be used in electronic trading. For example, some market participants may link to the host through a direct connection such as a T1 or ISDN. Some participants may link to the exchange through direct connections and through other common network components such as high-speed servers, routers, and gateways, and so on. For example, the Internet can be used to establish a connection between the client and the host. There are many different types of networks, and combinations of network types, known in the art that can link market participants to the host.
- Regardless of the way in which a connection is established, software running on the clients allows people to log onto one or more exchanges and participate in one or more markets. A client is a computer that accesses one or more networks. For example, a client can be a personal computer, laptop computer, hand-held computer, and so on. Some clients run software that creates specialized interactive trading screens. In general, the trading screens enable people to enter orders into the market, obtain market quotes, and monitor positions. The range and quality of features available varies according to the specific software application being run.
- Sometimes traders also use a separate spreadsheet program or another similar program to receive market data feeds and to generate numbers, based on those feeds, which the traders can use to determine whether to buy and/or sell tradeable objects. Then, in response to the generated numbers, the trader can manually enter and execute orders into a trading application. Instead of manual order entry, some traders use a more brute force approach with often limited flexibility by linking a spreadsheet program directly to a trading application. Orders are then automatically entered and executed by the trading application based on the generated numbers. Use of spreadsheets and trading applications in this manner does allow traders to enter orders faster than using traditional methods of order entry and execution. However, to profit in today's rapidly moving markets, traders must be able to react more quickly and assimilate an enormous amount of data. For example, a trader may have to assimilate market data, world news, business news, and so on before making trades. Consequently, a skilled trader with even the quickest software, the fastest communications, and the most sophisticated analysis can significantly improve the trader's own or the trader's firm's bottom line. The slightest advantage in speed or ability to assimilate information can generate significant returns in a fast moving market. Therefore, in today's fast and dynamically changing markets, a trader lacking a technologically advanced interface is at a severe competitive disadvantage. Prior use of such programs is still an inadequate solution to handle the dynamics of such a fast moving market.
- It is therefore desirable for electronic trading systems to offer tools that can assist a trader in adapting his or her strategy to an electronic marketplace, and help the trader to make trades at desirable prices.
-
FIG. 1 illustrates an example network configuration between multiple exchanges and client sites on which the present embodiments may be implemented; -
FIG. 2 illustrates an example software architecture of a preferred embodiment of an automated trader and a client device; -
FIG. 3 illustrates an example software architecture of a preferred embodiment of an automated trader. -
FIGS. 4-6 illustrates an example interface to a preferred embodiment of an automated trader; -
FIG. 7 illustrates an example flow of operation of a preferred embodiment of the automated trader; -
FIG. 8 illustrates an example market grid window for selecting the tradeable objects to trade using a preferred embodiment of the automated trader; -
FIG. 9 illustrates an example use of the visual indicator as might be seen in an example interface ofFIG. 4 ; -
FIG. 10 illustrates another example use of the status light indicator as might be seen in a trading application interface window; -
FIG. 11 illustrates an example profile setup window as used by a preferred embodiment of the automated trader to view, create, edit, and/or change profiles; -
FIG. 12 is a graphical illustration of ask, buy, and reserve order offsets; -
FIG. 13 is a graphical illustration of ask and bid allowances; -
FIG. 14 is a graphical illustration of if quote in, join market and if quote out, join market features; -
FIG. 15 is a graphical illustration of an example don't cross-market feature; and -
FIG. 16 illustrates another example of a profile setup window. - General Overview
- The preferred embodiments, generally referred to herein as the “automated trader,” are provided to facilitate the buying and/or selling of tradeable objects. According to one preferred embodiment, the automated trader implements a user programmable interface. The user programmable interface allows a user to simply develop a program (e.g., trading strategy) that is based on a set of specifications and/or relationships given by the user and input into a profile, or if desired, input directly into the programmable interface referred to as direct entry. The automated trader can be programmed to automate the entire transaction and management process, or the automated trader can be programmed to only assist the user in trading, whichever is desired. As used herein, a transaction includes any type of discrete activity such as an entry of an order, request to delete an order, entry of a quote, request to cancel and replace, and so on, however each of these terms and the variations (e.g., transactions, orders, quotes, etc.) may be used interchangeably unless otherwise indicated.
- Referring first to a profile. Preferably, the profile simplifies program creation by providing a set of profile parameters that can assist the user in characterizing his or her particular trading strategy. The user can create as many profiles as needed to accommodate any number of trading strategies. For each tradeable object and/or market situation, a profile may be dynamically selected, and then the automated trader can execute the program to perform a series of actions according to that selected profile (and directed order entry, if any). The profile can be selected manually by the user or automatically based on market conditions. According to a preferred embodiment, the user can change profiles at any time such as before trading or on the fly (i.e., when the automated trader is on). Moreover, when trading with a particular profile, the user can alter one or more profile parameters on the fly. As a result of the automated trader's programmable flexibility, the user can, for example, focus on his or her trading strategy while the automated trader is executing its program, which might include order entry and execution.
- In addition to programming the automated trader through a profile, the user can also program it through use of direct entry. Preferably, direct entry allows the user to enter numeric values or formulas, which might include mathematical statements that describe the actions to be performed on numeric values, directly into the user programmable interface. According to a preferred embodiment, the automated trader is programmed by the combination of the profile and direct entry, but alternatively, it can be programmed by only direct entry or by only the profile.
- As briefly mentioned above, the automated trader accepts formulas in the profile and in direct entry embodiments. Regardless of where the formulas are entered (e.g., the profile or through direct entry) the automated trader will preferably incorporate these formulas into its calculations, if programmed to do so. Formulas can also be linked from a spreadsheet or other known analysis tool.
- Because in a preferred embodiment the automated trader is capable of accepting instructions for performing a task or an operation, it can assist the user in performing any trade related tasks. For example, as part of the user's strategy, the automated trader can be programmed to automatically enter orders into the market. In this example, the automated trader can be programmed to trade, based on the user's profile, in a complete and automatic fashion, if the user so desires. That way, for example, the user can spend more time on developing his or her strategy rather than manually implementing it.
- If the user wants to play a more active role in the execution of his or her trading strategy, but still would like some assistance, then preferably the automated trader can be programmed only to assist the user. For example, the automated trader can be programmed to assist the user in determining prices, referred to herein as suggested prices, at which orders may be entered into the market. The user can trade according to the suggested prices or the user can trade separately from them, whichever the user desires. In another example, the automated trader can be programmed to utilize indicators to relay information to the user. Indicators can be used to indicate the suggested prices to the user in the automated trader, or alternatively, the indicators can be exported to another trading related application and used to indicate the suggested prices in that application.
- The automated trader can be programmed in various other ways. For instance, some examples describe how the automated trader can be easily programmed to automatically implement cover orders. This is useful because sometimes a user might want an offsetting order to be sent directly into the market to offset a previous position. Some examples describe how the automated trader can also be programmed to place certain limits on the user's trading, and how the system acts accordingly. This is helpful because it can reduce the number of transactions, such as orders, quotes, delete order requests, cancel/replace requests, etc., unnecessarily entered into the market, especially when markets are undergoing periods of extreme volatility. By reducing the number of transactions entered into the market, the user may avoid extra fees often associated with exceeding transaction limits placed by an exchange. For example, an exchange might have an order limit, quoting limit, and so on. Furthermore, the automated trader can also reduce or prevent losses in the market by examining the validity of prices of possible orders before they are actually placed into the market. These examples and others relating to how the automated trader can be programmed are described below.
- Aspects of the automated trader will become readily apparent to one skilled in the art from the following description. Furthermore, there are many advantages to the automated trader, too numerous to mention here, but which will also become apparent with the following description. One advantage, however, is that the automated trader can execute its program in an extremely fast speed, even faster than the traditional manual methods of analyzing-data, entering orders through an input device (e.g., a mouse, keyboard, etc.), and so on. Another advantage is that the automated trader helps the user assimilate large amounts of data to assist the user in his or her trading. Yet another advantage is that user can easily and flexibly program the automated trader, at any time before or during actual trading, to implement his or her trading strategy.
- It should be noted that, the term “tradeable objects,” as used herein, refers simply to anything that can be traded with a quantity and/or price. It includes, but is not limited to, all types of tradeable objects such as financial products, which can include, for example, stocks, options, bonds, futures, currency, and warrants, as well as funds, derivatives and collections of the foregoing, and all types of commodities, such as grains, energy, and metals. The tradeable object may be “real”, such as products that are listed by an exchange for trading, or “synthetic”, such as a combination of real products that is created by the user. A tradeable object could actually be a combination of other tradeable object, such as a class of tradeable objects.
- Example Network Configuration
- The automated trader may be implemented in any type of electronic trading environment. One such suitable environment is described in U.S. patent application Ser. No. 09/590,692, filed Jun. 9, 2000, entitled “Click Based Trading with Intuitive Grid Display of Market,” and is also described in U.S. patent application Ser. No. 09/589,751, filed Jun. 9, 2000, entitled “Clicked Based Trading with Market Depth Display,” the contents of both applications are incorporated herein by reference. However, it should be understood that the automated trader of the preferred embodiment is not limited to any particular network architecture or trading application, but rather may be applied with utility on any client device in any network that can be used for electronic trading. Furthermore, the present invention is not limited to a completely electronic trading environment where orders are sent to an electronic matching engine. For example, the present invention could be utilized with an electronic trading application that sends orders electronically to a terminal where a person (e.g., a floor broker) executes those orders in a traditional open-outcry trading floor.
-
FIG. 1 shows an example system substantially similar to the one described in the above incorporated patent applications. The electronic trading system may be configured to allow for trading in a single or in multiple exchanges simultaneously. This illustration shows multiple host exchanges 100-104 connected through routers 106-110 to gateways 112-116. The host exchanges may include Electronic Communication Networks (ECNs) like Island, which is a well-known electronic trading facility. Other host exchanges may include the Chicago Mercantile Exchange (CME), the Xetra (a German stock exchange), and the European derivatives market (Eurex). Multiple client terminals 118-126 for use as trading stations can then trade in the multiple exchanges through their connection to the gateways 112-116. - When an electronic trading system is configured to receive data from multiple exchanges, it is preferable to translate the data from each exchange into a format that may be used by a trading application and/or displayed using a graphical user interface. For the example system shown in
FIG. 1 , an application program interface (“API”) translates the incoming data formats from the different exchanges 100-104 to a common data format. This translation function of a preferred embodiment may be disposed anywhere in the network, for example, at the gateway server, at the individual workstations or at both. In addition, storage elements at the gateway servers, the client workstations, and/or other external storage may cache, buffer, or store historical data, such as order books that list the user's active orders in the market; for example, those orders that have neither been filled nor cancelled. Information from different exchanges can be displayed in one or in multiple windows at the client workstation. While reference is made through the remainder of the specification to a single exchange to which a trading terminal is connected, the scope of the invention includes the ability to trade, in accordance with the trading methods described herein, in multiple exchanges using a single trading terminal. - Example Client Device
-
FIG. 2 shows an example software architecture of a preferred embodiment of anautomated trader 204 and aclient device 200. Also included in the figure is atrading application 202. In this example, theautomated trader 204 and thetrading application 202 may share commonly used information. Theclient device 200 is preferably a computer that is connected to one or more exchanges in a manner similar to that system illustrated inFIG. 1 . Theclient device 200 preferably has acommunication interface 210 that allows theclient device 200 to communicate either directly or indirectly (using intermediate devices) with one or more exchanges to receive and transmit market, tradeable object, and trading order information. Theclient device 200 is able to interact with the trader and to generate contents and characteristics of a trade order to be sent to the exchange. Preferably, thetrading application 202 allows for a trader to view market data, enter and cancel trade orders and/or view orders. A commercially available trading application that allows a user to trade in a system like that shown inFIG. 1 is X_TRADER® from Trading Technologies International, Inc. of Chicago, Ill. X_TRADER®0 also provides an electronic trading interface, referred to as MD Trader™, in which working orders and/or bid and ask quantities are displayed in association with a static price axis or scale. As mentioned above, the scope of the present invention is not limited by the type of terminal or device used, and is not limited to any particular type of trading application. For example, the client device could be a hand-held device, personal computer, laptop, workstation, and so on. As known to those skilled in the art, these devices include at least oneprocessor 206 and at least onememory device 208. The processor may be a microprocessor, a micro-controller, or any device, which performs arithmetic, logic or control operations, and the memory devices may be a volatile or non-volatile memory, for example. - In an alternative embodiment, the automated trader is a separate and independent software application from the trading application. In this alternative embodiment, the automated trader does not necessarily interact with the trading application. Therefore, the need for an additional trading application is not necessary for the automated trader to perform its function described herein. However, if the trading application is installed on the client device, it is possible for the automated trader to interact with it, such as by sharing any type of commonly used information (e.g., as described in the embodiment above).
- According to this alternative embodiment, the automated trader's functionality can be implemented anywhere. For example, some or all of the functionality of the automated trader can be implemented at the
communications interface 210. That is, many of the functions of the automated trader described herein can be implemented at thecommunications interface 210 to operate as an intelligent communications interface between one or more third-party software applications and one or more exchanges. - In another embodiment, the automated trader is installed at a server and/or gateway, rather than at the client device. In this embodiment, the client device can access the automated trader over a computer network. In a similar embodiment, the automated trader is partially installed on the server and/or gateway and the remaining portion of the automated trader is installed on the client device. Separating the software and the tasks associated with it onto different computers may be especially useful when the client device has little processing power (e.g., a handheld device). Of course, there are many other alternatives known by one skilled in the art in which the automated trader may be installed and/or accessed by the user.
- Implementing a Preferred Embodiment of an Automated Trader
- In a preferred embodiment, an automated trader incorporates a user programmable interface that allows the user to develop a program to implement a trading strategy that is based on a set of specifications and/or relationships given by the user. The user programmable interface may include any type of interface that allows the user to communicate with the automated trader. One example of a user programmable interface is a command-driven interface. Another example of a user programmable interface is a graphical user interface that takes advantage of computer graphics. The graphical user interface may include one or more windows that can be moved around the display screen, and their size and shape can be changed at will. A window might include icons that represent commands, files, or more windows. Of course, the present invention can use other types of user programmable interfaces, or alternatively, the present invention does not utilize a programmable interface of this type at all, such as in the intelligent communications interface embodiment. For example, in the intelligent communications interface embodiment, a third-party application would simply input one or more variables into the automated trader, such that orders are placed into the market based on those variables.
- Referring to
FIG. 3 , in a preferred embodiment, the userprogrammable interface 210 is implemented in a software module or processor, referred to generally as a user programmable interface module. The userprogrammable interface 210 can be a routine and/or data structure (or collection of routines and/or data structures) stored in memory that performs the function of the user programmable interface described herein. As known in the art, modules such as the userprogrammable module 210 can be connected together with other modules to form the collective system of an automated trader. Alternatively, one skilled in the art can instead use an integrated architecture, in which no clear divisions exist between components, or where a combination of modular and integrated architecture exists. -
FIGS. 4-6 show one example of a user programmable interface of a preferred embodiment. In this example, the user programmable interface is referred to as anautomated trader window 300, which might be displayed on a screen of a client device. According to this embodiment, theautomated trader window 300 may be implemented on a grid created from a software package such as Stingray® from Rogue Wave® of Boulder, Colo., which is a commercially available product that forms a spreadsheet like grid of rows and columns that intersect to form cells. - In this example, the
automatic trading window 300 is used to provide the user with a simple way to program the automated trader by supporting both direct entry and profile creation. To accommodate this functionality, and/or any other desired functionality, theautomated trader window 300 can include as many functional icons'as the user requests, where an icon is a small (or large) image displayed on the screen to represent an element that can be manipulated by the user. Some example icons are shown inFIGS. 4-6 and are generally introduced below. It should be understood, however, that the preferred embodiment is not limited to the number of icons present in the figures, nor are they limited to the example layout also shown in the Figures. Furthermore, theautomated trader window 300 might be configured in a variety of different ways according to the user's preference, most of which are not illustrated for sake of clarity. - To begin use of the automated trader, a user may select the “ON” icon to turn on the automated trader. Preferably, the automated trader, by default, enters into a manual mode. Preferably, at any time, the user can switch the automated trader from the manual mode into the automatic mode, if so desired. The manual mode and automatic mode are both described below, but in general, when the automated trader is in manual mode the user has to select the “Update Orders” icon to enter orders into the market. If desired, the automated trader can, by default, enter into the automatic mode. Selecting the “OFF” icon turns the automated trader off. Once the automated trader is turned off, the orders in the market are preferably deleted by sending one or more delete transaction messages to the appropriate exchanges.
- Next to the “OFF” icon is the “Hedge Open Position” icon. In a preferred embodiment, the “Hedge Open Position” icon provides a feature that allows a user to manually adjust his or her open position by an amount given in
hedge field 302. In another embodiment, the “Hedge Open Position” icon allows the automated trader to automatically adjust the user's open position, by an amount given by the user, by hedging into other markets. In yet another embodiment, the automated trader can be programmed to reduce the user's open position based on a hedged position in other products. The function of the “Hedge Open Position” icon is described more below. - When selected, the “Delete Orders” icon deletes (or attempts to delete) working orders from the market for all tradeable objects shown in
window 300. The “update Orders” icon, when selected, immediately enters orders into the market for all of the tradeable objects shown inwindow 300 at the price and quantity shown in their respective scratch pad cells (e.g., under the “Scratch” column, which is described below). When the “Selected Orders”box 304 is selected, it allows the user to use the “Delete Orders” icon and the “Update Orders” icon only for those tradeable objects which have been selected and highlighted in thewindow 300. Other means of selection, in addition to highlighting, which are known in the art, may also be used. - Preferably, tradeable objects can be added to the
automated trader window 300 by selecting them using a selection means from a market window onto theautomatic trade window 300. Selection means, as used herein, includes menu-driven mechanisms (i.e., pull-down menus,-drop-down menus, pop-up menus, and so on.), command line entry mechanisms, check boxes used to enable or disable one or more features or options, drag-and-drop, and other known methods of selection. - Referring back to
FIG. 3 , in a preferred embodiment, acontract manager 220 is implemented in a software module or processor to control the selection of the tradeable objects to be managed by theautomated trader 204. Moreover, thecontract manager 220 can control the selection and insertion of the contracts into the grid as well as the updating of market and other types of data. -
FIG. 8 shows an example of amarket window 700. Themarket window 700 lists those tradeable objects (e.g., contracts) from exchanges in which the user has logged onto. The tradeable object name is given in the “Contract” column. Although it is not necessary, information for each tradeable object may also be displayed in themarket window 700. For example, themarket window 700 provides columns of the working buys (“WrkBuys”), bid quantity (“BidQty”), bid price (“BidPrc”), ask quantity (“AskQty”), ask price (“AskPrc”), and working sells (“WrkSells”). Themarket window 700 is just one example of a market window, but there are many other similar types of market windows with more or fewer items of interest that could be used instead. - Tradeable objects can also be added to the
automated trader window 300 by other mechanisms besides selecting them from a market window. In one alternative embodiment, theautomated trader window 300 employs a command-driven system, in which the user explicitly enters the name of the tradeable object. In another embodiment, the user can choose a tradeable object from a menu by highlighting it and then pressing the Enter key, or by simply pointing to the item with a mouse and clicking on one of the mouse buttons. Or alternatively, drag-and-drop can be used to add tradeable objects to theautomated trader window 300. - Turning back to
FIG. 4 , preferably, theautomated trader window 300 includes asection 314 that displays information associated with the tradeable objects selected. In one embodiment, thesection 314 utilizes a grid, which is divided into columns and rows that intersect to form cells, such as example cells 316-326 shown in the Figure for illustration. Preferably, each cell can be uniquely identified and each cell can hold text, a value, or a formula. Moreover, the user can input information in the form of numbers and formulas intosection 314. According to this example, each column is labeled at the top and information in each row corresponds to one tradeable object. Various kinds of information are displayed insection 314, each of which is described below with respect to the particular columns. The user can use the information displayed insection 314 or the user can input information intosection 314 in many different ways other than what is described herein, therefore it should be understood that the present invention is not necessarily limited to displaying or inputting the information in the particular way described below. -
Section 314 provides a “Status” column (e.g.,cells FIGS. 9 and 10 show two example embodiments where color (or a variation of color) is used as a visual indicator. -
FIG. 9 shows an embodiment where the visual indicator is a status light displayed in a preferred embodiment of theautomated trader window 300 ofFIG. 4 . In this embodiment, status lights 802 and 804 are located incells - In another aspect of the embodiment, when the automated trader is in automatic mode, the status light can be programmed to indicate different things than when the automated trader is in manual mode. To illustrate, assume that status lights 802 and 804 include other colors such as “green,” “red,” and “yellow” (all colors are configurable). Then, according to this example, a green status light might indicate that the automated trader is performing transactions with an exchange. For instance, the automated trader is automatically updating and entering the orders into the market. A red status light might indicate that the automated trader has stopped entering orders into the market. For instance, the automated trader might stop entering orders into the market because the trading limits have been reached, trading is not occurring in the market, or the connection to the market has been lost. A yellow status light might indicate that other conditions have occurred such as trading has temporarily paused because of throttling (throttling is described more below) or the suggested trades are within other trading limits. Regardless of the type of indicator used, in a preferred embodiment, based on the indicator, the user can determine what processes the automated trader is currently performing, if any. Of course, the indicators can be programmed to mean different things other than what was described above.
-
FIG. 10 illustrates another embodiment where an indicator is integrated into another trading application and/or another trading interface (e.g., a third-party trading application and/or interface). To better illustrate this embodiment, a commercially available trading application referred to as X_TRADER® from Trading Technologies International, Inc. of Chicago, Ill. is used to implement the visual indicators. X_TRADER® also provides an electronic trading interface, a portion of which is shown inFIG. 10 , referred to as MD Trader™, in which working orders and/or bid and ask quantities are displayed in association with a static price axis scale. The portion shown inFIG. 10 shows a workingorder column 904 that displays the working orders, abid quantity column 906 that displays the bid quantities, anask quantity column 908 that displays the ask quantities, and aprice axis 910 that displays the corresponding prices. Although the X_TRADER® trading application is utilized and the MD Trader™ interface is shown in the figure, it should be understood that the preferred embodiments are not limited to any particular trading application and/or trading interface. - In the embodiment shown in
FIG. 10 , cells, or a portion thereof, within any columns of the trading interface (e.g., cells incolumns separate column 912 can be used to indicate when and where to enter orders. Indicators such as visual and/or audible indicators can be implemented anywhere on a trading interface so long as the user is aware of the location and its purpose. - Referring back to
FIG. 4 , the “Active” column allows a user to activate or start trading a tradeable object of a particular row. In one embodiment, a selection means is provided in a cell that allows the user to actively trade the tradeable object corresponding to the row of the cell. Conversely, the user can stop trading the tradeable object by using the same selection means (or a different selection means) to inactivate trading for that row. - The “Contract” column indicates the current name of the tradeable object for each row. The tradeable object name is the name of the tradeable object given by the exchange, but alternatively, the user can rename the tradeable object to suit his or her particular need.
- Control parameters under the “Control” column give the user the flexibility to change the operation of the automated trader from manual mode to automatic mode, and vice-versa, change the current profile (before trading or on the fly), and change the account name.
- Preferably, the automated trader gives the user flexibility in determining whether the automated trader enters calculated orders into the market automatically or through manual intervention by the user. In one embodiment, each cell under the “Manual” column utilizes a selection means to change the operation of the automated trader into manual mode. Likewise, each cell under the “Automatic” column utilizes a selection means to change the operation of the automated trader into automatic mode. In this embodiment, preferably only one mode (i.e., manual or automatic) may be selected at any time for each row, but that the mode may be dynamically changed at any time. It should be understood that even in manual mode, the automated trader may still perform some automatic operations (e.g., automatically calculating suggested prices in the scratch pad, etc.), of course, this depends on how it is programmed.
- As previously mentioned, the user can program the automated trader in many unique ways to characterize any type of trading strategy that he or she might want to implement. One such way is to develop a profile, such that the profile characterizes the user's particular trading strategy. As already mentioned, the user can create as many profiles as needed to accommodate any number of trading strategies. Developing and saving a profile is described in the example illustration section below. In a preferred embodiment, a profile may be selected for each tradeable object. Preferably, the user can change profiles at any time before or while the user is trading. In one embodiment, each cell under the “Profile” column allows the user to select the profile, at any time. In this embodiment, each cell under the “Profile” column utilizes a selection means so that the user can select a saved profile. It is also envisioned that the automated trader can automatically select the profile based on market conditions.
- Each tradeable object is preferably associated with an account (or customer). One or more accounts may be added and information corresponding to those accounts can be stored. Then, any trading activity associated with a particular tradeable object is linked to the corresponding account. Through a selection means, the automated trader allows the trader to select the account for each tradeable object in each cell under “Account.”
- In a preferred embodiment, the automated trader keeps track of the number of transactions a user has for each row, and the displays the number in the cells under the “TransCount” column. Alternatively, the automated trader can keep track of the number of transactions across an account. As previously mentioned, transactions include any type of discrete activity such as an entry of an order, request to delete an order, entry of a quote, request to cancel and replace, etc. Some exchanges impose fines for excessive transactions. If programmed, the automated trader can signal to the user when the transaction level has met an exchange's transaction limit. For example, the automated trader can simply warn the user that the exchange limit has been reached; alternatively, the automated trader can prevent the user from participating in any more transactions. Transaction limits for each exchange can be programmed (or fed into) into the automated trader.
- Preferably, the automated trader displays information regarding the user's position in the market and might display the user's net position and open position. As used herein, the net position is the user's current position on the chosen contract for a particular account, and in this embodiment, is the difference between the number of orders bought (a long position) and the number of orders sold (a short position). In other words, if the user has bought 10 more tradeable objects than he or she has sold, this value would be 10. If the same user sold 3 more objects, the net position becomes 7 (i.e., 10−3=7). In another example, if the user has sold 10 more tradeable objects than he or she has bought, the net position would be −10. Then, if the same user bought 3 more objects, then the net position becomes −7 (i.e., −10+3=−7). The user's position is open when the numbers of tradeable objects bought or sold are not equal. The user's position is closed when the numbers of tradeable objects bought or sold are equal.
- In a preferred embodiment, cells under the “Position” column display the user's various positions including the user's net and open positions in the market. The “Net” column displays the total net position for a tradeable object for an account. The “Open” column displays the open position for a tradeable object for each row. The open position could be a number based on the user's position at an exchange level, customer level, account level, and so on, depending on how it is programmed. A user may wish to hedge his or-her open position into other markets, products, and so on. According to one embodiment, the open position can be manually reduced by using the Hedge Open Position feature. The user can hedge his or her open position by the value in the
hedge field 302, such as by selecting the “Hedge Open Position” icon. In one embodiment, the user can manually hedge at any time his or her position elsewhere. In an alternative embodiment, the automatic trader can automatically hedge the user's position in other markets or products based on his or her trading strategy, for example. - Preferably, the
automated trader window 300 can display the current market information. Depending on the information an exchange provides, market information may include the inside market, but alternatively may include market depth information. As used herein, the inside market is the lowest sell price (best ask) and the highest buy price (best bid) at a particular point in time. Market depth refers to quantity available at the inside market and can also refer to quantity available at other prices away from the inside market at the same point in time. Market information can contain other types of data such as the last traded price (LTP), the last traded quantity (LTQ), and/or order fill information. - In one embodiment, the columns under the “Market” column display the current market information for each tradeable object. The “Mkt'idPrice” column shows the market bid price for the corresponding quantity shown in the “MktBidQty” column. The “MktAskPrice” column shows the market ask price for the corresponding quantity shown in the “MktAskQty” column. The “MktLastQty” column shows the last traded quantity in the market, and the “MktAskPrice” column shows the last traded price in the market at that quantity. The “Net Change” column provides the price differential over a period, such as the previous settlement price for each tradeable object.
- A
horizontal slide bar 330 allows the user to view more columns and row information for each tradeable object. It should be understood, however, that the columns can be arranged in a different order shown in the figures and/or some of the columns can be deleted, if the user desires. Moreover, the names of the columns may be abbreviated so that more information (e.g., more columns) can fit into the viewing area. Although not shown, a vertical slide bar may appear to indicate to the user that more rows of tradeable objects can also be viewed. - Referring to
FIG. 5 , theslide bar 330 has been moved to view more information. Again, for sake of illustration, the columns are more spaced out more than necessary. To view more information in theautomated trader window 300, smaller font size and/or more abbreviations may be used, for example. - Preferably, the
automated trader window 300 displays the user's working orders. The cells under the “Working” column display the working orders for each tradeable object. The “WrkBidPrice” column displays the current working bid price, and the “WrkBidQty” column displays the current working bid quantity. The “WrkAskPrice” column displays the current working ask price, and the “WrkAskQty” column displays the current working ask quantity. - Preferably, the
automated trader window 300 displays one or more scratch pad areas that operate as temporary storage areas used by a preferred embodiment of the automated trader for displaying calculations, data, and other work in progress. For example, a scratch pad area can show, among other things, information related to suggested orders that, at any time, can be sent into the market automatically (in automatic mode) or manually (in manual mode). The user can use the scratch pad area as a place to monitor and/or change possible order information before an order is actually sent into the market as a working order. The user might also, for example, use the scratch pad to test various strategies, and so forth. - Thus, in a preferred embodiment, columns under the “Scratch” column form a scratch pad area. The “ScrBidQty” column displays the scratch bid quantity, and the “ScrBidPrice” column displays the scratch bid price. The “ScrAskQty” column displays the scratch ask quantity, and the “ScrAskPrice” column displays the scratch ask price. The values placed in the cells of the “ScrBidQty,” “ScrBidPrice,” “ScrAskQty,” and “ScrAskPrice” columns include those that are manually entered by a user (or linked to a manually entered value) and/or calculated and displayed by the automated trader. In a preferred embodiment, a strategy processor calculates values that are placed in the scratch pad area. The values may include numbers (decimal or whole) and/or formulas, if programmed. Examples are provided below.
- The columns under the “Profile Parameter” column display some or all of the profile parameters entered by the user and saved in a profile. Preferably, the user can change the parameters shown in
window 300 on the fly, but the changed parameters do not necessarily alter the saved profile. That way, the user can quickly change one or more of the parameters without having to access the profile window. Although the parameters are described more below, they might include a “Bid Offset” column that displays the bid offset, a “Bid Qty” column that displays the bid quantity, a “Ask Offset” column that displays the ask offset, a “'Ask Qty” column that displays the ask quantity, and a “Max Position” column that displays the maximum position a user can take. In general, the bid offset is a value (positive or negative value) that can be subtracted from the base profile price, to indicate a price at which the user is willing to submit a buy order into the market. The ask offset is a value (positive or negative value) that can be added to the base profile price, to indicate a price at which the user is willing to submit a sell order into the market. - The columns under the “Cover Order” column display information related to cover orders. The “Cover” column displays the cover order offset, and the “Enable” column provides the user with selection means to enable/disable the cover order feature, and also displays whether the cover order option is enabled and/or disabled.
- Referring to
FIG. 6 , thehorizontal slide bar 330 again has been moved to view more information. Sometimes a user may wish to trade off a theoretical price (a calculated price other than the market price fed by an exchange). For example, a user may calculate a single theoretical price such that buy and/or sell orders are entered into the market at a price based off the single theoretical price. In another example, a user may calculate bid/ask theoretical prices such that the buy orders are entered into the market at a price based off the bid theoretical and the sell orders are entered into the market at a price based off the sell theoretical. Therefore, if the user has chosen to feed in a theoretical price (e.g., single theoretical, bid theoretical, ask theoretical, etc.) to trade off, the user can input the formula (or link to a spreadsheet with the formula) that calculates the theoretical price in a cell under the “Theoretical Price” column. - One or more columns under the “Formulas” column display formulas that are entered by the user (or linked to a spreadsheet), if any. The formulas establish mathematical relationships between values in the automated trader window and/or in other programs. More columns can be added or columns can be deleted depending on what the user desires.
- It should be understood that other columns may also be included or deleted from the
window 300, depending on what the user wants to view. Thus, in a preferred embodiment, the user can hide or show columns at his or her discretion. For example, columns that display more profile parameters may be shown or the hedged position for each row may be shown. In another example, columns unique to a tradeable object may also be shown. For example, columns for futures option trading might include “Greeks,” which refers to Greek letters that are used in options trading formulas and analysis, which might include delta, gamma, Vega, theta, etc. Therefore, thewindow 300 is preferably configurable in any fashion so that the user can view the columns of information he or she wishes to view. It should also be understood that the type of information displayed can also be configurable, for example, which fields or icons are displayed. - Aspects of the functionality are described below with respect to the example illustrations. One skilled in the art would appreciate that in a preferred embodiment, the automated trader can be programmed in many ways other than those described herein.
- Example Illustration of a Preferred Embodiment of an Automated Trader
- As stated earlier, a user can uniquely program the automated trader to suit his or her individual trading strategies. The user can program the automated trader in a variety of different ways and at any time, such as before trading begins or on the fly. Also mentioned earlier, the program is preferably based on a set of specifications and relationships given by the user and input into the profile or input directly into the user programmable interface. Preferably, the automated trader is setup to simplify the task of creating the profile and inputting directly into the user programmable interface. Then, the automated trader can execute the program to perform a series of actions. The following example illustrates one way in which a user might program the automated trader.
-
FIG. 7 shows aflowchart 600 that, in general, illustrates an example flow of operations performed by the user and a preferred embodiment of an automated trader. The example flow of operations includes selecting one or more tradeable objects atstep 602, entering profile(s) for each tradeable object atstep 604, calculating a price at which an order is entered atstep 606, applying one or more quoting limits atstep 608, entering the order into the market, if appropriate atstep 610, and managing the order atstep 612. Each step of theflowchart 600 is described with respect to their respective sections below. It should be understood, however, that theflowchart 600 provides only an illustrative description, and that more or fewer steps may be included in theflowchart 600, and/or the steps may occur in one or more orders which are different from the order of steps shown inFIG. 7 . For example, thestep 602 “Select Objects to Trade,” may occur before or after thestep 604 “Enter Profile(s).” In another example, thestep 608 “Quoting Limits,” may not be necessary if the user decides not to use them. There are many other alternative examples, too numerous to mention here, that one of ordinary skill in the art would recognize. - At
step 602, the user selects one or more tradeable objects from one or more host exchanges. There are many ways in which one or more tradeable objects may be selected for trade. For example, a user may select one or more tradeable objects by highlighting the tradeable object(s) with an input device such as a mouse, keyboard, or touch screen. Upon highlighting the tradeable objects, the user may then drag them into a user programmable interface such as an automated trader window. A user can use any selection means for selecting the tradeable objects. - Using any selection means, for example, one or more tradeable objects can be selected from a market window or any other window that displays tradeable objects. One type of market window that is suitable for selecting tradeable objects is shown in
FIG. 8 . The market window has a column that lists the tradeable objects (contracts). This example includes tradeable objects “ES JUN02,” “ES SEP02,” “ES DEC02,” “GE JUN02,” etc. (some of the tradeable objects are of the same type but have different expiration dates, June, September, and December, however, this is not necessary). Other information associated with each tradeable objects is also displayed in this example market window, such as the inside market and so on, however, it is not necessary to display such information. Nonetheless, one or more objects may be selected from the market window (or a similar window) and dragged into an automated trader window. - Referring back to the
flowchart 600, atstep 604, one or more profiles are entered. As previously mentioned, the user can create profiles to characterize his or her trading strategy. Profiles provide a way to easily program the automated trader by providing cells (or fields) whereby the user can input information to characterize his or her trading strategy. Profiles may also be saved from a previous use in which the step of creating a profile could be skipped. However, assuming that a profile has not yet been created for purposes of illustration, auser can-create a-profile by selecting a tradeable object using any selection means and then by selecting the option “Profile Setup.” -
FIG. 11 shows one example of aprofile setup window 800 as a result of selecting the “Profile Setup.” The user can create, edit, or delete profiles through a profile setup window like theexample window 800 shown inFIG. 11 . For example, a user may select to view and/or edit an existing profile by selecting the profile in window 812 (no profiles are shown in window 812). The user may delete an existing profile by selecting the profile inwindow 800 and pressing the “Delete”icon 802. Moreover, the user may add a new profile by pressing the “New”icon 804, once the profile name is entered in the “Name”field 810. Once the user is finished with theprofile setup window 800, he or she may save the profile by selecting save 806, and can select the “Close” icon to close thewindow 800. Although a profile may be created through other means besides a window (e.g., command line entry, program file, etc.), it should be understood that theprofile setup window 800 shown inFIG. 11 is just one example of how a profile window might look if such a window is utilized, and that a suitable profile window might represent more or less information in the same or different manner. - According to this example, a portion of the
profile setup window 800 is broken up into columns that intersect with rows to formcells 820. The user can enter information intocells 820 to create or edit a profile. The information that is entered into thecells 820 preferably corresponds to the row titles given incolumn 822. The row titles shown in column 822 (e.g., the row title “Account” to “Stale Quote Timeout”) provide only an example of what might be input by a user to program his or her trading strategy. Therefore, the row titles are not meant to limit the present invention, but rather to illustrate the possibilities in developing a profile. A profile allows a trader to enter values for parameters that are commonly (or uncommonly) used by the trader in establishing a trading strategy. The particular parameters described herein are merely examples of such parameters and a profile could use entirely different parameters. In one embodiment, the software can be programmed to allow a user to create new types of parameters to be used with the profiles. - In this example, the “Account” allows the user to enter and/or select the account name using a selection means. For this example, the account name “ABC” is shown.
- According to this example, the “Profile Base Price” allows the user to select which base price is used in calculating prices. For example, using a selection means, the user has the option to choose between “Market Prices,” or to create his or her own theoretical price, such as “Single Theoretical,” “Bid Theoretical,” and “Ask Theoretical.” If the user decides to use his or her own theoretical price, one way to incorporate this price in a preferred embodiment is to place a formula (or link to formula) in a cell under the “Theoretical Price” column in
FIG. 6 . Alternatively, the theoretical price formula (or link) can be placed directly into the profile. In addition, “Direct Entry” may be selected here to allow the user to enter values (i.e., numbers or formulas) directly into one or more scratch pad areas. For this example, the profile base price selected and shown is “Market” for market prices. - In this example, “Throttle Quoting” allows the user to enable throttle quoting (or other transactions, where transactions can includes any type of discrete activity such as an entry of an order, request to delete an order, entry of a quote, request to cancel and replace, and so on). One purpose for throttle quoting can be used to prevent or reduce excess entering of orders and other transactions. Another purpose for throttling transaction messages, such as orders, is to prevent automatic re-pricing of orders during a period of time. In a preferred embodiment, the automated trader continually calculates suggested orders and updates the scratch pad. The throttle-quoting feature is used to throttle the entry of orders from the scratch pad into the market. In an alternative embodiment, throttle quoting can be applied to throttle the calculation of suggested orders by the automated trader. In a preferred embodiment, however, a request to delete an order is always entered into the market, whether or not the throttle-quoting feature is enabled. Furthermore, in a preferred embodiment, cover orders are not throttled. Throttle quoting may be helpful if the markets are moving rapidly and the exchange at which the user is trading charges transaction fees for excessive order entry. To illustrate a type of throttle quoting, the following simple example is provided. Assume that the time period is set to 500 milliseconds. The user, of course, may set any time period. Then, when an order (or some other transaction message) is entered into the market at time t=0, another order (or transaction message) for that tradeable object cannot be entered into the market until time t=500 milliseconds. The system throttles the order (or transaction message) for 500 milliseconds before it is released. Preferably, while the order (or transaction message) is being throttled or held back, the order (or transaction message) can be replaced or updated to reflect more recent order information that might have been generated.
- Sometimes a user might want to implement cover orders such that an order is automatically entered into the market to offset his or her previous position. In a preferred embodiment, cover orders are placed directly into the market, thereby bypassing the scratch pad area, but alternatively, the cover order may be first placed into the scratch pad area before being sent out into the market. For example, assume that a user enters a buy order of 10, and the buy order is filled. Then, the automated trader will enter a sell order of 10 into the market to offset the previous buy order of 10. Likewise, if a sell order of 10 is filled, a buy order of 10 is entered into the market. In addition to enabling cover orders, the cover order color can be set in
cell 824. Preferable, the cover order color distinguishes cover orders from other working orders that might also be in the market. Other types of visual indicators can be used instead of color or in combination to color. - When “Manual Requote” is enabled, if a user gets filled on a buy or sell order, the automated trader will stop sending orders on the side that was filled until the user presses the “Update Orders” icon, which retriggers automated quoting. For example, if the user's quote is a 10 bid and a 12 offer, then if the 10 bid gets filled, the automated trader will not send in another buy order until “Update Orders” icon is pressed. In this example, however, it will continue to quote the sell side.
- The “Days to Expiration” allows an automated trader (or user) to input the days to expiration for a particular tradeable object. For example, an expiration date for a futures contract is referred to as the delivery month. According to this example, the delivery month is the month during which a futures contract expires, and during which delivery may take place according to the terms of the of the contract. Generally, the futures delivery month with the soonest delivery date (or the option delivery month with the soonest expiration date) is referred to as the nearby month. The month which has the latest delivery data is referred to as the far month. Regardless of the type of expiration date, it is preferable that the automated trader can automatically determine the delivery months for a particular tradeable object based on a data feed from the exchange. The tradeable object can have a delivery date given in months (e.g., June, September, and December) or days (e.g., 30 days, 60 days, and 90 days). An alternative embodiment allows the user to manually input the expiration date. For purposes of illustration,
FIG. 11 shows 30 days to expiration for the particular tradeable object. It is also possible that the tradeable object doesn't have a particular delivery date or expiration date, and therefore the “Days to Expiration” can be left blank or be programmed not to appear at all. - The “Price Units” allows a user to change the price units for a given tradeable object. By default, the price unit is in ticks, where a tick is the minimum change in a price value that is set by the exchange for each tradeable object. However, other price units might be available such as currency. In this example, the price units are set to “ticks.”
- As previously mentioned, the “Bid Offset” allows a user to set the desired offset bid price, which represents the price of a buy order that can be entered into the market from the bid price based on the “Profile Base Price.” The “Bid Offset” has units given by the 'Price Units.“The ” Bid Quantity” row allows a user to set the quantity a user is willing to trade at the desired offset bid price. Similar to the “Bid Offset,” the “Ask offset” allows a user to set the desired offset ask price, which represents the price of a sell order that can be entered into the market, from the ask price set by the “Profile base price.” The “Ask Offset” also has units given by the 'price Units.“The ” Ask Quantity” allows a user to set the quantity a user is willing to trade at the desired offset ask price.
FIG. 11 , the “Bid Offset” and the “Ask Offset” are both set to 2 ticks from the market.FIG. 12 illustrates a graphical illustration of ask and buy offsets in relation to the inside market (or some other reference price level). - In addition to bid offset and ask offset, a preferred embodiment of the automated trader can be programmed to allow a user to enter a second order (reserve) that is entered into the market when the first order (the buy order at the bid price or the sell order at the ask price) is filled. This option allows users to immediately enter another order into the market at a predetermined price and quantity that the user knows has a greater chance of filling because the first order was filled. The “Bid Reserve Offset” allows the user to enter the desired offset, and the “Bid Reserve Qty” allows the user to enter the desired reserve quantity at the reserved offset price. The same is true for the “Ask Reserve Offset” and the “Ask Reserve Quantity,” except that they apply to sell orders. Preferably, the reserve ask offset and the reserve buy offset may be set by the user, if desired. The reserve ask offset and the reserve buy offset can have the same value as the ask and/or buy offset or a different value. In the foregoing example and shown in
FIG. 11 , the “Bid Reserve Offset” and the “Ask Reserve Offset” are both set to 3 ticks from the market.FIG. 12 illustrates a graphical illustration of reserve order offsets in relation to the inside market (or some other reference price level). - Referring back to
FIG. 11 , the “Cover Order Offset” allows a user to set the offset price for any cover order. For example, if the cover order feature is enabled, then when a buy order of 10 is filled, the automated trader will enter a sell order of 10 into the market at aprice 2 ticks above the fill price. Likewise, if a sell order of 10 is filled, then the automated trader will enter a buy order of 10 into the market at a price two ticks below the fill price. - Referring to
FIG. 3 , in a preferred embodiment, aprofile manager 208 provides an interface through which the user can establish, edit, delete, and save profiles that characterize his or her trading strategy. Theprofile manager 208 can be separate from or the combined with the userprogrammable interface 210. - Once a profile is entered and saved, the user can preferably select the profile before trading begins or on the fly. Using the example window shown in
FIGS. 4-6 , the user can, at any time, use any selection means to select a profile in the “Profile” column. By allowing the user to change profiles on the fly, the user can quickly adapt to changing market conditions, or simply the user can quickly and easily test his or her different trading strategies. In addition, according to the preferred embodiment, the user can change the parameters of the profile through theautomated trader window 300 by editing cells under the “Profile Parameters” column. In the preferred embodiment, changing the parameters does not necessarily alter the saved profile. - Referring back to
FIG. 7 , atstep 606, the automated trader is programmed to calculate, among other things, the price at which to enter an order/quote into the market. In a preferred embodiment, a strategy processor calculates the price at which to enter orders into the market. In one embodiment, some of the calculated values are then displayed in the cells under the “Scratch” column (shown inFIG. 5 ), previously referred to as a scratch pad area. Among those values displayed in the scratch pad area include a bid price and bid quantity (under the “ScrBidPrice” and “ScrBidQty” columns, respectively), and an ask price and ask quantity (under the “ScrAskPrice” and “ScrAskQty” columns, respectively). More items of interest, such as the reserve price and quantity or the cover order offset, may also be displayed under the “Scratch” column, if programmed to do so. Furthermore, more than one “Scratch” column can be provided, depending on how it is programmed. - In another embodiment, the user can enter orders directly into the cells under the “Scratch” column, also referred to as direct entry. This embodiment, referred to as the direct entry allows the user to enter numbers, formulas, or link to other numbers/formulas directly into the scratch pad working area. The user can implement direct entry in either the manual or automatic modes.
- As previously mentioned, the cells under the “Scratch” column provide the user with a scratch pad area to view suggested order information before orders are actually entered into the market. That way, the user can verify order information calculated by the automated trader, or the user can enter his or her own values directly through direct entry.
- At
step 608, the automated trader applies any quoting limits, which were programmed into the profile, to the suggested order information in the scratch pad area. Therefore, in addition to providing the user with flexibility on what to quote, the price to quote at, and the quantity to quote, the automated trader window allows input of quoting limits that can be placed on orders before they are entered into the market. According to the example inFIG. 11 , the quoting limits include “Maximum Position” row through the “Stale Quote Timeout” row, and can include “Throttle Quoting.” - The “Maximum Position” allows the user to set a quoting limit on the user's open position. Once the open position reaches the maximum position, the automated trader is programmed to notify the user that the limit has been reached. The maximum position applies both to the buy side and the sell side. For example, if the buy side reaches the maximum limit and the automated trader is in the automatic mode, then the automated trader will enter only sell orders to reduce the open position. Conversely, if the ask side reaches the maximum limit and the automated trader is in the automatic mode, then the automated trader will enter only buy order s to reduce the open position.
- In a preferred embodiment, when the user reaches the maximum position, the automated trader provides the user the option to quickly hedge the open position in fall, or partially. According to this preferred embodiment, the user can quickly categorize as hedged his or her open position so that he or she can quickly participate in the market. In one embodiment, a pop-up window is used to allow a user to categorize as hedged his or her open position, but alternatively, any method of indicating this option to hedge may be used.
- The “Bid Change Allowance” allows a user to enter an allowance of price units that the user is willing to wait before the automated trader enters another order. Similar to Bid change allowance row, the “Ask Change Allowance” allows a user to enter an allowance of price units, but for the sell side.
-
FIG. 13 is a graphical illustration of ask and bid allowances in relation to ask and buy offsets. For this graphical illustration, assume that the user enters an order to buy at a bid offset of two ticks. In one embodiment, when the market goes up or down one tick, the automated trader would delete the previous order and re-enter at the market price minus two ticks. In the ask and bid allowance embodiment, with a bid change allowance of one, the automated trader would not necessarily delete the order and re-enter another. Instead, the automated trader keeps the order so long as the market does not move outside of the allowance. So, for example, if the market moves three ticks in one direction, the allowance embodiment would not delete the order (with an offset of two ticks and an allowance of one tick), however, if the market moves four ticks in one direction, the order would be deleted and re-entered at two ticks from the new price. In the former scenario, the market stayed inside the allowance so the order is kept, but in the latter scenario, the market moved outside of the allowance so the order was deleted and re-entered at a new price. -
FIG. 14 is a graphical illustration of the “If Quote Inside, Join Market” option. When this feature is selected, the system compares the price of the suggested order to price levels that are easily programmed as acceptable to the user. If the price of the suggested order is not at an acceptable price level, then the system preferably changes the price of the order to an acceptable price before it is actually sent to the exchange. The graphical illustration inFIG. 14 provides one example to illustrate this concept. A suggested order is priced below the market ask price (or some other reference price level) on the sell side, however, according to this example, this suggested order price is not at an acceptable price level. Instead of sending the suggested order to the market, the automated trader instead sends an order to the market at a price level which is acceptable, such as the market ask price in this example. Alternatively, the automated trader can send an order at any pre-set price, for example, some pre-set offset value to the market ask price. This can also be applied to the buy side as illustrated in the Figure. - Also shown in
FIG. 14 is a graphical illustration of the “If Quote Outside, Join Market” option. This feature is the same as the “If Quote Inside, Join Market” such that when this feature is selected, the system compares the price of the suggested order to price levels that are programmed as acceptable to the user. A difference is that when an order is priced higher (rather than lower) than the market ask price (or some other reference price level) on the sell side, then the system preferably changes the price of the order to an acceptable price before it is actually sent to the exchange. This can also be applied to the buy side as illustrated in the Figure. If desired, the “If Quote Outside, Join Market” and the “If Quote Inside, Join Market” features can be combined into one feature such that if the price of a suggested order is not an acceptable price, the system can automatically change the price of the order to an acceptable price before it is sent to an exchange. -
FIG. 15 is a graphical illustration of a “Don't Cross the Market” option which is similar to the above features. For example, if the suggested sell order price has crossed the best buy price, the system can be easily programmed to change the sell order price to an acceptable price before sending the order to the market. In this example, the sell order price is changed to a price level higher than the best buy price, so as not to cross the market. - Sometimes a user might want to designate how much he or she is willing to better the market. The user can do this by entering a value for the “Market Improve Limit” in a field such as shown in
FIG. 11 . The market improve limit limits the amount by which the traders generated quote improves the best bid price or best ask price in the market. For example, assume that the market improve limit is set to 2 ticks (although any number of ticks or units may be set). Then, if the best bid price is 10 and the best ask price is 20 and a suggested buy order was calculated having a price of 15, a buy order would be sent to the market at a price of 12 and not 15. Thus, the trader in this example is only willing to better the market by 2 ticks. However, if the suggested buy order was calculated having a price of 11, because it falls under the limit, a buy order would be sent to the market at the calculated price of 11. The trader, in this example, is willing to better the market by 1 tick. Of course, the same process can be applied to the buy side. Although only one field is shown for the market improve limit, it is envisioned that the market improve limit can be applied separately to the buy side, the sell side, or it can be applied for both the buy side and the sell side. Preferably, the market improve limit will use the same units as set in the price units field. - The “Quote Move Limit” lets a user specify a limit in units, such as ticks or currency, such that if the suggested order in the scratch pad is greater than the existing quote in the market by more than the limit (in either positive or negative direction), automated trader pulls the existing quote from the market and will not submit the new suggested order. To retrigger automated quoting, the user can click on the “Update Orders” icon.
- The “Stale Quote Timeout” lets a user specify the timeout period in seconds such that if the quote in the market has not changed when the timeout limit has been reached the quote is pulled from the market. To retrigger automated quoting, the user can click on the “Update Orders” icon.
- Referring to
FIG. 3 ,steps FIG. 7 are preferably performed by astrategy processor 212. In a preferred embodiment, thestrategy processor 212 can receive information from theprofile manager 208, userprogrammable interface 210, and the market to calculate order parameters such as prices and quantities. Preferably, thestrategy processor 212 uses trading limits (e.g., maximum position, quoting limits, allowances, throttling, etc.) to determine whether an order should actually be submitted to the market. In the preferred embodiment, thestrategy processor 212 also includes a feature that when enabled prevents orders from crossing the market (e.g., prevents sending an order to market when the suggested buy order is priced greater than the market's best ask price, or prevents sending an order to market when the suggested sell order is priced less than the market's best bid price). When in manual mode, the suggested transactions are passed to theorder router 214 when the user selects the “Update Orders” icon. When in automatic mode, the transactions are preferably passed to theorder router 214. - In a preferred embodiment, the automated trader also has a
cover order processor 222 for calculating and sending cover orders. Alternatively, the cover order processor can be combined with the strategy processor. - At
step 610, an order is entered into the market. Referring toFIG. 3 , in a preferred embodiment, anorder router 214 sends orders into the market and manages the timing of order entry. - At
step 612, orders in the market are monitored. Referring toFIG. 3 , thestrategy processor 212 is monitoring market information and is re-calculating the order parameters (e.g., price and quantity) and thereby calculating new suggested orders. Then, trading limits may be applied to determine if it should replace the working orders in the market with the new suggested orders. If the working orders should be replaced, then thestrategy processor 212 indicates to theorder router 214 to delete the order and send in a new order (or cancel/replace). -
FIG. 16 is an alternative embodiment of the profile window to that shown inFIG. 11 . The profile parameter window 1100 allows a user to enter parameters for many tradeable objects of the same type, but having different expiration dates. Thus, a user can put all of the profiles for these tradeable objects into one window. This allows the user to view, edit, create, and/or delete all of the profile parameters for the tradeable objects of the same type. Preferably, automated trader can dynamically pick the appropriate profile for a tradeable object based on the current expiration date of that tradeable object. For example, a user may be trading a tradeable object that has a 60 day expiration date, however, as the date is approached and it becomes a 30 day contract, the automated trader can be programmed dynamically switch to from using the profile of the 60 day expiration date to the profile of the 30 day expiration date. - To distinguish between the tradeable objects having different expiration dates, visual indicators may also be used. In this example, the tradeable objects have been given the names of colors, but alternatively, the user can rename the name of the tradeable objects. According to this example, white, red, green, blue, orange, and copper identify the tradeable objects. Preferably, the automated trader can be programmed to dynamically change strategies based on the expiration day.
-
FIG. 3 , in summary, illustrates a block diagram of an example architecture that is suitable for providing the functionality, described herein. According to this example, modules are integrated to provide the functionality described herein, and include aprofile manager 208, userprogrammable interface 210,strategy processor 212,order router 214, andcontract manager 220. In general, a user inputs data into the userprogrammable user interface 210 and/or theprofile manager 208, which is communicated to thestrategy processor 212. Theprofile manager 208 may also communicate data to the userprogrammable interface 210. Thestrategy processor 212 calculates order parameters based on the data received from the user and on data received from the market. Results of these calculations can be relayed to the userprogrammable interface 210. Furthermore, based on these calculations and based on the trading limits, thestrategy processor 212 can instruct the order router to send an order (or transaction) to the market. There may be a separate module for sending cover orders to the market when appropriate. Also, acontract manager 220 may provide data about the tradeable objects to the strategy processor and the user programmable interface. As appreciated by those skilled in the art, any programming architecture, whether modular or integrated are a combination of both can be used in conjunction with the present invention. For example, anyone of the example modules described above can be eliminated or combined with another module without departing from the spirit of invention. - Preferred embodiments of the present invention have been described herein. It is to be understood, of course, that changes and modifications may be made in the embodiments without departing from the true scope of the present invention, as defined by the appended claims. The present embodiment preferably includes logic to implement the described methods in software modules as a set of computer executable software instructions. A processor implements the logic. The processor executes software that can be programmed by those of skill in the art to provide the described functionality.
- It should be understood that the programs, processes, methods and apparatus described herein are not related or limited to any particular type of computer or network apparatus (hardware or software), unless indicated otherwise. Various types of general purpose or specialized computer apparatus or computing device may be used with or perform operations in accordance with the teachings described herein.
- It should further be understood that a hardware embodiment may take a variety of different forms. The hardware may be implemented as an integrated circuit with custom gate arrays or an application specific integrated circuit (“ASIC”). The embodiment may also be implemented with discrete hardware components and circuitry. In particular, it is understood that the logic structures and method steps described in the flow diagrams may be implemented in dedicated hardware such as an ASIC, or as program instructions carried out by a microprocessor or other computing device.
- Example Use of Formulas
- As previously mentioned, the automated trader allows formula entry into any cell under the “Scratch” column, the “Formulas” column, the Profile Parameter columns, and the Cover order offset column, which are both shown in the
automated trader window 300, and also in the cells of theprofile window 800. Preferably, each cell accepts many different types of entries such as text, constant numeric values, dates or times, formulas that calculate a value, and graphs. Calculated values may be single numbers or strings, or they can be arrays or tables of values. - Preferably, the formulas can include variables, such as market information found under the “Market” column in the
automated trader window 300. For example, if the user wanted to have the current bid price and quantity in his or her formula, then preferably, the user can simply type into the formula the title of the market bid price and bid quantity column. According to this example and the example illustration given inFIG. 4 , the user might use variables given by “MktBidPrice” for the current bid price and “MktBidQty” for the current bid quantity in his or her formula. Thus, in a preferred embodiment, the automated trader can calculate relationships among different cells by typing in the row/column coordinates, or address, or name (e.g., “MktBidQty”) into the formula. - In one embodiment, formulas entered into the user programmable interface and/or into a profile may be accomplished by a two-way link between the trading interface and a third party software, or may link market data from a trading window into the spreadsheet or other third party software. As known by those skilled in the art, any suitable type of data exchange protocol may be used to embed information from the third party software or to link the dynamic indicator to the third party software. For example, Microsoft OLE 2.0 may be used to perform these functions when using Microsoft Windows applications as the third party software. In a preferred embodiment, Microsoft OLE is utilized to provide a link between cells in the interface and/or profile and a cell from a Microsoft EXCEL spreadsheet. Data exchange protocols in general, and linking and embedding techniques in particular, are well known to those skilled in the art.
- The automated trader described herein maybe put to advantageous use by providing a user with a simple and flexible trading mechanism to define and implement basic-to-very complex trading programs, allow dynamic entry of program adjustments, automatically monitor market and user data, manage trades, allow efficient configuration of data views, enable order seeding, and more. By using the automated trader, users can quickly and effectively implement program trading with increased functionality and flexibility that can be configured to suit his or her desired trading strategy. Moreover, the automated trader can assist a user in assimilating a large amount of data that is useful in determining his or her trading strategy.
- The automated trader may instead be implemented at the communications interface to operate as an intelligent communications interface between one or more third-party software applications and one or more exchanges. This advantageous use of the automated trader allows third-party computer programmers of trading-related software applications to focus their program development on implementing a particular strategy, rather than how to enter orders, how to manage them, and how to place certain limits on the orders. This embodiment allows for simpler third-party applications because the intelligent communication interface takes on more functionality so that the third-party applications do not need to.
- It should be understood that the above description of the preferred embodiments, alternative embodiments, and specific examples are given by way of illustration and not limitation. For example, the features described herein could be incorporated into a variety of displays. Many changes and modifications within the scope of the present embodiments may be made without departing from the spirit thereof, and the present invention includes all such changes and modifications.
Claims (2)
1. A method for use in electronic trading environment that assists a trader in making trades in at least on market, the method comprising:
selecting a tradeable object from a market to trade;
selecting a first profile having at least one parameter associated with a first trading strategy;
automatically calculating an order parameter based on the first profile and conditions in the market; and
sending a first order to the market, where one or more parameters of the first order is associated with the calculated order parameter.
2-42. (canceled)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/415,874 US20070100735A1 (en) | 2002-06-19 | 2006-05-02 | System and method for automated trading |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US38979402P | 2002-06-19 | 2002-06-19 | |
US10/284,584 US9805417B2 (en) | 2002-06-19 | 2002-10-31 | System and method for automated trading |
US11/415,874 US20070100735A1 (en) | 2002-06-19 | 2006-05-02 | System and method for automated trading |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/284,584 Continuation US9805417B2 (en) | 2002-06-19 | 2002-10-31 | System and method for automated trading |
Publications (1)
Publication Number | Publication Date |
---|---|
US20070100735A1 true US20070100735A1 (en) | 2007-05-03 |
Family
ID=29739252
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/284,584 Expired - Fee Related US9805417B2 (en) | 2002-06-19 | 2002-10-31 | System and method for automated trading |
US11/415,874 Abandoned US20070100735A1 (en) | 2002-06-19 | 2006-05-02 | System and method for automated trading |
US15/714,850 Abandoned US20180018437A1 (en) | 2002-06-19 | 2017-09-25 | System and Method for Automated Trading |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/284,584 Expired - Fee Related US9805417B2 (en) | 2002-06-19 | 2002-10-31 | System and method for automated trading |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/714,850 Abandoned US20180018437A1 (en) | 2002-06-19 | 2017-09-25 | System and Method for Automated Trading |
Country Status (3)
Country | Link |
---|---|
US (3) | US9805417B2 (en) |
AU (1) | AU2003278384A1 (en) |
WO (1) | WO2004001653A1 (en) |
Cited By (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030236737A1 (en) * | 2002-06-19 | 2003-12-25 | Kemp Gary Allan | System and method for automated trading |
US20040044610A1 (en) * | 1996-12-13 | 2004-03-04 | Cantor Fitzgerald, L.P. (Cflp) | Automated auction protocol processor |
US20040210512A1 (en) * | 1999-04-30 | 2004-10-21 | Espeed, Inc. | Systems and methods for trading |
US20050108079A1 (en) * | 2003-11-17 | 2005-05-19 | Espeed, Inc. | Customizable trading display of market data |
US20050108653A1 (en) * | 2003-11-17 | 2005-05-19 | Espeed, Inc. | Customizable trading display of market data |
US20050144112A1 (en) * | 2003-12-30 | 2005-06-30 | Trading Technologies International, Inc. | System and method for coordinating automated and semi-automated trading tools |
US20050160032A1 (en) * | 1996-12-13 | 2005-07-21 | Cantor Fitzgerald, L.P. | Automated price improvement protocol processor |
US20050273421A1 (en) * | 2004-06-08 | 2005-12-08 | Rosenthal Collins Group, L.L.C. | Method and system for providing electronic information for multi-market electronic trading |
US20060010066A1 (en) * | 2004-07-12 | 2006-01-12 | Rosenthal Collins Group, L.L.C. | Method and system for providing a graphical user interface for electronic trading |
US20060080223A1 (en) * | 2004-09-08 | 2006-04-13 | Rosenthal Collins Group, Llc. | Method and system for providing automatic execution of trading strategies for electronic trading |
US20060085320A1 (en) * | 2004-10-18 | 2006-04-20 | Trading Technologies International, Inc. | Flexible system and method for electronic trading |
US20060218072A1 (en) * | 2005-03-24 | 2006-09-28 | Espeed, Inc. | Systems and methods for protecting against erroneous price entries in the electronic trading of financial and other instruments |
US20060253373A1 (en) * | 2004-11-01 | 2006-11-09 | Rosenthal Collins Group, Llc. | Method and system for providing multiple graphic user interfaces for electronic trading |
US20070083458A1 (en) * | 2005-10-11 | 2007-04-12 | Rosenthal Collins Group, L.L.C. | Method and system for providing a graphical user interface and trading system for professional electronic trading |
US20070088658A1 (en) * | 2005-09-30 | 2007-04-19 | Rosenthal Collins Group, L.L.C. | Method and system for providing accounting for electronic trading |
US20070112665A1 (en) * | 2005-11-13 | 2007-05-17 | Rosenthal Collins Group, L.L.C. | Method and system for electronic trading via a yield curve |
US20070177571A1 (en) * | 2002-10-07 | 2007-08-02 | Michael Caulfield | Mobile data distribution |
US20070244796A1 (en) * | 2006-01-09 | 2007-10-18 | Lutnick Howard W | Systems and methods for establishing first on the follow trading priority in electronic trading systems |
US20080077652A1 (en) * | 2006-09-06 | 2008-03-27 | Credit Suisse Securities (Usa) Llc One Madison Avenue | Method and system for providing an enhanced service-oriented architecture |
US20080133401A1 (en) * | 2001-05-09 | 2008-06-05 | Gilbert Andrew C | Systems and methods for controlling traders from manipulating electronic trading markets |
US20080162378A1 (en) * | 2004-07-12 | 2008-07-03 | Rosenthal Collins Group, L.L.C. | Method and system for displaying a current market depth position of an electronic trade on a graphical user interface |
US20080244579A1 (en) * | 2007-03-26 | 2008-10-02 | Leslie Muller | Method and system for managing virtual and real machines |
US20080244607A1 (en) * | 2007-03-27 | 2008-10-02 | Vladislav Rysin | Economic allocation and management of resources via a virtual resource market |
US20080288391A1 (en) * | 2005-05-31 | 2008-11-20 | Rosenthal Collins Group, Llc. | Method and system for automatically inputting, monitoring and trading spreads |
US20090055434A1 (en) * | 2002-04-25 | 2009-02-26 | Oracle International Corporation | Simplified application object data synchronization for optimized data storage |
US20090119673A1 (en) * | 2007-11-06 | 2009-05-07 | Credit Suisse Securities (Usa) Llc | Predicting and managing resource allocation according to service level agreements |
US20090276373A1 (en) * | 2004-06-08 | 2009-11-05 | Rosenthal Collins Group, L.L.C. | Method and system for providing electronic information for risk assesement and management for multi-market electronic trading |
US20090281770A1 (en) * | 2008-05-09 | 2009-11-12 | Yatko Steven W | Platform matching systems and methods |
US20090307121A1 (en) * | 2008-06-09 | 2009-12-10 | Lutnick Howard W | Trading system products and processes |
US20090313160A1 (en) * | 2008-06-11 | 2009-12-17 | Credit Suisse Securities (Usa) Llc | Hardware accelerated exchange order routing appliance |
US20100010937A1 (en) * | 2008-04-30 | 2010-01-14 | Rosenthal Collins Group, L.L.C. | Method and system for providing risk assessment management and reporting for multi-market electronic trading |
US20100023645A1 (en) * | 2008-07-28 | 2010-01-28 | Trading Technologies International, Inc. | System and Method for Dynamically Managing Message Flow |
US20100057626A1 (en) * | 2008-09-04 | 2010-03-04 | Lutnick Howard W | Cancellation timing in an electronic marketplace |
US20100076896A1 (en) * | 2008-09-25 | 2010-03-25 | Lutnick Howard W | Substitutability of financial instruments |
US20100076884A1 (en) * | 2008-09-25 | 2010-03-25 | Lutnick Howard W | Trading related to fund compositions |
US20100076883A1 (en) * | 2008-09-25 | 2010-03-25 | Lutnick Howard W | Generating risk pools |
US20100082495A1 (en) * | 2008-09-28 | 2010-04-01 | Lutnick Howard W | Trading system accessibility |
US20100082500A1 (en) * | 2008-09-28 | 2010-04-01 | Lutnick Howard W | Interaction with trading systems |
US20100106636A1 (en) * | 2008-10-24 | 2010-04-29 | Lutnick Howard W | Interprogram communication using messages related to order cancellation |
US20100191637A1 (en) * | 2009-01-23 | 2010-07-29 | Alderucci Dean P | Interprogram communication using messages related to groups of orders |
US20100191638A1 (en) * | 2009-01-23 | 2010-07-29 | Alderucci Dean P | Multicomputer distributed processing of data related to automation of trading |
US7801801B2 (en) | 2005-05-04 | 2010-09-21 | Rosenthal Collins Group, Llc | Method and system for providing automatic execution of black box strategies for electonic trading |
US20100299280A1 (en) * | 2009-05-19 | 2010-11-25 | Richard Lane | System and Method for Displaying Trade Information for Electronic Trading Exchange |
US7849000B2 (en) | 2005-11-13 | 2010-12-07 | Rosenthal Collins Group, Llc | Method and system for electronic trading via a yield curve |
US20100332368A1 (en) * | 2009-06-30 | 2010-12-30 | Alderucci Dean P | Multicomputer distributed processing of data regarding trading opportunities |
US8364575B2 (en) | 2005-05-04 | 2013-01-29 | Rosenthal Collins Group, Llc | Method and system for providing automatic execution of black box strategies for electronic trading |
US8429059B2 (en) | 2004-06-08 | 2013-04-23 | Rosenthal Collins Group, Llc | Method and system for providing electronic option trading bandwidth reduction and electronic option risk management and assessment for multi-market electronic trading |
US8566212B2 (en) | 2002-10-31 | 2013-10-22 | Bgc Partners, Inc. | Electronic systems and methods for providing a trading interface with advanced features |
US8589280B2 (en) | 2005-05-04 | 2013-11-19 | Rosenthal Collins Group, Llc | Method and system for providing automatic execution of gray box strategies for electronic trading |
US8930256B2 (en) | 2002-10-31 | 2015-01-06 | Bgc Partners, Inc. | Keyboard trading system |
US10101808B2 (en) | 2004-06-21 | 2018-10-16 | Trading Technologies International, Inc. | Attention-based trading display for providing user-centric information updates |
US10102576B2 (en) | 2013-03-15 | 2018-10-16 | Trading Technologies International, Inc. | Trading circles |
US10163157B2 (en) | 2014-06-17 | 2018-12-25 | Intercontinental Exchange Holdings, Inc. | Trading opportunities based on public ticker data |
US10460387B2 (en) | 2013-12-18 | 2019-10-29 | Trading Technologies International, Inc. | Dynamic information configuration and display |
US10467691B2 (en) | 2012-12-31 | 2019-11-05 | Trading Technologies International, Inc. | User definable prioritization of market information |
US12131382B2 (en) | 2023-08-08 | 2024-10-29 | Trading Technologies International, Inc. | System and method for dynamically managing message flow |
Families Citing this family (100)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7212999B2 (en) | 1999-04-09 | 2007-05-01 | Trading Technologies International, Inc. | User interface for an electronic trading system |
US6993504B1 (en) | 1999-04-09 | 2006-01-31 | Trading Technologies International, Inc. | User interface for semi-fungible trading |
US6772132B1 (en) | 2000-03-02 | 2004-08-03 | Trading Technologies International, Inc. | Click based trading with intuitive grid display of market depth |
US6938011B1 (en) | 2000-03-02 | 2005-08-30 | Trading Technologies International, Inc. | Click based trading with market depth display |
US7389268B1 (en) | 2000-03-02 | 2008-06-17 | Trading Technologies International, Inc. | Trading tools for electronic trading |
US7447655B2 (en) * | 2000-03-02 | 2008-11-04 | Trading Technologies International, Inc. | System and method for automatic scalping of a tradeable object in an electronic trading environment |
US7437325B2 (en) | 2002-03-05 | 2008-10-14 | Pablo Llc | System and method for performing automatic spread trading |
US7039610B2 (en) * | 2001-10-04 | 2006-05-02 | New York Mercantile Exchange, Inc. | Implied market trading system |
US7426490B1 (en) | 2002-10-31 | 2008-09-16 | Trading Technologies International, Inc. | System and method for automated order entry on short queues |
US8041622B1 (en) | 2002-11-26 | 2011-10-18 | Trading Technologies International Inc. | System and method for randomizing orders in an electronic trading environment |
US7792734B1 (en) * | 2002-12-27 | 2010-09-07 | Trading Technologies International, Inc. | Method, apparatus and interface for transaction toggling |
AU2003295787A1 (en) | 2002-12-30 | 2004-07-29 | Fannie Mae | System and method for facilitating delivery of a loan to a secondary mortgage market purchaser |
WO2004079520A2 (en) | 2003-02-28 | 2004-09-16 | Trading Technologies International, Inc. | A system and method for trading and displaying market information in an electronic trading environment |
US7571133B2 (en) | 2003-03-10 | 2009-08-04 | Chicago Mercantile Exchange, Inc. | Derivatives trading methods that use a variable order price and a hedge transaction |
US7440917B2 (en) | 2003-03-10 | 2008-10-21 | Chicago Mercantile Exchange, Inc. | Order risk management system |
US7152041B2 (en) * | 2003-03-10 | 2006-12-19 | Chicago Mercantile Exchange, Inc. | Derivatives trading methods that use a variable order price |
US7464055B2 (en) * | 2003-03-28 | 2008-12-09 | Chicago Mercantile Exchange | System and method for monitoring trades outside of a no-bust range in an electronic trading system |
US7904370B2 (en) * | 2003-03-31 | 2011-03-08 | Trading Technologies International, Inc. | System and method for variably regulating order entry in an electronic trading system |
US20040236669A1 (en) * | 2003-04-18 | 2004-11-25 | Trade Robot Limited | Method and system for automated electronic trading in financial matters |
US8306900B2 (en) * | 2003-06-10 | 2012-11-06 | Itg Software Solutions, Inc. | System, method, and computer program product for executing a buy or sell order |
US7587357B1 (en) | 2003-06-30 | 2009-09-08 | Trading Technologies International Inc. | Repositioning of market information on trading screens |
US20050010481A1 (en) * | 2003-07-08 | 2005-01-13 | Lutnick Howard W. | Systems and methods for improving the liquidity and distribution network for illiquid items |
US11100582B2 (en) | 2003-09-22 | 2021-08-24 | Trading Technologies International, Inc. | System and method for dynamically determining quantity for risk management |
US7861185B1 (en) * | 2003-12-30 | 2010-12-28 | Trading Technologies International, Inc. | System and method for dynamically determining quantity for risk management |
US8655755B2 (en) | 2003-10-22 | 2014-02-18 | Scottrade, Inc. | System and method for the automated brokerage of financial instruments |
US7890412B2 (en) | 2003-11-04 | 2011-02-15 | New York Mercantile Exchange, Inc. | Distributed trading bus architecture |
US20050144109A1 (en) * | 2003-12-31 | 2005-06-30 | Michael Boni | Electronic trading data integration and protection system |
US8046289B2 (en) * | 2004-01-29 | 2011-10-25 | New York Mercantile Exchange, Inc. | Electronic pitcard for wireless financial exchange |
US10304097B2 (en) * | 2004-01-29 | 2019-05-28 | Bgc Partners, Inc. | System and method for controlling the disclosure of a trading order |
US20050283427A1 (en) * | 2004-06-21 | 2005-12-22 | Fx Engines, Inc. | Automated trading system and software for financial markets |
US20050283415A1 (en) * | 2004-06-22 | 2005-12-22 | Chicago Mercantile Exchange | System and method for displaying market data including last trade data |
US7966244B1 (en) | 2004-06-25 | 2011-06-21 | Trading Technologies International, Inc. | System and method for computing and displaying effective bid and ask information |
US8688562B1 (en) * | 2004-09-27 | 2014-04-01 | Trading Technologies International, Inc. | System and method for prioritized automated trading in an electronic trading environment |
GB2419695A (en) * | 2004-10-29 | 2006-05-03 | Easyscreen Plc | Conditional order management system |
GB2419694A (en) * | 2004-10-29 | 2006-05-03 | Easyscreen Plc | Trading portfolio risk management |
US20060106707A1 (en) * | 2004-11-12 | 2006-05-18 | Shetty Rohan D | Method and system for trading derivatives |
US8140423B2 (en) * | 2004-12-10 | 2012-03-20 | Nyfix, Inc. | Controlling an order slicer for trading a financial instrument |
US7805355B2 (en) * | 2004-12-15 | 2010-09-28 | Orc Software Ab | Graphical user interface to facilitate rapid and reliable electronic trading assessment and execution |
US7848991B1 (en) * | 2004-12-30 | 2010-12-07 | Trading Technologies International, Inc. | System and method for modifying trading strategies based on message usage |
US20060200394A1 (en) * | 2005-03-04 | 2006-09-07 | Avadhi Finance & Technology, Inc. | Method for monitoring securities and market conditions |
US7590576B1 (en) | 2005-03-31 | 2009-09-15 | Trading Technologies International Inc. | Visual representation and configuration of trading strategies |
US7596528B1 (en) * | 2005-03-31 | 2009-09-29 | Trading Technologies International, Inc. | System and method for dynamically regulating order entry in an electronic trading environment |
US20060282361A1 (en) * | 2005-04-27 | 2006-12-14 | Twery Jay M | Electronic trading system with market-centered display and dynamic price tracking |
US7840477B2 (en) * | 2005-06-07 | 2010-11-23 | Bgc Partners, Inc. | System and method for routing a trading order based upon quantity |
US7577600B1 (en) | 2005-06-30 | 2009-08-18 | Trading Technologies International, Inc. | System and method for regulating order entry in an electronic trading environment |
WO2007009017A2 (en) * | 2005-07-11 | 2007-01-18 | Sanjoy Roy Choudhury | Systems and methods for delivering parameters to automated security order execution systems |
CA2617799A1 (en) * | 2005-08-04 | 2007-02-15 | Espeed, Inc. | System for submitting trading orders |
US8484122B2 (en) | 2005-08-04 | 2013-07-09 | Bgc Partners, Inc. | System and method for apportioning trading orders based on size of displayed quantities |
US8494951B2 (en) * | 2005-08-05 | 2013-07-23 | Bgc Partners, Inc. | Matching of trading orders based on priority |
US7899749B1 (en) * | 2005-08-09 | 2011-03-01 | Chicago Mercantile Exchange, Inc. | System and method for providing intelligent market data snapshots |
US7672896B2 (en) * | 2005-09-30 | 2010-03-02 | Trading Technologies International, Inc. | System and method for order placement in an electronic trading environment |
US7774261B1 (en) * | 2005-09-30 | 2010-08-10 | Trading Technologies International, Inc. | System and method for use of fractional pay-up ticks in relation to trading strategies in an electronic trading environment |
US20070100732A1 (en) * | 2005-10-28 | 2007-05-03 | Mark Ibbotson | System and method for aggregation of implied bids and offers for short-term interest rate futures and options |
CA2626935A1 (en) * | 2005-11-18 | 2007-05-31 | Chicago Mercantile Exchange | Cross-currency implied spreads |
US10726479B2 (en) | 2005-11-18 | 2020-07-28 | Chicago Mercantile Exchange Inc. | System and method for centralized clearing of over the counter foreign exchange instruments |
US7801810B2 (en) * | 2005-11-18 | 2010-09-21 | Chicago Mercantile Exchange Inc. | Hybrid cross-margining |
US20070118455A1 (en) * | 2005-11-18 | 2007-05-24 | Albert William J | System and method for directed request for quote |
US20090119224A1 (en) * | 2005-11-18 | 2009-05-07 | Rts Realtime Systems Software Gmbh | Algorithmic trading system, a method for computer-based algorithm trading and a computer program product |
US20070156568A1 (en) * | 2006-01-05 | 2007-07-05 | Jovanovic Vladan D | Method and system for distributed trading limit enforcement |
US20070168275A1 (en) * | 2006-01-13 | 2007-07-19 | Andrew Busby | Method for trading using volume submissions |
US7979339B2 (en) | 2006-04-04 | 2011-07-12 | Bgc Partners, Inc. | System and method for optimizing execution of trading orders |
US20070265953A1 (en) * | 2006-05-09 | 2007-11-15 | Cunningham William D | Smooth scrolling for software application |
US20080015965A1 (en) * | 2006-06-15 | 2008-01-17 | Kai Huang | method and system for trading tangible and intangible goods |
US8630934B2 (en) * | 2006-06-20 | 2014-01-14 | Omx Technology Ab | System and method for monitoring trading |
US7672898B1 (en) | 2006-07-07 | 2010-03-02 | Trading Technologies International Inc. | Regulating order entry in an electronic trading environment to maintain an actual cost for a trading strategy |
US20080071663A1 (en) * | 2006-09-19 | 2008-03-20 | Andrew Busby | User interface tab strip |
US20080172322A1 (en) | 2007-01-17 | 2008-07-17 | Steidlmayer Pete | Method for scheduling future orders on an electronic commodity trading system |
US7788167B1 (en) | 2007-03-21 | 2010-08-31 | Trading Technologies International, Inc. | System and method for management and analysis of electronic trade orders |
US7729978B2 (en) | 2007-03-28 | 2010-06-01 | Trading Technologies International, Inc. | System and method for dynamically changing an electronic trade order quantity |
US20080270289A1 (en) * | 2007-04-24 | 2008-10-30 | Rts Realtime Systems Software Gmbh | Algorithmic trading system and method for testing automated trading of financial instruments |
US20090089202A1 (en) * | 2007-09-28 | 2009-04-02 | Fidessa Corporation | Algorithmic order management tool for trading financial instruments |
US8370248B2 (en) * | 2007-10-01 | 2013-02-05 | Chicago Mercantile Exchange, Inc. | TBA futures contracts and central counterparty clearing of TBA |
US8249976B1 (en) | 2007-10-30 | 2012-08-21 | Trading Technologies International Inc. | System and method for optimizing order placement in an order queue in an electronic trading environment |
US8249977B2 (en) | 2008-05-28 | 2012-08-21 | Trading Technologies International, Inc. | System and method for aggressively trading a strategy in an electronic trading environment |
US8229835B2 (en) * | 2009-01-08 | 2012-07-24 | New York Mercantile Exchange, Inc. | Determination of implied orders in a trade matching system |
US8527390B1 (en) | 2009-03-25 | 2013-09-03 | Trading Technologies International, Inc. | Systems and methods for multiplier-adjusted lean levels for trading strategies |
US9727913B2 (en) | 2009-06-26 | 2017-08-08 | Trading Technologies International, Inc. | Prioritization of trade order processing in electronic trading |
US8417618B2 (en) | 2009-09-03 | 2013-04-09 | Chicago Mercantile Exchange Inc. | Utilizing a trigger order with multiple counterparties in implied market trading |
US8255305B2 (en) | 2009-09-15 | 2012-08-28 | Chicago Mercantile Exchange Inc. | Ratio spreads for contracts of different sizes in implied market trading |
US8266030B2 (en) | 2009-09-15 | 2012-09-11 | Chicago Mercantile Exchange Inc. | Transformation of a multi-leg security definition for calculation of implied orders in an electronic trading system |
US8229838B2 (en) | 2009-10-14 | 2012-07-24 | Chicago Mercantile Exchange, Inc. | Leg pricer |
US9652803B2 (en) | 2009-10-20 | 2017-05-16 | Trading Technologies International, Inc. | Virtualizing for user-defined algorithm electronic trading |
US8380575B2 (en) * | 2009-12-15 | 2013-02-19 | Trading Technologies International, Inc. | System and methods for risk-based prioritized transaction message flow |
US9836788B2 (en) | 2010-06-30 | 2017-12-05 | Trading Technologies International, Inc. | System and method for configuring trade order parameters |
US8510206B2 (en) | 2010-07-26 | 2013-08-13 | Trading Technologies International, Inc. | Consolidated price level expansion |
US8732065B1 (en) * | 2010-07-27 | 2014-05-20 | Finalta, Inc. | Electronic trading system and method |
US8566220B2 (en) | 2011-01-26 | 2013-10-22 | Trading Technologies International, Inc. | Block placing tool for building a user-defined algorithm for electronic trading |
US8776043B1 (en) | 2011-09-29 | 2014-07-08 | Amazon Technologies, Inc. | Service image notifications |
US8732067B2 (en) | 2012-03-09 | 2014-05-20 | Trading Technologies International, Inc | Slicer order quantity reduction tool |
US9779454B2 (en) | 2012-12-20 | 2017-10-03 | Trading Technologies International, Inc. | Speed adjustable and reversible tool for slicer orders |
US10282783B2 (en) | 2013-03-13 | 2019-05-07 | Intercontinental Exchange Holdings, Inc. | System and method for processing a trade order |
US11288739B2 (en) | 2015-10-12 | 2022-03-29 | Chicago Mercantile Exchange Inc. | Central limit order book automatic triangulation system |
US20170301017A1 (en) * | 2016-04-16 | 2017-10-19 | Vuk Magdelinic | Method and system for multiple functions in the primary capital market |
US10803069B2 (en) | 2016-06-24 | 2020-10-13 | Chicago Mercantile Exchange Inc. | Dynamic valuation system using object relationships and composite object data |
US20190188794A1 (en) * | 2016-08-18 | 2019-06-20 | Tsx Inc. | Computer processing of state using key states |
US11082351B2 (en) | 2017-01-05 | 2021-08-03 | Chicago Mercantile Exchange Inc. | Network congestion reduction based on routing and matching data packets |
US10424018B2 (en) | 2017-01-26 | 2019-09-24 | Trading Technologies International, Inc. | System and method for active order management in an electronic trading environment |
US11941225B1 (en) * | 2018-10-04 | 2024-03-26 | United Services Automobile Association (Usaa) | Systems and methods for self-directed investing |
US11379934B1 (en) * | 2020-12-22 | 2022-07-05 | Hui Ju YANG | Interactively social media streaming system |
US20220261901A1 (en) * | 2021-02-16 | 2022-08-18 | Exegy Incorporated | Methods and Systems for Bettering Market Making at Low Latency |
Citations (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4674044A (en) * | 1985-01-30 | 1987-06-16 | Merrill Lynch, Pierce, Fenner & Smith, Inc. | Automated securities trading system |
US5101353A (en) * | 1989-05-31 | 1992-03-31 | Lattice Investments, Inc. | Automated system for providing liquidity to securities markets |
US5787402A (en) * | 1996-05-15 | 1998-07-28 | Crossmar, Inc. | Method and system for performing automated financial transactions involving foreign currencies |
US5799287A (en) * | 1994-05-24 | 1998-08-25 | Dembo; Ron S. | Method and apparatus for optimal portfolio replication |
US5819238A (en) * | 1996-12-13 | 1998-10-06 | Enhanced Investment Technologies, Inc. | Apparatus and accompanying methods for automatically modifying a financial portfolio through dynamic re-weighting based on a non-constant function of current capitalization weights |
US6014643A (en) * | 1996-06-28 | 2000-01-11 | Minton; Vernon F. | Interactive securities trading system |
US6134535A (en) * | 1994-03-23 | 2000-10-17 | Belzberg Financial Markets & News International Inc. | Computerized stock exchange trading system automatically formatting orders from a spreadsheet to an order entry system |
US6282521B1 (en) * | 1995-08-28 | 2001-08-28 | Ebs Dealing Resources, Inc. | Anonymous trading system with improved quote input capabilities |
US20010056391A1 (en) * | 2000-01-14 | 2001-12-27 | Schultz Frederick J. | Method and apparatus for managing and optimizing stock options |
US20020046156A1 (en) * | 2000-10-14 | 2002-04-18 | Goldman, Sachs & Company | Apparatus, methods and articles of manufacture for executing computerized transaction processes |
US20020046151A1 (en) * | 2000-10-14 | 2002-04-18 | Goldman, Sachs & Company | Computerized interface for constructing and executing computerized transaction processes and programs |
US20020046146A1 (en) * | 2000-10-14 | 2002-04-18 | Otero Hernan G. | Apparatus, methods and articles of manufacture for constructing and executing computerized transaction processes and programs |
US20020046149A1 (en) * | 2000-10-14 | 2002-04-18 | Goldman, Sachs & Company | Apparatus, methods and articles of manufacture for constructing and executing computerized transaction processes and programs |
US20020049661A1 (en) * | 2000-10-14 | 2002-04-25 | Goldman, Sachs & Company | Apparatus, methods and articles of manufacture for constructing and executing computerized transaction processes and programs |
US6408282B1 (en) * | 1999-03-01 | 2002-06-18 | Wit Capital Corp. | System and method for conducting securities transactions over a computer network |
US6418419B1 (en) * | 1999-07-23 | 2002-07-09 | 5Th Market, Inc. | Automated system for conditional order transactions in securities or other items in commerce |
US20020091617A1 (en) * | 2000-04-10 | 2002-07-11 | Christopher Keith | Trading program for interacting with market programs on a platform |
US20020128950A1 (en) * | 2001-03-12 | 2002-09-12 | Michael Wu | Artificial intelligence based trading system |
US20020138400A1 (en) * | 2000-06-30 | 2002-09-26 | Kitchen Louise J. | Buying and selling goods and services using automated method and apparatus |
US20020138401A1 (en) * | 2000-08-17 | 2002-09-26 | Allen Anne E. | Method and system for automatic execution of a securities transaction |
US20020174058A1 (en) * | 2001-05-18 | 2002-11-21 | Baghdady George J. | System for providing orders from a market analysis platform to the electronic communication network |
US20020194105A1 (en) * | 2001-05-18 | 2002-12-19 | Andrew Klein | Process of and system for trading securities and options and markets related thereto |
US20030033235A1 (en) * | 2001-04-06 | 2003-02-13 | Henrik Hummelgren | Automated exchange system for trading orders having a hidden volume |
US20030093352A1 (en) * | 2001-10-15 | 2003-05-15 | Muralidhar Sanjay P. | Method, apparatus and program for evaluating financial trading strategies and portfolios |
US6594643B1 (en) * | 1997-11-14 | 2003-07-15 | Charles C. Freeny, Jr. | Automatic stock trading system |
US20030200167A1 (en) * | 2002-03-05 | 2003-10-23 | Kemp Gary Allen | System and method for performing automatic spread trading |
US20030236737A1 (en) * | 2002-06-19 | 2003-12-25 | Kemp Gary Allan | System and method for automated trading |
US6772132B1 (en) * | 2000-03-02 | 2004-08-03 | Trading Technologies International, Inc. | Click based trading with intuitive grid display of market depth |
US20040210511A1 (en) * | 2000-06-01 | 2004-10-21 | Henri Waelbroeck | Block trading system and method providing price improvement to aggressive orders |
US6938011B1 (en) * | 2000-03-02 | 2005-08-30 | Trading Technologies International, Inc. | Click based trading with market depth display |
US6996540B1 (en) * | 1997-10-14 | 2006-02-07 | Blackbird Holdings, Inc. | Systems for switch auctions utilizing risk position portfolios of a plurality of traders |
US7246092B1 (en) * | 2000-05-12 | 2007-07-17 | The Nasdaq Stock Market, Inc. | Montage for an electronic market |
US7356499B1 (en) * | 2000-02-09 | 2008-04-08 | Dean Amburn | Method and apparatus for automated trading of equity securities using a real time data analysis |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5297031A (en) | 1990-03-06 | 1994-03-22 | Chicago Board Of Trade | Method and apparatus for order management by market brokers |
US6519574B1 (en) | 1995-12-12 | 2003-02-11 | Reuters Limited | Electronic trading system featuring arbitrage and third-party credit opportunities |
JP2001524236A (en) | 1997-04-30 | 2001-11-27 | トラストマーク インターナショナル リミテッド | Network computer trading system |
US6421653B1 (en) | 1997-10-14 | 2002-07-16 | Blackbird Holdings, Inc. | Systems, methods and computer program products for electronic trading of financial instruments |
CN1619561A (en) | 1997-12-08 | 2005-05-25 | 新日铁系统集成株式会社 | Commodity exchanging appararus |
AU3362000A (en) | 1999-02-12 | 2000-08-29 | State Street Corporation | Processing orders to a computerized trading market |
PL350847A1 (en) | 1999-02-24 | 2003-02-10 | Min Ho Cha | Automatic ordering method and system for trading of stock, bond, item, future index, option, index, current and so on |
WO2000052619A1 (en) | 1999-03-01 | 2000-09-08 | Wit Capital Corporation | A system and method for conducting securities transactions over a computer network |
US7212999B2 (en) | 1999-04-09 | 2007-05-01 | Trading Technologies International, Inc. | User interface for an electronic trading system |
WO2000065510A1 (en) | 1999-04-22 | 2000-11-02 | Trading Technologies, Inc. | Electronic securities trading system |
WO2001016852A2 (en) | 1999-08-30 | 2001-03-08 | Epit, Inc. | User interface for semi-fungible trading |
US7685048B1 (en) | 1999-09-01 | 2010-03-23 | Bloomberg L.P. | Electronic trading system for forwards spread trades |
AU7712200A (en) | 1999-09-23 | 2001-04-24 | Daniel R. Bornstein | For user interface for a financial trading system |
US8311926B1 (en) | 1999-09-23 | 2012-11-13 | The Nasdaq Omx Group, Inc. | Montage for automated market system |
US20030088495A1 (en) | 2000-12-07 | 2003-05-08 | Gilbert Andrew C. | Systems and methods for linking bids and offers in a trading interface |
US8145557B2 (en) | 2001-03-30 | 2012-03-27 | Bgc Partners, Inc. | Bid/offer spread trading |
-
2002
- 2002-10-31 US US10/284,584 patent/US9805417B2/en not_active Expired - Fee Related
-
2003
- 2003-06-18 WO PCT/US2003/019328 patent/WO2004001653A1/en not_active Application Discontinuation
- 2003-06-18 AU AU2003278384A patent/AU2003278384A1/en not_active Abandoned
-
2006
- 2006-05-02 US US11/415,874 patent/US20070100735A1/en not_active Abandoned
-
2017
- 2017-09-25 US US15/714,850 patent/US20180018437A1/en not_active Abandoned
Patent Citations (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4674044A (en) * | 1985-01-30 | 1987-06-16 | Merrill Lynch, Pierce, Fenner & Smith, Inc. | Automated securities trading system |
US5101353A (en) * | 1989-05-31 | 1992-03-31 | Lattice Investments, Inc. | Automated system for providing liquidity to securities markets |
US6134535A (en) * | 1994-03-23 | 2000-10-17 | Belzberg Financial Markets & News International Inc. | Computerized stock exchange trading system automatically formatting orders from a spreadsheet to an order entry system |
US5799287A (en) * | 1994-05-24 | 1998-08-25 | Dembo; Ron S. | Method and apparatus for optimal portfolio replication |
US6282521B1 (en) * | 1995-08-28 | 2001-08-28 | Ebs Dealing Resources, Inc. | Anonymous trading system with improved quote input capabilities |
US5787402A (en) * | 1996-05-15 | 1998-07-28 | Crossmar, Inc. | Method and system for performing automated financial transactions involving foreign currencies |
US6014643A (en) * | 1996-06-28 | 2000-01-11 | Minton; Vernon F. | Interactive securities trading system |
US5819238A (en) * | 1996-12-13 | 1998-10-06 | Enhanced Investment Technologies, Inc. | Apparatus and accompanying methods for automatically modifying a financial portfolio through dynamic re-weighting based on a non-constant function of current capitalization weights |
US6996540B1 (en) * | 1997-10-14 | 2006-02-07 | Blackbird Holdings, Inc. | Systems for switch auctions utilizing risk position portfolios of a plurality of traders |
US6594643B1 (en) * | 1997-11-14 | 2003-07-15 | Charles C. Freeny, Jr. | Automatic stock trading system |
US6408282B1 (en) * | 1999-03-01 | 2002-06-18 | Wit Capital Corp. | System and method for conducting securities transactions over a computer network |
US6418419B1 (en) * | 1999-07-23 | 2002-07-09 | 5Th Market, Inc. | Automated system for conditional order transactions in securities or other items in commerce |
US20010056391A1 (en) * | 2000-01-14 | 2001-12-27 | Schultz Frederick J. | Method and apparatus for managing and optimizing stock options |
US7356499B1 (en) * | 2000-02-09 | 2008-04-08 | Dean Amburn | Method and apparatus for automated trading of equity securities using a real time data analysis |
US6772132B1 (en) * | 2000-03-02 | 2004-08-03 | Trading Technologies International, Inc. | Click based trading with intuitive grid display of market depth |
US6938011B1 (en) * | 2000-03-02 | 2005-08-30 | Trading Technologies International, Inc. | Click based trading with market depth display |
US20020091617A1 (en) * | 2000-04-10 | 2002-07-11 | Christopher Keith | Trading program for interacting with market programs on a platform |
US7246092B1 (en) * | 2000-05-12 | 2007-07-17 | The Nasdaq Stock Market, Inc. | Montage for an electronic market |
US20040210511A1 (en) * | 2000-06-01 | 2004-10-21 | Henri Waelbroeck | Block trading system and method providing price improvement to aggressive orders |
US20020138400A1 (en) * | 2000-06-30 | 2002-09-26 | Kitchen Louise J. | Buying and selling goods and services using automated method and apparatus |
US20020138401A1 (en) * | 2000-08-17 | 2002-09-26 | Allen Anne E. | Method and system for automatic execution of a securities transaction |
US20020046156A1 (en) * | 2000-10-14 | 2002-04-18 | Goldman, Sachs & Company | Apparatus, methods and articles of manufacture for executing computerized transaction processes |
US20020046151A1 (en) * | 2000-10-14 | 2002-04-18 | Goldman, Sachs & Company | Computerized interface for constructing and executing computerized transaction processes and programs |
US20020046149A1 (en) * | 2000-10-14 | 2002-04-18 | Goldman, Sachs & Company | Apparatus, methods and articles of manufacture for constructing and executing computerized transaction processes and programs |
US20020046146A1 (en) * | 2000-10-14 | 2002-04-18 | Otero Hernan G. | Apparatus, methods and articles of manufacture for constructing and executing computerized transaction processes and programs |
US20020049661A1 (en) * | 2000-10-14 | 2002-04-25 | Goldman, Sachs & Company | Apparatus, methods and articles of manufacture for constructing and executing computerized transaction processes and programs |
US20020128950A1 (en) * | 2001-03-12 | 2002-09-12 | Michael Wu | Artificial intelligence based trading system |
US20030033235A1 (en) * | 2001-04-06 | 2003-02-13 | Henrik Hummelgren | Automated exchange system for trading orders having a hidden volume |
US20020194105A1 (en) * | 2001-05-18 | 2002-12-19 | Andrew Klein | Process of and system for trading securities and options and markets related thereto |
US20020174058A1 (en) * | 2001-05-18 | 2002-11-21 | Baghdady George J. | System for providing orders from a market analysis platform to the electronic communication network |
US20030093352A1 (en) * | 2001-10-15 | 2003-05-15 | Muralidhar Sanjay P. | Method, apparatus and program for evaluating financial trading strategies and portfolios |
US20030200167A1 (en) * | 2002-03-05 | 2003-10-23 | Kemp Gary Allen | System and method for performing automatic spread trading |
US20030236737A1 (en) * | 2002-06-19 | 2003-12-25 | Kemp Gary Allan | System and method for automated trading |
Cited By (141)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050160032A1 (en) * | 1996-12-13 | 2005-07-21 | Cantor Fitzgerald, L.P. | Automated price improvement protocol processor |
US20040044610A1 (en) * | 1996-12-13 | 2004-03-04 | Cantor Fitzgerald, L.P. (Cflp) | Automated auction protocol processor |
US9292865B2 (en) | 1996-12-13 | 2016-03-22 | Cantor Fitzgerald, L.P. Cfph, Llc | Dynamic keyboard for trading |
US20080071671A1 (en) * | 1999-04-30 | 2008-03-20 | Fraser Stuart A | Systems and methods for trading |
US8229831B2 (en) | 1999-04-30 | 2012-07-24 | Bgc Partners, Inc. | Systems and methods for trading |
US8224740B2 (en) | 1999-04-30 | 2012-07-17 | Bgc Partners, Inc. | Systems and methods for trading |
US20040210512A1 (en) * | 1999-04-30 | 2004-10-21 | Espeed, Inc. | Systems and methods for trading |
US8285614B2 (en) | 1999-04-30 | 2012-10-09 | Bgc Partners, Inc. | Systems and methods for trading |
US20090099973A1 (en) * | 2001-05-09 | 2009-04-16 | Gilbert Andrew C | Systems and methods for controlling traders from manipulating electronic trading markets |
US10223747B2 (en) | 2001-05-09 | 2019-03-05 | Bgc Partners, Inc. | Controlling traders from manipulating electronic trading markets |
US8725623B2 (en) | 2001-05-09 | 2014-05-13 | Bgc Partners, Inc. | Systems and methods for controlling traders from manipulating electronic trading markets |
US8738501B2 (en) | 2001-05-09 | 2014-05-27 | Bgc Partners, Inc. | Controlling traders from manipulating electronic trading markets |
US20080133401A1 (en) * | 2001-05-09 | 2008-06-05 | Gilbert Andrew C | Systems and methods for controlling traders from manipulating electronic trading markets |
US7853722B2 (en) | 2002-04-25 | 2010-12-14 | Oracle International Corporation | Simplified application object data synchronization for optimized data storage |
US8386646B2 (en) | 2002-04-25 | 2013-02-26 | Oracle International Corporation | Simplified application object data synchronization for optimized data storage |
US20090055434A1 (en) * | 2002-04-25 | 2009-02-26 | Oracle International Corporation | Simplified application object data synchronization for optimized data storage |
US20090055553A1 (en) * | 2002-04-25 | 2009-02-26 | Oracle International Corporation | Simplified application object data synchronization for optimized data storage |
US9805417B2 (en) | 2002-06-19 | 2017-10-31 | Trading Technologies International, Inc. | System and method for automated trading |
US20030236737A1 (en) * | 2002-06-19 | 2003-12-25 | Kemp Gary Allan | System and method for automated trading |
US7787489B2 (en) * | 2002-10-07 | 2010-08-31 | Oracle International Corporation | Mobile data distribution |
US20070177571A1 (en) * | 2002-10-07 | 2007-08-02 | Michael Caulfield | Mobile data distribution |
US8566212B2 (en) | 2002-10-31 | 2013-10-22 | Bgc Partners, Inc. | Electronic systems and methods for providing a trading interface with advanced features |
US10331344B2 (en) | 2002-10-31 | 2019-06-25 | Bgc Partners, Inc. | Keyboard trading system |
US11016662B2 (en) | 2002-10-31 | 2021-05-25 | Bgc Partners, Inc. | Keyboard trading system |
US11068980B2 (en) | 2002-10-31 | 2021-07-20 | Bgc Partners, Inc. | Electronic systems and methods for providing a trading interface with advanced features |
US8930256B2 (en) | 2002-10-31 | 2015-01-06 | Bgc Partners, Inc. | Keyboard trading system |
US20050108653A1 (en) * | 2003-11-17 | 2005-05-19 | Espeed, Inc. | Customizable trading display of market data |
US8131625B2 (en) * | 2003-11-17 | 2012-03-06 | Bgc Partners, Inc. | Customizable trading display of market data |
US20050108079A1 (en) * | 2003-11-17 | 2005-05-19 | Espeed, Inc. | Customizable trading display of market data |
US8131626B2 (en) | 2003-11-17 | 2012-03-06 | Bgc Partners, Inc. | Customizable trading display of market data |
US10379701B2 (en) | 2003-11-17 | 2019-08-13 | Bgc Partners, Inc. | Customizable trading display of market data |
US8214280B2 (en) * | 2003-12-30 | 2012-07-03 | Trading Technologies International, Inc. | System and method for coordinating automated and semi-automated trading tools |
US20220335524A1 (en) * | 2003-12-30 | 2022-10-20 | Trading Technologies International, Inc. | System and method for coordinating automated and semi-automated trading tools |
US20090192933A1 (en) * | 2003-12-30 | 2009-07-30 | Trading Technologies International, Inc. | System and Method for Coordinating Automated and Semi-Automated Trading Tools |
US20120239546A1 (en) * | 2003-12-30 | 2012-09-20 | Trading Technologies International, Inc. | System and Method for Coordinating Automated and Semi-Automated Trading Tools |
US7536328B2 (en) * | 2003-12-30 | 2009-05-19 | Trading Technologies International, Inc. | System and method for coordinating automated and semi-automated trading tools |
US10078869B2 (en) * | 2003-12-30 | 2018-09-18 | Trading Technologies International, Inc. | System and method for coordinating automated and semi-automated trading tools |
US11861706B2 (en) * | 2003-12-30 | 2024-01-02 | Trading Technologies International, Inc. | System and method for coordinating automated and semi-automated trading tools |
US20070100736A1 (en) * | 2003-12-30 | 2007-05-03 | Trading Technologies International, Inc. | System and method for coordinating automated and semi-automated trading tools |
US10672074B2 (en) * | 2003-12-30 | 2020-06-02 | Trading Technologies International, Inc. | System and method for coordinating automated and semi-automated trading tools |
US7536344B2 (en) * | 2003-12-30 | 2009-05-19 | Trading Technologies International, Inc. | System and method for coordinating automated and semi-automated trading tools |
US11410237B2 (en) * | 2003-12-30 | 2022-08-09 | Trading Technologies International, Inc. | System and method for coordinating automated and semi-automated trading tools |
US20050144112A1 (en) * | 2003-12-30 | 2005-06-30 | Trading Technologies International, Inc. | System and method for coordinating automated and semi-automated trading tools |
US8429059B2 (en) | 2004-06-08 | 2013-04-23 | Rosenthal Collins Group, Llc | Method and system for providing electronic option trading bandwidth reduction and electronic option risk management and assessment for multi-market electronic trading |
US7912781B2 (en) | 2004-06-08 | 2011-03-22 | Rosenthal Collins Group, Llc | Method and system for providing electronic information for risk assessment and management for multi-market electronic trading |
US20050273421A1 (en) * | 2004-06-08 | 2005-12-08 | Rosenthal Collins Group, L.L.C. | Method and system for providing electronic information for multi-market electronic trading |
US20090276373A1 (en) * | 2004-06-08 | 2009-11-05 | Rosenthal Collins Group, L.L.C. | Method and system for providing electronic information for risk assesement and management for multi-market electronic trading |
US11256329B2 (en) | 2004-06-21 | 2022-02-22 | Trading Technologies International, Inc. | Attention-based trading display for providing user-centric information updates |
US10698480B2 (en) | 2004-06-21 | 2020-06-30 | Trading Technologies International, Inc. | Attention-based trading display for providing user-centric information updates |
US10101808B2 (en) | 2004-06-21 | 2018-10-16 | Trading Technologies International, Inc. | Attention-based trading display for providing user-centric information updates |
US11693478B2 (en) | 2004-06-21 | 2023-07-04 | Trading Technologies International, Inc. | Attention-based trading display for providing user-centric information updates |
US20080162378A1 (en) * | 2004-07-12 | 2008-07-03 | Rosenthal Collins Group, L.L.C. | Method and system for displaying a current market depth position of an electronic trade on a graphical user interface |
US20060010066A1 (en) * | 2004-07-12 | 2006-01-12 | Rosenthal Collins Group, L.L.C. | Method and system for providing a graphical user interface for electronic trading |
US20060080223A1 (en) * | 2004-09-08 | 2006-04-13 | Rosenthal Collins Group, Llc. | Method and system for providing automatic execution of trading strategies for electronic trading |
US8145553B2 (en) | 2004-10-18 | 2012-03-27 | Trading Technologies International Inc. | Flexible system and method for electronic trading |
US8386359B2 (en) | 2004-10-18 | 2013-02-26 | Trading Technologies International, Inc. | Flexible system and method for electronic trading |
US7742974B2 (en) * | 2004-10-18 | 2010-06-22 | Trading Technologies International Inc. | Flexible system and method for electronic trading |
US8682775B2 (en) | 2004-10-18 | 2014-03-25 | Trading Technologies International, Inc. | Flexible system and method for electronic trading |
US20100228662A1 (en) * | 2004-10-18 | 2010-09-09 | Trading Technologies International Inc. | Flexible System and Method for Electronic Trading |
US20060085320A1 (en) * | 2004-10-18 | 2006-04-20 | Trading Technologies International, Inc. | Flexible system and method for electronic trading |
US10885584B2 (en) | 2004-10-18 | 2021-01-05 | Trading Technologies International, Inc. | Flexible system and method for electronic trading |
US12073462B2 (en) | 2004-10-18 | 2024-08-27 | Trading Technologies International, Inc. | Flexible system and method for electronic trading |
US20110166984A1 (en) * | 2004-10-18 | 2011-07-07 | Trading Technologies International Inc. | Flexible System and Method for Electronic Trading |
US7930233B2 (en) | 2004-10-18 | 2011-04-19 | Trading Technologies International Inc. | Flexible system and method for electronic trading |
US20060253373A1 (en) * | 2004-11-01 | 2006-11-09 | Rosenthal Collins Group, Llc. | Method and system for providing multiple graphic user interfaces for electronic trading |
US10592984B2 (en) | 2005-03-24 | 2020-03-17 | Bgc Partenrs, Inc. | Systems and methods for protecting against erroneous price entries in the electronic trading of financial and other instruments |
US8219480B2 (en) | 2005-03-24 | 2012-07-10 | Bgc Partners, Inc. | Systems and methods for protecting against erroneous price entries in the electronic trading of financial and other instruments |
US11397987B2 (en) | 2005-03-24 | 2022-07-26 | Bgc Partners, Inc. | Systems and methods for protecting against erroneous price entries in the electronic trading of financial and other instruments |
US20060218072A1 (en) * | 2005-03-24 | 2006-09-28 | Espeed, Inc. | Systems and methods for protecting against erroneous price entries in the electronic trading of financial and other instruments |
US7801801B2 (en) | 2005-05-04 | 2010-09-21 | Rosenthal Collins Group, Llc | Method and system for providing automatic execution of black box strategies for electonic trading |
US8364575B2 (en) | 2005-05-04 | 2013-01-29 | Rosenthal Collins Group, Llc | Method and system for providing automatic execution of black box strategies for electronic trading |
US8589280B2 (en) | 2005-05-04 | 2013-11-19 | Rosenthal Collins Group, Llc | Method and system for providing automatic execution of gray box strategies for electronic trading |
US20080288391A1 (en) * | 2005-05-31 | 2008-11-20 | Rosenthal Collins Group, Llc. | Method and system for automatically inputting, monitoring and trading spreads |
US20070088658A1 (en) * | 2005-09-30 | 2007-04-19 | Rosenthal Collins Group, L.L.C. | Method and system for providing accounting for electronic trading |
US20070083458A1 (en) * | 2005-10-11 | 2007-04-12 | Rosenthal Collins Group, L.L.C. | Method and system for providing a graphical user interface and trading system for professional electronic trading |
US7734533B2 (en) | 2005-11-13 | 2010-06-08 | Rosenthal Collins Group, Llc | Method and system for electronic trading via a yield curve |
US20070112665A1 (en) * | 2005-11-13 | 2007-05-17 | Rosenthal Collins Group, L.L.C. | Method and system for electronic trading via a yield curve |
US7849000B2 (en) | 2005-11-13 | 2010-12-07 | Rosenthal Collins Group, Llc | Method and system for electronic trading via a yield curve |
US8121929B2 (en) | 2006-01-09 | 2012-02-21 | Bgc Partners, Inc. | Apparatus and methods for automatic trade execution in a trading system |
US20070244795A1 (en) * | 2006-01-09 | 2007-10-18 | Lutnick Howard W | Systems and methods for establishing first on the follow trading priority in electronic trading systems |
US8229832B2 (en) | 2006-01-09 | 2012-07-24 | Bgc Partners, Inc. | Systems and methods for establishing first on the follow trading priority in electronic trading systems |
US20070244796A1 (en) * | 2006-01-09 | 2007-10-18 | Lutnick Howard W | Systems and methods for establishing first on the follow trading priority in electronic trading systems |
US8117109B2 (en) | 2006-01-09 | 2012-02-14 | Bgc Partners, Inc. | Systems and methods for establishing first on the follow trading priority in electronic trading systems |
US20080077652A1 (en) * | 2006-09-06 | 2008-03-27 | Credit Suisse Securities (Usa) Llc One Madison Avenue | Method and system for providing an enhanced service-oriented architecture |
US8826289B2 (en) | 2007-03-26 | 2014-09-02 | Vmware, Inc. | Method and system for managing virtual and real machines |
US20080244579A1 (en) * | 2007-03-26 | 2008-10-02 | Leslie Muller | Method and system for managing virtual and real machines |
US8171485B2 (en) | 2007-03-26 | 2012-05-01 | Credit Suisse Securities (Europe) Limited | Method and system for managing virtual and real machines |
US9652267B2 (en) | 2007-03-26 | 2017-05-16 | Vmware, Inc. | Methods and systems for managing virtual and real machines |
US20080244607A1 (en) * | 2007-03-27 | 2008-10-02 | Vladislav Rysin | Economic allocation and management of resources via a virtual resource market |
US20090119673A1 (en) * | 2007-11-06 | 2009-05-07 | Credit Suisse Securities (Usa) Llc | Predicting and managing resource allocation according to service level agreements |
US20100010937A1 (en) * | 2008-04-30 | 2010-01-14 | Rosenthal Collins Group, L.L.C. | Method and system for providing risk assessment management and reporting for multi-market electronic trading |
US20090281770A1 (en) * | 2008-05-09 | 2009-11-12 | Yatko Steven W | Platform matching systems and methods |
US8219358B2 (en) | 2008-05-09 | 2012-07-10 | Credit Suisse Securities (Usa) Llc | Platform matching systems and methods |
US8972223B2 (en) | 2008-05-09 | 2015-03-03 | Credit Suisse Securities (Usa) Llc | Platform matching systems and methods |
US20090307121A1 (en) * | 2008-06-09 | 2009-12-10 | Lutnick Howard W | Trading system products and processes |
WO2009152318A1 (en) * | 2008-06-11 | 2009-12-17 | Credit Suisse Securities (Usa) Llc | Hardware accelerated exchange order routing appliance |
US20090313160A1 (en) * | 2008-06-11 | 2009-12-17 | Credit Suisse Securities (Usa) Llc | Hardware accelerated exchange order routing appliance |
US10380688B2 (en) | 2008-07-28 | 2019-08-13 | Trading Technologies International, Inc. | System and method for dynamically managing message flow |
US11769203B2 (en) | 2008-07-28 | 2023-09-26 | Trading Technologies International, Inc. | System and method for dynamically managing message flow |
US9639896B2 (en) | 2008-07-28 | 2017-05-02 | Trading Technologies International, Inc. | System and method for dynamically managing message flow |
US8868776B2 (en) | 2008-07-28 | 2014-10-21 | Trading Technologies International, Inc. | System and method for dynamically managing message flow |
US20100023645A1 (en) * | 2008-07-28 | 2010-01-28 | Trading Technologies International, Inc. | System and Method for Dynamically Managing Message Flow |
US8131868B2 (en) | 2008-07-28 | 2012-03-06 | Trading Technologies International, Inc. | System and method for dynamically managing message flow |
US20110040890A1 (en) * | 2008-07-28 | 2011-02-17 | Trading Technologies International, Inc. | System and Method for Dynamically Managing Message Flow |
WO2010014532A1 (en) * | 2008-07-28 | 2010-02-04 | Trading Technologies International, Inc. | System and method for dynamically managing message flow |
US11257159B2 (en) | 2008-07-28 | 2022-02-22 | Trading Technologies International, Inc. | System and method for dynamically managing message flow |
US10733670B2 (en) | 2008-07-28 | 2020-08-04 | Trading Technologies International, Inc. | System and method for dynamically managing message flow |
US7844726B2 (en) | 2008-07-28 | 2010-11-30 | Trading Technologies International, Inc. | System and method for dynamically managing message flow |
US20100057626A1 (en) * | 2008-09-04 | 2010-03-04 | Lutnick Howard W | Cancellation timing in an electronic marketplace |
US8712903B2 (en) | 2008-09-25 | 2014-04-29 | Cfph, Llc | Trading related to fund compositions |
US20100076896A1 (en) * | 2008-09-25 | 2010-03-25 | Lutnick Howard W | Substitutability of financial instruments |
US20100076884A1 (en) * | 2008-09-25 | 2010-03-25 | Lutnick Howard W | Trading related to fund compositions |
US11068983B2 (en) | 2008-09-25 | 2021-07-20 | Cfph, Llc | Method and system for order management |
US20100076883A1 (en) * | 2008-09-25 | 2010-03-25 | Lutnick Howard W | Generating risk pools |
US20100082495A1 (en) * | 2008-09-28 | 2010-04-01 | Lutnick Howard W | Trading system accessibility |
US20100082500A1 (en) * | 2008-09-28 | 2010-04-01 | Lutnick Howard W | Interaction with trading systems |
US8321323B2 (en) * | 2008-10-24 | 2012-11-27 | Cfph, Llc | Interprogram communication using messages related to order cancellation |
US20100106636A1 (en) * | 2008-10-24 | 2010-04-29 | Lutnick Howard W | Interprogram communication using messages related to order cancellation |
US8560431B2 (en) * | 2008-10-24 | 2013-10-15 | Cfph, Llc | Order cancellation |
US10817939B2 (en) | 2009-01-23 | 2020-10-27 | Cfph, Llc | Interprogram communication using messages related to groups of orders |
US20100191637A1 (en) * | 2009-01-23 | 2010-07-29 | Alderucci Dean P | Interprogram communication using messages related to groups of orders |
US20100191638A1 (en) * | 2009-01-23 | 2010-07-29 | Alderucci Dean P | Multicomputer distributed processing of data related to automation of trading |
US8977565B2 (en) | 2009-01-23 | 2015-03-10 | Cfph, Llc | Interprogram communication using messages related to groups of orders |
US11068981B2 (en) | 2009-05-19 | 2021-07-20 | Trading Technologies International, Inc. | System and method for displaying trade information for electronic trading exchange |
US12008647B2 (en) | 2009-05-19 | 2024-06-11 | Trading Technologies International, Inc. | System and method for displaying trade information for electronic trading exchange |
US9741076B2 (en) | 2009-05-19 | 2017-08-22 | Trading Technologies International, Inc. | System and method for displaying trade information for electronic trading exchange |
US20100299280A1 (en) * | 2009-05-19 | 2010-11-25 | Richard Lane | System and Method for Displaying Trade Information for Electronic Trading Exchange |
US11640638B2 (en) | 2009-05-19 | 2023-05-02 | Trading Technologies International, Inc. | System and method for displaying trade information for electronic trading exchange |
US8744945B2 (en) | 2009-05-19 | 2014-06-03 | Trading Technologies International, Inc. | System and method for displaying trade information for electronic trading exchange |
US20100332368A1 (en) * | 2009-06-30 | 2010-12-30 | Alderucci Dean P | Multicomputer distributed processing of data regarding trading opportunities |
US11138663B2 (en) | 2012-12-31 | 2021-10-05 | Trading Technologies International, Inc. | User definable prioritization of market information |
US11593880B2 (en) | 2012-12-31 | 2023-02-28 | Trading Technologies International, Inc. | User definable prioritization of market information |
US11869086B2 (en) | 2012-12-31 | 2024-01-09 | Trading Technologies International, Inc. | User definable prioritization of market information |
US10467691B2 (en) | 2012-12-31 | 2019-11-05 | Trading Technologies International, Inc. | User definable prioritization of market information |
US11354737B2 (en) | 2013-03-15 | 2022-06-07 | Trading Technologies International, Inc. | Trading circles |
US10102576B2 (en) | 2013-03-15 | 2018-10-16 | Trading Technologies International, Inc. | Trading circles |
US11823268B2 (en) | 2013-03-15 | 2023-11-21 | Trading Technologies International, Inc. | Trading circles |
US10460387B2 (en) | 2013-12-18 | 2019-10-29 | Trading Technologies International, Inc. | Dynamic information configuration and display |
US11176611B2 (en) | 2013-12-18 | 2021-11-16 | Trading Technologies International, Inc. | Dynamic information configuration and display |
US10163157B2 (en) | 2014-06-17 | 2018-12-25 | Intercontinental Exchange Holdings, Inc. | Trading opportunities based on public ticker data |
US12131382B2 (en) | 2023-08-08 | 2024-10-29 | Trading Technologies International, Inc. | System and method for dynamically managing message flow |
Also Published As
Publication number | Publication date |
---|---|
US20180018437A1 (en) | 2018-01-18 |
WO2004001653A1 (en) | 2003-12-31 |
US20030236737A1 (en) | 2003-12-25 |
AU2003278384A1 (en) | 2004-01-06 |
US9805417B2 (en) | 2017-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180018437A1 (en) | System and Method for Automated Trading | |
US20210103985A1 (en) | System and Method for Performing Automatic Spread Trading | |
US20190295170A1 (en) | Click Based Trading with Market Depth Display | |
US8738510B2 (en) | System and method for money management using a plurality of profit levels in an electronic trading environment | |
US8751368B2 (en) | System and method for dynamically regulating order entry in an electronic trading environment | |
US8099348B2 (en) | System and method for creating a market map in an electronic trading environment | |
CA2622993A1 (en) | Order placement in an electronic trading environment | |
US7849001B2 (en) | Method, apparatus and interface for transaction toggling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: TRADING TECHNOLOGIES INTERNATIONAL, INC., ILLINOIS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KEMP, GARY ALLAN, II;EBERSOLE, JOAN;KLINE, ROBERT J.;SIGNING DATES FROM 20021029 TO 20021119;REEL/FRAME:031550/0080 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |