U.S. Pat. No. 8,469,808

System and method for managing a game controller device for electronic trading

AssigneeBGC Partners, Inc.

Issue DateJune 29, 2005

Illustrative Figure

Abstract

According to one embodiment, a method for electronic trading is provided. A plurality of controller signal relationships are stored, each controller signal relationship associating one or more game controller signals with a trading system command associated with the electronic trading of financial instruments via a trading platform. One or more game controller signals generated by a game controller are received and at least one of the plurality of controller signal relationships is modified based at least on the one or more received game controller signals.

Description

DETAILED DESCRIPTION OF THE DRAWINGS Example embodiments of the present invention and their advantages are best understood by referring now toFIGS. 1 through 5of the drawings, in which like numerals refer to like parts. In general, a game controller device, such as a gamepad or joystick, is used to interface with an electronic trading system, such as to place orders to buy or sell financial instruments, for example. Configurations for various types and/or models of game controllers may be stored and managed such that different types and/or models of game controllers may be used interchangeably at a user terminal. In addition, a game controller may be configurable such that a user may configure the game controller as he or she desires. FIG. 1illustrates an example trading system10in which a user may engage in trading activity using a game controller device according to an embodiment of the present invention. As shown, trading system10includes a number of user terminals12coupled to a trading platform14by a communications network16. User terminals12provide users22access to engage in trading activity via trading platform14. A user22is any entity, such as an individual, group of individuals or firm, that engages in trading activity via trading system10. Trading platform14is a trading architecture that facilitates the electronic trading of financial instruments, such as stocks or other equity securities, bonds, mutual funds, options, futures, derivatives, and currencies, for example, or any other suitable instruments, goods or services between users22. Trading platform14may be a computer, a server, a management center, a single workstation, or a headquartering office for any person, business, or entity that seeks to manage trading between users22of trading system10. Accordingly, trading platform14may include any suitable hardware, software, personnel, devices, components, elements, or objects that may be utilized or implemented to achieve the operations and functions of an administrative body or a ...

DETAILED DESCRIPTION OF THE DRAWINGS

Example embodiments of the present invention and their advantages are best understood by referring now toFIGS. 1 through 5of the drawings, in which like numerals refer to like parts.

In general, a game controller device, such as a gamepad or joystick, is used to interface with an electronic trading system, such as to place orders to buy or sell financial instruments, for example. Configurations for various types and/or models of game controllers may be stored and managed such that different types and/or models of game controllers may be used interchangeably at a user terminal. In addition, a game controller may be configurable such that a user may configure the game controller as he or she desires.

FIG. 1illustrates an example trading system10in which a user may engage in trading activity using a game controller device according to an embodiment of the present invention. As shown, trading system10includes a number of user terminals12coupled to a trading platform14by a communications network16. User terminals12provide users22access to engage in trading activity via trading platform14. A user22is any entity, such as an individual, group of individuals or firm, that engages in trading activity via trading system10.

Trading platform14is a trading architecture that facilitates the electronic trading of financial instruments, such as stocks or other equity securities, bonds, mutual funds, options, futures, derivatives, and currencies, for example, or any other suitable instruments, goods or services between users22. Trading platform14may be a computer, a server, a management center, a single workstation, or a headquartering office for any person, business, or entity that seeks to manage trading between users22of trading system10. Accordingly, trading platform14may include any suitable hardware, software, personnel, devices, components, elements, or objects that may be utilized or implemented to achieve the operations and functions of an administrative body or a supervising entity that manages or administers a trading environment.

Trading platform14may be operable to receive trading orders from users22and to manage or process those trading orders such that financial transactions between users22may be performed. Trading platform14may have a link or a connection to a market trading floor, or some other suitable coupling to any suitable element that allows for such transactions to be executed.

Communications network16is a communicative platform operable to exchange data or information between trading platform14and user terminals30. Communications network16represents an Internet architecture in a particular embodiment of the present invention, which provides users22with the ability to electronically execute trades or initiate transactions to be delivered to an authorized exchange trading floor. In other embodiments, communications system14could be any packet data network (PDN) offering a communications interface or exchange between trading platform14and user terminals30. Communications network16may alternatively be any local area network (LAN), metropolitan area network (MAN), wide area network (WAN), wireless local area network (WLAN), virtual private network (VPN), intranet, or any other appropriate architecture or system that facilitates communications in a network environment.

A user terminal12may include a computer system and appropriate software to allow user22to engage in trading activity via trading platform14. As used in this document, the term “computer” refers to any suitable device operable to accept input, process the input according to predefined rules, and produce output, for example, a personal computer, workstation, network computer, wireless data port, wireless telephone, personal digital assistant, one or more processors within these or other devices, or any other suitable processing device.

As shown inFIG. 1, a user terminal12may include a terminal body30, a display device32, and a game controller input device34. User terminal12may also include one or more additional input devices36, such as a keyboard38and a mouse40. Display device32may be any suitable device for displaying information to a user22, such as an internal notebook display, a CRT monitor, or a television, for example.

Terminal body30includes a processing unit46and a memory unit48that stores an interface application50, which is discussed below. Processing unit46may process data associated with trading system10, which may include executing coded instructions associated with interface application50. Memory unit48may be coupled to data processing unit46and may include one or more databases and other suitable memory devices, such as one or more random access memories (RAMs), read-only memories (ROMs), dynamic random access memories (DRAMs), fast cycle RAMs (FCRAMs), static RAM (SRAMs), field-programmable gate arrays (FPGAs), erasable programmable read-only memories (EPROMs), electrically erasable programmable read-only memories (EEPROMs), microcontrollers, or microprocessors.

Terminal body30also includes one or more input ports54, each of which provides an interface for coupling game controller input device34, one or more additional input devices36and/or other peripheral devices to interface application50. Input ports54may include various types of interfaces, such as USB type ports (such as USB type I or type II ports, for example), keyboard ports, mouse ports, serial ports, parallel ports, or Bluetooth™ or FireWire™ ports, for example. In the example embodiment shown inFIG. 1, terminal body30includes a mouse port56for mouse40, a keyboard port58for keyboard38, a serial port60, and a USB type port62. In this embodiment, game controller device34may be coupled to either serial port60or USB type port62, depending on the type of cable and/or plug provided by the game controller device34.

