IP Library Granted Patent US 10,504,182
Granted Patent B2
US 10,504,182 · App. 16/123,824 · Granted Dec 10, 2019

User-defined algorithm electronic trading

Inventors: Richard Lane (Chicago, IL); Michael Unetich (Chicago, IL)
Assignee: Trading Technologies International, Inc.
G06Q40/04G06F3/04847G06Q40/00
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,504,182
App. No.
16/123,824
Granted
Dec 10, 2019
Kind
B2
Abstract

Certain embodiments reduce the risks of traditionally programmed algorithms such as syntax errors, unclear logic, and the need for a non-trader programmer to develop the algorithm as specified by a trader by reducing or eliminating the writing of programming code by a user. Certain embodiments provide building block buttons and an algorithm area to define an algorithm. Certain embodiments provide live evaluation of an expression as the algorithm is being defined. Certain embodiments provide a design canvas area and blocks for designing an algorithm. Certain embodiments provide live feedback for blocks as the algorithm is being designed. Certain embodiments provide for initiating placement of an order to be managed by a selected user-defined trading algorithm from a value axis and for displaying working orders being managed by different user-defined trading algorithms on the value axis. Certain embodiments provide a ranking tool.

Claims (43)

1. A computer readable medium having stored therein instructions executable by a processor, including instructions executable to:

display a visual programming design canvas area for a visual programming language;

receive commands from a user through the visual programming design canvas area to design a trading algorithm;

modify, in response to receiving the commands from the user, an arrangement of a plurality of placed blocks specifying in the visual programming language a definition for the trading algorithm, wherein the arrangement of the plurality of placed blocks includes a connection between an input or output of each block in the plurality of placed blocks and a respective output or input of another block in the plurality of placed blocks, wherein each connection indicates a value for the output should be provided to the corresponding input, wherein the plurality of placed blocks includes a first placed block and a second placed block, wherein the arrangement of the plurality of placed blocks includes a first connection between the first placed block and the second placed block;

determine, while receiving the commands from the user, a first live feedback value for the first connection between the first placed block and the second placed block, wherein the first live feedback value is determined based on market data and the definition for the trading algorithm as modified in response to receiving the commands from the user, wherein the first live feedback value is an intermediate value provided for the first connection between the first placed block and the second placed block;

display the determined first live feedback value in relation to the first placed block;

receive, while receiving the commands from the user, updated market data;

determine, while receiving the commands from the user, an updated first live feedback value for the first connection between the first placed block and the second placed block, wherein the updated first live feedback value is determined based on the updated market data and the definition for the trading algorithm as modified in response to receiving the commands from the user; and

update the display of the determined first live feedback value based on the updated first live feedback value.

2. The computer readable medium of claim 1 , wherein the plurality of placed blocks are selected by the user from a plurality of available blocks.

3. The computer readable medium of claim 1 , wherein the first live feedback value is determined for an input of the first placed block.

4. The computer readable medium of claim 1 , wherein the first live feedback value is determined for an output of the first placed block.

5. The computer readable medium of claim 1 , wherein the market data is received from at least one of: (i) an electronic exchange and (ii) a simulation environment.

6. The computer readable medium of claim 1 , wherein first live feedback value is further based on a functionality corresponding to the first placed block.

7. The computer readable medium of claim 1 , further including instructions executable to:

detect the generation of a discrete event; and

display an indicator representing the occurrence of the discrete event.

8. The computer readable medium of claim 7 , wherein the indicator includes at least one of: (i) flashing a connection on which the generated discrete event is provided; (ii) an animation of an output on which the generated discrete event is provided; and (iii) an animation on a connection on which the generated discrete event is provided.

9. The computer readable medium of claim 1 , further including instructions executable to:

determine, while receiving the commands from the user, a second live feedback value for a second connection between the first placed block and a third placed block of the plurality of placed blocks, wherein the second live feedback value is determined based on market data and the definition for the trading algorithm as modified in response to receiving the commands from the user, wherein the second live feedback value is an intermediate value provided for the second connection between the first placed block and the third placed block; and

display the determined second live feedback value in relation to the first placed block.

10. A system including:

a client device,

wherein the client device is configured to display a visual programming design canvas area for a visual programming language;

wherein the client device is configured to receive commands from a user through the visual programming design canvas area to design a trading algorithm;

