US12567111B2ActiveUtilityA1

Block placing tool for building a user-defined algorithm for electronic trading

88
Assignee: TRADING TECHNOLOGIES INT INCPriority: Jan 26, 2011Filed: Nov 27, 2024Granted: Mar 3, 2026
Est. expiryJan 26, 2031(~4.6 yrs left)· nominal 20-yr term from priority
G06F 8/34G06Q 40/06G06Q 40/04
88
PatentIndex Score
0
Cited by
574
References
20
Claims

Abstract

Certain embodiments provide a block placing tool for building a user-defined algorithm for electronic trading. Certain embodiments provide for receiving by a block placing tool a selection of one or more blocks. Certain embodiments provide for receiving by a block placing tool a mapping definition including a mapping between block types and/or attributes. Certain embodiments provide for placing blocks based on a selection of blocks and a mapping definition.

Claims

exact text as granted — not AI-modified
The invention claimed is: 
     
         1 . A method including:
 receiving by a computing device a command to activate a block placing tool, wherein the command is received through a graphical user interface for a visual programming language, wherein the graphical user interface includes a visual programming design canvas area, wherein the visual programming design canvas area includes an arrangement of a plurality of placed blocks; and   iterating by the computing device, in response to receiving the command to activate the block placing tool, over each selected block in a selection of blocks, wherein the selection of blocks includes a plurality of selected blocks of the plurality of placed blocks, wherein the plurality of selected blocks are in a selected arrangement, wherein each selected block in the selection of blocks has a block type, wherein for each selected block being traversed:
 determining by the computing device whether the block type of the selected block conforms to a mapping in a mapping definition, wherein the mapping definition includes at least one mapping, wherein each mapping in the mapping definition specifies a relationship between a first type and a corresponding second type, wherein the first type includes a first block type, wherein the second type includes a second block type; 
 determining by the computing device a new block type, wherein the new block type is the corresponding block type specified in the mapping when the block type of the selected block conforms to the mapping and the new block type is the block type of the selected block when the block type of the selected block does not conform to a mapping in the mapping definition; and 
 placing by the computing device a new block of the determined new block type in the visual programming design canvas area as part of a new arrangement, wherein the new arrangement is a modified copy of the selected arrangement of the plurality of selected blocks. 
   
     
     
         2 . The method of  claim 1 , wherein the selection of blocks is one of: (i) determined by a user and (ii) automatically determined. 
     
     
         3 . The method of  claim 1 , wherein the mapping definition is one of: (i) pre-defined; (ii) determined by a user; and (iii) automatically determined. 
     
     
         4 . The method of  claim 1 , wherein the second type is a reverse of the first type. 
     
     
         5 . The method of  claim 1 , wherein the mapping definition is specified before the selection of blocks is specified. 
     
     
         6 . The method of  claim 1 , wherein the selection of blocks is specified before the command to activate the block placing tool is received. 
     
     
         7 . The method of  claim 1 , wherein the command to activate the block placing tool includes at least one of (i) the selection of blocks and (ii) the mapping definition. 
     
     
         8 . A non-transitory computer readable medium having stored therein instructions executable by a processor, wherein the instructions are executable to:
 receive a command to activate a block placing tool, wherein the command is received through a graphical user interface for a visual programming language, wherein the graphical user interface includes a visual programming design canvas area, wherein the visual programming design canvas area includes an arrangement of a plurality of placed blocks; and   iterate, in response to receiving the command to activate the block placing tool, over each selected block in a selection of blocks, wherein the selection of blocks includes a plurality of selected blocks of the plurality of placed blocks, wherein the plurality of selected blocks are in a selected arrangement, wherein each selected block in the selection of blocks has a block type, wherein for each selected block being traversed:
 determine whether the block type of the selected block conforms to a mapping in a mapping definition, wherein the mapping definition includes at least one mapping, wherein each mapping in the mapping definition specifies a relationship between a first type and a corresponding second type, wherein the first type includes a first block type, wherein the second type includes a second block type; 
 determine a new block type, wherein the new block type is the corresponding block type specified in the mapping when the block type of the selected block conforms to the mapping and the new block type is the block type of the selected block when the block type of the selected block does not conform to a mapping in the mapping definition; and 
 place a new block of the determined new block type in the visual programming design canvas area as part of a new arrangement, wherein the new arrangement is a modified copy of the selected arrangement of the plurality of selected blocks. 
   
     
     
         9 . The non-transitory computer readable medium of  claim 8 , wherein the selection of blocks is one of: (i) determined by a user and (ii) automatically determined. 
     
     
         10 . The non-transitory computer readable medium of  claim 8 , wherein the mapping definition is one of: (i) pre-defined; (ii) determined by a user; and (iii) automatically determined. 
     
     
         11 . The non-transitory computer readable medium of  claim 8 , wherein the second type is a reverse of the first type. 
     
     
         12 . The non-transitory computer readable medium of  claim 8 , wherein the mapping definition is specified before the selection of blocks is specified. 
     
     
         13 . The non-transitory computer readable medium of  claim 8 , wherein the selection of blocks is specified before the command to activate the block placing tool is received. 
     
     
         14 . The non-transitory computer readable medium of  claim 8 , wherein the command to activate the block placing tool includes at least one of (i) the selection of blocks and (ii) the mapping definition. 
     
     
         15 . A system including:
 a computing device,   wherein the computing device is configured to receive a command to activate a block placing tool, wherein the command is received through a graphical user interface for a visual programming language, wherein the graphical user interface includes a visual programming design canvas area, wherein the visual programming design canvas area includes an arrangement of a plurality of placed blocks; and   wherein the computing device is configured to iterate, in response to receiving the command to activate the block placing tool, over each selected block in a selection of blocks, wherein the selection of blocks includes a plurality of selected blocks of the plurality of placed blocks, wherein the plurality of selected blocks are in a selected arrangement, wherein each selected block in the selection of blocks has a block type, wherein for each selected block being traversed the computing device is configured to:
 determine whether the block type of the selected block conforms to a mapping in a mapping definition, wherein the mapping definition includes at least one mapping, wherein each mapping in the mapping definition specifies a relationship between a first type and a corresponding second type, wherein the first type includes a first block type, wherein the second type includes a second block type; 
 determine a new block type, wherein the new block type is the corresponding block type specified in the mapping when the block type of the selected block conforms to the mapping and the new block type is the block type of the selected block when the block type of the selected block does not conform to a mapping in the mapping definition; and 
 place a new block of the determined new block type in the visual programming design canvas area as part of a new arrangement, wherein the new arrangement is a modified copy of the selected arrangement of the plurality of selected blocks. 
   
     
     
         16 . The system of  claim 15 , wherein the selection of blocks is one of: (i) determined by a user and (ii) automatically determined. 
     
     
         17 . The system of  claim 15 , wherein the mapping definition is one of: (i) pre-defined; (ii) determined by a user; and (iii) automatically determined. 
     
     
         18 . The system of  claim 15 , wherein the second type is a reverse of the first type. 
     
     
         19 . The system of  claim 15 , wherein the mapping definition is specified before the selection of blocks is specified. 
     
     
         20 . The system of  claim 15 , wherein the command to activate the block placing tool includes at least one of (i) the selection of blocks and (ii) the mapping definition.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.