In addition, keyboard38may include one or more input ports64that allow other input devices to be plugged into keyboard38. Signals generated by an input device connected to an input port64provided by keyboard38are routed through keyboard38and keyboard port58to which keyboard38is coupled. In the embodiment shown inFIG. 1, keyboard38is a customized keyboard38designed for electronic trading applications, and includes a serial port68and a USB type port70. In some embodiments, a particular game controller device34may be able to be coupled directly to an input port54of terminal body30, or to an input port66of keyboard38, which is in turn connected to keyboard port58of terminal body30. In the embodiment shown inFIG. 1, game controller device34includes a USB cable72which may be plugged into USB type port70of keyboard38or directly into USB type port62of terminal body30(as shown by dotted line74). Alternatively, game controller device34may communicate with interface application50at least in part via wireless communications. For example, as shown inFIG. 1, game controller device34may include a wireless transceiver76that may communicate wirelessly with a wireless transceiver78associated with terminal body30. Such wireless communications may utilize any suitable wireless communications protocol or protocols. In particular embodiments, communications between wireless transceiver76and wireless transceiver78are communicated according to one or more secure wireless communication protocols or WLAN protocols, such as portions or all of the Wired Equivalent Privacy (WEP) protocol, the Robust Security Network (RSN) associated with the IEEE 802.11i protocol, the Advanced Encryption Standard (AES), the Temporal Key Integrity Protocol (TKIP), Extensible Authentication Protocol over LAN (EAPoL) algorithms or protocols (such as EAP-TTLS, PEAP, or CISCO's LEAP or EAP-FAST protocols, for example), WiFi Protected Access (WPA) protocol, or WiFi Protected Access Version 2 (WPA2) protocol, for example.

Game controller input device34may be any of a variety of input devices used in connection with video or computer gaming, such as a handheld video game controller, a joystick or a gamepad, for example. Some game controller devices34include a number of buttons as well as one or more joysticks or directional pads (D-pads). The depression or manipulation of such buttons, joysticks and/or D-pads by a user22generates game controller signals which may be received and interpreted by interface application50in order to generate commands related to the functions of trading system10, as discussed below. Similarly, keyboard38and mouse40may generate keyboard signals and mouse signals, respectively, which may be received and interpreted by interface application50in order to generate commands related to the functions of trading system10.

Interface application50includes one or more applications and modules that provide interfaces that allow user22to communicate with trading platform14using various input devices34and display device32. For example, such applications and modules may include graphical user interface (GUI) applications that generate displays of information on display device32, receive and interpret commands from input devices34in order to cause changes to the active display on display device32and to generate and send messages to trading platform14, and receive and interpret messages from trading platform14in order to cause changes to the active display on display device32and/or to generate and send messages to input devices34. Interface application50may include any suitable software or coded instructions for providing at least the various functionality discussed herein with reference to interface application50.

In the embodiment shown inFIG. 1, interface application50includes a mapping module80and a configuration module81. Mapping module80defines various relationships for mapping signals received from various input devices34with various commands regarding trading system10. Mapping module80includes controller signal relationships82, keyboard signal relationships84, and mouse signal relationships86. Each controller signal relationship82associates a game controller signal generated by a game controller device34with a trading system command associated with trading system10. Each trading system command may be a control instruction to alter or manipulate the current display shown on display device32(such as an instruction to move a cursor across the display32, for example) and/or a trading instruction that may be communicated to or from trading platform14(such as an instruction to buy, sell, or increase a price, for example).

Mapping module80may include sets of such controller signal relationships82for various types or models of game controller devices34, as well as for various users22. Thus, if more than one type or model of game controller device34is used with a particular user terminal30, controller signal relationships82specific to each type or model of game controller device34may be stored in and retrieved from mapping module80. In addition, if more than one user22uses a particular user terminal30, controller signal relationships82specific to each such user may be stored in and retrieved from mapping module80. The controller signal relationships82for each type or model of game controller device34and/or for each user22may be configurable or reconfigurable such that each user22may create his or her own desired configuration. In addition, each type or model of game controller device34may have a default configuration of controller signal relationships82maintained by mapping module80. In an example embodiment, game controller signals may be communicated according to a MICROSOFT DirectX™ protocol. In such an embodiment, mapping module80may include algorithms or other software functionality for mapping the received DirectX™ game controller signals to trading system commands that may be communicated to and understood by trading platform14.

Similar to controller signal relationships82, each keyboard signal relationship84associates a keyboard signal generated by a keyboard38with a trading system command associated with trading system10. Similarly, each mouse signal relationship86associates a mouse signal generated by a mouse40with a trading system command associated with trading system10.

Mapping module80may also include one or more sets of feedback signal relationships88, each associating a signal generated by trading platform14with a controller feedback command. Controller feedback commands are commands that may be used by game controller device34to provide feedback to a user22of game controller device34. For example, controller feedback commands may include commands which cause game controller device34to rumble (i.e., vibrate) or light up. In one embodiment, feedback signal relationships88for a particular game controller device34include a relationship between an “executed trade” signal generated by trading platform14and a “rumble” command for game controller device34. Thus, when trading platform14executes a trade involving a user22, trading platform14generates and communicates an “executed trade” signal to interface application50, which translates the signal into a “rumble” command and communicates the “rumble” command to game controller device34, thus causing the game controller device34to vibrate.

Configuration module81cooperates with mapping module80to allow users22to configure (or generate) and/or reconfigure various controller signal relationships82. In some embodiments, configuration module81provides a controller configuration GUI on display device32that allows a user22to configure, or generate, a set of controller signal relationships82associated with an unconfigured game controller device34, as well as to reconfigure the set of controller signal relationships82associated with a previously configured game controller device34. In a particular embodiment, the controller signal relationships82associated with a game controller device34may be reconfigured any number of times.

Mapping module80and configuration module81may include all or portions of the software or coded instructions associated with interface application50. Mapping module80and configuration module81may also be partially or completely integrated. In addition, multiple instances of mapping module80and/or configuration module81may be provided by application50.

FIG. 2illustrates an example game controller device34for use in trading system10. Game controller device34is a gamepad that includes a D-pad, a pair of joysticks (Joystick A and Joystick B), and nine buttons (Button A through Button J).FIG. 3illustrates a table90that specifies example default controller signal relationships82for the game controller device34ofFIG. 2in accordance with one embodiment of the invention. As shown inFIG. 3, each controller signal relationship82is a relationship between the signal(s) produced by the manipulation of one or more gamepad controls and a trading system command. In this particular embodiment, a pair of buttons—buttons “G” and “H”—located on a front surface92of game controller device34correspond with the commands “Buy” and “Sell,” respectively. Thus, a user22may quickly and easily enter “Buy” and “Sell” commands using his or her index fingers.

FIG. 4illustrates an example method of a user22engaging in electronic trading via trading platform14using the game controller device34shown inFIG. 2and configured as described above according to an embodiment of the present invention. In this embodiment, the game controller device34is connected to a serial port68provided by a keyboard38at a user terminal12, which in turn is connected to a keyboard port58of the terminal body30of the user terminal12. Thus, game controller signals generated by game controller device34are routed to application50via keyboard38.

At step100, mapping module80of interface application50manages various sets of controller signal relationships82, keyboard relationships84, and mouse relationships86which map input signals with commands associated with trading activity within trading system10. The controller signal relationships82include the set of relationships shown inFIG. 3, which are the specific to the type and model of game controller device34. At step102, the appropriate set of controller signal relationships82for game controller device34are identified from mapping module80. This may involve any suitable steps or processes. For example, interface application50may automatically identify the type and/or model of game controller device34based on signals or messages received from game controller device34, such as a control message, for example. As another example, the user22may identify the type and/or model of game controller device34using a GUI displayed to the user22by interface application50, such as by selecting the appropriate type and/or model from a list of different game controller device types and/or models. In addition, if user22had previously reconfigured the controller signal relationships82for game controller device34, interface application50may identify the appropriate controller signal relationships82for user22and game controller device34. For example, interface application50may identify user22(such as from a user ID entered by user22, for example) and present to the user22a display listing one or more sets of controller signal relationships82that have been stored at mapping module80in association with user22. User22may then select from the list the desired set of controller signal relationships82.

At step104, user22initiates a game controller signal by moving the D-pad or joysticks and/or depressing one or more buttons of game controller device34. At step106, the game controller signal is communicated from game controller device34to application50via serial port68, keyboard38, and keyboard port58. At step108, interface application50determines the trading system command associated with the received game controller signal using the appropriate controller signal relationships82identified at step102, and acts accordingly. At step110, interface application50determines whether the determined trading system command is a control instruction to alter or manipulate the current display shown on display device32or a trading instruction to be communicated to trading platform14. If the trading system command is a control instruction, interface application50generates the control instruction at step112, which results in the appropriate change or manipulation to the current display. For example, if the game controller signal was generated by user22moving Joystick A (which is associated with a “move cursor” command, as shown inFIG. 3), interface application50will cause the cursor to be moved around the screen.

Alternatively, if the trading system command is a trading instruction, interface application50generates and communicates the appropriate trading instruction to trading platform14at step114. The appropriate action is taken by trading platform14in response to the received trading instruction at step116. For example, if the game controller signal was generated by user22depressing both Button7and Button6(which is associated with a “bid” command, as shown inFIG. 3), interface application50will generate and communicate to trading platform14an instruction to place a particular bid for user22at step114, and trading platform14will receive the instruction and place the bid on trading platform14at step116. Steps104through116are repeated as user22continues to interact with interface application50using game controller device34in order to engage in trading activity with trading platform14.

At step118, trading platform14executes a trade between a buy order placed by user22and a sell order placed by another user22of trading system10. At step120, trading platform14generates and communicates to interface application50a signal indicating that the buy order was executed for user22. At step122, interface application50determines, using appropriate feedback signal relationships88, that the received signal is associated with a “rumble” controller feedback command. At step124, interface application50communicates the “rumble” command to game controller device34, which causes game controller device34to rumble, or vibrate.

FIG. 5illustrates an example method of configuring and reconfiguring the controller signal relationships82associated with a game controller device34according to one embodiment of the invention. At step150, interface application identifies that a game controller device34connected to terminal body30is not configured. At step152, configuration module81provides a controller configuration GUI on display device32that allows user22to configure, or generate, a set of controller signal relationships82for the unconfigured game controller device34. At step154, user22generates and communicates configuration instructions to configuration module81via the controller configuration GUI, such as by making selections using the game controller device34or another input device36, such as a keyboard38or mouse40. At step156, configuration module81generates controller signal relationships82, which are stored by mapping module80in association with the game controller device34and/or user22. At step158, user22engages in trading via trading platform14using the configured game controller device34.

At some subsequent time, user22wishes to reconfigure one or more of the controller signal relationships82for the game controller device34. At step160, user22submits a request to reconfigure controller signal relationships82for game controller device34. At step162, configuration module81provides a controller reconfiguration GUI on display device32that allows user22to reconfigure the existing set of controller signal relationships82for the game controller device34. The controller reconfiguration GUI may be similar or identical to the controller configuration GUI discussed above with reference to step152. At step164, user22generates and communicates reconfiguration instructions to configuration module81via the controller reconfiguration GUI, such as by making selections using the game controller device34or another input device36, such as a keyboard38or mouse40. At step166, configuration module81reconfigures, or changes, one or more controller signal relationships82, which changes are then stored by mapping module80. At step168, user22engages in trading via trading platform14using the reconfigured game controller device34.

Modifications, additions, or omissions may be made to the method without departing from the scope of the invention. Additionally, steps may be performed in any suitable order without departing from the scope of the invention.

Detecting Erroneous Game Controller Inputs

In some embodiments, interface application50is capable of identifying and/or managing erroneous game controller signals received from a game controller device34. In general, interface application50may identify erroneous received game controller signals based on a set of stored controller signal relationships82between game controller signals generated by a game controller device34and trading system commands associated with trading system10. As discussed above, game controller signals may be generated by manipulations of a game controller device34, such as pressing one or more buttons and/or moving one or more joysticks or D-pads in particular directions, for example. Erroneous signals that may be identified by interface application50may include, for example, (1) game controller signals that do not correspond with any trading system command stored in the set of controller signal relationships82; (2) game controller signals that correspond (based on controller signal relationships82) with a trading system command that is invalid in a particular trading situation; and (3) game controller signals that are followed by one or more subsequent game controller signals received from the game controller in order to cancel or undo the original game controller signals (or the trading system command associated with the original game controller signals). For example, suppose interface application50receives from a game controller device34game controller signals generated by a user simultaneously depressing button “B” and moving joystick “A” to an upper-left position. Interface application50may determine that this combination of game controller signals does not correspond with any trading system command stored in a set of controller signal relationships82maintained by mapping module, and that the received game controller signals are thus erroneous. As another example, interface application50may determine that, based on a particular controller signal relationship82, this combination of game controller signals corresponds with a trading system command that is invalid in the particular current trading situation, and that the received game controller signals are thus invalid. For instance, the received game controller signals may correspond with a “Buy” command, which command may be invalid or improper in the current state of the user's trading activity. As yet another example, interface application50may receive from the game controller device34one or more subsequent game controller signals that correspond, based on one or more controller signal relationships82, with a command to undo or cancel the original game controller signals. Thus, interface application50may determine that the original game controller signals were erroneous.

After one or more erroneous game controller signals are identified, configuration module81may modify one or more of the stored game controller relationships82, thus effectively recalibrating particular aspects of the game controller. In some embodiments, if one or more erroneous game controller signals are identified, configuration module81may generate and/or communicate a message to the user22of the game controller device34(such as via a display device32, for example). Such message may (1) indicate that erroneous signals were received, (2) query the user22regarding the user's intent with respect to the erroneous signals, and/or (3) propose a modification of one or more game controller relationships82.

In certain embodiments, interface application50may determine, based on the received erroneous game controller signals and the set of game controller relationships82, one or more particular trading system commands that the user22may have intended to select. For example, again supposing game controller signals generated by depressing button “B” and moving joystick “A” to an upper-left position are received and determined erroneous, interface application50may determine that the user22may have intended to select (a) an “increase order by 5 units” trading system command corresponding with depressing button “B” and moving joystick “A” to an upper position, or (b) a “decrease bid price by 1 tick” trading system command corresponding with depressing button “B” and moving joystick “A” to a leftward position. Interface application50may utilize any suitable algorithms or methodology to determine such potentially-intended trading system commands. For example, application50may process prior trading history associated with the particular user to make the determination. In addition, interface application50may use other parameters associated with the current trade to make this determination.

Such identified potentially-intended trading system commands may be listed in the message communicated to user22. For example, the message may list the identified potentially-intended trading system commands and ask the user22whether the user22intended to select one of such commands. In addition, for each identified trading system command, the message may propose a modification of the corresponding game controller relationship82that would map that identified trading system command to the game controller signals received from the user22. Thus, continuing the example discussed above, the message communicated to the user22may include the following proposed modifications to game controller relationships82:(a) mapping the signals generated by depressing button “B” and moving joystick “A” to an upper-left position with the “increase order by 5 units” trading system command (currently mapped to depressing button “B” and moving joystick “A” to an upper position, as discussed above); and(b) mapping the signals generated by depressing button “B” and moving joystick “A” to an upper-left position with the “decrease bid price by 1 tick” trading system command (currently mapped to depressing button “B” and moving joystick “A” to a leftward position, as discussed above).

If the user22responds to the message (such as via the game controller device34) by selecting one of the proposed mapping modifications, configuration module81may implement the proposed modification to the relevant game controller relationship82. In this manner, interface application50may monitor a user's behavior, detect erroneous inputs from the user, and propose and implement recalibrations of the user's game controller device34.

Interface application50may store game controller signals received from one or more game controller devices34in one or more signal logs180. In some embodiments, interface application50identifies erroneous game controller signals received from a game controller device34based on game controller signals stored in an associated signal log180. In addition, configuration module81may modify one or more controller signal relationships82, or propose modifications of one or more controller signal relationships82, based on an analysis of one or more signal logs180. For example, configuration module81may modify or propose a modification of a particular controller signal relationship82if a particular number or frequency of erroneous signals are identified in a signal log180. In some embodiments, if interface application50determines based on signal log180that a particular erroneous signal has been received from a game controller device34a number of times or with a frequency that equals or exceeds a predetermined numerical threshold, configuration module81of interface application50may communicate to the user22of the game controller device34a message indicating a proposed modification of one or more particular controller signal relationships82.

For example, if game controller signals stored in a signal log180indicate that a user has erroneously moved a joystick to the down-right position rather than the straight-down position when attempting to implement a particular trading command more than a threshold number of times (say, for example, 10 times) or more than a threshold frequency (say, for example, twice per hour), configuration module81may communicate to the user22of the game controller device34a message indicating a proposed modification of a particular controller signal relationship82in order to correspond the particular trading command with the down-right position (rather than the straight-down position) of the joystick. Such message may be communicated to the user22via a display device32, for example. If the user22communicates a response to the message that indicates an acceptance of the proposed modification of the particular controller signal relationship82, configuration module81may implement the modification of the particular controller signal relationship82.

FIG. 6illustrates an example method of detecting erroneous game controller signals and reconfiguring controller signal relationships82associated with a game controller device34according to one embodiment of the invention. At step200, interface application50receives one or more game controller signals generated by a game controller device34being manipulated by a user22, such as by pressing one or more buttons and/or moving one or more joysticks or D-pads in particular directions, for example. At step202, interface application50may store received game controller signals in a signal log180associated with the game controller device34. At step204, interface application50determines whether the one or more game controller signals received at step200are erroneous based on a set of stored controller signal relationships82between game controller signals generated by a game controller device34and trading system commands associated with trading system10. As discussed above, such erroneous signals may include, for example, (1) game controller signals that do not correspond with any trading system command stored in the set of controller signal relationships82; (2) game controller signals that correspond (based on controller signal relationships82) with a trading system command that is invalid in a particular trading situation; or (3) game controller signals followed by subsequent game controller signals to cancel or undo the original game controller signals (or the trading system command associated with the original game controller signals).

If the received game controller signal(s) are determined not to be erroneous at step204, the trading system command(s) associated with such received game controller signals may be determined by interface application50and communicated to trading platform14at step206. The method may return to step200to receive additional game controller signals from the game controller device34. Alternatively, if the received game controller signal(s) are determined to be erroneous, the method proceeds to step208where interface application50may further determine, based on signal log180, whether the particular erroneous game controller signal(s) has been received form the game controller device34a predetermined threshold number of times or with a predetermined threshold frequency, as discussed above. If the particular erroneous game controller signal(s) has not been received the predetermined threshold number of times or with the predetermined threshold frequency, the method may return to step200to receive additional game controller signals from the game controller device34. However, if the particular erroneous game controller signal(s) has been received the predetermined threshold number of times or with the predetermined threshold frequency, at step210configuration module81may communicate to the user22of the game controller device34(via a display device32, for example) a message indicating a proposed modification of one or more particular controller signal relationships82.

At step212, interface application50receives a response to the message from the user22of the game controller device34. If the response indicates an acceptance of the proposed modification of the particular controller signal relationship(s)82, configuration module81may implement the modification of the particular controller signal relationship(s)82at step214. The method may return to step200to receive additional game controller signals from the game controller device34. If the response indicates a denial of the proposed modification of the particular controller signal relationship(s)82, configuration module81may not implement the modification, as indicated at step216, and the method may return to step200to receive additional game controller signals from the game controller device34.

Managing Default Settings

In some embodiments, interface application50is capable of managing default settings for the configuration of a game controller device34, which may include managing default settings for game controller relationships82. Using any suitable statistical modeling or analysis, interface application50may determine the number and/or frequency of instances of one or more particular received game controller signals stored in one or more signal logs180. Based on such determined number and/or frequency of instances of one or more particular received game controller signals, configuration module81may modify or propose a modification of one or more particular controller signal relationships82, such as to tailor the configuration of the game controller device34to the trading activity of the user22. In particular embodiments, configuration module81may communicate a message to the user22proposing a modification of one or more particular controller signal relationships82if the number and/or frequency of instances of one or more particular received game controller signals exceeds a predetermined threshold.

For example, suppose each depression of button A increases the bid size for a bid order by one unit (e.g. one share). Thus, a particular controller signal relationship82corresponds the game controller signal generated by pressing button A with the trading command of increasing the bid size for a bid order by one unit. Further suppose that a particular user22often submits bid orders in sizes of multiples of five units (e.g., 5 shares, 10 shares, 15 shares, etc.) by pressing button A in multiples of five repetitions. Based on the number and/or frequency of instances of receiving game controller signals for submitting bid orders in sizes of multiples of five units, configuration module81may communicate a message to user22proposing to modify the particular controller signal relationship82such that each depression of button A increases the bid size for a bid order by five units. If the user22accepts the proposed modification of the particular controller signal relationship82, configuration module81may implement the modification. It should be understood that this is merely an example, and that configuration module81may modify or propose a modification of any one or more controller signal relationships82based on the determined number and/or frequency of instances of one or more particular received game controller signals.

FIG. 7illustrates an example method of determining the frequency of particular received game controller signals and reconfiguring controller signal relationships associated with a game controller device34according to one embodiment of the invention. At step250, interface application50receives one or more game controller signals generated by a game controller device34being manipulated by a user22, such as by pressing one or more buttons and/or moving one or more joysticks or D-pads in particular directions, for example. At step252, interface application50may store received game controller signals in a signal log180associated with the game controller device34. At step254, interface application50determines whether the number and/or frequency of instances of one or more particular received game controller signals stored in signal log180meet or exceed a predetermined threshold value. For example, interface application50may determine the frequency at which user22submits particular trading system commands over time and/or in particular trading situations, and determine whether such frequency exceeds a predetermined threshold frequency. For instance, interface application50may determine the frequency at which user22enters signals for submitting trading orders in multiples of 10 shares, as opposed to submitting trading orders of other sizes, and whether the determined frequency exceeds a threshold frequency predetermined for such signals.

If the determined number and/or frequency of instances of one or more particular received game controller signals does not meet or exceed the predetermined threshold value, the method may return to step250to continue receiving game controller signals. However, if the determined number and/or frequency of instances of one or more particular received game controller signals meets or exceeds the predetermined threshold value, configuration module81may communicate a message to the user22proposing a modification of one or more particular controller signal relationships82, as indicated at step256. At step258, a response to the message is received from the user22of the game controller device34. If the response indicates an acceptance of the proposed modification of the particular controller signal relationship(s)82, configuration module81may implement the modification of the particular controller signal relationship(s)82at step260. The method may return to step250to receive additional game controller signals from the game controller device34. If the response indicates a denial of the proposed modification of the particular controller signal relationship(s)82, configuration module81may not implement the modification, as indicated at step262, and the method may return to step250to receive additional game controller signals from the game controller device34.

Security Features

Trading system10may include one or more various security features for managing access to game controller device34and/or trading platform14. For example, in particular embodiments, as shown inFIG. 2, game controller device34includes a fingerprint reading device94operable to obtain an image95of a user's fingerprint or thumbprint such that game controller device34may only be used by authorized users22. A user22may place his finger or thumb against fingerprint reading device94, which may obtain (e.g. scan) an image95of the fingerprint or thumbprint. The fingerprint image95may be stored by game controller device34and/or interface application50. In order to begin a trading session using game controller device34, a user22may be required to scan his or her fingerprint using fingerprint reading device94. If the user22's fingerprint image matches the stored fingerprint image95of an authorized user22, the user22may begin using game controller device34. For example, game controller device34may remain locked when unused and may be unlocked when fingerprint reading device94reads an authorized fingerprint. Alternatively, if the user22's fingerprint image does not match the stored fingerprint image95of an authorized user22, the user22may be prevented from using game controller device34, at least for accessing trading platform14. For example, game controller device34may remain locked upon fingerprint reading device94reading the unauthorized fingerprint.

Fingerprint reading device94may include any suitable device or devices operable to obtain an image (or other data) of a finger or thumb print, such as optical scanning devices or capacitance scanning devices, for example. Fingerprint images95may be stored in any suitable location, such as within game controller device34or by memory48. In addition, software for analyzing fingerprint images95, including comparing stored fingerprint images95for authorized users22with newly received fingerprint images (for determining whether a user22is authorized, for example), may be associated with and/or stored within game controller device34or by memory48. For example, in the embodiment shown inFIG. 1, such functionality is provided by interface application50.

In addition, in the embodiment shown inFIG. 2, game controller device34may include an access granted indicator96and an access denied indicator98. Access granted indicator96may indicate when an authorized fingerprint image has been obtained by fingerprint reading device94(thus allowing game controller device34to be used by the user22, as discussed above) while access denied indicator98may indicate when an unauthorized fingerprint image has been obtained by fingerprint reading device94(thus preventing game controller device34from being used by the user22, as discussed above). Access granted indicator96and access denied indicator98may comprise any suitable devices for communicating data to a user22, such as lights, bells or buzzers, for example.

In some embodiments, trading system10utilizes configurable security codes for regulating access to game controller device34and/or trading platform14. For example, a user22may enter a user-selected security code including a series of one or more game controller signals generated by manipulating the various features of the game controller device34. The user-selected security code may then be stored, such as by game controller device34or interface application50, for example. The user22may then be required to enter the stored security code (using the game controller device34) to begin new trading sessions.

In some embodiments, the game controller device34may lock automatically, such as at the end of a trading session, after some predetermined period of non-use, or otherwise. In other embodiments, the user22may select a first, locking security code for locking the game controller device34and a second, unlocking security code for unlocking the game controller device34. The user22may then use the locking and unlocking security codes for locking and unlocking the game controller device34as desired. The user-selected locking and unlocking security codes may be the same or different codes. For example, suppose a user22selects a locking security code by submitting the following sequence of actions: pressing button A, pressing button F, pressing button E, and moving joystick A right. Further suppose the user22selects an unlocking security code having the same or a different sequence of actions. Thus, any suitable sequence of actions will serve to lock and/or unlock the game controller device34for use.

Game controller device34may also include an auto-lock feature that locks the game controller device34automatically in response to receiving a particular number of erroneous inputs or a particular number of simultaneous inputs. For example, game controller device34may lock itself if a predetermined number (or more) of erroneous inputs are received consecutively, such as if a user22submits a particular number of consecutive improper commands. As another example, game controller device34may lock itself if a predetermined number (or more) of inputs are received consecutively, such as if the game controller device34is dropped or grabbed accidentally. Such features may reduce the number of unintended or improper game controller signals being communicated by a game controller device34.

Although an embodiment of the invention and its advantages are described in detail, a person skilled in the art could make various alterations, additions, and omissions without departing from the spirit and scope of the present invention as defined by the appended claims.

Claims

  1. A method for managing electronic trading, comprising: storing, by at least one processor, a plurality of controller signal relationships, each controller signal relationship associating one or more of a plurality of game controller signals with one of a plurality of trading system commands associated with the electronic trading of financial instruments via a trading platform, the plurality of controller signal relationships associating at least one trading system command with one or more controller signals comprising directional data associated with movement of a joystick configured for movement away from a center position in a plurality of directions spanning 360 degrees;receiving, by the at least one processor, one or more game controller signals generated by a game controller, the one or more game controller signals comprising a plurality of directional inputs of at least one joystick generated by movements by at least one joystick in at least one direction, said at least one joystick configured for movement away from a center position in a plurality of directions spanning 360 degrees;storing, by the at least one processor a log of the one or more received game controller signals generated by the game controller, the log comprising the plurality of directional inputs of the at least one joystick;determining, based at least on the log of received game controller signals comprising the plurality of directional inputs, that one or more particular received game controller signals are erroneous, in which the one or more particular erroneous game controller signals comprise at least one of the plurality of directional inputs;and based on the act of determining that at least one of the plurality of directional inputs are erroneous, modifying, by the at least one processor, at least one of the plurality of controller signal relationships based at least on the one or more received game controller signals, in which the act of modifying at least one of the plurality of controller signal relationships comprises modifying the directional data associated with the at least one trading system command.
  1. The method of claim 1 , in which the act of determining that the one or more particular received determining, based on the controller signal relationships, that the one or more particular received game controller signals do not correspond with any of the plurality of trading system commands;and wherein modifying at least one of the plurality of controller signal relationships based at least on the one or more received game controller signals comprises modifying at least one of the plurality of controller signal relationships based at least on the determination that the one or more particular received game controller signals do not correspond with any of the plurality of trading system commands.
  2. The method of claim 1 , wherein modifying at least one controller signal relationship based on the one or more particular erroneous game controller signals comprises: based at least on the one or more particular erroneous game controller signals, communicating a message indicating a proposed modification of a particular controller signal relationship;receiving a response to the message, the response indicating an acceptance of the proposed modification of the particular controller signal relationship;and based on the received response, implementing the proposed modification of the particular controller signal relationship.
  3. The method of claim 1 , wherein determining, based at least on the log of received game controller signals, that one or more particular received game controller signals are erroneous comprises: determining a particular trading system command associated with the one or more particular received game controller signals based on the controller signal relationships;and determining that the particular trading system command is an invalid command in a particular state of trading activity in which the one or more particular game controller signals are received.
  4. The method of claim 1 , wherein determining, based at least on the log of received game controller signals, that one or more particular received game controller signals are erroneous comprises: determining a particular trading system command associated with the one or more particular received game controller signals based on the controller signal relationships;receiving from the game controller a command to cancel the determined particular trading system command;and determining that the one or more particular received game controller signals are erroneous based on the received command to cancel the determined particular trading system command.
  5. The method of claim 1 , comprising: determining that the number of erroneous received game controller signals associated with a particular controller signal relationship equals or exceeds a predetermined numerical threshold greater than one;and responsive to determining that the number of erroneous received game controller signals associated with a particular controller signal relationship equals or exceeds a predetermined numerical threshold greater than one, modifying the particular controller signal relationship based on the one or more particular erroneous game controller signals.
  6. The method of claim 1 , comprising: determining that the number or pattern of erroneous received game controller signals associated with a particular controller signal relationship equals or exceeds a predetermined numerical threshold greater than one;and responsive to determining that the number or pattern of erroneous received game controller signals associated with a particular controller signal relationship equals or exceeds a predetermined numerical threshold greater than one, communicating a message indicating a proposed modification of the particular controller signal relationship;receiving a response to the message, the response indicating an acceptance of the proposed modification of the particular controller signal relationship;and based on the received response, implementing the proposed modification of the particular controller signal relationship.
  7. The method of claim 1 , wherein modifying at least one of the plurality of controller signal relationships based at least on the one or more received game controller signals comprises: based at least on the one or more received game controller signals, communicating a message indicating a proposed modification of a particular controller signal relationship;receiving a response to the message, the response indicating an acceptance of the proposed modification of the particular controller signal relationship;and based on the received response, implementing the proposed modification of the particular controller signal relationship.
  8. The method of claim 1 , wherein modifying at least one of the plurality of controller signal relationships based at least on the one or more received game controller signals comprises recalibrating the game controller.
  9. The method of claim 9 , wherein recalibrating the game controller comprises at least partially recalibrating a joystick or directional pad (D-pad).
  10. The method of claim 1 , wherein: the plurality of controller signal relationships includes a particular controller signal relationship associating a particular trading system command with one or more game controller signals including a first particular game controller signal associated with a directional pad (D-pad) of the game controller being controlled with a first input;the one or more game controller signals received from the game controller comprise a second particular game controller signal generated in response to a directional pad (D-pad) of the game controller being controlled with a second input;determining that the one or more game controller signals received from the game controller were intended to initiate the particular trading system command;and modifying the particular controller signal relationship to replace the first particular game controller signal associated with a directional pad (D-pad) of the game controller being controlled with the first input with the second particular game controller signal associated with a directional pad (D-pad) of the game controller being controlled with the second input.
  11. The method of claim 1 , further comprising: determining the frequency of instances of one or more particular received game controller signals;and receiving one or more game controller signals generated by a game controller comprises receiving one or more instances of one or more of the game controller signals generated by a game controller;and wherein modifying at least one of the plurality of controller signal relationships based at least on the one or more received game controller signals comprises modifying at least one of the plurality of controller signal relationships based at least on the determined frequency of instances of one or more particular received game controller signals.
  12. The method of claim 12 , wherein each game controller signal is associated with a particular manipulation of a game controller.
  13. The method of claim 12 , comprising: based at least on the determined frequency of instances of one or more particular received game controller signals, communicating a message indicating a proposed modification of a particular controller signal relationship;receiving a response to the message, the response indicating an acceptance of the proposed modification of the particular controller signal relationship;and based on the received response, implementing the proposed modification of the particular controller signal relationship.
  14. The method of claim 12 , further comprising modifying a particular controller signal relationship associated with the particular received game controller signal if the determined frequency of instances of a particular received game controller signal exceeds a predetermined threshold frequency.
  15. The method of claim 12 , wherein determining the frequency of instances of one or more particular received game controller signals comprises performing a statistical analysis of the received game controller signals.
  16. The method of claim 12 , wherein determining the frequency of instances of one or more particular received game controller signals comprises determining the frequency of instances of one or more particular received game controller signals associated with selecting the size of a trading order.
  17. A system for electronic trading, comprising: an interface application comprising a mapping module that defines a plurality of controller signal relationships, each controller signal relationship associating one or more of a plurality of game controller signals with one of a plurality of trading system commands associated with the electronic trading of financial instruments, the plurality of controller signal relationships associating at least one trading system command with one or more controller signals comprising directional data associated with movement of a joystick configured for movement away from a center position in a plurality of directions spanning 360 degrees;wherein the interface application is operable to: receive one or more game controller signals generated by a game controller, the one or more game controller signals comprising a plurality of directional inputs of at least one joystick generated by movements by at least one joystick in at least one direction, said at least one joystick configured for movement away from a center position in a plurality of directions spanning 360 degrees;store, by the at least one processor a log of the one or more received game controller signals generated by the game controller, the log comprising the plurality of directional inputs of the at least one joystick;determine, based at least on the log of received game controller signals comprising the plurality of directional inputs, that one or more particular received game controller signals are erroneous, in which the one or more particular erroneous game controller signals comprise at least one of the plurality of directional inputs;and based on the act of determining that at least one of the plurality of directional inputs are erroneous, modify at least one of the plurality of controller signal relationships based at least on the one or more received game controller signals, in which the act of modifying at least one of the plurality of controller signal relationships comprises modifying the directional data associated with the at least one trading system command.
  18. The system of claim 18 , wherein the interface application is further operable to: determine, based on the controller signal relationships, that the one or more particular received game controller signals do not correspond with any of the plurality of trading system commands;and modify at least one of the plurality of controller signal relationships based at least on the determination that the one or more particular received game controller signals do not correspond with any of the plurality of trading system commands.
  19. The system of claim 18 , wherein modifying at least one controller signal relationship based on the one or more particular erroneous game controller signals comprises: based at least on the one or more particular erroneous game controller signals, communicating a message indicating a proposed modification of a particular controller signal relationship;receiving a response to the message, the response indicating an acceptance of the proposed modification of the particular controller signal relationship;and based on the received response, implementing the proposed modification of the particular controller signal relationship.
  20. The system of claim 18 , wherein determining, based at least on the log of received game controller signals, that one or more particular received game controller signals are erroneous comprises: determining a particular trading system command associated with the one or more particular received game controller signals based on the controller signal relationships;and determining that the particular trading system command is an invalid command in a particular state of trading activity in which the one or more particular game controller signals are received.
  21. The system of claim 18 , wherein determining, based at least on the log of received game controller signals, that one or more particular received game controller signals are erroneous comprises: determining a particular trading system command associated with the one or more particular received game controller signals based on the controller signal relationships;receiving from the game controller a command to cancel the determined particular trading system command;and determining that the one or more particular received game controller signals are erroneous based on the received command to cancel the determined particular trading system command.
  22. The system of claim 18 , further comprising a storage module operable to store a log of the one or more received game controller signals generated by the game controller;wherein the interface application is further operable to: determine that the number of erroneous received game controller signals equals or exceeds a predetermined numerical threshold greater than one;and modify at least one game controller signal relationship based on the one or more particular erroneous game controller signals.
  23. The system of claim 18 , further comprising a storage module operable to store a log of the one or more received game controller signals generated by the game controller;wherein the interface application is operable to: determine that the number of erroneous received game controller signals equals or exceeds a predetermined numerical threshold greater than one;communicate a message indicating a proposed modification of a particular controller signal relationship;receive a response to the message, the response indicating an acceptance of the proposed modification of the particular controller signal relationship;and based on the received response, cause the proposed modification of the particular controller signal relationship to be implemented.
  24. The system of claim 18 , wherein modifying at least one of the plurality of controller signal relationships based at least on the one or more received game controller signals comprises: based at least on the one or more received game controller signals, communicating a message indicating a proposed modification of a particular controller signal relationship;receiving a response to the message, the response indicating an acceptance of the proposed modification of the particular controller signal relationship;and based on the received response, implementing the proposed modification of the particular controller signal relationship.
  25. The system of claim 18 , wherein modifying at least one of the plurality of controller signal relationships based at least on the one or more received game controller signals comprises recalibrating the game controller.
  26. The system of claim 26 , wherein recalibrating the game controller comprises at least partially recalibrating a joystick or directional pad (D-pad).
  27. The system of claim 18 , wherein: the plurality of controller signal relationships includes a particular controller signal relationship associating a particular trading system command with one or more game controller signals including a first particular game controller signal associated with a directional pad (D-pad) of the game controller being controlled with a first input;the one or more game controller signals received from the game controller comprise a second particular game controller signal generated in response to a directional pad (D-pad) of the game controller being controlled with a second input;determining that the one or more game controller signals received from the game controller were intended to initiate the particular trading system command;and modifying the particular controller signal relationship to replace the first particular game controller signal associated with a directional pad (D-pad) of the game controller being controlled with the first input with the second particular game controller signal associated with a directional pad (D-pad) of the game controller being controlled with the second input.
  28. The system of claim 18 , wherein the interface application is operable to: determine the frequency of instances of one or more particular received game controller signals;and wherein receiving one or more game controller signals generated by a game controller comprises receiving one or more instances of one or more of the game controller signals generated by a game controller;and wherein modifying at least one of the plurality of controller signal relationships based at least on the one or more received game controller signals comprises modifying at least one of the plurality of controller signal relationships based at least on the determined frequency of instances of one or more particular received game controller signals.
  29. The system of claim 29 , wherein each game controller signal is associated with a particular manipulation of a game controller.
  30. The system of claim 29 , wherein the interface application is operable to: based at least on the determined frequency of instances of one or more particular received game controller signals, cause a message indicating a proposed modification of a particular controller signal relationship to be communicated;receive a response to the message, the response indicating an acceptance of the proposed modification of the particular controller signal relationship;and based on the received response, cause the proposed modification of the particular controller signal relationship to be implemented.
  31. The system of claim 29 , wherein the interface application is operable to modify a particular controller signal relationship associated with the particular received game controller signal if the determined frequency of instances of a particular received game controller signal exceeds a predetermined threshold frequency.
  32. The system of claim 29 , wherein determining the frequency of instances of one or more particular received game controller signals comprises performing a statistical analysis of the received game controller signals.
  33. The system of claim 29 , wherein determining the frequency of instances of one or more particular received game controller signals comprises determining the frequency of instances of one or more particular received game controller signals associated with selecting the size of a trading order.
  34. A system for managing trading, comprising: a computer system having a processor;and a computer readable medium coupled to the computer system, the computer readable medium comprising a program operable, when executed by the processor, to: store, by at least one processor, a plurality of controller signal relationships, each controller signal relationship associating one or more of a plurality of game controller signals with one of a plurality of trading system commands associated with the electronic trading of financial instruments via a trading platform, the plurality of controller signal relationships associating at least one trading system command with one or more controller signals comprising directional data associated with movement of a joystick configured for movement away from a center position in a plurality of directions spanning 360 degrees;receive, by the at least one processor, one or more game controller signals generated by a game controller, the one or more game controller signals comprising a plurality of directional inputs of at least one joystick generated by movements by at least one joystick in at least one direction, said at least one joystick configured for movement away from a center position in a plurality of directions spanning 360 degrees;store, by the at least one processor a log of the one or more received game controller signals generated by the game controller, the log comprising the plurality of directional inputs of the at least one joystick;determine, based at least on the log of received game controller signals comprising the plurality of directional inputs, that one or more particular received game controller signals are erroneous, in which the one or more particular erroneous game controller signals comprise at least one of the plurality of directional inputs;and based on the act of determining that at least one of the plurality of directional inputs are erroneous, modify, by the at least one processor, at least one of the plurality of controller signal relationships based at least on the one or more received game controller signals, in which the act of modifying at least one of the plurality of controller signal relationships comprises modifying the directional data associated with the at least one trading system command.
  35. The system of claim 35 , further comprising: a memory operable to store: a first set of controller signal relationships, the first set associated with a first user and with a first type of game controller;a second set of controller signal relationships, the second set associated with the first user and with a second type of game controller;and a third set of controller signal relationships, the third set associated with a second user and with the first type of game controller;an interface application communicatively coupled to the memory, wherein: at least one controller signal relationship associates one of a plurality of game controller signals with one of a plurality of trading system commands associated with the electronic trading of financial instruments;and the interface application is operable to: identify a particular user associated with a particular game controller;identify a particular controller type associated with the particular game controller;determine at least one of the stored sets of controller signal relationships based at least in part on the identified user and the identified controller type;receive a particular game controller signal from the particular game controller;determine the trading system command associated with the particular game controller signal based at least in part on the at least one determined set of controller signal relationships;and communicate the determined trading system command such that the trading system command is executed.
  36. The system of claim 23 , in which the predetermined numerical threshold is ten.

Disclaimer: Data collected from the USPTO and may be malformed, incomplete, and/or otherwise inaccurate.