User-defined algorithm electronic trading
First Claim
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.
4 Assignments
0 Petitions
Accused Products
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.
-
Citations
18 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
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. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
Specification