WO2022115639A1 - Graphical generation of bot programs for triggering external platform actions - Google Patents

Graphical generation of bot programs for triggering external platform actions Download PDF

Info

Publication number
WO2022115639A1
WO2022115639A1 PCT/US2021/060870 US2021060870W WO2022115639A1 WO 2022115639 A1 WO2022115639 A1 WO 2022115639A1 US 2021060870 W US2021060870 W US 2021060870W WO 2022115639 A1 WO2022115639 A1 WO 2022115639A1
Authority
WO
WIPO (PCT)
Prior art keywords
user
user account
graphical
program
logic module
Prior art date
Application number
PCT/US2021/060870
Other languages
French (fr)
Inventor
Jack SLOCUM
Original Assignee
Alta5 Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alta5 Inc. filed Critical Alta5 Inc.
Publication of WO2022115639A1 publication Critical patent/WO2022115639A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking

Definitions

  • a conventional online platform may be a resource that an end-user may access over the Internet that provides a variety of bundled functionalities that are generally related to a specific topic, domain or organization.
  • a conventional online platform may include a messaging or chat function internal to the platform and may include storage of the end-user’s files. The platform may allow the end-user to assign protective attributes to files stored on the platform such that other end-users may access some stored files but not other stored files.
  • conventional online platforms may provide asynchronous and/or synchronous collaboration tools and functionalities that allow multiple users to share and create data and files.
  • FIG. 1 Various embodiments of an apparatus, methods, systems and computer program products described herein are directed to a Graphical Bot Platform.
  • the Graphical Bot Platform provides many improvements and advantages over conventional systems.
  • the Graphical Bot Platform allows a user(s) to select and customize underlying logical operations to be performed by a bot program via a graphical user interface dashboard.
  • the Graphical Bot Platform may be connected to (or integrated with) an external platform(s).
  • the Graphical Bot Platform may instantiate and execute a bot program on behalf of a user account.
  • the bot program may generate a result to trigger an action performed by an external user account that consumes (or utilizes) one or more resources available at the external platform.
  • the Graphical Bot Platform receives a selection of a first logic module for execution subsequent to execution of a parent logic module.
  • the Graphical Bot Platform displays, via a user interface, a first graphical child node that represents the first logic module extending from a first branch of a graphical decision tree with a parent node representing the parent logic module.
  • the Graphical Bot Platform instantiates a first bot program to perform logical operations embodied in the parent and first logic modules according to respective user-selected module parameters. Based on a result of the first bot program, the Graphical Bot Platform initiates an action to be performed through an external user account according to one or more user account privileges assigned to the external user account.
  • Graphical Bot Platform generates and displays various user interface portions that allow for a first user account to select one or more graphical blocks (or nodes) that represent chunks of logic, an algorithm or a portion of an algorithm.
  • the first user account may select one or more parameters and/or types of parameters for the selected graphical blocks (or nodes).
  • the Graphical Bot Platform builds and displays a graphical tree that includes branches that connects the respective selects graphical blocks. For example, a graphical tree may portray a logical flow (or decision flow) that is customized according to the first user account’s selections.
  • the Graphical Bot Platform may generate a bot program(s) based on the graphical tree.
  • the bot program embodies the logical operations represented by the user-selected graphical blocks according to the user-selected parameters.
  • Each bot program may be executed according to a user-selected interval, whereby a bot program remains idle and is triggered to become active and execute upon satisfaction of one or more conditions.
  • the bot program connects to an incoming stream of real-time data.
  • the real-time data provides one or more values for at least a portion of the user-selected parameters. Since real-time data is dynamic and may frequently change, subsequent iterations of the bot program execution may utilize different values for the same user-selected parameters.
  • a particular execution of the bot program according during a particular interval may generate a result that requires the bot program to access an external account that corresponds to the same user identity as the first user account.
  • the bot program may trigger an action to be completed with one or more resources accessible at the external user account.
  • the Graphical Bot Platform saves a template representative of the first bot program, the first bot program created by a first user account.
  • the Graphical Bot Platform receives a request from a second user account to access the template.
  • the Graphical Bot Platform receives, at the user interface portion separate from display of the graphical decision tree that corresponds to the template, one or more updated user-selected module parameters of the first logic module selected by the second user account.
  • the Graphical Bot Platform instantiates a second bot program to perform one or more logical operations embodied in the parent and first logic modules according to the updated respective user-selected module parameters, the first and second bot programs being concurrently active.
  • one or more bot programs may perform logical operations according to user-selected parameters with value based on real-time data representative of financial market transactions.
  • FIG. 1A is a diagram illustrating an exemplary environment in which some embodiments may operate.
  • FIG. IB is a diagram illustrating an exemplary environment in which some embodiments may operate.
  • FIG. 2 is a diagram illustrating an exemplary method that may be performed in some embodiments.
  • FIG. 3 is a diagram illustrating an exemplary environment in which some embodiments may operate.
  • FIGS. 4A, 4B and 4C are each diagram of an exemplary user interface according to one or more embodiments.
  • FIG. 5 is a diagram of an exemplary user interface according to one or more embodiments.
  • FIG. 6 is a diagram of an exemplary user interface according to one or more embodiments.
  • FIG. 7 is a diagram illustrating an exemplary environment in which some embodiments may operate.
  • 29, 30 and 31 each illustrate a diagram of an exemplary user interface according to one or more embodiments.
  • steps of the exemplary methods set forth in this exemplary patent can be performed in different orders than the order presented in this specification. Furthermore, some steps of the exemplary methods may be performed in parallel rather than being performed sequentially. Also, the steps of the exemplary methods may be performed in a network environment in which some steps are performed by different computers in the networked environment.
  • a computer system may include a processor, a memory, and a non-transitory computer-readable medium.
  • the memory and non-transitory medium may store instructions for performing methods and steps described herein.
  • FIG 1A A diagram of exemplary network environment in which embodiments may operate is shown in FIG 1A.
  • two clients 141, 142 are connected over a network 145 to a server 150 having local storage 151.
  • Clients and servers in this environment may be computers.
  • Server 150 may be configured to handle requests from clients.
  • Server 150 may be implemented as a number of networked server devices, though it is illustrated as a single entity.
  • the exemplary environment 140 is illustrated with only two clients and one server for simplicity, though in practice there may be more or fewer clients and servers.
  • the computers have been termed clients and servers, though clients can also play the role of servers and servers can also play the role of clients.
  • the clients 141, 142 may communicate with each other as well as the servers.
  • the server 150 may communicate with other servers.
  • the network 145 may be, for example, local area network (LAN), wide area network (WAN), telephone networks, wireless networks, intranets, the Internet, or combinations of networks.
  • the server 150 may be connected to storage 152 over a connection medium 160, which may be a bus, crossbar, network, or other interconnect.
  • Storage 152 may be implemented as a network of multiple storage devices, though it is illustrated as a single entity.
  • Storage 152 may be a file system, disk, database, or other storage.
  • the client 141 may perform the method 200 or other method herein and, as a result, store a file in the storage 152. This may be accomplished via communication over the network 145 between the client 141 and server 150. For example, the client may communicate a request to the server 150 to store a file with a specified name in the storage 152. The server 150 may respond to the request and store the file with the specified name in the storage 152. The file to be saved may exist on the client 141 or may already exist in the server’s local storage 151.
  • the client 141 may communicate a request to the server 150 to store a file with a specified file name in the storage 151.
  • the server 150 may respond to the request and store the file with the specified name in the storage 151.
  • the file to be saved may exist on the client 141 or may exist in other storage accessible via the network such as storage 152, or even in storage on the client 142 (e.g., in a peer-to-peer system).
  • embodiments can be used to store a file on local storage such as a disk or on a removable medium like a flash drive, CD-R, or DVD-R. Furthermore, embodiments may be used to store a file on an external storage device connected to a computer over a connection medium such as a bus, crossbar, network, or other interconnect. In addition, embodiments can be used to store a file on a remote server or on a storage device accessible to the remote server.
  • cloud computing is another example where files are often stored on remote servers or remote storage systems.
  • Cloud computing refers to pooled network resources that can be quickly provisioned so as to allow for easy scalability. Cloud computing can be used to provide software-as-a-service, platform-as-a-service, infrastructure-as-a-service, and similar features.
  • a user may store a file in the “cloud,” which means that the file is stored on a remote network resource though the actual hardware storing the file may be opaque to the user.
  • FIG. IB illustrates a block diagram of an example system 100 for an Graphical Bot Platform that includes a decision tree module 104, an instantiation module 106, an external account integration module 108, a template module 110 a user interface (UI) module 112 and a bot logic module 114.
  • the system 100 may communicate with a user device 140 to display output, via a user interface 144 generated by an application engine 142.
  • the decision tree module 104 of the system 100 may perform functionality as illustrated in FIGS. 2-6.
  • the instantiation module 106 of the system 100 may perform functionality illustrated in FIGS. 2-6.
  • the external account integration module 108 of the system 100 may perform functionality illustrated in FIGS. 2-6.
  • the system 100 may communicate with an external platform 130 in order to access an external user account 130-1 via the external account integration module 108.
  • the template module 110 of the system 100 may perform functionality as illustrated in FIGS. 2-6.
  • the user interface module 112 of the system 100 may display information based on functionality as illustrated in FIGS. 4A, 4B, 4C-6.
  • the bot logic module 114 of the system 100 may perform functionality as illustrated in FIGS. 2-6.
  • databases 120, 122 and 124 are displayed separately, the databases and information maintained in a database may be combined together or further separated in a manner the promotes retrieval and storage efficiency and/or data security.
  • the Graphical Bot Platform provides functionalities to a user account(s) to build a bot program by building a graphical decision tree.
  • the user account selects and customizes decisions, operations and logic the bot program will follow.
  • Such logic may be represented graphically through a user interface such that the user account need not have to write software code to build the graphical decision tree. Instead, the user account selects graphical elements that represent types of (or portions of) logic the user account wants the bot program to execute.
  • the Graphical Bot Platform instantiates an active bot program based on the graphical decision tree. The bot program may run automatically on behalf of the user account requiring minimal oversight or intervention from the user account.
  • the active bot program may execute multiple times according to an interval selected by the user account to determine whether certain conditions are satisfied according to its logical operations. If during a particular interval during which the active bot program determines that one or more conditions are satisfied or detected, the active bot program may generate a result. In various embodiments, the result may trigger an action at an external account whereby the external account is associated with the same individual that accessed the Graphical Bot Platform through the user account in order to build the bot program via the graphical decision tree.
  • the action at the external account triggered by the bot program may be executed at an external platform that hosts the external account. The action may be executed at the external platform according to requirements and parameters sent from the bot program in accordance with one or more account privileges and permissions currently active on the external account.
  • the Graphical Bot Platform receives a selection of a first logic module for execution subsequent to execution of a parent logic module.
  • a first user account may access a dashboard graphical user interface.
  • the first user account selects a functionality that allows them to create (or update) a new bot program.
  • the first user account may then select one or more menu items that represent chunks of algorithmic decisions (i.e. a portion of a decision tree, a portion of a logic flow).
  • each respective logic module may embody a portion of logic necessary to implement an options trading decision via a financial transaction(s) concerning a particular stock(s), a stock price(s) and a range of time(s).
  • the first user account may then build the overall logical operations that are to be executed by the hot program via selection of graphical elements that correspond to respective logical operations.
  • the first user account further customizes selected logical operations by applying one or more parameters for the selected logical operations.
  • the first user account may build a hot program for performing an online financial transaction.
  • the user-selected parameters may define the amount of money allocated to the financial transaction, a total number of positions, a maximum number of positions per day and/or respective position limit(s).
  • the first user account may choose one or more parameters that constrain the hot program to execute a financial transaction or determine that a logical condition is satisfied based on whether not a pre-selected stock is above or below its 60-day average price.
  • a hot program may be designed to be a “button” hot program that will be executed in response to the first user account selecting a functionality to trigger execution of the hot program.
  • a hot program may be designed to be a “monitor” hot program that will be executed according to a selected interval (i.e. every 15 minutes, once day, 3 times per week, every hour) in order to continually monitor open positions and to determine whether or not to trigger a financial transaction on the basis of continually streaming incoming real-time financial market data.
  • a hot program may be designed to be an “event” hot program that will be executed when a user-defined event occurs, where the event is detected by one or more values included in the financial market data.
  • Abot program may be designed to be an “scanner” bot program that will be executed according to an interval and when an open position is detected.
  • the Graphical Bot Platform displays, via a user interface, a first graphical child node that represents the first logic module extending from a first branch of a graphical decision tree with a parent node representing the parent logic module.
  • the Graphical Bot Platform receives, at a user interface portion separate from display of the graphical decision tree, one or more user-selected module parameters of the first logic module.
  • the user interface continually updates display of the graphical decision tree as the first user account selects a graphical element that represents one or more logical operations.
  • the graphical decision tree for a bot program may have respective hierarchical levels whereby a first level may include one or more graphical elements and a second lower level may also have one or more graphical elements.
  • the logical operations embodied by the second lower level graphical elements will be executed by the corresponding bot program on the basis of one or more conditions being satisfied (or not being satisfied) according to execution of the logical operations embodied by the first level graphical elements. It is understood that a graphical decision tree for a bot program may have multiple levels and multiple branches.
  • a bot program instantiates a first bot program to perform logical operations embodied in the parent and first logic modules according to respective user- selected module parameters.
  • a bot program may be a software program built according to logic modules selected and customized by a user account. The execution of a bot program is based on receipt of the continually streaming incoming real-time financial market data. Values for the user-selected parameters are obtained from the real-time financial market data receiving one or more values of real-time data.
  • the respective logical operation of the bot program may be based on a stock price of “Company A.”
  • the respective logical operation may be performed with a user-selected parameter temporarily set at a current stock price of “Company A.”
  • the respective logical operation may be again be performed with the same user-selected parameter temporarily set at an updated current stock price of “Company A” due to the real-time financial market data reflecting a price change in the stock.
  • an active bot program may continually update a value of a user-selected parameter for a particular logic module.
  • a user-selected parameter may be an expiration date for the bot program. If the bot program is initially instantiated with an expiration date that occurs in 45 days, the bot program may continually count down from a date of its first active day until it is active on the 45 th day before expiring.
  • a user-selected parameter may be based on a particular stock’s 30-day derived delta value such that a condition of the bot program is satisfied when a particular stock is detected as having a current price that is closest to that particular stock’s 30-day derived delta value.
  • the bot program Upon determining the condition is satisfied, the bot program initiates a financial transaction at an external account with regard to the particular stock.
  • the Graphical Bot Platform initiates an action to be performed through an external user account according to one or more user account privileges assigned to the external user account.
  • execution of the bot program during a particular interval may satisfy one or more conditions of its logical operations to thereby determine that a financial transaction is to be triggered.
  • the Graphical Bot Platform may be connected to an external platform, such as a stock market trading platform, via an application programming interface (API), through which the Graphical Bot Platform may access an external user account that corresponds to the same user identity as the first user account that built and defined the bot program.
  • API application programming interface
  • the Graphical Bot Platform may send one or more commands to the external user account to trigger the financial transaction to consume a resource of the external user account.
  • the financial transaction may require user of a certain amount of money from a current money balance available in the external user account.
  • the commands sent from the Graphical Bot Platform to the external user account are compatible with one or more privileges and one or more administrative permissions in the external stock market trading platform that allow the external user account to request and settle the financial transaction.
  • a bot program may be built and designed by a user account according to one or more logic modules for a smart pricing algorithm.
  • the smart pricing bot program may execute through various iterations in which it continually adjusts an offer price for a particular stock(s). For example, the bot program may detect a current price for a particular stock and may then determine a first offer purchase price based on that current price.
  • the bot program may send a first offer through the external user account according to the first offer purchase price.
  • the bot program may update the first offer purchase based on an incremental amount as defined by the user account in order to calculate a second offer purchase price.
  • the bot program may detect a current price of the stock in order to confirm whether or not the current price is above or below the second offer purchase price. If the current price is below the second offer purchase price, the bot program may further check if a difference between the current price and the second offer purchase price is within a defined range determined by the user account. If the defined range is satisfied, the bot program may send a second offer through the external user account according to the second offer purchase price. It is understood that the hot program may continually iterate according to its logical operations until a financial transaction is triggered at the external user account. In various embodiments, the user account may place a limit on a number of iterations per day for the hot program and/or define a maximum allowed purchase price that is not to be exceeded.
  • the Graphical Bot Platform saves a template representative of the first bot program, whereby the first bot program is created by a first user account.
  • the first user account may build the first bot program and save it as a template that is accessible to one or more other user accounts.
  • the Graphical Bot Platform receives a request from a second user account to access the template.
  • the second user account may access the template of the first bot program without disrupting the first bot program instance that executes on behalf of the first user account.
  • the Graphical Bot Platform receives, at the user interface portion separate from display of the graphical decision tree that corresponds to the template, one or more updated user-selected module parameters of the first logic module selected by the second user account.
  • the user interface may display the graphical decision tree of the first bot program.
  • the second user account may access functionality that allows the second user account to modify any of the parameters that the first user account selected in order to customize the first bot program.
  • the second user account may build a different version of the first bot program to build a second bot program with similar logical operations but with one or more updated parameters.
  • the second user account may remove one or more logical operations from the graphical decision tree of the first bot program and/or add one or more logical operations from the graphical decision tree of the first hot program via the user interface. In some embodiments, the second user account may not make any updates or modification to the template.
  • the Graphical Bot Platform instantiates a second hot program to perform one or more logical operations embodied in the parent and first logic modules according to the updated respective user-selected module parameters.
  • the Graphical Bot Platform may instantiate a second bot program based on the template accessed by the second user account.
  • the first and second bot programs may be concurrently active, with each one running on behalf of the first user account and the second user account, respectively.
  • the Graphical Bot Platform receives a modification of the first logic module of the first bot program from the second user account via the template and updates the active second bot program instantiated for the second user account according to the modification of the first logic module.
  • the second user account may again access the template of the first bot program and select an update to a particular logical operation(s) represented in the graphical decision tree of the template and/or select an update to one or more parameters for a particular logical operation(s).
  • the Graphical Bot Platform may identify one or more of the different bot programs based on the template that are currently running on behalf the second user account that implement the updated particular logical operation(s) and/or updated parameter(s).
  • the Graphical Bot Platform may automatically update the identified bot programs according to the updated particular logical operation(s) and/or updated parameter(s). It is understood that such updating of the second user account’s active hot programs does not effect or disrupt any active hot program based on the same template that is running on behalf of another user account(s).
  • a user interface 400 of the Graphical Bot Platform displays a graphical decision tree.
  • the graphical decision tree has a parent node 402, a first level child node 404 and a second level child node 408.
  • Each node 402, 404, 408 represents a logic module that includes one or more logical operations to be performed by a bot program.
  • the graphical decision tree includes a node space 406 at which a user account can insert a graphical element that represents a logic module that will be included in the logical operations to be performed by the bot program.
  • a user interface 410 of the Graphical Bot Platform displays a logic module selection menu 412.
  • the menu 412 includes selectable graphical elements 414, 416, 418, where each selectable graphical element 414, 416, 418 represents a distinct logic module that a user account may select for insertion into a node space at any level of a graphical decision tree.
  • the user account may further customize one or more parameters for a selected graphical element.
  • a user interface 420 of the Graphical Bot Platform displays a graphical decision tree.
  • the graphical decision tree has a parent node 422 and two first level child nodes 424, 426.
  • a child node 424 may include logical operations for a bot program to temporarily halt execution during a respective iteration of execution.
  • a user interface 500 of the Graphical Bot Platform displays a listing of scanner bot programs 502 built by a user account. Each bot program in the listing 502 may be represented according to a corresponding modifiable graphical decision tree.
  • the user interface 500 includes a user interface portion 504 that displays a menu that includes a selectable functionality for cloning 506 a selected bot program from the listing 502 and generating a template 508 based on a selected bot program from the listing 502. Cloning a bot program generates a copy of the bot program’s graphical decision tree for the user account. Saving a template generates a copy of the bot program’s graphical decision that can be pushed out to other user accounts.
  • a user interface 600 of the Graphical Bot Platform displays a listing of templates 600.
  • the listing 600 displays labels for 602, 604, 606, 608, 610 for respective templates.
  • the user account may select a particular label in order to access the corresponding templates graphical decision tree in order to build a bot program for the user account based on the template.
  • Each respective template identified in the listing 600 may be provided to the Graphical Bot Platform by other user accounts.
  • FIG. 7 illustrates an example machine of a computer system within which a set of instructions, for causing the machine to perform any one or more of the methodologies discussed herein, may be executed.
  • the machine may be connected (e.g., networked) to other machines in a LAN, an intranet, an extranet, and/or the Internet.
  • the machine may operate in the capacity of a server or a client machine in client-server network environment, as a peer machine in a peer-to-peer (or distributed) network environment, or as a server or a client machine in a cloud computing infrastructure or environment.
  • the machine may be a personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a server, a network router, a switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine.
  • PC personal computer
  • PDA Personal Digital Assistant
  • STB set-top box
  • STB set-top box
  • a Personal Digital Assistant PDA
  • a cellular telephone a web appliance
  • server a server
  • network router a network router
  • switch or bridge any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine.
  • machine shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.
  • the example computer system 700 includes a processing device 702, a main memory 704 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), etc ), a static memory 706 (e.g., flash memory, static random access memory (SRAM), etc.), and a data storage device 718, which communicate with each other via a bus 730.
  • main memory 704 e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), etc
  • DRAM dynamic random access memory
  • SDRAM synchronous DRAM
  • RDRAM Rambus DRAM
  • static memory 706 e.g., flash memory, static random access memory (SRAM), etc.
  • SRAM static random access memory
  • Processing device 702 represents one or more general-purpose processing devices such as a microprocessor, a central processing unit, or the like. More particularly, the processing device may be complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or processor implementing other instruction sets, or processors implementing a combination of instruction sets. Processing device 702 may also be one or more special-purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like. The processing device 702 is configured to execute instructions 726 for performing the operations and steps discussed herein.
  • ASIC application specific integrated circuit
  • FPGA field programmable gate array
  • DSP digital signal processor
  • the computer system 700 may further include a network interface device 708 to communicate over the network 720.
  • the computer system 700 also may include a video display unit 710 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), an alphanumeric input device 712 (e.g., a keyboard), a cursor control device 714 (e.g., a mouse), a graphics processing unit 722, a signal generation device 716 (e.g., a speaker), graphics processing unit 722, video processing unit 728, and audio processing unit 732.
  • a video display unit 710 e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)
  • an alphanumeric input device 712 e.g., a keyboard
  • a cursor control device 714 e.g., a mouse
  • a graphics processing unit 722 e.g., a signal generation device 716 (e.g., a
  • the data storage device 718 may include a machine-readable storage medium 724 (also known as a computer-readable medium) on which is stored one or more sets of instructions or software 726 embodying any one or more of the methodologies or functions described herein.
  • the instructions 726 may also reside, completely or at least partially, within the main memory 704 and/or within the processing device 702 during execution thereof by the computer system 700, the main memory 704 and the processing device 702 also constituting machine-readable storage media.
  • the instructions 726 include instructions to implement functionality corresponding to the components of a device to perform the disclosure herein.
  • the machine-readable storage medium 724 is shown in an example implementation to be a single medium, the term “machine-readable storage medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions.
  • the term “machine-readable storage medium” shall also be taken to include any medium that is capable of storing or encoding a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present disclosure.
  • the term “machine-readable storage medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical media and magnetic media.
  • the present disclosure also relates to an apparatus for performing the operations herein.
  • This apparatus may be specially constructed for the intended purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer.
  • a computer program may be stored in a computer readable storage medium, such as, but not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, each coupled to a computer system bus.
  • the present disclosure may be provided as a computer program product, or software, that may include a machine-readable medium having stored thereon instructions, which may be used to program a computer system (or other electronic devices) to perform a process according to the present disclosure.
  • a machine-readable medium includes any mechanism for storing information in a form readable by a machine (e.g., a computer).
  • a machine- readable (e.g., computer-readable) medium includes a machine (e.g., a computer) readable storage medium such as a read only memory (“ROM”), random access memory (“RAM”), magnetic disk storage media, optical storage media, flash memory devices, etc.
  • a parameter may be any input selected by a user account which further defines a logic module for a graphical decision tree that may be executed by a bot program(s).
  • a parameter(s) may be conditional logic or specific a type(s) of a decision value, threshold, position.
  • a parameter may also be based on a recipe of other parameters as well. It is understood that one or more parameters may further be editable by the user account.
  • one or more global bot parameters may be selected while a user-account builds a graphical decisions for a bot program
  • the global hot parameters may be, for example: name, icon, allocation (i.e. amount of available money), daily position limit (i.e. number of positions that can be entered on any given trading day) and total position limit (i.e. number of positions that can open at any given time).
  • Global bot parameters are “kill switch” conditions that must be dictated for every bot program and are checked by the Graphical Bot Platform before each traversal of a decision tree automation (i.e. iteration of bot program execution). If one or more of the respective conditions imposed by user-selected global bot parameters are satisfied, the Graphical Bot Platform triggers the corresponding bot program to execute the one or more branches of the decision tree built by the user.
  • one or more parameters for a monitor and/or scanner bot program may belong to two parameter subgroups.
  • a first subgroup may be a decision criteria parameter subgroup (i.e. types of graphical tree decisions) includes parameters, such as: stock-based decision criteria, opportunity-based decision criteria, indicator-based decision criteria and position-based decision criteria.
  • a second subgroup may be an opening/closing positions subgroup which includes three categories of parameters: long, short, neutral.
  • the long category includes the following parameters: equity, call, put, call spread and put spread.
  • the short category includes the following parameters: equity, call spread and put spread.
  • the neutral category includes the following parameters: iron condor and iron butterfly.
  • a listing of available parameters of stock-based decision criteria is illustrated in a user interface diagram 900 of FIG. 9.
  • a listing of available opportunity -based decision criteria is illustrated in a user interface diagram 1000 of FIG. 10.
  • the Graphical Bot Platform applies a translation process to the parameters.
  • the rate of return parameter of the opportunity-based decision criteria subgroup may be defined according to a condition of “Opportunity rate of return is greater than 25% ”
  • the Graphical Bot Platform translates the rate of return parameter into a real number before the Graphical Bot Platform tests the mathematical condition according to the corresponding logic module. All parameters are evaluated for a binary outcome (true or false). In general, all numeric parameters are used to test a conditional statement for truthfulness.
  • the conditions are described with natural language that represents a mathematical operation, e.g., above or below implies greater than or less than in “CORP. A price is above/below 100.”
  • the rate of return parameter can be edited by a user account for a bot program to base a decision to enter a trade on whether or not the rate of return for a short put spread is greater than 25%.
  • the user account may further select additional parameters for the short put spread.
  • a listing of available parameters of position-based decision criteria is illustrated in a user interface diagram 1300 of FIG. 13.
  • the types of position-based decision parameters listed in user interface diagram 1300 provide a bot program(s) logic for evaluating properties of trades that have already been placed and are being tracked.
  • the parameters listed for the position-based decision criteria includes three categories of parameters: long, short and neutral.
  • the long category includes the following parameters: equity, call, put, call spread and put spread.
  • the short category includes the following parameters: equity, call spread and put spread.
  • the neutral category includes the following parameters: iron condor and iron butterfly.
  • a bot program decides whether a property about that position is true or false (e.g., the position is long, the position type is not an Iron Condor, etc. ).
  • a listing of available parameters of indicator-based decision criteria is illustrated in a user interface diagram 1500 of FIG. 15.
  • the parameters listed in the user interface diagram 1500 may evaluate relationships between outputs of mathematical equations, known as technical indicators. These equations use historical price history as inputs, which is provided to each decision parameter recipe by the Graphical Bot Platform.
  • a user account may input further parameters for a technical indicator decision recipe as shown in a user interface diagram 1600 of FIG. 16.
  • the Iron Condor parameter belongs to the neutral category of the opening/closing positions subgroup (i.e. the second subgroup.)
  • a user account may select additional parameters for the Iron Condor parameter such as a stock price symbol (“TLT”), “45 days expiration,” “.30 delta Short Call,” “-.30 delta Short Put,” etc.
  • TLT stock price symbol
  • a user account may build a graphical decision tree with one or more logic modules that define a long call option contract trade.
  • a profit may be realized if the increase in price of the underlying contract is sufficiently above a minimum threshold, which is dictated by the contract at the time of purchase. Since the spot price has no maximum limit on its value, this type of trade has the potential for infinite profit. The maximum loss to the investor is the premium paid to purchase the contract.
  • the user account allocates a maximum of $5,000 for a graphical decision tree for a bot program to execute the strategy. Additionally, the graphical decision tree for a bot program may be limited to entering a single position per daily with a maximum position limit of one.
  • a user interface diagram 1900 of FIG. 19 the user account selects a Scanner type automation to find trading opportunities for the long call option contract trade.
  • the corresponding graphical decision tree outlines criteria for trade discovery (user interface diagram 2000 of FIG. 20).
  • the user account selects a Monitor type automation to determine when to exit the position (user interface diagram 2100 of FIG. 21).
  • the corresponding graphical decision tree defines the criteria to exit the position (user interface diagram 2200 of FIG. 22).
  • the bot program for the long call option contract trade may be switched on to execute according to the scanner and monitor graphical decision trees.
  • the bot program runs on the Graphical Bot Platform commences its corresponding logic at every defined interval.
  • the bot program running in the Graphical Bot Program detects that the entry criteria for the long call option contract trade is met during open market hours and a position is opened. A view of details and attributes of the opened position may be displayed in a user interface diagram 2500 as shown in FIG. 25.
  • the investor tied to the user account wishes to “go short” if he believes the current price is too high or can go no higher.
  • One way to do this is by selling a short call spread.
  • the investor chooses a price level at which he believes the spot price of the underlying will not breach to the upside. Profit may be realized if the price of the underlying security stays below the level selected, known as the short strike. Since this is a short sale (i.e. the investor sells something he does not own and buys it back at a later date), the maximum profit is equal to the initial premium for which it was sold.
  • the maximum loss is the difference between the short strike and the long strike less the premium the investor initially received as a credit. In general, the risk exceeds the profit potential for a spread trade.
  • the tradeoff is a higher probability of profit than probability of loss.
  • the investor notices that the price of Apple (AAPL) stock has trouble staying over $120 per share and the share price tends to fall in the days and weeks after reaching the $120 price level.
  • the investor hypothesizes that there is profit potential if he sells a call spread at a strike above $120, he can capitalize on the stock’s inevitable fall - a classic contrarian play. Since there are no guarantees, the investor decides not to be greedy and close his position at any time if he receives at least 50% of the maximum profit.
  • the user account defines a hot program and imposes one or more limits on its ability to execute automated trades.
  • the user account selects a Scanner type automation to find trading opportunities for the short call spread trade.
  • the corresponding graphical decision tree outlines criteria for trade discovery (user interface diagram 2800 of FIG. 28).
  • the user account selects a Monitor type automation to determine when to exit the position (user interface diagram 2900 of FIG. 29).
  • the corresponding graphical decision tree defines the criteria to exit the position (user interface diagram 3000 of FIG. 30).
  • the hot program for the short call spread may be switched on to execute according to the scanner and monitor graphical decision trees.
  • the bot program runs on the Graphical Bot Platform commences its corresponding logic at every defined interval.
  • the Graphical Bot Platform implements a smart pricing algorithm via a smart pricing bot program (“Smart Pricing”).
  • Smart Pricing systematically issues and cancels options orders in a controlled/predefmed manner that “walks” or traverses a bid/ask spread in a direction between a most favorable price parameter to a least favorable price parameter, either in increments or decrements if the trade is long or short, respectively.
  • Smart Pricing intelligently detects a pricing structure of an underlying options chain and calculates intervals based on “penny-wide” or “nickel-wide” increments (such as those found in larger index options).
  • the Graphical Bot Platform receives one or more parameter selections for Smart Pricing from a user.
  • a first parameter (“number of increments”) may set total number of increments that will be calculated between a most favorable price and a price determined by the traversable percentage of a bid/ask spread.
  • a second parameter (“time interval between increments”) may define an allotted time for each limit order that may lapse before that limit order is canceled if it is not filled.
  • a third parameter (“traversable percentage of a bid/ask spread”) may be an allowed percentage of a bid/ask spread width utilized for calculating pricing increments.
  • the user may input selections for a graphical decision tree for building one or more logical operations to be performed by the smart pricing bot program.
  • Smart Pricing functionality on the Graphical Bot Platform enables a user to enter a long call option trade (“long call”).
  • a bid/ask spread for the long call may be $2.50 bid price to $2.70 ask price.
  • Such a bid/ask spread defines a possibility of an immediate fill of the long call at the far end of the spread with a purchase at the $2.70 ask price.
  • Smart Pricing embodies a preference to execute the long call trade where such a transaction is more likely to occur at a better price (i.e. lower price than ask price), although not guaranteed.
  • the user may select a number of increments parameter of 5, a time interval between increments parameter of 30 seconds and a traversable percentage of a bid/ask spread parameter of 60%.
  • Smart Pricing analyzes the option’s spread ($2.50 bid price to $2.70 ask price) and generates a set of logical operations based on the user’s selected parameters. In the case of purchasing a long call option, it is better to buy at the lowest possible price. Smart Pricing segments 60% of the spread width into a range of favorable prices closer to the $2.50 bid price than the $2.70 ask price. For example, Smart Pricing calculates a number of desired increments between the bid price and a maximum acceptable price. As defined by the 5 number of increments, the desired price increments determined by Smart Pricing may be from $2.50, $2.53, $2.56, $2.59 to $2.62.
  • Smart Pricing issues a limit order request for each price increment on behalf of the user.
  • the limit orders issued by Smart Pricing start with a most favorable price and traverses toward a least favorable price.
  • Smart Pricing waits (i.e. pauses) according to the time interval between increments parameter (i.e. 30 seconds). After 30 seconds lapse, Smart Pricing verifies whether or not the first order was accepted. If the first order was not accepted, Smart Pricing executes cancellation of the first order and increments a limit price ($2.53). Smart Pricing reissues the limit order request on behalf of the user at the new price ($2.53).
  • Smart Pricing continues to iterate according to logic steps of (1) issue/reissue limit order, (2) wait, (3) verify not accepted, (4) cancel and (5) increment until Smart Pricing detects satisfaction of termination criteria, such as filling of a requested limit order or exhaustion of all possible incremental prices.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Human Computer Interaction (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Finance (AREA)
  • Tourism & Hospitality (AREA)
  • Accounting & Taxation (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Primary Health Care (AREA)
  • Artificial Intelligence (AREA)
  • Technology Law (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Development Economics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

Various embodiments of an apparatus, methods, systems and computer program products described herein are directed to a Graphical Bot Platform. The Graphical Bot Platform receives a selection of a first logic module for execution subsequent to execution of a parent logic module. The Graphical Bot Platform displays, via a user interface, a first graphical child node that represents the first logic module extending from a first branch of a graphical decision tree with a parent node representing the parent logic module. The Graphical Bot Platform instantiates a first bot program to perform logical operations embodied in the parent and first logic modules according to respective user-selected module parameters. Based on a result of the first bot program, the Graphical Bot Platform initiates an action to be performed through an external user account according to one or more user account privileges assigned to the external user account.

Description

GRAPHICAL GENERATION OF EOT PROGRAMS FOR TRIGGERING EXTERNAL
PLATFORM ACTIONS
CROSS-REFERENCE TO RELATED APPLCIATIONS
This application claims the benefit of U.S. Provisional Application No. 63/118,547, filed November 25, 2020, which is hereby incorporated by reference in its entirety.
BACKGROUND
[0001] A conventional online platform may be a resource that an end-user may access over the Internet that provides a variety of bundled functionalities that are generally related to a specific topic, domain or organization. A conventional online platform may include a messaging or chat function internal to the platform and may include storage of the end-user’s files. The platform may allow the end-user to assign protective attributes to files stored on the platform such that other end-users may access some stored files but not other stored files. In addition, conventional online platforms may provide asynchronous and/or synchronous collaboration tools and functionalities that allow multiple users to share and create data and files.
SUMMARY
[0002] Various embodiments of an apparatus, methods, systems and computer program products described herein are directed to a Graphical Bot Platform. The Graphical Bot Platform provides many improvements and advantages over conventional systems. The Graphical Bot Platform allows a user(s) to select and customize underlying logical operations to be performed by a bot program via a graphical user interface dashboard. The Graphical Bot Platform may be connected to (or integrated with) an external platform(s). The Graphical Bot Platform may instantiate and execute a bot program on behalf of a user account. The bot program may generate a result to trigger an action performed by an external user account that consumes (or utilizes) one or more resources available at the external platform.
[0003] The Graphical Bot Platform receives a selection of a first logic module for execution subsequent to execution of a parent logic module. The Graphical Bot Platform displays, via a user interface, a first graphical child node that represents the first logic module extending from a first branch of a graphical decision tree with a parent node representing the parent logic module. The Graphical Bot Platform instantiates a first bot program to perform logical operations embodied in the parent and first logic modules according to respective user-selected module parameters. Based on a result of the first bot program, the Graphical Bot Platform initiates an action to be performed through an external user account according to one or more user account privileges assigned to the external user account.
[0004] According to various embodiments, Graphical Bot Platform generates and displays various user interface portions that allow for a first user account to select one or more graphical blocks (or nodes) that represent chunks of logic, an algorithm or a portion of an algorithm. The first user account may select one or more parameters and/or types of parameters for the selected graphical blocks (or nodes). As the first user account selects each graphical block (or node), the Graphical Bot Platform builds and displays a graphical tree that includes branches that connects the respective selects graphical blocks. For example, a graphical tree may portray a logical flow (or decision flow) that is customized according to the first user account’s selections.
[0005] The Graphical Bot Platform may generate a bot program(s) based on the graphical tree. The bot program embodies the logical operations represented by the user-selected graphical blocks according to the user-selected parameters. Each bot program may be executed according to a user-selected interval, whereby a bot program remains idle and is triggered to become active and execute upon satisfaction of one or more conditions. Upon becoming active, the bot program connects to an incoming stream of real-time data. The real-time data provides one or more values for at least a portion of the user-selected parameters. Since real-time data is dynamic and may frequently change, subsequent iterations of the bot program execution may utilize different values for the same user-selected parameters. A particular execution of the bot program according during a particular interval may generate a result that requires the bot program to access an external account that corresponds to the same user identity as the first user account. By accessing the external account, the bot program may trigger an action to be completed with one or more resources accessible at the external user account.
[0006] According to various embodiments, the Graphical Bot Platform saves a template representative of the first bot program, the first bot program created by a first user account. The Graphical Bot Platform receives a request from a second user account to access the template. The Graphical Bot Platform receives, at the user interface portion separate from display of the graphical decision tree that corresponds to the template, one or more updated user-selected module parameters of the first logic module selected by the second user account. The Graphical Bot Platform instantiates a second bot program to perform one or more logical operations embodied in the parent and first logic modules according to the updated respective user-selected module parameters, the first and second bot programs being concurrently active.
[0007] According to various embodiments, one or more bot programs may perform logical operations according to user-selected parameters with value based on real-time data representative of financial market transactions. [0008] Further areas of applicability of the present disclosure will become apparent from the detailed description, the claims and the drawings. The detailed description and specific examples are intended for illustration only and are not intended to limit the scope of the disclosure.
BRIEF DESCRIPTION OF THE DRAWINGS
[0009] The present disclosure will become better understood from the detailed description and the drawings, wherein:
[0010] FIG. 1A is a diagram illustrating an exemplary environment in which some embodiments may operate.
[0011] FIG. IB is a diagram illustrating an exemplary environment in which some embodiments may operate.
[0012] FIG. 2 is a diagram illustrating an exemplary method that may be performed in some embodiments.
[0013] FIG. 3 is a diagram illustrating an exemplary environment in which some embodiments may operate.
[0014] FIGS. 4A, 4B and 4C are each diagram of an exemplary user interface according to one or more embodiments.
[0015] FIG. 5 is a diagram of an exemplary user interface according to one or more embodiments.
[0016] FIG. 6 is a diagram of an exemplary user interface according to one or more embodiments.
[0017] FIG. 7 is a diagram illustrating an exemplary environment in which some embodiments may operate. [0018] FIGS. 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30 and 31 each illustrate a diagram of an exemplary user interface according to one or more embodiments.
DETAILED DESCRIPTION
[0019] In this specification, reference is made in detail to specific embodiments of the invention. Some of the embodiments or their aspects are illustrated in the drawings.
[0020] For clarity in explanation, the invention has been described with reference to specific embodiments, however it should be understood that the invention is not limited to the described embodiments. On the contrary, the invention covers alternatives, modifications, and equivalents as may be included within its scope as defined by any patent claims. The following embodiments of the invention are set forth without any loss of generality to, and without imposing limitations on, the claimed invention. In the following description, specific details are set forth in order to provide a thorough understanding of the present invention. The present invention may be practiced without some or all of these specific details. In addition, well known features may not have been described in detail to avoid unnecessarily obscuring the invention.
[0021] In addition, it should be understood that steps of the exemplary methods set forth in this exemplary patent can be performed in different orders than the order presented in this specification. Furthermore, some steps of the exemplary methods may be performed in parallel rather than being performed sequentially. Also, the steps of the exemplary methods may be performed in a network environment in which some steps are performed by different computers in the networked environment.
[0022] Some embodiments are implemented by a computer system. A computer system may include a processor, a memory, and a non-transitory computer-readable medium. The memory and non-transitory medium may store instructions for performing methods and steps described herein.
[0023] A diagram of exemplary network environment in which embodiments may operate is shown in FIG 1A. In the exemplary environment 140, two clients 141, 142 are connected over a network 145 to a server 150 having local storage 151. Clients and servers in this environment may be computers. Server 150 may be configured to handle requests from clients. Server 150 may be implemented as a number of networked server devices, though it is illustrated as a single entity.
[0024] The exemplary environment 140 is illustrated with only two clients and one server for simplicity, though in practice there may be more or fewer clients and servers. The computers have been termed clients and servers, though clients can also play the role of servers and servers can also play the role of clients. In some embodiments, the clients 141, 142 may communicate with each other as well as the servers. Also, the server 150 may communicate with other servers.
[0025] The network 145 may be, for example, local area network (LAN), wide area network (WAN), telephone networks, wireless networks, intranets, the Internet, or combinations of networks. The server 150 may be connected to storage 152 over a connection medium 160, which may be a bus, crossbar, network, or other interconnect. Storage 152 may be implemented as a network of multiple storage devices, though it is illustrated as a single entity. Storage 152 may be a file system, disk, database, or other storage.
[0026] In an embodiment, the client 141 may perform the method 200 or other method herein and, as a result, store a file in the storage 152. This may be accomplished via communication over the network 145 between the client 141 and server 150. For example, the client may communicate a request to the server 150 to store a file with a specified name in the storage 152. The server 150 may respond to the request and store the file with the specified name in the storage 152. The file to be saved may exist on the client 141 or may already exist in the server’s local storage 151.
[0027] The client 141 may communicate a request to the server 150 to store a file with a specified file name in the storage 151. The server 150 may respond to the request and store the file with the specified name in the storage 151. The file to be saved may exist on the client 141 or may exist in other storage accessible via the network such as storage 152, or even in storage on the client 142 (e.g., in a peer-to-peer system).
[0028] In accordance with the above discussion, embodiments can be used to store a file on local storage such as a disk or on a removable medium like a flash drive, CD-R, or DVD-R. Furthermore, embodiments may be used to store a file on an external storage device connected to a computer over a connection medium such as a bus, crossbar, network, or other interconnect. In addition, embodiments can be used to store a file on a remote server or on a storage device accessible to the remote server.
[0029] Furthermore, cloud computing is another example where files are often stored on remote servers or remote storage systems. Cloud computing refers to pooled network resources that can be quickly provisioned so as to allow for easy scalability. Cloud computing can be used to provide software-as-a-service, platform-as-a-service, infrastructure-as-a-service, and similar features. In a cloud computing environment, a user may store a file in the “cloud,” which means that the file is stored on a remote network resource though the actual hardware storing the file may be opaque to the user.
[0030] FIG. IB illustrates a block diagram of an example system 100 for an Graphical Bot Platform that includes a decision tree module 104, an instantiation module 106, an external account integration module 108, a template module 110 a user interface (UI) module 112 and a bot logic module 114. The system 100 may communicate with a user device 140 to display output, via a user interface 144 generated by an application engine 142.
[0031] The decision tree module 104 of the system 100 may perform functionality as illustrated in FIGS. 2-6.
[0032] The instantiation module 106 of the system 100 may perform functionality illustrated in FIGS. 2-6.
[0033] The external account integration module 108 of the system 100 may perform functionality illustrated in FIGS. 2-6. The system 100 may communicate with an external platform 130 in order to access an external user account 130-1 via the external account integration module 108.
[0034] The template module 110 of the system 100 may perform functionality as illustrated in FIGS. 2-6.
[0035] The user interface module 112 of the system 100 may display information based on functionality as illustrated in FIGS. 4A, 4B, 4C-6.
[0036] The bot logic module 114 of the system 100 may perform functionality as illustrated in FIGS. 2-6.
[0037] While the databases 120, 122 and 124 are displayed separately, the databases and information maintained in a database may be combined together or further separated in a manner the promotes retrieval and storage efficiency and/or data security.
[0038] According to various embodiments, the Graphical Bot Platform provides functionalities to a user account(s) to build a bot program by building a graphical decision tree. By building the graphical decision tree, the user account selects and customizes decisions, operations and logic the bot program will follow. Such logic may be represented graphically through a user interface such that the user account need not have to write software code to build the graphical decision tree. Instead, the user account selects graphical elements that represent types of (or portions of) logic the user account wants the bot program to execute. Upon the user account completing the graphical decision tree, the Graphical Bot Platform instantiates an active bot program based on the graphical decision tree. The bot program may run automatically on behalf of the user account requiring minimal oversight or intervention from the user account. The active bot program may execute multiple times according to an interval selected by the user account to determine whether certain conditions are satisfied according to its logical operations. If during a particular interval during which the active bot program determines that one or more conditions are satisfied or detected, the active bot program may generate a result. In various embodiments, the result may trigger an action at an external account whereby the external account is associated with the same individual that accessed the Graphical Bot Platform through the user account in order to build the bot program via the graphical decision tree. The action at the external account triggered by the bot program may be executed at an external platform that hosts the external account. The action may be executed at the external platform according to requirements and parameters sent from the bot program in accordance with one or more account privileges and permissions currently active on the external account.
[0039] As shown in the flowchart 200 of FIG. 2, at step 202, the Graphical Bot Platform receives a selection of a first logic module for execution subsequent to execution of a parent logic module. According to various embodiments, a first user account may access a dashboard graphical user interface. The first user account selects a functionality that allows them to create (or update) a new bot program. The first user account may then select one or more menu items that represent chunks of algorithmic decisions (i.e. a portion of a decision tree, a portion of a logic flow). For example, each respective logic module may embody a portion of logic necessary to implement an options trading decision via a financial transaction(s) concerning a particular stock(s), a stock price(s) and a range of time(s).
[0040] The first user account may then build the overall logical operations that are to be executed by the hot program via selection of graphical elements that correspond to respective logical operations. The first user account further customizes selected logical operations by applying one or more parameters for the selected logical operations. For example, the first user account may build a hot program for performing an online financial transaction. The user-selected parameters may define the amount of money allocated to the financial transaction, a total number of positions, a maximum number of positions per day and/or respective position limit(s). For example, the first user account may choose one or more parameters that constrain the hot program to execute a financial transaction or determine that a logical condition is satisfied based on whether not a pre-selected stock is above or below its 60-day average price.
[0041] According to various embodiments, a hot program may be designed to be a “button” hot program that will be executed in response to the first user account selecting a functionality to trigger execution of the hot program. A hot program may be designed to be a “monitor” hot program that will be executed according to a selected interval (i.e. every 15 minutes, once day, 3 times per week, every hour) in order to continually monitor open positions and to determine whether or not to trigger a financial transaction on the basis of continually streaming incoming real-time financial market data. A hot program may be designed to be an “event” hot program that will be executed when a user-defined event occurs, where the event is detected by one or more values included in the financial market data. Abot program may be designed to be an “scanner” bot program that will be executed according to an interval and when an open position is detected.
[0042] At step 204, the Graphical Bot Platform displays, via a user interface, a first graphical child node that represents the first logic module extending from a first branch of a graphical decision tree with a parent node representing the parent logic module. For example, the Graphical Bot Platform receives, at a user interface portion separate from display of the graphical decision tree, one or more user-selected module parameters of the first logic module. According to various embodiments, the user interface continually updates display of the graphical decision tree as the first user account selects a graphical element that represents one or more logical operations. The graphical decision tree for a bot program may have respective hierarchical levels whereby a first level may include one or more graphical elements and a second lower level may also have one or more graphical elements. The logical operations embodied by the second lower level graphical elements will be executed by the corresponding bot program on the basis of one or more conditions being satisfied (or not being satisfied) according to execution of the logical operations embodied by the first level graphical elements. It is understood that a graphical decision tree for a bot program may have multiple levels and multiple branches.
[0043] At step 206, Graphical Bot Platform instantiates a first bot program to perform logical operations embodied in the parent and first logic modules according to respective user- selected module parameters. According to various embodiments, a bot program may be a software program built according to logic modules selected and customized by a user account. The execution of a bot program is based on receipt of the continually streaming incoming real-time financial market data. Values for the user-selected parameters are obtained from the real-time financial market data receiving one or more values of real-time data. For example, the respective logical operation of the bot program may be based on a stock price of “Company A.” During a first iteration of execution of the bot program, the respective logical operation may be performed with a user-selected parameter temporarily set at a current stock price of “Company A.” During a subsequent second iteration of execution, the respective logical operation may be again be performed with the same user-selected parameter temporarily set at an updated current stock price of “Company A” due to the real-time financial market data reflecting a price change in the stock. According to various embodiments, an active bot program may continually update a value of a user-selected parameter for a particular logic module. For example, for a bot program implementing an options trading decision flow, a user-selected parameter may be an expiration date for the bot program. If the bot program is initially instantiated with an expiration date that occurs in 45 days, the bot program may continually count down from a date of its first active day until it is active on the 45th day before expiring. According to another options trading decision flow, a user-selected parameter may be based on a particular stock’s 30-day derived delta value such that a condition of the bot program is satisfied when a particular stock is detected as having a current price that is closest to that particular stock’s 30-day derived delta value. Upon determining the condition is satisfied, the bot program initiates a financial transaction at an external account with regard to the particular stock.
[0044] At step 208, based on a result of the first bot program, the Graphical Bot Platform initiates an action to be performed through an external user account according to one or more user account privileges assigned to the external user account. According to various embodiments, execution of the bot program during a particular interval may satisfy one or more conditions of its logical operations to thereby determine that a financial transaction is to be triggered. The Graphical Bot Platform may be connected to an external platform, such as a stock market trading platform, via an application programming interface (API), through which the Graphical Bot Platform may access an external user account that corresponds to the same user identity as the first user account that built and defined the bot program. The Graphical Bot Platform may send one or more commands to the external user account to trigger the financial transaction to consume a resource of the external user account. For example, the financial transaction may require user of a certain amount of money from a current money balance available in the external user account. It is understood that the commands sent from the Graphical Bot Platform to the external user account are compatible with one or more privileges and one or more administrative permissions in the external stock market trading platform that allow the external user account to request and settle the financial transaction.
[0045] According to an embodiment, a bot program may be built and designed by a user account according to one or more logic modules for a smart pricing algorithm. The smart pricing bot program may execute through various iterations in which it continually adjusts an offer price for a particular stock(s). For example, the bot program may detect a current price for a particular stock and may then determine a first offer purchase price based on that current price. The bot program may send a first offer through the external user account according to the first offer purchase price. During a subsequent second iteration, the bot program may update the first offer purchase based on an incremental amount as defined by the user account in order to calculate a second offer purchase price. The bot program may detect a current price of the stock in order to confirm whether or not the current price is above or below the second offer purchase price. If the current price is below the second offer purchase price, the bot program may further check if a difference between the current price and the second offer purchase price is within a defined range determined by the user account. If the defined range is satisfied, the bot program may send a second offer through the external user account according to the second offer purchase price. It is understood that the hot program may continually iterate according to its logical operations until a financial transaction is triggered at the external user account. In various embodiments, the user account may place a limit on a number of iterations per day for the hot program and/or define a maximum allowed purchase price that is not to be exceeded.
[0046] As shown in the flowchart 300 of FIG. 3, at step 302, the Graphical Bot Platform saves a template representative of the first bot program, whereby the first bot program is created by a first user account. According to various embodiments, the first user account may build the first bot program and save it as a template that is accessible to one or more other user accounts. At step 304, the Graphical Bot Platform receives a request from a second user account to access the template. For example, the second user account may access the template of the first bot program without disrupting the first bot program instance that executes on behalf of the first user account.
[0047] At step 306, the Graphical Bot Platform receives, at the user interface portion separate from display of the graphical decision tree that corresponds to the template, one or more updated user-selected module parameters of the first logic module selected by the second user account. For example, the user interface may display the graphical decision tree of the first bot program. The second user account may access functionality that allows the second user account to modify any of the parameters that the first user account selected in order to customize the first bot program. As such, the second user account may build a different version of the first bot program to build a second bot program with similar logical operations but with one or more updated parameters. In various embodiments, the second user account may remove one or more logical operations from the graphical decision tree of the first bot program and/or add one or more logical operations from the graphical decision tree of the first hot program via the user interface. In some embodiments, the second user account may not make any updates or modification to the template.
[0048] At step 308, the Graphical Bot Platform instantiates a second hot program to perform one or more logical operations embodied in the parent and first logic modules according to the updated respective user-selected module parameters. Upon detecting the second user account has completed updating/modifying the first bot program via the template, the Graphical Bot Platform may instantiate a second bot program based on the template accessed by the second user account. According to various embodiments, the first and second bot programs may be concurrently active, with each one running on behalf of the first user account and the second user account, respectively.
[0049] According to various embodiments, the Graphical Bot Platform receives a modification of the first logic module of the first bot program from the second user account via the template and updates the active second bot program instantiated for the second user account according to the modification of the first logic module. For example, there may be multiple, different bot programs running on behalf the second user account where each respective bot program is based, at least in part, on the template of the first bot program. The second user account may again access the template of the first bot program and select an update to a particular logical operation(s) represented in the graphical decision tree of the template and/or select an update to one or more parameters for a particular logical operation(s). The Graphical Bot Platform may identify one or more of the different bot programs based on the template that are currently running on behalf the second user account that implement the updated particular logical operation(s) and/or updated parameter(s). The Graphical Bot Platform may automatically update the identified bot programs according to the updated particular logical operation(s) and/or updated parameter(s). It is understood that such updating of the second user account’s active hot programs does not effect or disrupt any active hot program based on the same template that is running on behalf of another user account(s).
[0050] As shown in FIG. 4A, a user interface 400 of the Graphical Bot Platform displays a graphical decision tree. The graphical decision tree has a parent node 402, a first level child node 404 and a second level child node 408. Each node 402, 404, 408 represents a logic module that includes one or more logical operations to be performed by a bot program. The graphical decision tree includes a node space 406 at which a user account can insert a graphical element that represents a logic module that will be included in the logical operations to be performed by the bot program.
[0051] As shown in FIG. 4B, a user interface 410 of the Graphical Bot Platform displays a logic module selection menu 412. The menu 412 includes selectable graphical elements 414, 416, 418, where each selectable graphical element 414, 416, 418 represents a distinct logic module that a user account may select for insertion into a node space at any level of a graphical decision tree. The user account may further customize one or more parameters for a selected graphical element.
[0052] As shown in FIG. 4C, a user interface 420 of the Graphical Bot Platform displays a graphical decision tree. The graphical decision tree has a parent node 422 and two first level child nodes 424, 426. A child node 424 may include logical operations for a bot program to temporarily halt execution during a respective iteration of execution.
[0053] As shown in FIG. 5, a user interface 500 of the Graphical Bot Platform displays a listing of scanner bot programs 502 built by a user account. Each bot program in the listing 502 may be represented according to a corresponding modifiable graphical decision tree. The user interface 500 includes a user interface portion 504 that displays a menu that includes a selectable functionality for cloning 506 a selected bot program from the listing 502 and generating a template 508 based on a selected bot program from the listing 502. Cloning a bot program generates a copy of the bot program’s graphical decision tree for the user account. Saving a template generates a copy of the bot program’s graphical decision that can be pushed out to other user accounts.
[0054] As shown in FIG. 6, a user interface 600 of the Graphical Bot Platform displays a listing of templates 600. The listing 600 displays labels for 602, 604, 606, 608, 610 for respective templates. The user account may select a particular label in order to access the corresponding templates graphical decision tree in order to build a bot program for the user account based on the template. Each respective template identified in the listing 600 may be provided to the Graphical Bot Platform by other user accounts.
[0055] FIG. 7 illustrates an example machine of a computer system within which a set of instructions, for causing the machine to perform any one or more of the methodologies discussed herein, may be executed. In alternative implementations, the machine may be connected (e.g., networked) to other machines in a LAN, an intranet, an extranet, and/or the Internet. The machine may operate in the capacity of a server or a client machine in client-server network environment, as a peer machine in a peer-to-peer (or distributed) network environment, or as a server or a client machine in a cloud computing infrastructure or environment.
[0056] The machine may be a personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a server, a network router, a switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.
[0057] The example computer system 700 includes a processing device 702, a main memory 704 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), etc ), a static memory 706 (e.g., flash memory, static random access memory (SRAM), etc.), and a data storage device 718, which communicate with each other via a bus 730.
[0058] Processing device 702 represents one or more general-purpose processing devices such as a microprocessor, a central processing unit, or the like. More particularly, the processing device may be complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or processor implementing other instruction sets, or processors implementing a combination of instruction sets. Processing device 702 may also be one or more special-purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like. The processing device 702 is configured to execute instructions 726 for performing the operations and steps discussed herein.
[0059] The computer system 700 may further include a network interface device 708 to communicate over the network 720. The computer system 700 also may include a video display unit 710 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), an alphanumeric input device 712 (e.g., a keyboard), a cursor control device 714 (e.g., a mouse), a graphics processing unit 722, a signal generation device 716 (e.g., a speaker), graphics processing unit 722, video processing unit 728, and audio processing unit 732.
[0060] The data storage device 718 may include a machine-readable storage medium 724 (also known as a computer-readable medium) on which is stored one or more sets of instructions or software 726 embodying any one or more of the methodologies or functions described herein. The instructions 726 may also reside, completely or at least partially, within the main memory 704 and/or within the processing device 702 during execution thereof by the computer system 700, the main memory 704 and the processing device 702 also constituting machine-readable storage media.
[0061] In one implementation, the instructions 726 include instructions to implement functionality corresponding to the components of a device to perform the disclosure herein. While the machine-readable storage medium 724 is shown in an example implementation to be a single medium, the term “machine-readable storage medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “machine-readable storage medium” shall also be taken to include any medium that is capable of storing or encoding a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present disclosure. The term “machine-readable storage medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical media and magnetic media.
[0062] Some portions of the preceding detailed descriptions have been presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the ways used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of operations leading to a desired result. The operations are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
[0063] It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the above discussion, it is appreciated that throughout the description, discussions utilizing terms such as "identifying" or “determining” or "executing" or “performing” or “collecting” or “creating” or “sending” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage devices.
[0064] The present disclosure also relates to an apparatus for performing the operations herein. This apparatus may be specially constructed for the intended purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, each coupled to a computer system bus.
[0065] Various general purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct a more specialized apparatus to perform the method. The structure for a variety of these systems will appear as set forth in the description above. In addition, the present disclosure is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the disclosure as described herein.
[0066] The present disclosure may be provided as a computer program product, or software, that may include a machine-readable medium having stored thereon instructions, which may be used to program a computer system (or other electronic devices) to perform a process according to the present disclosure. A machine-readable medium includes any mechanism for storing information in a form readable by a machine (e.g., a computer). For example, a machine- readable (e.g., computer-readable) medium includes a machine (e.g., a computer) readable storage medium such as a read only memory (“ROM”), random access memory (“RAM”), magnetic disk storage media, optical storage media, flash memory devices, etc.
[0067] According to various embodiments, a parameter may be any input selected by a user account which further defines a logic module for a graphical decision tree that may be executed by a bot program(s). A parameter(s) may be conditional logic or specific a type(s) of a decision value, threshold, position. A parameter may also be based on a recipe of other parameters as well. It is understood that one or more parameters may further be editable by the user account.
[0068] As shown in a user interface diagram 800 of FIG. 8, according to various embodiments, one or more global bot parameters may be selected while a user-account builds a graphical decisions for a bot program The global hot parameters may be, for example: name, icon, allocation (i.e. amount of available money), daily position limit (i.e. number of positions that can be entered on any given trading day) and total position limit (i.e. number of positions that can open at any given time). Global bot parameters are “kill switch” conditions that must be dictated for every bot program and are checked by the Graphical Bot Platform before each traversal of a decision tree automation (i.e. iteration of bot program execution). If one or more of the respective conditions imposed by user-selected global bot parameters are satisfied, the Graphical Bot Platform triggers the corresponding bot program to execute the one or more branches of the decision tree built by the user.
[0069] According to various embodiments, one or more parameters for a monitor and/or scanner bot program may belong to two parameter subgroups. A first subgroup may be a decision criteria parameter subgroup (i.e. types of graphical tree decisions) includes parameters, such as: stock-based decision criteria, opportunity-based decision criteria, indicator-based decision criteria and position-based decision criteria. A second subgroup may be an opening/closing positions subgroup which includes three categories of parameters: long, short, neutral. The long category includes the following parameters: equity, call, put, call spread and put spread. The short category includes the following parameters: equity, call spread and put spread. The neutral category includes the following parameters: iron condor and iron butterfly.
[0070] A listing of available parameters of stock-based decision criteria is illustrated in a user interface diagram 900 of FIG. 9. A listing of available opportunity -based decision criteria is illustrated in a user interface diagram 1000 of FIG. 10. The Graphical Bot Platform applies a translation process to the parameters. As shown in a user interface diagram 1100 of FIG. 11, the rate of return parameter of the opportunity-based decision criteria subgroup may be defined according to a condition of “Opportunity rate of return is greater than 25% ” The Graphical Bot Platform translates the rate of return parameter into a real number before the Graphical Bot Platform tests the mathematical condition according to the corresponding logic module. All parameters are evaluated for a binary outcome (true or false). In general, all numeric parameters are used to test a conditional statement for truthfulness. The conditions are described with natural language that represents a mathematical operation, e.g., above or below implies greater than or less than in “CORP. A price is above/below 100.”
[0071] As shown in a user interface diagram of 1200 of FIG. 12, the rate of return parameter can be edited by a user account for a bot program to base a decision to enter a trade on whether or not the rate of return for a short put spread is greater than 25%. As shown in a user interface diagram 1300 of FIG. 13, the user account may further select additional parameters for the short put spread.
[0072] A listing of available parameters of position-based decision criteria is illustrated in a user interface diagram 1300 of FIG. 13. The types of position-based decision parameters listed in user interface diagram 1300 provide a bot program(s) logic for evaluating properties of trades that have already been placed and are being tracked. The parameters listed for the position-based decision criteria includes three categories of parameters: long, short and neutral. The long category includes the following parameters: equity, call, put, call spread and put spread. The short category includes the following parameters: equity, call spread and put spread. The neutral category includes the following parameters: iron condor and iron butterfly. As shown in a user interface diagram 1400 of FIG. 14, after a bot program detects that a particular position exists, the bot program decides whether a property about that position is true or false (e.g., the position is long, the position type is not an Iron Condor, etc. ). A listing of available parameters of indicator-based decision criteria is illustrated in a user interface diagram 1500 of FIG. 15. According to various embodiments, the parameters listed in the user interface diagram 1500 may evaluate relationships between outputs of mathematical equations, known as technical indicators. These equations use historical price history as inputs, which is provided to each decision parameter recipe by the Graphical Bot Platform. A user account may input further parameters for a technical indicator decision recipe as shown in a user interface diagram 1600 of FIG. 16. As described above, the Iron Condor parameter belongs to the neutral category of the opening/closing positions subgroup (i.e. the second subgroup.) As shown in a user interface diagram 1700 of FIG. 17, a user account may select additional parameters for the Iron Condor parameter such as a stock price symbol (“TLT”), “45 days expiration,” “.30 delta Short Call,” “-.30 delta Short Put,” etc.
[0073] According to various embodiments, a user account may build a graphical decision tree with one or more logic modules that define a long call option contract trade. A profit may be realized if the increase in price of the underlying contract is sufficiently above a minimum threshold, which is dictated by the contract at the time of purchase. Since the spot price has no maximum limit on its value, this type of trade has the potential for infinite profit. The maximum loss to the investor is the premium paid to purchase the contract.
[0074] In an example use case for a long call option contract trade, an investor tied to a user account notices that the price of a security tends to continue increasing when the 50-day SMA (simple moving average) of its spot price is greater than the 200-day SMA. The investor hypothesizes that if he purchases a long call contract if this condition is true, he can then sell it after it has increased in value. The investor would like to double his money used to purchase the contract, an increase of 200% of the purchase premium. The investor would like to automate via the Graphical Bot Platform to execute this strategy to run against the S&P 500 ETF known as SPY.
[0075] For the long call option contract trade, as shown in a user interface diagram of FIG. 1800, the user account allocates a maximum of $5,000 for a graphical decision tree for a bot program to execute the strategy. Additionally, the graphical decision tree for a bot program may be limited to entering a single position per daily with a maximum position limit of one.
[0076] As shown in a user interface diagram 1900 of FIG. 19, the user account selects a Scanner type automation to find trading opportunities for the long call option contract trade. The corresponding graphical decision tree outlines criteria for trade discovery (user interface diagram 2000 of FIG. 20). The user account selects a Monitor type automation to determine when to exit the position (user interface diagram 2100 of FIG. 21). The corresponding graphical decision tree defines the criteria to exit the position (user interface diagram 2200 of FIG. 22).
[0077] As shown in a user interface diagram 2300 of FIG. 23, the bot program for the long call option contract trade may be switched on to execute according to the scanner and monitor graphical decision trees. The bot program runs on the Graphical Bot Platform commences its corresponding logic at every defined interval.
[0078] As shown in a user interface diagram 2400 of FIG. 24, the bot program running in the Graphical Bot Program detects that the entry criteria for the long call option contract trade is met during open market hours and a position is opened. A view of details and attributes of the opened position may be displayed in a user interface diagram 2500 as shown in FIG. 25.
[0079] In another example use case, the investor tied to the user account wishes to “go short” if he believes the current price is too high or can go no higher. One way to do this is by selling a short call spread. The investor chooses a price level at which he believes the spot price of the underlying will not breach to the upside. Profit may be realized if the price of the underlying security stays below the level selected, known as the short strike. Since this is a short sale (i.e. the investor sells something he does not own and buys it back at a later date), the maximum profit is equal to the initial premium for which it was sold. The maximum loss is the difference between the short strike and the long strike less the premium the investor initially received as a credit. In general, the risk exceeds the profit potential for a spread trade. The tradeoff is a higher probability of profit than probability of loss.
[0080] Specifically, the investor notices that the price of Apple (AAPL) stock has trouble staying over $120 per share and the share price tends to fall in the days and weeks after reaching the $120 price level. The investor hypothesizes that there is profit potential if he sells a call spread at a strike above $120, he can capitalize on the stock’s inevitable fall - a classic contrarian play. Since there are no guarantees, the investor decides not to be greedy and close his position at any time if he receives at least 50% of the maximum profit.
[0081] As shown in a user interface diagram 2600 of FIG. 26, the user account defines a hot program and imposes one or more limits on its ability to execute automated trades. As shown in a user interface diagram 2700 of FIG. 27, the user account selects a Scanner type automation to find trading opportunities for the short call spread trade. The corresponding graphical decision tree outlines criteria for trade discovery (user interface diagram 2800 of FIG. 28). The user account selects a Monitor type automation to determine when to exit the position (user interface diagram 2900 of FIG. 29). The corresponding graphical decision tree defines the criteria to exit the position (user interface diagram 3000 of FIG. 30).
[0082] As shown in a user interface diagram 3100 of FIG. 31, the hot program for the short call spread may be switched on to execute according to the scanner and monitor graphical decision trees. The bot program runs on the Graphical Bot Platform commences its corresponding logic at every defined interval.
[0083] According to various embodiments, the Graphical Bot Platform implements a smart pricing algorithm via a smart pricing bot program (“Smart Pricing”). Smart Pricing systematically issues and cancels options orders in a controlled/predefmed manner that “walks” or traverses a bid/ask spread in a direction between a most favorable price parameter to a least favorable price parameter, either in increments or decrements if the trade is long or short, respectively. Additionally, Smart Pricing intelligently detects a pricing structure of an underlying options chain and calculates intervals based on “penny-wide” or “nickel-wide” increments (such as those found in larger index options).
[0084] The Graphical Bot Platform receives one or more parameter selections for Smart Pricing from a user. For example, a first parameter (“number of increments”) may set total number of increments that will be calculated between a most favorable price and a price determined by the traversable percentage of a bid/ask spread. A second parameter (“time interval between increments”) may define an allotted time for each limit order that may lapse before that limit order is canceled if it is not filled. A third parameter (“traversable percentage of a bid/ask spread”) may be an allowed percentage of a bid/ask spread width utilized for calculating pricing increments. According to various embodiments, the user may input selections for a graphical decision tree for building one or more logical operations to be performed by the smart pricing bot program.
[0085] According to various embodiments, Smart Pricing functionality on the Graphical Bot Platform enables a user to enter a long call option trade (“long call”). For example, a bid/ask spread for the long call may be $2.50 bid price to $2.70 ask price. Such a bid/ask spread defines a possibility of an immediate fill of the long call at the far end of the spread with a purchase at the $2.70 ask price. Smart Pricing embodies a preference to execute the long call trade where such a transaction is more likely to occur at a better price (i.e. lower price than ask price), although not guaranteed.
The user may select a number of increments parameter of 5, a time interval between increments parameter of 30 seconds and a traversable percentage of a bid/ask spread parameter of 60%. Smart Pricing analyzes the option’s spread ($2.50 bid price to $2.70 ask price) and generates a set of logical operations based on the user’s selected parameters. In the case of purchasing a long call option, it is better to buy at the lowest possible price. Smart Pricing segments 60% of the spread width into a range of favorable prices closer to the $2.50 bid price than the $2.70 ask price. For example, Smart Pricing calculates a number of desired increments between the bid price and a maximum acceptable price. As defined by the 5 number of increments, the desired price increments determined by Smart Pricing may be from $2.50, $2.53, $2.56, $2.59 to $2.62.
[0086] Smart Pricing issues a limit order request for each price increment on behalf of the user. The limit orders issued by Smart Pricing start with a most favorable price and traverses toward a least favorable price. After the first order is issued (for example at the $2,50 bid price), Smart Pricing waits (i.e. pauses) according to the time interval between increments parameter (i.e. 30 seconds). After 30 seconds lapse, Smart Pricing verifies whether or not the first order was accepted. If the first order was not accepted, Smart Pricing executes cancellation of the first order and increments a limit price ($2.53). Smart Pricing reissues the limit order request on behalf of the user at the new price ($2.53). Smart Pricing continues to iterate according to logic steps of (1) issue/reissue limit order, (2) wait, (3) verify not accepted, (4) cancel and (5) increment until Smart Pricing detects satisfaction of termination criteria, such as filling of a requested limit order or exhaustion of all possible incremental prices. [0087] In the foregoing disclosure, implementations of the disclosure have been described with reference to specific example implementations thereof. It will be evident that various modifications may be made thereto without departing from the broader spirit and scope of implementations of the disclosure as set forth in the following claims. The disclosure and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense.

Claims

CLAIMS What is claimed is:
1. A computer-implemented method, comprising: receiving a selection of a first logic module for execution subsequent to execution of a parent logic module; displaying, via a user interface, a first graphical child node that represents the first logic module extending from a first branch of a graphical decision tree with a parent node representing the parent logic module; instantiating a first hot program to perform one or more logical operations embodied in the parent and first logic modules according to respective user-selected module parameters; and based on a result of the first hot program, initiating an action to be performed through an external user account according to one or more user account privileges assigned to the external user account.
2. The computer-implemented method of claim 1, wherein displaying, via a user interface, a first graphical child node that represents the first logic module extending from a first branch of a graphical decision tree with a parent node representing the parent logic module comprises: receiving, at a user interface portion separate from display of the graphical decision tree, one or more user-selected module parameters of the first logic module.
3. The computer-implemented method of claim 2, wherein instantiating a hot program to perform one or more logical operations embodied in the parent and first logic modules according to respective user-selected module parameters comprises: receiving one or more values of real-time data, wherein respective real-time data values correspond to the one or more user-selected module parameters of the first logic module; and temporarily setting the user-selected module parameters of the first logic module to the respective real-time data values for a first iteration of an execution, via the first hot program, of the logical operations embodied in the first logic module.
4. The computer-implemented method of claim 3, wherein the real-time data comprises respective values that correspond to financial market transactions.
5. The computer-implemented method of claim 3, comprising: saving a template representative of the first hot program, the first hot program created by a first user account; receiving a request from a second user account to access the template; receiving, at the user interface portion separate from display of the graphical decision tree that corresponds to the template, one or more updated user-selected module parameters of the first logic module selected by the second user account; and instantiating a second hot program to perform one or more logical operations embodied in the parent and first logic modules according to the updated respective user- selected module parameters, the first and second hot programs being concurrently active.
6 The computer-implemented method of claim 5, comprising: receiving a modification of the first logic module of the first hot program from the second user account via the template; and updating the active second hot program instantiated for the second user account according to the modification of the first logic module.
7. The computer-implemented method of claim 1, wherein initiating an action to be performed through an external user account according to one or more user account privileges assigned to the external user account comprises: determining the result from an automatic iteration of execution of the first hot program according to a user-selected interval.
8. A system comprising one or more processors, and a non-transitory computer-readable medium including one or more sequences of instructions that, when executed by the one or more processors, cause the system to perform operations comprising: receiving a selection of a first logic module for execution subsequent to execution of a parent logic module; displaying, via a user interface, a first graphical child node that represents the first logic module extending from a first branch of a graphical decision tree with a parent node representing the parent logic module; instantiating a first bot program to perform one or more logical operations embodied in the parent and first logic modules according to respective user-selected module parameters; and based on a result of the first bot program, initiating an action to be performed through an external user account according to one or more user account privileges assigned to the external user account.
9. The system of claim 8, wherein displaying, via a user interface, a first graphical child node that represents the first logic module extending from a first branch of a graphical decision tree with a parent node representing the parent logic module comprises: receiving, at a user interface portion separate from display of the graphical decision tree, one or more user-selected module parameters of the first logic module.
10. The system of claim 9, wherein instantiating a bot program to perform one or more logical operations embodied in the parent and first logic modules according to respective user- selected module parameters comprises: receiving one or more values of real-time data, wherein respective real-time data values correspond to the one or more user-selected module parameters of the first logic module; and temporarily setting the user-selected module parameters of the first logic module to the respective real-time data values for a first iteration of an execution, via the first bot program, of the logical operations embodied in the first logic module.
11. The system of claim 10, wherein the real-time data comprises respective values that correspond to financial market transactions.
12. The system of claim 10, comprising: saving a template representative of the first hot program, the first hot program created by a first user account; receiving a request from a second user account to access the template; receiving, at the user interface portion separate from display of the graphical decision tree that corresponds to the template, one or more updated user-selected module parameters of the first logic module selected by the second user account; and instantiating a second hot program to perform one or more logical operations embodied in the parent and first logic modules according to the updated respective user- selected module parameters, the first and second hot programs being concurrently active.
13. The system of claim 12, comprising: receiving a modification of the first logic module of the first hot program from the second user account via the template; and updating the active second hot program instantiated for the second user account according to the modification of the first logic module.
14. The system of claim 8, wherein initiating an action to be performed through an external user account according to one or more user account privileges assigned to the external user account comprises: determining the result from an automatic iteration of execution of the first hot program according to a user-selected interval.
15. A computer program product comprising a non-transitory computer-readable medium having a computer-readable program code embodied therein to be executed by one or more processors, the program code including instructions to: receiving a selection of a first logic module for execution subsequent to execution of a parent logic module; displaying, via a user interface, a first graphical child node that represents the first logic module extending from a first branch of a graphical decision tree with a parent node representing the parent logic module; instantiating a first hot program to perform one or more logical operations embodied in the parent and first logic modules according to respective user-selected module parameters; and based on a result of the first hot program, initiating an action to be performed through an external user account according to one or more user account privileges assigned to the external user account.
16. The computer program product of claim 15, wherein displaying, via a user interface, a first graphical child node that represents the first logic module extending from a first branch of a graphical decision tree with a parent node representing the parent logic module comprises: receiving, at a user interface portion separate from display of the graphical decision tree, one or more user-selected module parameters of the first logic module.
17. The computer program product of claim 16, wherein instantiating a hot program to perform one or more logical operations embodied in the parent and first logic modules according to respective user-selected module parameters comprises: receiving one or more values of real-time data, wherein respective real-time data values correspond to the one or more user-selected module parameters of the first logic module; and temporarily setting the user-selected module parameters of the first logic module to the respective real-time data values for a first iteration of an execution, via the first hot program, of the logical operations embodied in the first logic module.
18. The computer program product of claim 17, wherein the real-time data comprises respective values that correspond to financial market transactions.
19. The computer program product of claim 17, comprising: saving a template representative of the first hot program, the first hot program created by a first user account; receiving a request from a second user account to access the template; receiving, at the user interface portion separate from display of the graphical decision tree that corresponds to the template, one or more updated user-selected module parameters of the first logic module selected by the second user account; and instantiating a second bot program to perform one or more logical operations embodied in the parent and first logic modules according to the updated respective user- selected module parameters, the first and second bot programs being concurrently active.
20. The computer program product of claim 5, comprising: receiving a modification of the first logic module of the first bot program from the second user account via the template; and updating the active second bot program instantiated for the second user account according to the modification of the first logic module.
PCT/US2021/060870 2020-11-25 2021-11-24 Graphical generation of bot programs for triggering external platform actions WO2022115639A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202063118547P 2020-11-25 2020-11-25
US63/118,547 2020-11-25

Publications (1)

Publication Number Publication Date
WO2022115639A1 true WO2022115639A1 (en) 2022-06-02

Family

ID=81756128

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2021/060870 WO2022115639A1 (en) 2020-11-25 2021-11-24 Graphical generation of bot programs for triggering external platform actions

Country Status (1)

Country Link
WO (1) WO2022115639A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7752123B2 (en) * 2006-04-28 2010-07-06 Townsend Analytics Ltd. Order management system and method for electronic securities trading
US8176127B2 (en) * 2004-07-30 2012-05-08 Pivot Solutions, Inc. System and method for processing securities trading instructions and communicating order status via a messaging interface
US20140143735A1 (en) * 2012-11-16 2014-05-22 David W. Dahn Computer-implemented decision tracking systems, displays, and methods
US10282180B2 (en) * 2002-12-23 2019-05-07 Cybersource Corporation Method and apparatus for custom strategy specification in a hosted electronic transaction service system
US20190287171A1 (en) * 2018-03-14 2019-09-19 Chicago Mercantile Exchange Inc. Decision tree data structure based processing system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10282180B2 (en) * 2002-12-23 2019-05-07 Cybersource Corporation Method and apparatus for custom strategy specification in a hosted electronic transaction service system
US8176127B2 (en) * 2004-07-30 2012-05-08 Pivot Solutions, Inc. System and method for processing securities trading instructions and communicating order status via a messaging interface
US7752123B2 (en) * 2006-04-28 2010-07-06 Townsend Analytics Ltd. Order management system and method for electronic securities trading
US20140143735A1 (en) * 2012-11-16 2014-05-22 David W. Dahn Computer-implemented decision tracking systems, displays, and methods
US20190287171A1 (en) * 2018-03-14 2019-09-19 Chicago Mercantile Exchange Inc. Decision tree data structure based processing system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
NAN ET AL.: "Sentiment and Knowledge Based Algorithmic Trading with Deep Reinforcement Learning", ALBERTA MACHINE INTELLIGENCE INSTITUTE, vol. 40, 26 January 2020 (2020-01-26), XP081585992, Retrieved from the Internet <URL:https://www.itm-conferences.org/artictes/itmconf/pdf/2021/05/itmconf_icacc2021_03041.pdf> [retrieved on 20220115] *

Similar Documents

Publication Publication Date Title
US11361377B2 (en) System and method for dynamically regulating order entry in an electronic trading environment
US11216878B2 (en) Determination of implied orders in a trade matching system
US20200151815A1 (en) Systems and methods for a hybrid social trading platform
US20190318327A1 (en) Systems, methods, and computer programs for using a blockchain marketplace
US20180143803A1 (en) Proactive deep-analysis virtual assistant application and integration
WO2007057040A2 (en) Algorithmic trading system, a method for computer-based algorithmic trading and a computer program product
US8326732B2 (en) Analysis of proposed trades
WO2001022266A9 (en) For user interface for a financial trading system
US7330834B1 (en) System and method for electronic trading of assets
AU2017258915A1 (en) Systems, methods and computer program products for adaptive transaction cost estimation
US20170357901A1 (en) Proactive data gathering and user profile generation using deep analysis for a rapid onboarding process
US11636091B2 (en) Data cloud—platform for data enrichment
US10699307B2 (en) Methods and systems for offering financial products
US20220027990A1 (en) Trading schedule management system
CN110930256A (en) Quantitative analysis method and quantitative analysis system
CN111179081A (en) Message processing method and processing device
WO2022115639A1 (en) Graphical generation of bot programs for triggering external platform actions
US20240193685A1 (en) Systems and methods for an artificial intelligence trading platform
CN114140255A (en) Product purchase recommendation method, device, equipment and storage medium

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21899139

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21899139

Country of ref document: EP

Kind code of ref document: A1