wherein the client device is configured to modify, in response to receiving the commands from the user, an arrangement of a plurality of placed blocks specifying in the visual programming language a definition for the trading algorithm, wherein the arrangement of the plurality of placed blocks includes a connection between an input or output of each block in the plurality of placed blocks and a respective output or input of another block in the plurality of placed blocks, wherein each connection indicates a value for the output should be provided to the corresponding input, wherein the plurality of placed blocks includes a first placed block and a second placed block, wherein the arrangement of the plurality of placed blocks includes a first connection between the first placed block and the second placed block;

wherein the client device is configured to determine, while receiving the commands from the user, a first live feedback value for the first connection between the first placed block and the second placed block, wherein the first live feedback value is determined based on market data and the definition for the trading algorithm as modified in response to receiving the commands from the user, wherein the first live feedback value is an intermediate value provided for the first connection between the first placed block and the second placed block;

wherein the client device is configured to display the determined first live feedback value in relation to the first placed block;

wherein the client device is configured to receive, while receiving the commands from the user, updated market data;

wherein the client device is configured to determine, while receiving the commands from the user, an updated first live feedback value for the first connection between the first placed block and the second placed block, wherein the updated first live feedback value is determined based on the updated market data and the definition for the trading algorithm as modified in response to receiving the commands from the user; and

wherein the client device is configured to update the display of the determined first live feedback value based on the updated first live feedback value.

11. The system of claim 10 , wherein the plurality of placed blocks are selected by the user from a plurality of available blocks.

12. The system of claim 10 , wherein the first live feedback value is determined for an input of the first placed block.

13. The system of claim 10 , wherein the first live feedback value is determined for an output of the first placed block.

14. The system of claim 10 , wherein the market data is received from at least one of: (i) an electronic exchange and (ii) a simulation environment.

15. The system of claim 10 , wherein first live feedback value is further based on a functionality corresponding to the first placed block.

16. The system of claim 10 ,

wherein the client device is configured to detect the generation of a discrete event; and

wherein the client device is configured to display an indicator representing the occurrence of the discrete event.

17. The system of claim 16 , wherein the indicator includes at least one of: (i) flashing a connection on which the generated discrete event is provided; (ii) an animation of an output on which the generated discrete event is provided; and (iii) an animation on a connection on which the generated discrete event is provided.

18. The system of claim 10 ,

wherein the client device is configured to determine, while receiving the commands from the user, a second live feedback value for a second connection between the first placed block and a third placed block of the plurality of placed blocks, wherein the second live feedback value is determined based on market data and the definition for the trading algorithm as modified in response to receiving the commands from the user, wherein the second live feedback value is an intermediate value provided for the second connection between the first placed block and the third placed block; and

wherein the client device is configured to display the determined second live feedback value in relation to the first placed block.

Assignments (6)
SECURITY INTEREST Recorded Nov 7, 2025
From: TRADING TECHNOLOGIES INTERNATIONAL, INC.
To: HPS INVESTMENT PARTNERS, LLC, AS COLLATERAL AGENT
Reel/Frame 073510/0758 →
RELEASE OF SECURITY INTEREST Recorded Nov 5, 2025
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: TRADING TECHNOLOGIES INTERNATIONAL, INC.
Reel/Frame 073470/0522 →
SECURITY INTEREST Recorded Nov 22, 2022
From: TRADING TECHNOLOGIES INTERNATIONAL, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 061995/0117 →
RELEASE OF SECURITY INTEREST Recorded Jun 15, 2022
From: ACF FINCO I LP
To: TRADING TECHNOLOGIES INTERNATIONAL, INC.
Reel/Frame 060791/0498 →
SECURITY INTEREST Recorded Jul 20, 2021
From: TRADING TECHNOLOGIES INTERNATIONAL, INC.
To: ACF FINCO I LP
Reel/Frame 057143/0825 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 6, 2018
From: LANE, RICHARD; UNETICH, MICHAEL
To: TRADING TECHNOLOGIES INTERNATIONAL, INC.
Reel/Frame 046806/0444 →
Continuity (9)
Continuation 12905709 · Oct 15, 2010
Provisional Application 61393313 · Oct 14, 2010
Provisional Application 61253315 · Oct 20, 2009
Provisional Application 61253324 · Oct 20, 2009
Provisional Application 61263300 · Nov 20, 2009
Provisional Application 61312003 · Mar 9, 2010
Provisional Application 61318685 · Mar 29, 2010
Provisional Application 61320061 · Apr 1, 2010
Related Publication 20190012738A1 · Jan 10, 2019
Cited By (5)
US 12,190,380 US 12,198,192 US 12,548,077 US 12,567,111 US 12,572,981