US 11,900,458 B2
Block placing tool for building a user-defined algorithm for electronic trading
Daniel Lidor, Chicago, IL (US); and Richard Lane, Stamford, CT (US)
Assigned to Trading Technologies International, Inc., Chicago, IL (US)
Filed by TRADING TECHNOLOGIES INTERNATIONAL INC., Chicago, IL (US)
Filed on Oct. 27, 2022, as Appl. No. 18/050,279.
Application 18/050,279 is a continuation of application No. 16/918,602, filed on Jul. 1, 2020, granted, now 11,514,524.
Application 16/918,602 is a continuation of application No. 16/129,261, filed on Sep. 12, 2018, granted, now 10,748,211, issued on Aug. 18, 2020.
Application 16/129,261 is a continuation of application No. 14/254,044, filed on Apr. 16, 2014, granted, now 10,121,197, issued on Nov. 6, 2018.
Application 14/254,044 is a continuation of application No. 14/029,464, filed on Sep. 17, 2013, granted, now 8,738,512, issued on May 27, 2014.
Application 14/029,464 is a continuation of application No. 13/014,547, filed on Jan. 26, 2011, granted, now 8,566,220, issued on Oct. 22, 2013.
Prior Publication US 2023/0077108 A1, Mar. 9, 2023
This patent is subject to a terminal disclaimer.
Int. Cl. G06Q 40/04 (2012.01); G06Q 40/06 (2012.01); G06F 8/34 (2018.01)
CPC G06Q 40/04 (2013.01) [G06F 8/34 (2013.01); G06Q 40/06 (2013.01)] 10 Claims
OG exemplary drawing
 
1. A non-transitory computer readable medium having stored therein instructions executable by a processor, wherein the instructions are executable to:
display a visual programming design canvas area of a graphical user interface for a visual programming language in a display of a trading device, wherein the visual programming design canvas area includes an arrangement of a plurality of placed blocks, wherein the arrangement of the plurality of placed blocks includes connections between outputs and inputs of blocks in the plurality of placed blocks, wherein the connections indicate how output values/events are provided to corresponding inputs when the output values/events are generated to communicate data;
receive a selection of blocks through the graphical user interface for the visual programming language provided by a user input device coupled to the trading device, wherein the selection of blocks includes a plurality of selected blocks of the plurality of placed blocks in the visual programming design canvas area, wherein the plurality of selected blocks are in a selected arrangement, wherein the selected arrangement is based on the connections between the outputs and inputs of the selected blocks in the plurality of selected blocks, wherein each block in the selection of blocks has a block type;
receive by the trading device a command to activate a block placing tool through the graphical user interface for the visual programming language; and
iterate by the trading device, in response to receiving the command to activate the block placing tool, over each selected block in the selection of blocks and for the selected block being traversed:
determine by the trading 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;
determine by the trading 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
place by the trading 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.