CN102947853A - 用户定义的算法的电子交易 - Google Patents

用户定义的算法的电子交易 Download PDF

Info

Publication number
CN102947853A
CN102947853A CN2010800581315A CN201080058131A CN102947853A CN 102947853 A CN102947853 A CN 102947853A CN 2010800581315 A CN2010800581315 A CN 2010800581315A CN 201080058131 A CN201080058131 A CN 201080058131A CN 102947853 A CN102947853 A CN 102947853A
Authority
CN
China
Prior art keywords
piece
algorithm
order
value
transaction
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CN2010800581315A
Other languages
English (en)
Inventor
R.莱恩
M.尤内蒂克
D.里多尔
N.爱德华兹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Trading Technologies International Inc
Original Assignee
Trading Technologies International 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 Trading Technologies International Inc filed Critical Trading Technologies International Inc
Priority to CN202010084240.XA priority Critical patent/CN111539815B/zh
Publication of CN102947853A publication Critical patent/CN102947853A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • 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]
    • 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
    • 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

Abstract

某些实施例通过降低或消除用户对编程代码的写入,而降低传统编程算法的风险,诸如语法错误、不清楚逻辑、以及非交易者程序员开发交易者指定的算法的需求。某些实施例提供建造块按钮和算法区域用于定义算法。当正定义算法时,某些实施例提供表达式的实时评估。某些实施例提供设计帐篷区和块用于设计算法。当正设计算法时,某些实施例提供块的实时反馈。某些实施例提供用于启动从值轴所选择的用户定义交易算法所要管理的订单的下订,并用于显示由值轴上的不同的用户定义交易算法所管理的工作订单。某些实施例提供排列工具。

Description

用户定义的算法的电子交易
相关申请的交叉引用
本申请要求以下申请的权益:2009年10月20日提交的名为“TradingApplication with Futures Ranking and Order Tool,Price Level Indicator Tool,andMarket Change Audio Indicator Tool”的美国临时申请第61/253,315号;2009年10月20日提交的名为“System and Method for Building User-DefinedAlgorithms for Electronic Trading Exchange”的美国临时申请第61/253,324号;2009年11月20日提交的名为“System and Method for Building User-DefinedAlgorithms for Electronic Trading Exchange”的美国临时申请第61/263,300号;2010年3月9日提交的名为“System and Method for Launching AutomatedTrading Applications”的美国临时申请第61/312,003号;2010年3月29日提交的名为“System and Method for Virtualizing User-Defined Algorithms forElectronic Trading Exchange”的美国临时申请第61/318,685号;2010年4月1日提交的名为“System and Method for Automating Feedback-BasedUser-Defined Algorithms for Electronic Trading Exchange”的美国临时申请第61/320,061;2010年10月14日提交的名为“User-Defined Algorithm ElectronicTrading”的美国临时申请第61/393,313号;2010年10月15日提交的名为“User-Defined Algorithm Electronic Trading”的美国非临时申请第12/905,709号;和2010年10月15日提交的名为“Virtualizing for User-Defined AlgorithmElectronic Trading”的美国非临时申请第12/905,726号。通过引用在这里全部合并这些申请中的每一个。
技术领域
当前描述的技术针对电子交易系统。更具体地,某些实施例针对用户定义的算法的电子交易。
背景技术
电子交易系统一般包括客户机装置,该客户机装置与可充当该客户机装置的主机的电子交易所通信。典型地,电子交易系统准备对买入和卖出要交易的可交易对象的订单进行电子匹配。可交易对象是可以交易的物品。股票(stock)、期权(option)、期货(future)交易合约、有价证券(securities)和商品(commodities)是可交易对象的几个示例。
电子交易所向客户机装置传送市场数据。该市场数据可包括例如价格数据、市场深度数据、最近交易量数据、与可交易对象的市场相关的数据、和/或其组合。客户机装置从电子交易所接收市场数据。
在一些电子交易系统中,客户机装置接收和处理市场数据,而不在显示装置上显示该市场数据。例如,“黑匣子”算法交易系统可自动运行并不显示市场数据。然而,在其他电子交易系统中,客户机装置在显示装置上显示所处理的市场数据。客户机装置可包括创建交易屏幕的软件。一般,交易屏幕使得用户能够参与电子交易会话。例如,交易屏幕可使得用户能够浏览市场数据、向电子交易所提交交易订单、获得市场报价(quote)、监视头寸(position)、和/或其组合。
在一些电子交易系统中,客户机装置向电子交易所发送交易订单。然而,在其他电子交易系统中,诸如服务器侧装置的其他装置负责向电子交易所发送一个或多个交易订单。一旦接收到交易订单,电子交易所就将该交易订单键入交易所订单簿,并尝试将该交易订单的数量与一个或多个对方(contra-side)交易订单的数量进行匹配。作为示例,卖出订单是具有相同价格的买入订单的对方。类似地,买入订单是具有相同价格的卖出订单的对方。不匹配的交易订单的数量被保持在交易所订单簿中,直到交易订单的数量被电子交易所匹配为止。当取消交易订单时,不匹配的交易订单的数量也可以由客户机装置或电子交易所从订单簿中去除。一旦匹配了交易订单的数量,电子交易所就可以向匹配了交易订单的数量的客户机装置发送确认。
电子交易所已使得增长数目的参与者可能在任何给定时间在市场中激活。潜在市场参与者的数目增长已有利地导致更有竞争性的市场和更大的流动资金(liquidity)。在有竞争性的环境中,与其中每一秒或几分之一秒都将截取交易机会计算在内的电子交易类似,可期望提供这样的工具,其帮助参与者在市场场所(marketplace)中有效竞争或甚至给予超出其他参与者的优势(edge)。
一些当前系统包括算法交易系统,其可允许对于市场信息改变的更迅速的评估和反应。然而,这样的系统典型地需要熟练的程序员开发交易算法,花费几天(或甚至几月)进行测试和调试,并且当交易者对不同方案进行判断或者期望对算法逻辑的修改时,必须重复开发和调试处理。
发明内容
这里描述的实施例包括但不限于各种装置、系统、方法、和计算机程序产品。
某些实施例提供建造(building)块按钮和算法区域来定义算法。某些实施例允许即使在单一交易会话期间、也迅速调整参数和参数的逻辑两者。当正定义算法时,某些实施例提供表达式的实时(live)评估。某些实施例通过降低或消除用户对编程代码的写入,而降低传统编程算法的风险,诸如语法错误、不清楚逻辑、以及非交易者程序员开发交易者指定的算法的需求。某些实施例提供用于同时全部建造、调试、和仿真(利用真实市场数据)算法的单一应用。另外,该单一应用还可以准备启动使用该算法的订单的下订(placement)。
某些实施例提供用于设计算法的设计帐篷(canvas)区和块。某些实施例提供具有复杂功能性的块,用于在算法中使用。某些实施例准备对设计帐篷区中放置的块分组。某些实施例准备虚拟化组块,使得算法的部分的动态实例化能够处置特定离散事件。某些实施例允许迅速调整算法的参数和逻辑两者,即使在单一交易会话期间。当正设计算法时,某些实施例提供块的实时反馈。某些实施例提供安全特征,以降低当设计算法时的潜在错误。当客户机装置和算法服务器之间的连接被破坏时,某些实施例准备用于算法的一些或所有部分的操作。某些实施例通过降低或消除用户对编程代码的写入,而降低传统编程算法的风险,诸如语法错误、不清楚逻辑、以及非交易者程序员开发交易者指定的算法的需求。某些实施例提供用于同时全部建造、调试、和仿真(利用真实市场数据)算法的单一应用。另外,该单一应用还可以准备启动使用该算法的订单的下订。
某些实施例准备启动作为订单类型所选择的算法所要管理的订单的下订。某些实施例准备启动从值轴所选择的用户定义的交易算法所要管理的订单的下订。某些实施例准备在算法正管理订单时、改变该算法的变量。某些实施例准备手动修改算法正管理的订单。某些实施例准备向未管理的订单分配算法,以管理该订单。某些实施例准备显示由值轴上的不同的用户定义的交易算法正管理的工作订单。
某些实施例提供排列(ranking)工具。某些实施例准备要用于订单下订的所选择的可交易对象的排列。某些实施例准备选择用于基于该排列来启动(多个)订单的执行策略。
下面描述其他实施例。另外,可对所描述的实施例进行修改,而不脱离本发明的精神或范围。
附图说明
这里将参考下图来描述示例实施例。
图1图示了其中可采用某些实施例的电子交易系统的框图。
图2A图示了根据某些实施例的交易界面。
图2B图示了根据某些实施例的证券(instrument)选择界面。
图2C-2I图示了根据某些实施例的在交易界面中建造对于算法的定义。
图2J图示了根据某些实施例的交易界面。
图3A图示了其中可采用某些实施例的电子交易系统的框图。
图3B图示了根据某些实施例的交易界面。
图3C图示了可在根据某些实施例的交易界面中使用的块的示例。
图3D-1到3D-7图示了根据某些实施例生成的示例编程代码。
图3E-R图示了根据某些实施例的交易界面。
图4A-4F图示了根据某些实施例的交易界面。
图5图示了根据某些实施例的排列工具。
图6图示了根据某些实施例的计算装置的框图。
当结合示出某些实施例的图进行阅读时,前面的概述以及下面的详细描述将被更好地理解。这些图是为了图示某些实施例的目的,但是应理解的是,本发明不限于图中示出的安排和手段(instrumentality)。
具体实施方式
I.示例电子交易系统
图1图示了其中可采用某些实施例的电子交易系统100的框图。系统100包括客户机装置110、网关120、和电子交易所130。客户机装置110与网关120通信。网关120与交易所130通信。
如这里使用的,短语“通信”可包括直接通信以及通过一个或多个中间组件的间接通信。
在操作中,客户机装置110可发送订单以买入或卖出交易所130处的可交易对象。例如,用户可利用客户机装置110来发送订单。将订单通过网关120发送到交易所130。另外,将市场数据从交易所130通过网关120发送到客户机装置110。用户还可以利用客户机装置110来监视该市场数据,并根据市场数据作出发送对于可交易对象的订单的判断。
可交易对象是可利用数量和/或价格交易的任何东西。例如,诸如股票、期权、债券、期货、货币、凭单、基金衍生物、有价证券、商品、交易项目(traded events)、货物、以及收藏品和/或它们的组合的金融产品可以是可交易对象。可交易对象可以是“真实的”或“人造的”。真实的可交易对象包括交易所所列出的产品。人造的可交易对象包括用户所定义的并且交易所没有列出的产品。例如,人造的可交易对象可包括真实的(或其他人造的)产品的组合,诸如由交易者利用客户机装置110创建的人造价差(spread)。
客户机装置110可包括一个或多个电子计算平台,诸如手持装置、膝上型计算机、桌面型计算机、具有单核或多核处理器的工作站、具有多个处理器的服务器、和/或计算机群。例如,尽管逻辑上表示为单一装置,但是客户机装置110可包括与服务器通信的交易终端,其中交易终端和服务器都是客户机装置110。交易终端可向用户提供交易屏幕,并可向服务器传递命令,用于通过交易屏幕的用户输入(诸如,下订单)的进一步处理。
客户机装置100一般由用户拥有、操作、控制、编程、配置、或按照别的方式使用。如这里使用的,短语“用户”可包括但不限于人(例如,交易者)或电子交易装置(例如,包括处理器和存储器或算法交易系统)。在诸如拥有、操作、控制、编程、配置、或其他用途中可涉及一个或多个用户。
客户机装置110可包括一个或多个交易应用。(多个)交易应用可以例如通过在交易和制图(charting)窗口中安排和显示市场数据,来处理市场数据。市场数据可以从例如交易所130接收。作为另一示例,市场数据可以从提供历史数据和/或仿真交易所但是不实现真实世界交易的仿真环境接收。该处理可以基于诸如用户偏好。(多个)交易应用可包括诸如自动价差交易工具的自动交易工具。一个或多个交易应用可分布在客户机装置110的一个或多个计算装置之间。例如,交易应用的某些组件可在交易工作站上执行,并且交易应用的其他组件可在与工作站通信的服务器上执行。
客户机装置110可包括电子交易工作站、便携式交易装置、诸如“黑匣子”或“灰匣子”系统的算法交易系统、嵌入式交易系统、和/或自动交易工具。例如,客户机装置110可以是运行一份
Figure BDA00001789169500061
(由伊利诺伊州芝加哥的交易技术国际有限公司(Trading Technologies International,Inc.)提供的电子交易平台)的计算系统。作为另一示例,客户机装置110可以是运行也由交易技术国际有限公司提供的诸如
Figure BDA00001789169500062
和/或AutotraderTM的自动交易工具的计算装置。
交易应用可以被存储在客户机装置110的计算机可读介质中。在某些实施例中,交易应用的某些组件可以被存储在交易工作站上,并且交易应用的其他组件可以被存储在与工作站通信的服务器上。在某些实施例中,交易应用的一个或多个组件可以从另一计算机可读介质装载到客户机装置110的计算机可读介质中。例如,交易应用(或交易应用的更新)可以由制造商、开发商、或发行商存储在一个或多个CD或DVD上,所述CD或DVD然后被提供给负责在客户机装置110上装载该应用的某人或提供给客户机装置110从其恢复交易应用的服务器。作为另一示例,客户机装置110可例如经由因特网或内部网从服务器接收交易应用(或交易应用的更新)。当由客户机装置110请求时(“拉分布”(pull distribution))和/或没有由客户机装置110请求时(“推分布”),客户机装置110可接收交易应用或更新。
客户机装置110适于发送买入或卖出可交易对象的订单。客户机装置110还可以适于取消订单、改变订单、和/或查询交易所。作为另一示例,客户机装置110可适于在不实现真实世界交易的仿真环境中向仿真交易所发送订单。
客户机装置110所发送的订单可以例如根据用户的请求发送或者自动发送。例如,交易者可利用电子交易工作站,来下订对于特定可交易对象的订单,手动提供该订单的各种参数,诸如订单价格和/或数量。作为另一示例,自动交易工具可计算订单的一个或多个参数,并自动发送该订单。在一些实例中,自动交易工具可准备发送订单,但是在没有来自用户的确认的情况下不实际发送它。
在某些实施例中,客户机装置110包括用户接口。用户接口可包括诸如用于向用户呈现交易应用的基于文本的或图形的界面的一个或多个显示装置。例如,显示装置可包括计算机监视器、手持装置显示器、投影仪、和/或电视机。用户接口可以由用户使用,以使用交易应用来指定或回顾订单的参数。用户接口可包括诸如用于从用户接收输入的一个或多个输入装置。例如,输入装置可包括键盘、轨迹球、双按钮或三按钮鼠标、和/或触摸屏。用户接口可包括用于与用户交互的其他装置。例如,信息可通过扬声器而实际提供给用户和/或通过麦克风接收。
在某些实施例中,交易应用可包括一个或多个交易屏幕,以使得交易者能够与一个或多个市场交互。交易屏幕可以在例如实现各种交易策略的同时,使得交易者能够获得和浏览市场信息,设置订单条目参数,键入和取消订单、和/或监视头寸。例如,交易应用可以从交易所130接收信息(诸如买入价、买入数量、卖出价、卖出数量、以前销售的价格和数量、和/或其他市场相关信息),该信息依次可利用客户机装置110的用户接口来显示。基于所接收的信息,交易屏幕可显示关于可交易对象的价格水平的范围以及所述价格水平的对应买入和卖出数量。为了向交易者提供永久(pertinent)交易信息,交易屏幕可以显示在内部市场周围的价格范围(以及对应买入和卖出数量)。该信息可以被连续或规则地提供给交易应用,这允许交易应用利用当前市场信息来更新该交易屏幕。交易者可使用交易屏幕,来例如基于所显示的信息来下订对于可交易对象的买入和卖出订单,或者按照别的方式来交易可交易对象。
交易屏幕可显示一个或多个交易工具。交易工具是允许、帮助、和/或促进电子交易的电子工具。示范交易工具包括但不限于图表、交易阶梯、订单条目工具、自动交易工具、自动价差交易工具、风险管理工具、订单参数工具、订单条目系统、市场网格、履行(fill)窗口、和市场订单窗口、其组合、用于交易、准备交易、或管理交易的其他电子工具。
在某些实施例中,客户机装置110包括算法交易应用。例如,客户机装置110可包括黑匣子或灰匣子交易应用。作为另一示例,客户机装置110可包括这样的交易应用,其对市场数据进行算法化处理,但是提供用户接口以允许用户基于算法处理手动下订单、或者操纵自动下订的订单。算法交易应用是包括自动处理的算法以执行某些动作的交易应用。即,交易应用包括执行定义的(多个)动作的一连串自动指令。这些动作可包括例如按照特定方式处理市场数据、下订单、修改现有订单、删除订单、避免下订单、选择起作用的(多个)可交易对象、确定下订单或修改订单的价格、确定下订单或修改订单的数量、确定应买入还是卖出订单、和将动作延迟一时段。
如这里使用的,算法(也称为交易算法)由包括描述要在交易中使用的算法的逻辑表达式和参数的定义来指定。逻辑表达式指定参数之间的关系,并可生成多个参数。参数可包括例如到该算法的逻辑表达式中的输入。算法的定义可以至少部分由算法交易应用指定。例如,算法交易应用可允许用户仅指定要由预定义的逻辑表达式使用的参数。作为另一示例,算法交易应用可允许用户指定一些或全部逻辑表达式以及一些或全部参数。其中由用户指定逻辑表达式的交易算法是用户定义的交易算法。
在某些实施例中,来自客户机装置110的订单通过网关120被发送到交易所130。客户机装置110可使用例如局域网、广域网、虚拟专网、T1线路、T3线路、ISDN线路、存在点、和/或因特网来与网关120通信。
网关120适于与客户机装置110和交易所130通信。网关120促进客户机装置110和交易所130之间的通信。例如,网关120可接收来自客户机装置110的订单,并将订单传送到交易所130。作为另一示例,网关120可接收来自交易所130的市场数据,并将市场数据传送到客户机装置110。
在某些实施例中,网关120对在客户机装置110和交易所130之间传递的数据执行处理。例如,网关120可将从客户机装置110接收的订单处理为交易所130可接受的数据格式。类似地,网关120可将从交易所130接受的交易所特定格式的市场数据转换为客户机装置110所理解的格式。网关120的处理也可以包括跟踪来自客户机装置110的订单,并基于例如从交易所130接收的履行确认来更新订单的状态。作为另一示例,网关120可聚合(coalesce)来自交易所130的市场数据,并将其提供到客户机装置120。
在某些实施例中,网关120提供除了在客户机装置110和交易所130之间传递的处理数据之外的服务。例如,网关120可提供风险处理。
网关120可包括诸如手持装置、膝上型计算机、桌面型计算机、具有单核或多核处理器的工作站、具有多个处理器的服务器、和/或计算机群的一个或多个电子计算平台。
网关120可包括一个或多个网关应用。(多个)网关应用可以处置例如订单处理和市场数据处理。该处理可基于例如用户偏好。
在某些实施例中,网关120使用例如局域网、广域网、虚拟专网、T1线路、T3线路、ISDN线路、存在点、和/或因特网与交易所130通信。
一般,交易所130可由交易所实体拥有、操作、控制、或使用。示范交易所实体包括CME组、伦敦国际金融期货期权交易所(“LIFFE”)、洲际交易所(“ICE”)、和欧洲期货期权交易所(Eurex)。交易所130可以是适于允许买入和卖出例如交易所为了交易而提供的可交易对象的、诸如计算机、服务器、或其他计算装置的电子匹配系统。
交易所130适于匹配用于买入和卖出可交易对象的订单。可交易对象可由交易所130列出用于交易。这些订单可包括从例如客户机装置110接收的订单。订单可例如通过网关120从客户机装置110接收。另外,订单可以从与交易所130通信的其他装置接收。即,典型地,交易所130将与也提供要匹配的订单的各个其他客户机装置(这可与客户机装置110类似)通信。
交易所130适于提供市场数据。市场数据可被提供到例如客户机装置110。市场数据可例如通过网关120提供到客户机装置110。市场数据可包括代表例如内部市场的数据。内部市场是某一时间点处的最低卖价(也称为“最低叫价(best ask)”)和最高买价(也称为“最高出价(best bid)”)。市场数据还可以包括市场深度。市场深度指的是在内部市场可用的数量,并也可表示按照远离内部市场的其他价格可用的数量。由此,内部市场可被看作市场深度的第一级别。远离内部市场的一个最低价位(tick)可被看作例如市场深度的第二级别。在某些实施例中,可提供市场深度用于所有价格级别。在某些实施例中,可提供市场深度用于少于所有价格级别。例如,可提供市场深度仅用于内部市场每一侧的前五个价格级别。该市场数据还可以包括诸如最后交易价格(LTP)、最后交易数量(LTQ)、和订单履行信息的信息。
在某些实施例中,系统100包括多于一个客户机装置110。例如,与上述客户机装置110类似的多个客户机装置可以与网关120通信,以向交易所130发送订单。
在某些实施例中,系统100包括多于一个网关120。例如,与上述网关120类似的多个网关可以与客户机装置110和交易所130通信。这样的安排可用于提供例如如果一个网关120发生故障的备份(redundancy)。
在某些实施例中,系统100包括多于一个交易所130。例如,网关120可和与上述交易所130类似的多个交易所通信。这样的安排可允许客户机装置110通过例如网关120在多于一个交易所处交易。
在某些实施例中,系统100包括多于一个交易所130和多于一个网关120。例如,与上述网关120类似的多个网关可以和与上述交易所130类似的多个交易所通信。每一网关可与例如一个或多个不同交易所通信。这样的安排可允许一个或多个客户机装置110在例如多于一个交易所处交易(和/或提供与多个交易所的备份连接)。
在某些实施例中,客户机装置110包括一个或多个计算装置或处理组件。换言之,客户机装置110的功能性可以由多于一个计算装置执行。例如,一个计算装置可生成要发送到交易所130的订单,而另一计算装置可向交易者提供图形用户接口。在某些实施例中,网关120包括一个或多个计算装置或处理组件。换言之,网关120的功能性可以由多于一个计算装置执行。在某些实施例中,交易所130包括一个或多个计算装置或处理组件。换言之,交易所130的功能性可以由多于一个计算装置执行。
在某些实施例中,网关120是客户机装置110的一部分。例如,网关120的组件可以是与客户机装置110相同的计算平台的一部分。作为另一示例,网关120的功能性可以由客户机装置110的组件执行。在某些实施例中,不存在网关120。当例如客户机装置110不需要利用网关120与交易所130通信时,这样的安排可出现。例如,如果客户机装置110已适于与交易所130直接通信。
在某些实施例中,网关120在物理上位于和客户机装置110相同的地点。在某些实施例中,网关120在物理上位于和交易所130相同的地点。在某些实施例中,客户机装置110在物理上位于和交易所130相同的地点。在某些实施例中,网关120在物理上位于与客户机装置110和交易所130两者分离的地点。
尽管为了简明的目的没有示出,但是在某些实施例中,系统100可包括专用于通信架构的其他装置,诸如中间件、防火墙、集线器、转换器、路由器、交易所专用通信设备、调制解调器、安全管理器、和/或加密/解密装置。
上述系统100的组件、元件、和/或功能性可按照例如硬件、固件、和/或软件指令集的各种形式单独或者组合实现。某些实施例可被提供为驻留在诸如存储器、硬盘、CD-ROM、DVD、EPROM、和/或文件服务器的计算机可读介质上的指令集,用于在通用目的计算机或其他计算装置上执行。
II.算法订单建造器
某些实施例提供建造块按钮和算法区域以定义算法。某些实施例允许迅速调整算法的参数和逻辑两者,甚至在单一交易会话期间。当定义算法时,某些实施例提供表达式的实时评估。某些实施例通过降低或消除用户对编程代码的写入,而降低传统编程算法的风险,诸如语法错误、不清楚的逻辑、以及非交易者的程序员开发交易者所指定的算法的需求。某些实施例提供用于同时全部建造、调试、和(利用真实市场数据)仿真算法的单一应用。另外,该单一应用还可以准备使用该算法来启动订单的下订。
图2A图示了根据某些实施例的交易界面200。交易界面200是称为算法订单建造器(“AOB”)的算法交易应用的交易界面。AOB允许交易者创建用于下订单的算法。然而,应注意的是,所图示的交易界面200的元素可合并到其他交易界面中。
交易界面200包括证券选择按钮201、市场网格202、仿真指示订单条目区域203、自动保值(hedge)选项204、摩擦(scratch)数量205、变量区域206、算法区域210、和建造块按钮215。算法区域210包括价格区域211、数量区域212、和条件区域213。
在操作中,通过利用一个或多个建造块按钮215在价格区域211、数量区域212、和/或条件区域213中建造表达式,而在算法区域210中定义算法。算法中用户定义的变量的缺省值可以使用变量区域206来指定。一旦已定义了算法,可使用仿真指示订单条目区域203来指示该表达式的逻辑将如何运转(behave)。要根据所定义的算法管理的订单可然后使用交易界面来启动。
证券选择按钮201准备要下订的订单所涉及的证券(即,可交易对象)的选择。如图2A中图示的,已使用证券选择按钮201来选择GEH1-GEM1日历价差,如证券选择按钮201中显示的所选择的证券的名称所指示的。如果还没有选择证券,则证券选择按钮201可显示“选择证券”或提供还没有选择证券的某一其他指示。
一旦激活了证券选择按钮201(例如,通过使用指针选择它或在触摸屏上触摸它),可显示证券选择界面来允许证券的选择。
图2B图示了根据某些实施例的证券选择界面220。证券选择界面220显示可交易产品的列表,并允许用户通过跟随证券树来指定要交易的特定可交易对象。证券树允许用户挑拣例如要指示的证券、证券类型(例如,价差或期货)、和特定合约。例如,如图示的,已选择了GEH1-GEM1日历价差。
返回参考图2A,市场网格202显示用于可交易对象的市场信息。可交易对象可以是例如利用证券选择按钮201选择的证券。作为另一示例,可交易对象可以是用户选择的另一可交易对象。市场网格202可显示诸如可交易对象的买入价和/或卖出价、买入数量和/或卖出数量、最后交易价和/或最后交易量信息。例如,市场网格202可显示用于所选择的证券的内部市场价格和数量。
仿真指示订单条目区域203准备生成对于评估在算法区域210中定义的算法的可操作方面的反馈。用户可利用仿真指示订单条目区域203来仿真买入或卖出所选择的证券的假设订单的下订,以指示该表达式的逻辑将如何运转。用于假设订单的价格和/或数量也可利用仿真指示订单条目区域203来指定。另外,在某些实施例中,仿真指示订单条目区域203可被配置为(例如,通过选择复选框)启动买入或卖出所选择的证券的实际订单的下订,其中根据所定义的算法来管理订单。
自动保值选项204准备指定:当履行启动的订单时,应下订对方订单。当履行订单是买入订单时,该对方订单是卖出订单,而当履行订单是卖出订单时,该对方订单是买入订单。对方订单的数量可以例如与履行的数量相同。对方订单是按照可获利脱手(exit)价格(诸如从履行订单的价格的一个可交易增量(由交易所所定义))初始下订的。例如,如果履行订单按照价格100买入数量10,则对方订单可以是按照价格101卖出数量10。作为另一示例,如果履行订单按照价格100卖出数量5,则对方订单可以是按照价格99买入数量5。
摩擦(scratch)数量205用于自动保值选项204。当对方订单的价格级别处的市场中的数量下降到低于指定的摩擦数量205时,将对方订单的价格级别改变为对应履行订单的价格。在该情况下,履行订单被称为“被摩擦”,并且不存在交易的利润。在某些实施例中,可以不管获利或亏损,按照接近该头寸的价格来下订对方订单。
变量区域206准备指定和修改在算法区域210中使用的用户定义的变量。变量区域206显示每一变量名称和它的值。可选择变量区域,以改变变量名称和/或它的值。变量也可被称为算法的参数。
算法区域210准备定义管理订单的算法。算法区域210包括价格区域211、数量区域212、和条件区域213。每一区域对应于算法的不同方面。
使用建造块按钮215来在该算法区域210中建造表达式,以定义算法。评估这些表达式,以确定用于算法区域210的每一区域的值。表达式包括利用建造块按钮215所指定的一个或多个元素。下面更详细地讨论建造块按钮215的使用。
一旦已在算法区域210中定义了该算法,就可利用交易界面来启动买入或卖出订单。例如,除了准备启动假设订单之外,在某些实施例中,仿真指示订单条目区域203还可准备启动实际订单。作为另一示例,可使用与下面讨论的界面类似的交易界面来启动订单。然后根据定义的算法来管理所启动的订单。
评估价格区域211以确定正管理的订单应下订的价格。价格区域211评估为代表价格的数字。如果价格区域211是空白的,则使用仿真指示订单条目区域203中指定的价格。如果价格区域211包括表达式,则可忽略仿真指示订单条目区域203中指定的价格。价格区域211可在不同时间(诸如当市场数据改变时)被评估到不同值。如果这样的话,则正管理的订单被改变为按照新价格工作。这可例如通过删除该订单并按照新价格下新订单、或通过使用取消/替换命令而实现。
评估数量区域212以确定正管理的订单应下订的数量。数量区域212评估到代表数量的数字。如果数量区域212是空白的,则使用仿真指示订单条目区域203中指定的数量。如果数量区域212包括表达式,则可忽略仿真指示订单条目区域203中指定的数量。数量区域212可在不同时间(诸如当市场数据改变时)被评估到不同值。如果这样的话,则正管理的订单被改变为按照新数量工作。这可例如通过删除该订单并按照新数量下新订单、或通过使用改变订单数量命令而实现。如果数量区域212评估到0,则可从市场中去除正管理的订单,直到数量区域212评估到非零值为止。这可与下面讨论的评估到“假”的条件区域213类似。
在某些实施例中,算法区域210不包括数量区域212。取代的是,数量可以是固定的或预先定义的。例如,用于管理保值订单的交易界面(例如,当履行交易策略的可交易对象的另一订单时自动下订的订单;这还可以被称为保值管理器界面)可使用基于另一订单的履行数量、并根据算法的观点预定的数量。由此,算法区域是这样的交易界面,其可允许算法用于工作保值订单,可以不包括数量区域212,因为不需要指定数量值,这是由于在利用该算法时该数量值是预定的。
评估条件区域213,以确定该算法是否应是活动的。条件区域213评估为布尔值。当条件区域213评估为“真”时,算法是活动的。当条件区域213评估为“假”时,算法是不活动的。如果条件区域213是空白的,则算法总是活动的。条件区域213可在不同的时间(诸如当市场数据改变时)评估为不同值。当算法是活动的时,正管理的订单进入市场并如上所述根据确定的价格和数量而工作。当算法是不活动的时,从市场去除正管理的订单。这可例如通过删除订单来实现。
在某些实施例中,算法区域210不包括条件区域213。取代的是,一旦启动了订单,该算法可总是仅为“活动的”。例如,在保值管理器界面中,因为期望尽可能快地履行保值订单,所以正管理该保值订单的算法可总是活动的。
如果价格区域211、数量区域212、和/或条件区域213中的表达式没有评估到正确类型的值(用于价格区域211和数量区域212的数字以及用于条件区域213的布尔值),则该表达式是无效的。为了指示该表达式是无效的,某一区域的背景可以从绿(指示有效表达式)改变为红(指示无效表达式)。当算法区域210的区域之一中的表达式是无效的时,不能下订订单。
在某些实施例中,可使用除了背景颜色之外还包括的其他指示符(或除了背景颜色之外的其他指示符),来指示算法区域210的区域中的表达式是无效的。例如,可使用不同背景图案、不同边界颜色或类型、诸如“准备”或“无效”的文本消息、和/或感叹号的图标。
如果履行了正根据该算法管理的订单,则可如上所述基于自动保值选项204和摩擦数量205而自动下订对方订单。
如上面讨论的,使用建造块按钮215来在该算法区域210中建造表达式,以定义算法。建造块按钮215还可被称为例如图标、可移动图标、图标按钮、可移动按钮、或用户接口元素。表达式包括元素(逻辑表达式和参数),并被评估以确定用于算法区域210的每一区域的值。建造块按钮215可被选择并放置在算法区域210的特定区域中,以建造表达式。例如,用户可将一个或多个建造块按钮215拖放到算法区域210的一个或多个区域中,诸如价格区域211、数量区域212、和/或条件区域213。作为另一示例,用户可通过例如点击建造块按钮215而选择它,并且它可被放置在最近使用的算法区域210中。在算法区域210中放置建造块按钮215的步骤在算法区域210中构造的表达式中放置元素。如下面讨论的,表达式中的某些元素可包括充当例如子表达式的附加元素。
建造块按钮215的类型包括:证券、常量、算术运算符、逻辑运算符、优先运算符、if-then-else构造、和变量。证券建造块按钮指定所选择的证券的属性,诸如买入价和卖出数量。常量值建造块按钮指定诸如数字和布尔常量值。算术运算符建造块按钮包括诸如加(“+”)、减(“-”)、乘(“*”)、和除(“/”)的算术运算符。另外,算术运算符建造块按钮可包括诸如“+/-”的订单方特定算术运算符,其对于买入订单是加而对于卖出订单是减(或者对于卖出订单是加而对于买入订单是减,如用户所指定的那样)。逻辑运算符建造块按钮包括诸如与(AND)、或(OR)、非(NOT)的逻辑运算以及诸如大于(“>”)、小于(“<”)、大于或等于(“>=”)、小于或等于(“<=”)、以及等于(“=”)的比较。另外,逻辑运算符建造块按钮可包括诸如“>/<”的订单方特定逻辑运算符,其对于买入订单是大于而对于卖出订单是小于(或者对于卖出订单是大于而对于买入订单是小于,如用户所指定的那样)。优先运算符建造块按钮包括括号(“(”和“)”)。在某些实施例中,可使用优先运算符建造块按钮来形成包括括号之间的元素的子表达式。if-then-else构造建造块按钮允许指定例如条件值。if-then-else构造建造块按钮提供其中可使用一个或多个元素建造子表达式的部分。变量建造块按钮使用例如如上面讨论的变量区域206来指定其值可改变的用户定义的变量。
图2C-2I图示了根据某些实施例的在交易界面200中建造对于算法的定义。
如图2C中图示的,证券建造块按钮231被选择并放置在价格区域211中作为证券建造块232。证券建造块232允许用户从列表233中选择应使用所选择的证券的哪个属性。已选择了证券买入价。由此,包括证券建造块232的价格区域211(被指定为证券买入价)评估为市场中的即时证券买入价。
所选择的证券的属性的示例包括买入价、卖出价、买入数量、卖出数量、最后交易价格、最后交易数量、体积(volume)、交易会话高、交易会话低、非暗示的买入数量/卖出数量(也称为实际买入数量/卖出数量)、结算价格、最小可交易增量(也称为最小价位尺寸)、以及在一价格处排队的订单的数目(也称为人头数(headcount))。另外,特殊订单方特定属性可以被指定(未示出),诸如“买入价”、“卖出价”、“买入数量”和“卖出数量”。对于这些特殊属性,使用所指定的值用于买入订单,并使用所指定的值的相反值用于卖出订单。例如,如果选择“卖出价”,则表达式评估为用于买入订单的卖出价价和用于卖出订单的买入价。
如图2D中图示的,选择该减法算术运算符建造块按钮241并放置在价格区域211中作为减法建造块242。现在价格区域211中的表达式包括证券建造块232和减法建造块242。
然而,价格区域211中的表达式现在是无效的并且不能被评估(“买入价-”不是有语法意义的)。这可与无效的区域的类型类似地处理,如上面讨论的那样。即,由于价格区域211中的表达式是无效的,所以价格区域211的背景从绿色(指示有效表达式)改变为红色(指示无效表达式)。
如图2E中图示的,数字常量值建造块按钮251被选择并放置在价格区域211中作为常量值建造块252。用户已指定常量值建造块252应具有值“0.5”。价格区域211中的表达式现在再次有效(注意,背景已从红色改变回绿色),并评估到证券的即时买入价减去0.5。
如图2F中图示的,if-then-else构造建造块按钮261被选择并放置在数量区域212中作为if-then-else构造建造块262。if-then-else构造建造块262包括IF部分263、THEN部分264、和ELSE部分265。一个或多个元素(包括嵌套if-then-else构造建造块)的子表达式可被建造在if-then-else构造建造块262的每一部分中。当评估if-then-else构造建造块262时,如下确定其值。评估IF部分263以确定布尔值。当从IF部分263确定的布尔值评估为“真”时,if-then-else构造建造块262评估为THEN部分264中的表达式的值。当从IF部分263确定的布尔值评估为“假”时,if-then-else构造建造块262评估为ELSE部分265中的表达式的值。
还使用建造块按钮215来建造if-then-else构造建造块262的部分中的表达式。如图示的,IF部分263包括部分建造的表达式,用于进行比较以确定证券买入数量是否大于某值。然而,由于该表达式不是有语法意义的,所以其是无效的。注意,所以,IF部分263的背景是红色而不是绿色以指示该情况。另外,因为if-then-else构造建造块262不是有效的(因为该IF部分263不是有效的),所以数量区域212中的表达式不是有效的,并所以其也具有红色背景。
如图2G中图示的,if-then-else构造建造块262现在在其每一部分中包括有效表达式,并所以用于数量区域212的表达式也是有效的。
如图2H中图示的,if-then-else构造建造块可以是嵌套的。if-then-else构造建造块262的ELSE部分265包括另一if-then-else构造建造块266。如图示的,由于if-then-else构造建造块266不包括其任意部分中的任意表达式,所以其不能被评估,并所以是if-then-else构造建造块262的ELSE部分265中的无效表达式。结果,ELSE部分265具有红色背景以指示其表达式是无效的。此外,因为ELSE部分265具有无效表达式,所以if-then-else构造建造块262不具有有效表达式,并所以数量区域212的背景是红色的。
如图2I中图示的,if-then-else构造建造块262的IF部分263中的表达式包括变量建造块273、274、275和276。可通过使用变量建造块按钮、或当使用常量值建造块按钮来指示该常量值应该是变量时通过选择选项,来放置变量建造块273、274、275和276。变量建造块273显示变量的名称(“M_TH_1”)和其值(“5000”)。这可例如代表最小阈值。如上面讨论的,变量区域206显示每一变量名及其值。如图示的,变量区域206包括名称列271和缺省值列272,名称列271具有用于每一变量建造块273、274、275和276的条目,而缺省值列272具有用于每一变量的对应缺省值条目。用户可选择缺省值列272中的缺省值条目,以改变相应变量建造块的缺省值,使得在数量区域212中的表达式的评估中使用新缺省值。类似地,用户可选择名称列271中的名称条目以改变相应变量建造块的名称。变量建造块273、274、275和276可允许用户例如通过改变变量(例如充当算法的参数)的值,来操纵算法的运转(而不是基础逻辑)。
交易界面200提供实时评估特征。如图2C-2I中图示的实时评估特征提供用于表达式的评估值的显示。例如当正定义算法时,可提供实时评估值。实时评估值可以例如与正评估的表达式相关地显示。只要表达式改变或者表达式中的建造块的值改变,就可执行评估。也可周期性地或连续地执行评估。在某些实施例中,可对于子表达式提供实时评估值。在某些实施例中,可对于表达式的个别元素提供实时评估值。
如图2C中图示的,如上面讨论的,证券买入价已被选择为用于证券建造块232的属性。价格区域211的实时评估281显示“8.5”,这是证券的当前买入价(也在市场网格202中示出)。如图2D中图示的,如上面讨论的,价格区域211中的表达式是无效的并所以不显示实时评估,因为不能评估表达式。如图2E中图示的,价格区域211的实时评估282显示“8”,这是证券买入价(8.5)减去常量值(0.5)。
除了价格区域211、数量区域212、和条件区域213的实时评估之外,可对于那些区域内的表达式执行实时评估。例如,如图2G中图示的,对于if-then-else构造建造块262的每一部分以及数量区域212自身提供实时评估。IF部分263的实时评估283是“真”,因为证券买入数量(863)大于或等于60。THEN部分264的实时评估284是2,因为THEN部分264中的表达式正好是常量值2。类似地,ELSE部分265的实时评估285是1,因为ELSE部分265中的表达式正好是常量值1。数量区域212的实时评估286是“2”,因为由于IF部分263评估为“真”、所以if-then-else构造建造块262的评估是THEN部分264的值。
交易界面200的建造块按钮215和算法区域210允许诸如交易者或非程序员的用户减少开发算法所需的时间和风险。这通过减少或去除语法错误(例如,由于特定编程语言的复杂性)并提供对于正建造的算法的实时评估和反馈(例如,通过标记错误并允许在建造算法时调试逻辑),来部分实现。
一旦已在算法区域210中定义了算法,可保存该算法。算法可被给予名称(例如,在正建造算法时和/或当保存算法时)。保存的算法可然后在将来时间利用交易界面200或利用另一交易界面被调用(recall)或引用(reference)。例如,保存的算法可利用交易界面200装载,使得其可在另一订单上编辑或重新使用。作为另一示例,保存的算法可作为订单类型从另一交易界面引用,如下面讨论的。
图2J图示了根据某些实施例的交易界面290。交易界面290是适于准备启动算法所管理的订单的订单票据(order ticket),其中对于那个订单特别定义该算法。
交易界面290包括算法区域299、算法订单按钮294、和建造块按钮295。算法区域299包括价格区域292、数量区域293、和条件区域294。价格区域291与上面讨论的价格区域211类似。数量区域292与上面讨论的数量区域212类似。条件区域293与上面讨论的条件区域213类似。建造块按钮295与上面讨论的建造块按钮215类似。
可使用交易界面290来启动典型交易订单的下订。另外,可选择算法订单按钮294来使能算法区域299。当使能时,算法订单区域299按照与上述用于交易界面200的方式类似的方式,准备使用价格区域291、数量区域292、和条件区域293来定义算法。一旦算法已在算法区域299中定义并启动,则按照与上述用于交易界面200的方式类似的方式,根据定义的算法来管理。
类似地,与交易界面200和290中的那些类似的算法区域和建造块按钮可被合并在交易应用的其他组件中。例如,保值管理器界面可适于合并类似特征,使得可定义和指定算法以管理保值订单。
上述交易界面200和交易界面290的组件、元素、和/或功能性可例如按照硬件、固件、和/或作为软件指令集的各种形式而单独或组合实现。某些实施例可被提供作为驻留在诸如存储器、硬盘、CD-ROM、DVD、EPROM和/或文件服务器的计算机可读介质上的指令集,用于在通用目的计算机或其他处理装置上运行。
III.算法设计实验室
某些实施例提供用于设计算法的设计帐篷区和块。某些实施例提供具有在算法中使用的复杂功能性的块。某些实施例准备对设计帐篷区中放置的块进行分组。某些实施例准备虚拟化的组块,使得算法的部分的动态实例化能够处置特定离散事件。某些实施例允许即使在单一交易会话期间也迅速调整算法的参数和逻辑两者。某些实施例提供当设计算法时的块的实时反馈。某些实施例提供安全特征以降低设计算法时的潜在错误。当客户机装置和算法服务器之间的连接破坏时,某些实施例准备算法的一些或全部部分的运算。某些实施例通过降低或消除用户对编程代码的写入,而降低传统编程算法的风险,诸如语法错误、不清楚的逻辑、以及非交易者的程序员开发交易者所指定的算法的需求。某些实施例提供用于同时全部建造、调试、和(利用真实市场数据)仿真算法的单一应用。另外,该单一应用还可以准备使用该算法来启动订单的下订。
图3A图示了其中可采用某些实施例的电子交易系统300的框图。系统300包括一个或多个客户机装置301、一个或多个算法服务器302、以及一个或多个电子交易所303。每一客户机装置301与一个或多个算法服务器302通信。每一算法服务器302与一个或多个交易所303通信。另外,在某些实施例中,尽管图3A中没有示出,但是客户机装置301也可与一个或多个交易所303通信。客户机装置301和/或算法服务器302与交易所的通信可通过与例如上述网关120类似的网关进行。
客户机装置301可与例如上述客户机装置110类似。在某些实施例中,客户机装置301可被称为交易者终端。交易所303可与例如上述交易所130类似。
在某些实施例中,算法服务器302物理上位于交易所303附近或位于交易所303处。在某些实施例中,算法服务器302是客户机装置301的一部分。
在操作中,可在客户机装置301上设计用于电子交易的算法。该算法然后可传递到算法服务器302。算法服务器302执行算法以进行与交易所303的电子交易。市场数据可由算法服务器302接收用于由该算法使用。另外,市场数据可由客户机装置301接收用于在设计算法时使用。市场数据可从例如交易所303接收。作为另一示例,市场数据可从仿真器或从存储的/历史数据接收。
图3B图示了根据某些实施例的交易界面310。交易界面310是用于称为算法设计实验室(“ADL”)的算法交易应用的交易界面。ADL允许交易者设计用于电子交易的算法。然而,应理解的是,图示的交易界面310的元素可被合并在其他交易界面中。
交易界面310包括设计帐篷区311、块列表区域312、变量区域313、和控制区域314。在某些实施例中,这些区域中的一个或多个可以在单独窗口或工具条中。例如,块列表区域312可以在与设计帐篷区311分离的窗口中。
操作中,通过利用来自块列表区域312的一个或多个块在设计帐篷区311中定义算法。该算法中的用户定义的变量的缺省值可以使用变量区域313来指定。一旦已定义了算法,可使用控制区域314中的控制来仿真该算法,以指示该算法的逻辑将如何运转。要根据所定义的算法管理的订单可以然后使用交易界面启动。
设计帐篷区311准备定义算法。设计帐篷区311也可被称为白板区域。设计帐篷区311提供可视编程环境用于设计该算法。设计算法的步骤包括建造、测试、仿真、和/或评估算法。
在某些实施例中,设计帐篷区311是用于交易应用310的界面的主要焦点(primary focus),并可以是例如大的空白。在该设计帐篷区311中,可根据用户的偏好安排块。在某些实施例中,设计帐篷区311提供可用于安排块的网格线。在某些实施例中,设计帐篷区311包括可用于通过具有许多块的大算法进行导航的纵览显示或图。在某些实施例中,设计帐篷区311可被缩小或放大,使得用户可以一次或多或少看见算法。
块被放置在设计帐篷区311中,并连接以定义算法。可从块列表区域312中选择要放置的块。一旦已放置了块,该块可然后连接到其他放置的块。
块列表区域312包括可在设计帐篷区311中选择并放置的一个或多个块。块代表可根据用户偏好组合来建造算法的不同功能性。
一般,块具有输入和输出。然而,某些块可仅具有输入,并且其他块可仅具有输出。例如,暂停块可仅具有输入。作为另一示例,数字块可仅具有输出。
块的输入和输出具有两种主要类型之一:连续或离散。连续类型输入/输出在任意特定时间点(由此连续)具有值。离散类型输入/输出接收/提供与在某一特定时间点发生的特定动作/事件对应的离散事件(个别消息/对象)。当特定动作/事件发生时,可生成对应离散事件。
除了输入/输出的主要类型,输入/输出可具有特定值类型。例如,连续输入可具有布尔、数字、整数、浮点数字、或证券的值类型。作为另一示例,块可具有变量值类型的两个连续输入,其中用于这两个输入的值类型可以例如是布尔或数字的,但是必须匹配。采用两个输入并比较它们以输出指示输入是否相等的布尔的等于块可具有变量输入,使得其可用于比较例如布尔或数字或证券。作为另一示例,离散输出可具有履行确认的值类型。即,离散输出可提供履行确认离散事件。作为另一示例,离散输出可提供用于诸如订单请求确认(指示下订了订单)、履行确认(指示履行或部分履行了订单)、订单改变确认(指示改变了诸如价格或数量的工作订单参数)、订单删除确认(指示删除或取消了工作订单)、或交易确认(指示已发生交易)的动作的多于一类离散事件。作为另一示例,离散事件可以是空的,因为其仅指示已发生了事件。空离散事件可以例如通过定时器、布尔值的改变来触发,或用于在特定时间(诸如已满足某些市场条件的一天中的时间或时间)激活算法的一部分。特定类型离散事件可包括与另一类型离散事件不同的信息。例如,订单确认可包括诸如订单标识符和/或证券的信息。作为另一示例,履行确认离散事件可包括诸如订单标识符、价格、数量、证券、和/或履行时间的信息。作为另一示例,订单删除确认可包括订单标识符、证券、和/或删除时间。作为另一示例,空离散事件可以不包括任何信息(或者可以仅包括事件发生的时间)。离散事件可包括用户定义的信息。例如,用于证券A的履行订单的履行确认的离散事件可包括用户定义的市场信息,诸如在证券A中的履行时间处的证券B中的买入价。
在某些实施例中,块包括用于其输入/输出的主要类型的指示符。例如,连续输入/输出可以通过特定背景颜色、前景颜色、背景图案、边界颜色、边界种类、形状、符号、数字、文本、和/或字体来指示,而离散输入/输出可以通过另一颜色、图案、边界、形状、符号、数字、文本、和/或字体来指示。
在某些实施例中,块包括用于其输入/输出的值类型的指示符。例如,具有特定值类型的输入/输出可以通过特定背景颜色、前景颜色、背景图案、边界颜色、边界种类、形状、符号、数字、文本、和/或字体来指示,而具有不同值类型的输入/输出可以通过另一颜色、图案、边界、形状、符号、数字、文本、和/或字体来指示。
在某些实施例中,当光标位于该块附近时,输入或输出的主要类型和/或值类型在弹出窗口中显示。在某些实施例中,当光标位于该块附近时,关于块的配置的信息在弹出窗口中显示。
块代表不同功能性。在交易界面310中,块已被分离为四个一般种类的功能性:基本块、交易块、离散块、和混杂(miscellaneous)块。然而,这些分组是为了用户的方便组织和利用;块不需要被分组,并且块的组不使得特定特征成为必需的。一些块可以适当地适合多于一个类别,并且也可以采用块的其他组织或分组。
基本块一般具有连续输入和输出,并提供算术运算(例如,加、减、乘、和除)、逻辑运算(例如,与、或、以及诸如等于、大于、和小于的比较)、常量值(例如,数字和布尔)、以及if-then-else构造。
交易块一般提供与操纵订单(例如,下订单、修改现有订单、或删除订单)相关的更复杂的功能性或订单相关信息(例如,履行确认)。交易块可具有连续以及离散输入和输出两者。例如,做市商(market maker)块可具有用于指定证券、价格、数量和用于对订单报价的条件的连续输入,并可具有工作数量的连续输出和用于提供履行的通知的离散输出。交易块允许用户(包括非程序员(诸如交易者))利用虚拟设计环境(诸如由ADL提供)来创建和部署交易算法。与典型程序员相比,交易块可允许算法的更快速和精确的设计,与其他虚拟编程平台相比,交易块可利用更少步骤或指令。
离散块一般具有离散输入和输出,并基于离散事件的发生来提供操作。例如,发生器块可生成离散事件的发生。作为另一示例,值提取器块可从离散事件中提取值,并使得其作为连续值可用于算法的另一部分。作为另一示例,可使用定序器块来控制其中响应于离散事件处理随后块的序列。某些离散块可存储要在随后时间引用的数据。例如,值累加器块可接收离散事件,并从其提取用户指定的值,所提取的值可以与从每一接收的离散事件提取的值累加。
混杂块提供可能不必适合上述类别的各种功能性。例如,这些块可提供特定目的或更复杂的计算,并可向算法自己的执行添加附加控制。此外,混杂块可提供更精确的控制风险的工具,将数字变换为可交易值,或将时间(精确的或流逝的)用作输入或变量。
图3C图示了可在根据某些实施例的交易界面310中使用的块320的示例。图示了来自上述每一类别的示例块。示例基本块包括添加块321和if-then-else块322。示例交易块包括做市商块323、条件买入/卖出块324、和订单处理器块325。示例离散块包括值提取器块326和分支块327。示例混杂块包括注释块328和暂停块329。下面更详细地讨论这些块中的每一个、连同可在某些实施例中包括的块的其他示例。
基本块可以包括例如加、减、乘、除、大于、小于、大于或等于、小于或等于、与、或、等于、IF-THEN-ELSE、数字、布尔、以及常量块。
加法块可以将两个连续数字输入加到一起,以产生一个连续数字输出。加法块可具有三角形形状,中间具有加法符号(“+”),左侧具有两个连续输入,而右侧具有一个连续输出。加法块也可被称为加法器块。
减法块可从第二连续数字输入(例如,顶输入)中减去一个连续数字输入(例如,底输入),以产生一个连续数字输出。减法块可具有三角形形状,中间具有减法符号(“-”),左侧具有两个连续输入,而右侧具有一个连续输出。
乘法块可以将两个连续数字输入相乘到一起,以产生一个连续数字输出。乘法器块可具有三角形形状,中间具有乘法符号(“×”或“*”),左侧具有两个连续输入,而右侧具有一个连续输出。
除法块可以用一个连续数字输入(例如,顶输入)除以第二连续输入(例如,底输入),以产生一个连续数字输出。除法块可具有三角形形状,中间具有除法符号(“/”或“÷”),左侧具有两个连续输入,而右侧具有一个连续输出。
大于块可以比较两个连续数字输入以确定一个输入(例如,顶输入)是否大于第二输入(例如,底输入)。如果第一输入大于第二输入,则输出是真的连续布尔输出,而对于所有其他条件,输出是假。大于块可在左侧具有矩形形状而在右侧具有弓形形状,中间是大于符号(“>”),左侧具有两个连续数字输入,而右侧具有一个连续布尔输出。
小于块可以比较两个连续数字输入以确定一个输入(例如,顶输入)是否小于第二输入(例如,底输入)。如果第一输入小于第二输入,则输出是真的连续布尔输出,而对于所有其他条件,输出是假。小于块可在左侧具有矩形形状而在右侧具有弓形形状,中间是小于符号(“<”),左侧具有两个连续数字输入,而右侧具有一个连续布尔输出。
大于或等于块可以比较两个连续数字输入以确定一个输入(例如,顶输入)是否大于或等于第二输入(例如,底输入)。如果第一输入大于或等于第二输入,则输出是真的连续布尔输出,而对于所有其他条件,输出是假。大于或等于块可在左侧具有矩形形状而在右侧具有弓形形状,中间是大于或等于符号(“>=”或“≥”),左侧具有两个连续数字输入,而右侧具有一个连续布尔输出。
小于或等于块可比较两个连续数字输入以确定一个输入(例如,顶输入)是否小于或等于第二输入(例如,底输入)。如果第一输入小于或等于第二输入,则输出是真的连续布尔输出,而对于所有其他条件,输出是假。小于或等于块可在左侧具有矩形形状而在右侧具有弓形形状,中间是小于或等于符号(“<=”或“≤”),左侧具有两个连续数字输入,而右侧具有一个连续布尔输出。
与块可以执行两个连续布尔输入的逻辑关联,使得如果第一输入(例如,顶输入)是真并且第二输入(例如,底输入)是真,则布尔输出是真。如果输入中的任一个是假,则布尔输出是假。与块可在左侧具有矩形形状而在右侧具有弓形形状,中间是“AND”文本,左侧具有两个连续布尔输入,而右侧具有一个连续布尔输出。
或块可以执行两个连续布尔输入的逻辑分离(disjunction),使得如果输入中的任一个是真,则布尔输出是真。如果两个输入是假,则输出值是假。或块可在左侧具有矩形形状而在右侧具有弓形形状,中间是“OR”文本,左侧具有两个连续布尔输入,而右侧具有一个连续布尔输出。
等于块可比较两个连续输入,以确定一个输入(例如,顶输入)是否等于第二输入(例如,底输入)。输入可以是变量值类型,使得等于块可接收诸如数字、布尔、或证券的值,只要每一输入是相同类型即可。如果两个输入相等,则输出是真的连续布尔输出,而对于所有其他条件,输出是假。等于块在左侧具有矩形形状而在右侧具有弓形形状,中间是等于符号(“=”),左侧具有两个连续变量输入,而右侧具有一个连续布尔输出。等于块也可被称为等式块。
IF-THEN-ELSE块可具有三个连续输入:布尔IF输入、变量THEN输入、和变量ELSE输入。IF-THEN-ELSE块具有一个连续变量输出。如果IF输入值是真,则输出是THEN输入的值。如果IF输入值是假,则输出是ELSE输入的值。IF-THEN-ELSE块可具有中间具有“?”符号的矩形形状,左侧具有一个连续布尔IF输入以及两个连续变量ELSE和THEN输入,而右侧具有一个连续变量输出。
数字块可具有一个连续数字输出,提供用户所指定的数字值。当下订时,可提示用户键入用于数字块的数值。作为选择,数字块可缺省为诸如1的预定义值。另外,可将该值指定为订单票据数量或订单票据价格。如果这样的话,数字块的值将是当订单被启动为使用该算法管理时、所指定的相应值。指定的值可以例如通过选择数字块并使用被提示键入值的诸如菜单项或双点击的动作,在该算法的设计期间由用户改变。如果使用下面讨论的变量区域313将数字块指定为变量,则指定的值还可以改变。数字块可具有环形形状,中间具有指定的数字,而右侧具有一个连续数字输出。该块也可被称为常数块。
布尔块可具有提供用户指定的布尔值的一个连续布尔输出。当下订时,可提示用户键入用于布尔块的布尔值。作为选择,布尔块可缺省为诸如真的预定义值。指定的值可以例如通过选择布尔块并使用提示键入值的诸如菜单项或双点击的动作,在该算法的设计期间由用户改变。如果使用下面讨论的变量区域313将布尔块指定为变量,则指定的值还可以改变。布尔块可具有环形形状,中间具有文本显示的指定的布尔值,而右侧具有一个连续布尔输出。该块也可被称为常量布尔块。
在某些实施例中,数字块和布尔块可被合并在诸如常量块的单一块中。常量块可具有一个连续变量输出,提供用户所指定的值。当下订时,可提示用户键入用于常量块的值类型和值。作为选择,常量块可缺省为诸如数字的预定值类型和诸如1的预定义值。另外,可将该值指定为订单票据数量或订单票据价格。如果这样的话,常量块的值将是当订单被启动为使用该算法管理时、所指定的相应值。指定的值可以例如通过选择常量块并使用提示键入值的诸如菜单项或双点击的动作,在该算法的设计期间由用户改变。如果使用下面讨论的变量区域313将常量块指定为变量,则指定的值还可以改变。常量块可具有环形形状,中间具有文本显示的指定的值,而右侧具有一个连续变量输出。在某些实施例中,常量块也支持对于值指定证券,这与下面讨论的证券块类似。
交易块可包括例如证券、证券属性、做市商、分类账(legger)、习惯价差、响应买入/卖出、条件买入/卖出、订单处理器、IF-THEN-ELSE证券、价格的证券属性、之间的价差、交易、订单、履行计算器、以及履行累加器块。
证券块可具有一个连续证券输出,提供证券名称。证券名称可以例如是交易所列出的证券或人造证券。当下订时,可提示用户指定用于证券块的证券名称。证券名称可以例如从列表中选择。作为选择,证券块可以缺省为预定义的值。指定的值可以例如通过选择证券块并使用提示键入值的诸如菜单项或双点击的动作,在该算法的设计期间由用户改变。如果使用下面讨论的变量区域313将证券块指定为变量,则指定的值还可以改变。
证券属性块可以具有连续证券输入和连续数字输出。证券属性块可以采用证券名称,并输出用于该证券的指定属性的值。属性可包括最佳买入数量、最佳买入价、最佳卖出数量、最佳卖出价、体积、会话高价、会话低价、最小可交易增量、最后交易价格、最后交易数量、总数量(在按照新价格发生交易之前、按照最后交易价格成交的总数量)、来自先前交易会话的结算价格、实际(非暗示)最佳买入数量、实际(非暗示)最佳卖出数量、买入人头数(按照最佳买入价的市场中的订单数)、卖出人头数(按照最佳卖出价的市场中的订单数)、或头寸(某一证券中的用户的全部总量)。当下订时,可提示用户键入要由证券属性块提供的属性。作为选择,证券属性块可缺省为诸如买入数量的预定义值。指定的属性可以例如通过选择证券属性块并使用提示键入属性的诸如菜单项或双点击的动作,在该算法的设计期间由用户改变。如果使用下面讨论的变量区域313将证券属性块指定为变量,则指定的属性也可以改变。
当条件连续布尔输入是真时,做市商块可提交按照两个连续数字输入指定的价格和数量由连续证券输入所指定的可交易对象的买入或卖出订单。条件输入是可选的,如果没有提供输入,则缺省为真。当条件输入是假时,做市商块可删除订单。如果相应价格和数量输入值改变时,做市商块还可以修改现有订单的价格或数量。数量输入中指定的值代表考虑到在先履行的最大期望履行数量。例如,如果提供数量输入值5,则5个订单可进入市场,并且如果履行了3的数量,则2个订单将继续工作,即使价格输入改变了。如果价格输入改变,则工作订单将称为指定的新数量减去已履行的数量3。做市商块可提供一个或多个离散输出,其提供履行确认和/或订单请求离散事件。做市商块可包括这样的选项,该选项指定:即使删除、停顿、停止、或暂停算法,做市商块所生成的订单也应保留在订单簿中。该特征例如对于算法的保值部分可以是有用的。做市商块可包括这样的选项,该选项指定:当在订单簿中显示做市商块所生成的订单时,应将该订单标记为未决,这可使得更容易地标识不正确地起作用的或不完全的算法(例如,如果不期望订单保留在订单簿中)。做市商块还可包括这样的选项,该选项指定要与做市商块所下的订单关联的颜色或文本标记,使得它们更容易地例如在订单窗口中标识。
分类账块可提交习惯价差的腿的可交易对象的买入或卖出订单,其中每一腿的可交易对象通过连续证券输入指定。习惯价差所期望的价格和数量通过两个连续数字输入来指定。当条件连续布尔输入是真时,分类账块使用于价差的(多个)个别订单工作。条件输入是可选的,并且当不提供输入时,缺省为真。当条件输入是假时,分类账块可删除(多个)订单。如果价格和/或数量输入值改变,则分类账块还可修改(多个)工作订单的价格和/或数量。数量输入中指定的值代表考虑到先前履行的、价差的最大期望履行数量。例如,如果提供数量输入值5,则5个订单可进入市场,并且如果履行了3的数量,则2个订单将继续工作,即使价格输入改变了。如果数量输入改变,则工作订单将为指定的新数量减去已履行的数量3。分类账块可提供一个或多个离散输出,其提供价差履行、订单请求和/或腿履行离散事件。在已经为价差的腿提供证券之后,分类账可例如通过选择分类账块并使用被提示指定参数和设置的诸如菜单项或双点击的动作来配置。可对于价差的每一腿规定的参数包括“多”(价差腿的系数)、“交易数量”(价差的每一腿的数量,其中正数是买入,而负数是卖出)、“工作市场?”(根据价差的腿是否将主动报价来触发)、“净改变”(通过是否将习惯价差计算变换为净改变而不是价格来触发)、“全部付清最小价位”(习惯价差将通过其进入瘦腿上的限价订单的最小价格增量的数目;正数意味着较积极地得到履行,负数意味着较不积极地得到履行)、以及“瘦比率”(为了使报价腿上的一个数量单元工作、而需要在瘦腿上存在的数量单元;这可以例如是两条腿之间的数量的比率、或瘦腿中的阈值数量)。可指定的设置包括“侧”(买入或卖出习惯价差)、“总是使内部市场工作”(当真时,触发分类账块将仅使得在最好或内部市场上出现的个别单边图利订单工作,并且在某些实施例中,将仅使得通过查看市场买入/卖出尺寸比率而确定的更可能得到履行的腿工作)、“禁止‘剪断’模式”(触发缺省行为,即,如果分类账块能实现期望的价差价格,它将删除当前工作订单并同时提交所有腿上的订单,以按照期望价差价格得到履行;当禁止时,分类账块将仅使特定“工作市场?”腿工作,即使期望价格变得暂时可用)、“修剪尺寸”(如所提供的价差数量输入所定义的,在已履行总数量之前要递增增加的同时工作的数量)、以及“标记”(指定与价差履行离散事件关联的用户定义的标记,以使得标识它们更容易)。分类账块可包括这样的选项,该选项指定:即使删除、停顿、停止、或暂停算法,分类账块所生成的订单也应保留在订单簿中。分类账块可包括这样的选项,该选项指定:当在订单簿中显示分类账块所生成的订单时,应将该订单标记为未决,这可使得更容易地标识不正确地起作用的或不完全的算法(例如,如果不期望订单保留在订单簿中)。分类账块还可包括这样的选项,该选项指定要与分类账块所下订的订单关联的颜色或文本标记,使得它们更容易地例如在订单窗口中标识。该块也可被称为自动价差块或多空套做者(spreader)块。
习惯价差块可提交习惯价差的腿的可交易对象的买入或卖出订单,其中从外部应用提供习惯价差作为证券。习惯价差所期望的价格和数量通过两个连续数字输入来指定。当条件连续布尔输入是真时,习惯价差块使用于价差的(多个)个别订单工作。条件输入是可选的,并且当不提供输入时,缺省为真。当条件输入是假时,习惯价差块可删除(多个)订单。如果价格和/或数量输入值改变,则习惯价差块还可修改(多个)工作订单的价格和/或数量。数量输入中规定的值代表考虑到先前履行的、价差的最大期望履行数量。例如,如果提供数量输入值5,如果履行了3的数量,则2个订单将继续工作,即使价格输入改变了。如果数量输入改变,则工作订单将为指定的新数量减去已履行的数量3。习惯价差块可包括可选布尔输入,以使能个别订单的腿的订单数量的动态尺寸排列,而不需要在保值腿上呈现原始订单数量。习惯价差块可提供一个或多个离散输出,其提供履行确认和/或订单请求离散事件。当下订时,可提示用户从外部应用指定习惯设计证券,其中习惯设计证券提供代表交易策略的人造市场数据。作为选择,特定的习惯设计证券可例如通过选择习惯价差块并使用被提示从外部应用指定习惯设计证券的诸如菜单项或双点击的动作,在算法设计期间由用户指定和/或改变。作为选择,在算法设计期间,用户可指定设置,所述设置可包括“禁止‘剪断’模式”(触发缺省行为,即,如果习惯价差块能实现期望的价差价格,它将删除当前工作订单并同时提交所有腿上的订单,以按照期望价差价格得到履行;当禁止时,习惯价差块将仅使特定报价腿工作,即使期望价格变得暂时可用)和“修剪尺寸”(如所提供的价差数量输入所定义的,在已履行总数量之前要递增增加的同时工作的数量)。习惯价差块可包括这样的选项,该选项指定:即使删除、停顿、停止、或暂停算法,习惯价差块所生成的订单也应保留在订单簿中。习惯价差块可包括这样的选项,该选项指定:当在订单簿中显示习惯价差块所生成的订单时,应将该订单标记为未决,这可使得更容易地标识不正确地起作用的或不完全的算法(例如,如果不期望订单保留在订单簿中)。习惯价差块还可包括这样的选项,该选项指定要与习惯价差块所下的订单关联的颜色或文本标记,使得它们更容易地例如在订单窗口中标识。在某些实施例中,习惯价差块可从外部应用提供特定的习惯设计证券作为连续证券输出。在某些实施例中,习惯价差块可从外部应用提供特定的数字或布尔值作为连续的数字或布尔输出。该块也可被称为习惯策略块或习惯外部应用块。
当在离散输入上接收到离散事件时,响应买入/卖出块可启动用于由连续证券输入所指定的证券的买入或卖出订单的下订。下订单的价格和/或数量可通过连续数字输入来提供。作为选择,价格和/或数量可通过被评估来确定要使用的相应价格或数量值的用户定义的等式来指定。在某些实施例中,价格和数量之一可通过连续数字输入来提供,而另一个可通过评估用户定义的等式来提供。用于价格和/或数量的(多个)指定的等式(如果使用)可例如通过选择响应买入/卖出块并使用被提示键入(多个)等式的诸如菜单项或双点击的动作,在算法设计期间由用户改变。等式可以例如按照原文键入或者使用与上述建造块按钮215类似的建造块按钮来键入。一旦响应买入/卖出块已启动了订单的下订,就不基于所提供的价格和/或数量值的随后改变来更新订单。响应买入/卖出块可包括这样的选项,该选项指定:即使删除、停顿、停止、或暂停算法,响应买入/卖出块所生成的订单也应保留在订单簿中。响应买入/卖出块可包括这样的选项,该选项指定:当在订单簿中显示响应买入/卖出块所生成的订单时,应将该订单标记为未决,这可使得更容易地标识不正确地起作用的或不完全的算法(例如,如果不期望订单保留在订单簿中)。响应买入/卖出块还可包括这样的选项,该选项指定要与响应买入/卖出块所下的订单关联的颜色或文本标记,使得它们更容易地例如在订单窗口中标识。
当条件连续布尔输入是真时,条件买入/卖出块可启动按照两个连续数字输入指定的价格和数量的、用于连续证券输入所指定的证券的、买入或卖出订单的下订。该条件输入是可选的,并且当不提供输入时,缺省是真。当条件输入值是假时,条件买入/卖出块不删除订单(但是直到条件输入成为真时才启动订单的下订)。条件买入/卖出块一次仅可提交一个订单。在某些实施例中,即使可(例如,通过算法中的另一块或由用户手动)删除订单,条件买入/卖出块也将继续提交订单(一次一个)以努力实现初始提供的数量值。一旦条件买入/卖出块已启动了订单的下订,就不基于在所提供的价格和/或数量值中的随后改变来更新订单。条件买入/卖出块可提供一个或多个离散输出,其提供履行确认和/或订单请求离散事件。条件买入/卖出块可包括这样的选项,该选项指定:即使删除、停顿、停止、或暂停算法,条件买入/卖出块所生成的订单也应保留在订单簿中。条件买入/卖出可包括这样的选项,该选项指定:当在订单簿中显示条件买入/卖出块所生成的订单时,应将该订单标记为未决,这可使得更容易地标识不正确地起作用的或不完全的算法(例如,如果不期望订单保留在订单簿中)。条件买入/卖出块还可包括这样的选项,该选项指定要与条件买入/卖出块所下的订单关联的颜色或文本标记,使得它们更容易地例如在订单窗口中标识。
订单处理器块可接收离散输入上的订单事件,并基于由两个连续数字输入提供的价格和数量值来管理对应订单。如果在连续布尔输入上提供的值成为真,则删除订单。订单处理器块可提供一个或多个离散输出,所述离散输出提供履行确认、删除确认、和/或改变确认离散事件。订单处理器块可在连续数字输出上提供工作数量和/或履行数量。订单处理器块可包括这样的选项,该选项指定:即使删除、停顿、停止、或暂停算法,订单处理器块所管理的订单也应保留在订单簿中。
IF-THEN-ELSE证券块可具有三个连续输入:布尔IF输入、证券THEN输入、和证券ELSE输入。IF-THEN-ELSE证券块具有一个连续证券输出。如果IF输入值是真,则输出是THEN输入的证券值。如果IF输入值是假,则输出是ELSE输入的证券值。IF-THEN-ELSE证券块可具有中间具有“?”符号的矩形形状,左侧具有一个连续布尔IF输入以及两个连续证券ELSE和THEN输入,而右侧具有一个连续证券输出。IF-THEN-ELSE证券块与上面讨论的IF-THEN-ELSE块类似,但是专用于证券值。
价格块处的证券属性具有连续证券输入、连续数字输入、和连续数字输出。价格块处的证券属性可采取(连续证券输入所提供的)证券名称和(连续数字输入所提供的)价格,并输出按照指定价格的用于该证券的指定属性的值。属性可包括买入数量、卖出数量、实际(非暗示)买入数量、实际(非暗示)卖出数量、买入人头数(按照指定价格在市场中的买入订单的数目)、以及卖出人头数(按照指定价格在市场中的卖出订单的数目)。当下订时,可提示用户键入价格块处的证券属性所要提供的属性。作为选择,价格块处的证券属性可缺省为诸如买入数量的预定义值。该指定属性可例如通过选择价格块处的证券属性并使用被提示键入属性的诸如菜单项或双点击的动作,在算法设计期间由用户改变。如果使用下面讨论的变量区域213将价格块处的证券属性指定为变量,该指定属性也可以改变。
块之间的价差可具有两个连续证券输入和连续证券输出。块之间的价差可采取两个证券名称(例如,一个来自“前腿”输入而另一个来自“后腿”输入),并输出与两个提供的证券的交易所列出的价差对应的证券名称(例如,“前腿-后腿”)。例如,可使用块之间的价差来引用诸如“CLZ0”(2010年12月天然的)和“CLF1”(2011年1月天然的)的两个不同证券之间的价差。这些“腿”可被分别称为“前腿”和“后腿”。块之间的价差的对应输出是交易所列出的价差证券,在该示例中是交易所列出的证券“CLZ0-CLF1”(2010年12月-2011年1月价差市场)。可使用该块以改善编程安全性,从而降低在正确引用证券之间的价差的处理中的误差。例如,这两个输入证券可被表示为当算法正在运行时可改变的变量,或被指定为用于该算法管理的不同订单的不同交易所列出的价差。块之间的价差通过在不需要设置或改变第三变量以匹配两个个别证券变量的情况下、得到“正确”列出的价差证券,来提供安全性。还可以使用块之间的价差来定位或搜索某些交易所列出的价差的存在。
交易块可对于连续证券输入上提供的证券提供离散事件输出上的离散事件中的交易数据。离散事件包括与每一交易关联的交易价格和交易数量值。交易数据可从例如交易所接收。交易价格和交易数量可例如通过值提取器块、值累加器块、离散最小块、和/或离散最大块,从离散事件提取。
订单块可允许根据定义的算法来管理现有订单(即,在该算法外已下订的并且另一算法没有管理的订单)。例如,可使用订单块来提供特定类型的自动保值例程,以限制用户已手动下订的订单。订单块提供现有订单用于的证券的连续证券输出、以及用于现有订单的数量、价格、和生效(excute)数量的连续数字输出。订单块还提供诸如履行确认的与订单相关的订单离散事件的离散输出。在某些实施例中,如果定义的算法包括订单块,其可在包括例如订单窗口的交易界面中在向现有订单施加的可用算法的列表中呈现。作为另一示例,当算法运行或在订单块自身中指定时,可向算法提供订单标识符作为变量。当施加到现有订单时,包括订单块的定义算法可然后根据该算法管理订单。
履行计算器块可提供用于价差履行离散事件的离散输出。当算法在不使用分类账块或习惯价差块的情况下买入/卖出习惯价差时,可使用履行计算器块。履行计算器块接收用于价差的每一交易生效(履行)腿的多个连续证券输入和离散输入,前者提供用于腿的证券,而后者提供用于履行确认的离散事件。在已提供了用于价差的腿的证券之后,履行计算器块可例如通过选择履行计算器块并使用被提示指定参数和设置的诸如菜单项或双点击的动作来配置。可对于价差的每一腿指定的参数包括“多”(价差腿的系数)、“交易数量”(价差的每一腿的数量,其中正数是买入,而负数是卖出)、以及“净改变”(触发是否将习惯价差计算变换为净改变而不是价格)。可指定的设置包括“侧”(买入或卖出用于履行计算器的习惯价差)和“标记”(规定与价差履行离散事件关联的用户定义的标记,以使得更容易标识它们)。
累加器块可接收离散输入上的订单或履行离散事件,并在连续数字输出上提供用于接收的离散事件的累加数量。例如,如果累加器块连接到做市商块,则累加器块可对于从做市商块接收的每一部分履行离散事件增加其连续数字输出的值。可使用该块,来跟踪例如履行总数。累加器块可以是通过(pass-through)块,这样接收的每一离散事件通过对应离散输出。累加器块可以包括复位离散输入,其一旦接收到事件,就将累加数量复位到0。累加器块可以与下面讨论的价值累加器块类似,但是具有更多限制功能性,因为其仅累加履行数量。
离散块可包括例如发生器、值提取器、值累加器、价值桶、离散移动平均数、状态、分支、多路复用器、漏斗(funnel)、定序器、离散最小值、和离散最大值块。
只要条件是真,发生器块就可提供离散输出上的离散事件。条件可通过连续布尔输入来提供,使得只要条件输入成为真,就生成事件。作为选择,条件可被指定为事件,诸如:“开始”(当开始算法时,条件为真,其后条件为假,使得当开始算法时提供单一离散事件)、“改变”(只要连续布尔输入值改变,条件就为真,从而从真到假或者从假到真都生成离散事件)、“每X”(每一指定的时间间隔中条件为真一次,其中该间隔可以按照分、秒、或毫秒来指定)。
值提取器块可接收离散输入上的离散事件,并从该事件提取用户指定的值。作为选择,当接收到离散事件时,值提取器块可评估用户定义的等式以确定所提取的值。所提取的值可以然后在连续输出上提供。输出的值的类型取决于提取的值的类型。以下表达式可用于指定要从离散事件中提取的值:“证券”(提供与离散事件关联的证券)、“履行价格”(提供与离散事件关联的履行价格)、“履行数量”(提供与离散事件关联的履行数量)、“订单数量”(提供与离散事件关联的订单数量)、“订单价格”(提供与离散事件关联的订单价格)、“生效数量”(提供针对订单数量的履行的累加)、“工作数量”(提供按照特定订单价格的未生效订单数量的累加)、“交易数量”(提供在交易所生效的交易的数量)、“交易价格”(提供在交易所生效的交易的价格)、和“变量”(提供指定的用户定义变量的值或者在不是虚拟化组块的一部分的算法中输出的任何其他块的值)。在某些实施例中,值提取器块可从另一块的输出引用值。该值可通过使用上述“变量”表达式来引用,或者该值可被提供到例如值提取器块的连续变量输入。值提取器块可以是通过块,使得接收的每一离散事件通过对应离散输出。
值累加器块可接收离散输入上的离散事件,并从该事件提取用户指定的值,以在接收每一离散事件时累加值。累加的值在连续数字输出上提供。以下表达式可用于指定要从离散事件中提取的值:“履行价格”(提供与离散事件关联的履行价格)、“履行数量”(提供与离散事件关联的履行数量)、“订单数量”(提供与离散事件关联的订单数量)、“订单价格”(提供与离散事件关联的订单价格)、“生效数量”(提供针对订单数量的履行的累加)、“工作数量”(提供按照特定订单价格的未生效订单数量的累加)、“交易数量”(提供在交易所生效的交易的数量)、“交易价格”(提供在交易所生效的交易的价格)、和“变量”(提供指定的用户定义变量的值或者在不是虚拟化组块的一部分的算法中输出的任何其他块的值)。值累加器块可以是通过块,使得接收的每一离散事件通过对应离散输出。值累加器块可以包括复位离散输入,一旦接收到事件,就将累加值复位到0。值累加器块与上面讨论的累加器块类似,但是支持累加什么值的更灵活的配置。
价值桶块可准备创建密钥值对的表格。该表格可以是例如散列表。价值桶块的表格的密钥被称为桶洞(bucket hole)。与特定桶洞(即,表格的密钥)对应的表格的值被称为桶值。价值桶块接收离散输入上的离散事件。当接收到离散事件时,评估该桶洞的用户定义的等式,以确定表格中的适当条目。然后评估该桶价值的用户定义的等式,以确定与所确定的桶洞对应的表格中的条目的新桶价值。如下面讨论的,新桶价值可与先前桶价值合并或者替代先前桶价值。当下订时,可提示用户键入用于桶洞和桶价值的等式。作为选择,价值桶块可缺省为预定义的等式,诸如桶洞“0”和桶价值“0”。指定的等式可例如通过选择价值桶块并使用被提示键入桶洞和桶价值等式之一或两者的诸如菜单项或双点击的动作,在算法设计期间由用户改变。等式可以例如按照原文键入或者使用与上述建造块按钮215类似的建造块按钮来键入。可用于指定(可通过建造块按钮提供的)等式的表达式变量可包括:“证券”(提供与离散事件关联的证券)、“履行价格”(提供与离散事件关联的履行价格)、“履行数量”(提供与离散事件关联的履行数量)、“订单数量”(提供与离散事件关联的订单数量)、“订单价格”(提供与离散事件关联的订单价格)、“生效数量”(提供针对订单数量的履行的累加)、“工作数量”(提供按照特定订单价格的未生效订单数量的累加)、“交易数量”(提供在交易所生效的交易的数量)、“交易价格”(提供在交易所生效的交易的价格)、和“变量”(提供指定的用户定义变量的值或者在不是虚拟化组块的一部分的算法中输出的任何其他块的值)。作为指定价值桶等式的一部分,用户还可以配置新桶价值如何与先前桶价值合并。例如,新桶价值可被添加到先前桶价值(准备对于每一接收的事件的相同桶洞而确定的桶价值之和)。作为另一示例,可确定对于同一桶洞而确定的桶价值的平均值。作为另一示例,新桶价值可替代先前桶价值(提供最新价值作为某一桶洞的桶价值)。价值桶可以缺省为例如对某一桶洞的桶价值求和。价值桶块可以是通过块,使得接收的每一离散事件通过对应离散输出。价值桶块还可以具有洞连续数字输入,提供要用作桶洞的价值,使得在价值连续数字输出上提供所提供的桶洞的对应桶价值。价值桶块可以包括复位离散输入,一旦接收到事件,就将复位所存储的表格。
离散移动平均数块可对于在每次在离散输入处接收到离散事件时通过评估指定的用户定义等式而确定的值提供移动平均数。确定移动平均数时所要使用的数据点的数目通过连续数字输入指定。将移动平均数提供到连续数字输出。离散移动平均数块可保持所评估的数据点的列表,直到已达到对应输入所指定的数据点的数目为止,在该点处,可向列表添加最新数据点,从列表去除最老数据点,并计算该列表中的数据点的移动平均数。当下订时,可提示用户键入要评估的等式。作为选择,离散移动平均数块可缺省为预定义的值,诸如用于该等式的“0”。指定的等式可例如通过选择离散移动平均数块并使用被提示键入等式的诸如菜单项或双点击的动作,在算法设计期间由用户改变。等式可以例如按照原文键入或者使用与上述建造块按钮215类似的建造块按钮来键入。可用于指定(可通过建造块按钮提供的)等式的表达式变量可包括:“证券”(提供与离散事件关联的证券)、“履行价格”(提供与离散事件关联的履行价格)、“履行数量”(提供与离散事件关联的履行数量)、“订单数量”(提供与离散事件关联的订单数量)、“订单价格”(提供与离散事件关联的订单价格)、“生效数量”(提供针对订单数量的履行的累加)、“工作数量”(提供按照特定订单价格的未生效订单数量的累加)、“交易数量”(提供在交易所生效的交易的数量)、“交易价格”(提供在交易所生效的交易的价格)、和“变量”(提供指定的用户定义变量的值或者在不是虚拟化组块的一部分的算法中输出的任何其他块的值)。离散移动平均数块还可以采取作为复位输入的离散输入。当通过复位输入接收离散事件时,丢弃所记录的数据点。这可导致移动平均数输出为0或者“不是数”(NaN)。离散移动平均数块还可以提供OK连续布尔输出,其指示是否已记录了足够数目的数据点以全面计算移动平均数。OK输出是假,直到已记录了需要数目的数据点为止,并且其后为真(直到复位为止)。例如,如果数据点输入的数目提供值20,则需要在OK输出成为真之前记录20个数据点(即,指定的等式的20个评估,每一个通过离散事件的接收来触发)。离散移动平均数块还可以提供多个数据点连续数字输出,其指示已记录的数据点的数目。离散移动平均数块可以是通过块,使得接收的每一离散事件通过对应离散输出。
状态块可接收离散输入上的离散事件,并评估每一离散输出的条件,以确定是否应在离散输出上提供离散事件。可使用状态块来设计状态机,其是包括例如有限数目状态、那些状态之间的转变、和动作的行为的模型。多个状态块可链接到一起,与“流程”图类似,其中当满足某些条件时,用户可检查逻辑运行的方式。因为通过过去状态确定当前状态,所以可能必须记录有关过去的信息。转变指示状态改变,并可通过将要求满足以使能转变的条件来描述。状态块允许用户定义退出动作以及定义转变的条件。例如,在提供每一个对应于不同状态转变的两个离散输出的状态块中,用户对每一个输出指定条件。在接收到离散事件之后,状态块等待与每一转变关联的一个或多个条件成为真(如果,当接收到离散事件时,没有条件是真)。当与某一状态转变关联的条件评估为真时,状态块在与那个某一状态转变关联的输出上提供离散事件(自从被接收以来已被保持)。条件可在连续布尔输入上提供。作为选择,条件可通过评估为布尔值的指定的用户定义等式来提供。指定的等式可例如通过选择状态块并使用被提示键入等式的诸如菜单项或双点击的动作,在算法设计期间由用户改变。等式可以例如按照原文键入或者使用与上述建造块按钮215类似的建造块按钮来键入。可使用状态块来评估市场中的用户定义图案,例如,是否存在非较低价格的多个连续交易。这些信号可被用作进入例如做市商块的交易块的条件输入。状态块还可评估信息,诸如离散事件是买入还是卖出履行消息。可用于指定(可通过建造块按钮提供的)等式的表达式可包括:“证券”(提供与离散事件关联的证券)、“履行价格”(提供与离散事件关联的履行价格)、“履行数量”(提供与离散事件关联的履行数量)、“订单数量”(提供与离散事件关联的订单数量)、“订单价格”(提供与离散事件关联的订单价格)、“生效数量”(提供针对订单数量的履行的累加)、“工作数量”(提供按照特定订单价格的未生效订单数量的累加)、“交易数量”(提供在交易所生效的交易的数量)、“交易价格”(提供在交易所生效的交易的价格)、和“变量”(提供指定的用户定义变量的值或者在不是虚拟化组块的一部分的算法中输出的任何其他块的值)。
分支块可接收离散输入上的离散事件,并评估条件。如果条件是真,则将在第一离散输出(“是”路径)上提供离散事件,而如果条件是假,则将在第二离散输出(“否”路径)上提供离散事件。条件可在连续布尔输入上提供。作为选择,条件可通过评估为布尔值的指定的用户定义等式来提供。指定的等式可例如通过选择分支块并使用被提示键入等式的诸如菜单项或双点击的动作,在算法设计期间由用户改变。等式可以例如按照原文键入或者使用与上述建造块按钮215类似的建造块按钮来键入。分支块可用于评估例如离散事件是买入还是卖出履行事件。可使用“买?”建造块按钮来建造这样的等式。可用于指定(可通过建造块按钮提供的)等式的其他表达式可包括:“证券”(提供与离散事件关联的证券)、“履行价格”(提供与离散事件关联的履行价格)、“履行数量”(提供与离散事件关联的履行数量)、“订单数量”(提供与离散事件关联的订单数量)、“订单价格”(提供与离散事件关联的订单价格)、“生效数量”(提供针对订单数量的履行的累加)、“工作数量”(提供按照特定订单价格的未生效订单数量的累加)、“交易数量”(提供在交易所生效的交易的数量)、“交易价格”(提供在交易所生效的交易的价格)、和“变量”(提供指定的用户定义变量的值或者在不是虚拟化组块的一部分的算法中输出的任何其他块的值)。
多路复用器块可接收离散输入上的离散事件,并在某一离散输出上提供离散事件。例如,多路复用器块可从订单处理器块接收离散事件,并基于离散事件的类型(例如,履行、改变、或删除),在多路复用器块的适当离散输出上提供它。当下订时,可提示用户指定对于哪些输出提供哪些离散事件类型。作为选择,多路复用器块可缺省为提供用于每一离散事件类型的输出的预定义的配置。对于其提供输出的指定的离散事件类型可例如通过选择多路复用器块并使用被提示键入离散事件类型的诸如菜单项或双点击的动作,在算法设计期间由用户改变。多路复用器块可以例如结合订单处理器块使用,以管理订单。
漏斗块可接收两个或更多离散输入上的离散事件并在单一离散输出上提供它们。漏斗块不保持离散事件,漏斗块使得离散事件通过到达输出。漏斗块可以例如结合需要多输入的状态块使用。
定序器块可保证其中使得离散事件通过到达输出的订单。定序器块可具有离散输入以及两个或更多离散输出。当在输入处接收离散事件时,定序器块顺序向每一输出提供离散事件。即,在对于接收的离散事件的处理中,定序器块将首先将离散事件提供到第一输出,并然后将离散事件提供到第二输出等。这可允许用户精确地确定在算法中更新接收离散输入的哪些订单块。然而,如果多个块连接到定序器块的同一离散输出,则不指定接收离散事件的那些块的订单。该块也可被称为序列块。
离散最小值块可比较两个离散输入,并提供指定属性(例如,交易价格、交易数量等)的最小值的连续数字输出。当在输入之一上接收到离散事件时,指定的属性值从事件中提取并存储。将提取的值与用于另一离散输入的最近存储的值进行比较,以确定哪个是较小的值,并在连续数字输出上提供该值。如果还没有对于输入接收到离散事件,则从另一输入提取的值可总是被看作较大值。作为替换,某一离散输入的值可简单缺省为0。离散最小值块可以是通过块,使得接收的每一离散事件通过对应离散输出。离散最小值块可包括复位离散输入,其一旦接收到事件,就将复位对于每一离散输入存储的值,并对应地更新最小输出。
离散最大值块可比较两个离散输入并提供指定属性(例如,交易价格、交易数量等)的最大值的连续数字输出。当在输入之一上接收到离散事件时,指定的属性值从该事件中提取并存储。将提取的值与用于另一离散输入的最近存储的值进行比较,以确定哪个是较大的值,并在连续数字输出上提供该值。如果还没有对于输入接收到离散事件,则从另一输入提取的值可总是被看作较大值。作为替换,某一离散输入的值可简单缺省为0。离散最大值块可以是通过块,使得接收的每一离散事件通过对应离散输出。离散最大值块可包括复位离散输入,其一旦接收到事件,就将复位对于每一离散输入存储的值,并对应地更新最大输出。
混杂块可包括例如最小、最大、舍入、显示到小数、非、一次真、是数字、移动平均数、条件f(x)、数字f(x)、平均数、定时器、注释、随机数、平方根、对数、和暂停块。
最小块可比较两个连续数字输入,以确定哪个是较小值并输出它。最小块可具有三角形形状,中间具有“MIN”文本,左侧有两个连续数字输入,而右侧有一个连续数字输出。
最大块可比较两个连续数字输入,以确定哪个是较大值并输出它。最大块可具有三角形形状,中间具有“MAX”文本,左侧有两个连续数字输入,而右侧有一个连续数字输出。
舍入块可将连续数字输入所提供的数字舍入到由连续数字输入提供的最接近的增量,以产生一个连续数字输出。如果没有提供增量值,则舍入块可舍入到最接近的整数。另外,用户可指定用于舍入块的三个选项之一:正常舍入、总是上舍入、以及总是下舍入。正常舍入使用传统舍入规则(例如,0.5向上舍入为1,而0.49向下舍入为0)。如果值落入两个增量之间,总是上舍入将数字舍入为较高增量(例如,2.1向上舍入为3,而2舍入为2)。如果值落入两个增量之间,总是下舍入将数字舍入为较低增量(例如,2.9向下舍入为2,而2舍入为2)。如果不指定选项,则舍入块将缺省为例如正常舍入。舍入块可具有矩形形状,中间具有“Round”文本,左侧有两个连续数字输入,而右侧有一个连续数字输出。
显示到小数块可使用连续数字输入所提供的数字和连续证券输入所提供的证券,以输出小数形式的数字。例如,如果用户想使用数字块来将诸如价格的值馈送到算法的剩余部分中(也许作为变量),而不必计算小数形式的值,则可利用显示到小数块。用户可能习惯于看到作为117125的证券ZN的价格,这可代表117又12.5/32nds的价格。利用显示到小数块,数字117125可以和证券一起被提供为输入,并且显示到小数块将该数字变换为适当小数格式值(这里,117.390625),以由算法的剩余部分使用。显示到小数块可具有矩形形状,中间具有“D2Dec”文本,左侧有一个连续证券输入和一个连续数字输入,而右侧有一个连续数字输出。
非块可执行连续布尔输入的逻辑否定,使得如果输入值为真,则输出为假,而如果输入值为假,则输出为真。非块可具有中间为否定符号(“!”或“-”)的左侧矩形形状右侧弓形形状,左侧有一个连续布尔输入,而右侧有一个连续布尔输出。
当连续布尔输入转为真时,一次真块可对于算法的寿命提供真的连续布尔输出。在输入值至少一次变为真之前,一次真块的输出值是假。一旦输入值已成为真,一次真块总是输出真的值,而不管输入值是否随后改变。一次真块可具有中间为“T”文本的左侧矩形形状和右侧弓形形状,左侧有一个连续布尔输入,而右侧有一个连续布尔输出。该块也可被称为一次真总是真块。
如果在连续数字输入上提供的值是数字,则是数字块可提供真的连续布尔输出,而如果提供的值是“非数字”(NaN),则输出假。该是数字块可具有中间为“IsNum?”文本的左侧矩形形状和右侧弓形形状,左侧有一个连续布尔输入,而右侧有一个连续布尔输出。
移动平均数块可采取数据值(其可随着时间改变,诸如价格或数量)作为连续数字输入以及多个分钟值作为连续数字输入,并提供指定数目的分钟上的移动平均数作为连续数字输出。移动平均数块可记录每秒的数据值。例如,如果用户期望具有一分钟移动平均值,则移动平均数块将记录60个数据点并对它们求平均用于输出。移动平均数块可还可以采取指示数据值输入是否有效的连续布尔值。该输入是可选的,并缺省为真。当数据值将被记录时(缺省每秒一次),移动平均数块检查以查看有效输入是否为真。如果为真,则记录数据值作为数据点。如果有效输入为假,则不记录数据值作为数据点。移动平均数块还可以采取作为复位输入的离散输入。当通过复位输入接收到离散事件时,丢弃记录的数据点。取决于正记录的数据值,这可导致移动平均数输出为0或“非数字”(NaN)。移动平均数块还可以提供指示是否已记录了足够数目的数据点的OK连续布尔输出,以完全计算移动平均数。OK输出为假,直到已记录了需要数目的数据点为止,并且其后为真(直到复位为止)。例如,如果输入的分钟数目提供20的值(用于20分钟移动平均数),则将需要在OK输出成为真之前记录1200个数据点(在20分钟时段中,每秒1个数据点)。移动平均数块还可以提供指示是否已记录了所述多个数据点的多个数据点连续数字输出。该移动平均数块可具有中间为“MvgAvg”文本的矩形形状,左侧具有四个输入(2个连续数字输入、1个连续布尔输入、和1个离散输入),而右侧具有三个输出(2个连续数字输出和1个连续布尔输出)。
条件f(x)块可评估提供用于连续布尔输出的值的用户定义等式。当下订时,可提示用户键入要评估的等式。作为选择,条件f(x)块可缺省为诸如真的预定义的值。指定的等式可例如通过选择条件f(x)块并使用被提示键入等式的诸如菜单项或双点击的动作,在算法设计期间由用户改变。等式可以例如按照原文键入或者使用与上述建造块按钮215类似的建造块按钮来键入。在某些实施例中,条件f(x)块可以引用来自另一块的输出的值。该值可使用指定该块的建造块按钮215来引用和输出,或者该值可被提供到条件f(x)块的连续变量输入。条件f(x)块可具有中间为“f(x)”文本的左侧矩形形状和右侧弓形形状,左侧没有输入(除非在用户定义等式中引用值,在该情况下,与每一变量对应地提供连续输入),而右侧有一个连续布尔输出。
数字f(x)块可评估提供用于连续数字输出的值的用户定义等式。当下订时,可提示用户键入要评估的等式。作为选择,数字f(x)块可缺省为诸如0的预定义的值。指定的等式可例如通过选择数字f(x)块并使用被提示键入等式的诸如菜单项或双点击的动作,在算法设计期间由用户改变。等式可以例如按照原文键入或者使用与上述建造块按钮215类似的建造块按钮来键入。在某些实施例中,数字f(x)块可以引用来自另一块的输出的值。该值可使用指定该块的建造块按钮215来引用和输出,或者该值可被提供到数字f(x)块的连续变量输入。数字f(x)块可具有中间为“f(x)”文本的左侧矩形形状和右侧弓形形状,左侧没有输入(除非在用户定义等式中引用值,在该情况下,与每一变量对应地提供连续输入),而右侧有一个连续数字输出。
在某些实施例中,条件f(x)块和数字f(x)块可被合并在诸如f(x)块的单一块中。f(x)块可评估提供用于连续数字输出的布尔或数字值的用户定义等式。当下订时,可提示用户键入要评估的等式。作为选择,f(x)块可缺省为诸如0的预定义的值。指定的等式可例如通过选择f(x)块并使用被提示键入等式的诸如菜单项或双点击的动作,在算法设计期间由用户改变。等式可以例如按照原文键入或者使用与上述建造块按钮215类似的建造块按钮来键入。在某些实施例中,f(x)块可以引用来自另一块的输出的值。该值可使用指定该块的建造块按钮215来引用和输出,或者该值可被提供到f(x)块的连续变量输入。f(x)块可具有中间为“f(x)”文本的左侧矩形形状和右侧弓形形状,左侧没有输入(除非在用户定义等式中引用值,在该情况下,与每一变量对应地提供连续输入),而右侧有一个连续变量输出。
平均数块可对两个或更多连续数字输入求平均,以产生一个数字连续输出。例如,平均数块可具有10个输入。作为另一示例,平均数块可开始于一个输入,并且每次进行到平均数块输入的连接时,可动态提供新输入。输入的值被求和,并然后被除以提供值的输入的数目,以产生输出。平均数块可具有中间为“AVE”或“AVG”文本的矩形形状,左侧具有两个或更多连续数字输入,而右侧有一个连续数字输出。
定时器块可提供用于时间的小时、分钟、和秒的连续数字输出。例如,时间可以是当前时间。当前时间可以例如是向用户提供交易界面的计算装置处的时间或者在算法服务器处的当前时间。作为另一示例,时间可以从算法开始运行的时间开始。作为另一示例,时间可以是自从当前交易会话开始的时间。作为另一示例,时间可以从当前交易会话的12am CST开始。作为另一示例,时间可以是交易所提供的时间。定时器块可具有中间为“TIMER”文本或时钟符号的矩形形状,右侧有三个连续数字输出。
注释块可提供文本框,用于用户键入关于正设计的算法的评论和注释。注释块可以不具有任何输入或输出。当下订时,可提示用户键入注释框的文本。作为选择,注释框可缺省为诸如“在这里添加注释”的预定义的值。指定的值可例如通过选择注释块并使用被提示键入值的诸如菜单项或双点击的动作,在算法设计期间由用户改变。注释块不影响算法的操作。注释块可具有矩形形状,中间显示有文本值。
随机数块可向连续数字输出提供随机数。当放置或稍后配置随机数块时,随机数可被指定为整数或浮点值。随机数块可缺省为提供整数值。随机数可以在连续数字输入所指定的最小值和连续数字输入所指定的最大值之间。如果没有提供最小输入,则其可缺省为例如0。如果没有提供最大输入,则其可缺省为对于整数输出为计算装置所支持的最大整数、或者对于浮点输出为1。当应提供新随机数时,随机数块还可以具有到信号的离散输入。如果没有提供离散输入,则随机数块可例如每秒提供一次新随机数。随机数块可以是通过块,使得接收的每一离散事件通过到对应离散输出。随机数块可具有中间为问号符号(“?”)或“RAND”文本的正方形形状,左侧具有两个连续数字输入和一个离散输入,而右侧有一个连续数字输出。
平方根块可对于在连续数字输入上提供的值提供在连续数字输出上的平方根值。如果输入是负数,则输出可以是“非数字”(NaN)。平方根块可具有中间为平方根符号(“√”)的三角形形状,左侧具有一个连续数字输入,而右侧有一个连续数字输出。
对数块可对于在连续数字输入上提供的值提供在连续数字输出上的对数值。对数的底数值可以在连续数字输入上提供。如果没有提供底数,则其可缺省为例如自然对数。对数块可具有中间为“Log”文本的正方形形状,左侧具有两个连续数字输入,而右侧有一个连续数字输出。
如果在离散输入上接收到离散事件或者如果在连续布尔输入上提供的值成为真,则暂停块可暂停整个算法。在某些实施例中,如果布尔输入值再次变为假,则算法可重新开始运行。在某些实施例中,一旦因为暂停块使得已暂停算法,则可手动重新启动算法。暂停块可以是具有红色背景的八边形形状,中间具有“Stop”文本,左侧具有一个连续布尔输入和一个离散输入。
代表算法的指令或逻辑(其后称为编程代码)基于算法的定义而生成。在某些实施例中,编程代码是可随后编译的源代码(诸如人和/或编译器可读文本)。在某些实施例中,编程代码是中间语言。在某些实施例中,编程代码包括机器可执行指令。在某些实施例中,编程代码的生成包括生成的源代码和/或中间语言代码的编译。在某些实施例中,编程代码的生成不包括生成的源代码和/或中间语言代码的编译,并且这样的编译是分离处理。生成的编程代码(如果适当的话,在编译之后)然后可被仿真和/或使用,以根据定义的算法交易。如这里使用的,当编程代码被讨论为要运行、执行、和/或仿真时,假设生成的编程代码已被附加编译,如果适当的话,要运行、执行、和/或仿真。
在某些实施例中,当设计算法时,生成编程代码。要注意的是,在设计算法时,随着块和/或连接被添加、修改、和/或去除,算法的定义可改变。在某些实施例中,当对算法定义进行改变时,自动生成编程代码。在某些实施例中,根据用户的请求生成编程代码。
在某些实施例中,编程代码由客户机装置处的交易界面310的算法交易应用的组件生成。在某些实施例中,编程代码由另一装置(诸如算法生成装置、与上面讨论的算法服务器302类似的算法服务器、和/或与上面讨论的网关120类似的网关)处的算法交易应用的组件生成。在某些实施例中,编程代码由多于一个组件生成。例如,算法交易应用的多个组件可一起工作以生成代码。这样的组件可专用于例如生成编程代码的功能性的不同方面。
在某些实施例中,编程代码由多于一个装置生成。例如,编程代码可以由客户机装置和算法服务器生成。基于算法定义生成的编程代码可以基于生成它的那个组件或装置而不同。例如,客户机装置上生成的编程代码可以被优化用于由客户机装置执行和/或可以包括与算法服务器(其例如可以不包括与用户接口相关的功能性)上生成的编程代码不同的特征(例如,与用户接口相关的功能性)。为了简明,除非按照别的方式注释,下面的讨论都针对客户机装置上的编程代码的生成,但是应理解的是,当在诸如算法服务器的另一装置处生成编程代码时,采取类似动作。
在某些实施例中,使用诸如C#的编程语言和.NET 4.0框架,按照面向对象的方式,来做出所生成的编程代码。
在某些实施例中,编程代码通过遍历(traversing)算法定义中的每一块和连接而生成。对于每一块,生成编程代码。当生成编程代码时,一些块可成为原语变量(primitive variable)。例如,加法器块可成为浮点变量,该浮点变量的值被设置为与加法器块的输入相连的输出的值之和,这可递归确定。可具有更复杂功能性的其他块可被生成为从基类导出的子类。基类可提供与对应块关联的核心功能性。生成的子类可然后推翻(override)具有返回值的虚拟方法,以向基类的核心功能性提供专用于生成编程代码的块的值。例如,设计帐篷区311中放置的做市商块可具有作为基本做市商类的子类而生成的编程代码。子类可推翻虚拟方法,以得到用于做市商块的各个输入的值,并指定做市商块是否被配置为买入或卖出。与上面讨论的基本块不同,做市商块是提供更复杂的功能性的交易块。
块之间的连续连接指定连接的输出值和输入值如何相关。继续上面的加法器的例子,代表加法器块的输出的浮点值可被设置为与加法器块的连续输入相连的其他原语变量(代表其他块/输出)的值之和。在某些实施例中,可使用连续连接来打倒(flatten)生成的编程代码,使得具有连续连接的多个块(其将生成原语变量)可被压缩(condense)为不使用多个中间变量的简单表达式。
使用块之间的离散连接来生成事件发生器和事件处理器,使得当生成离散事件时,调用正确的方法(处理器)。离散事件从事件发生器传递到事件处理器以进行处理。
当运行时,算法对引起算法状态改变的动作做出应答。这些动作可包括诸如市场事件(例如,价格更新、数量更新、订单确认、交易确认、履行确认、或交易通知)或定时器事件(例如,来自系统时钟或报警)的外部事件。这些外部事件可导致生成离散事件,诸如订单确认离散事件、交易确认离散事件、履行确认离散事件、或交易通知离散事件和/或诸如用于正更新的证券的价格或数量值的连续值。这些动作还可以包括内部事件,诸如由算法中的块生成的离散事件或连续值改变。
当内部或外部离散事件发生时(例如,交易确认离散事件或者发生器块生成离散事件),算法中的每一感兴趣的块具有调用的事件处理器方法,使得该块可执行与该事件关联的其指定功能性。事件处理器可按照未指定的顺序被评估。例如,事件处理器可基于订单来评估,它们的相应块被放置在算法定义中。事件处理器处理可包括基于接收的事件进行该块的功能,更新连续输出值,以及生成离散事件并将其在输出上提供给其他连接的块。
当内部或外部连续值改变时(例如,更新市场数据或者系统时钟的时间改变),直接或间接与数据的源(“下游块”)相连的每一感兴趣的块更新了其值,以反映新数据。作为一些块的结果的原语变量将例如分配了它们的新值。
如果通过离散事件或连续值改变而更新了连续输出值,则接收所更新的值的每一直接或间接连接的块被添加到要处理的块的列表。当对内部事件感兴趣的块已完成了它们的处理时,块的列表然后被处理,使得那些块可然后响应于内部事件动作。按照与外部事件类似的方式来处理内部事件。当每一块的处理生成向该算法的状态的新改变时,可然后重复该处理。
图3D-1到3D-7图示了根据某些实施例生成的示例编程代码。要注意的是,编程代码仅是可生成的编程代码的一部分,并意欲是示范性和简化的,以为了简明而强调某些特征。
即使当没有在设计帐篷区311中放置块时,也可以生成编程代码,如图3D-1图示的。生成的编程代码包括新类(“CustomAlgorithm0”),其代表正设计的算法。该新类是Algorithm类的子类,其提供用于实行具有算法交易应用的算法的基本接口和功能性。CustomAlgorithm0类可推翻Algorithm类的虚拟方法,使得专用于正设计的算法的功能性可被合并到算法交易应用的框架中并执行。
继续该示例,如图3D-2中图示的,当在设计帐篷区311中放置块时,也可以生成附加编程代码。如上面讨论的,一些块可成为原语变量,并且它们之间的连续连接告诉它们如何相关。例如,如图示的,两个常数块(“ConstantNumberBlock0”和“ConstantNumberBlock1”)以及加法器块(“AdderBlock0”)已被放置在设计帐篷区311中。注意,这些块还没有连接。所生成的编程代码的标记部分图示了这些基本块在编程代码中被代表为原语变量(类型“双”)。
如图3D-3中图示的,可以进行从ConstantNumberBlock0和ConstantNumberBlock1到AdderBlock0的连接。连接指定块之间的关系。所生成的编程代码的标记部分图示了AdderBlock0的值等于ConstantNumberBlock0的值加上ConstantNumberBlock1的值。这是因为加法器块所代表的功能性是将两个输入的值相加。
如图3D-4中图示的,做市商块已被放置在设计帐篷区311中。与上面讨论的基本块不同,做市商块是提供更复杂的功能性的交易块。所生成的编程代码添加代表已被放置的某一做市商块的功能性的新类(“CustomMarketMaker0”)。CustomMarketMaker0是MarketMaker的子类,其提供做市商块的基本功能性。CustomMarketMaker0类可推翻具有MarketMaker类的返回类型的虚拟方法,使得专用于所放置的做市商块的功能性可被合并在算法交易应用的框架中并执行。在该情况下,CustomMarketMaker0推翻由MarketMaker基类中的逻辑调用的方法,以得到用于做市商块的各个输入的值。如图3D-5中图示的,所放置的做市商块的数量输入已被连接到上面讨论的加法器块的输出。所生成的编程代码的标记部分图示了CustomMarketMaker0类的虚拟方法“GetQty”已被推翻以返回AdderBlock0的值。
继续该示例,如图3D-6中图示的,已在离散输出和离散输入之间进行连接。特别是,在做市商块的离散履行输出和值累加器块的复位输入之间进行连接。值累加器块是离散块并与交易块类似,添加新类(“CustomValueAccumulator0”)(未图示)。所生成的编程代码的标记部分图示了新类(“CustomMarketMaker0”和“CustomValueAccumulator0”)被例示,并且MarketMakerBlock0的事件“DiscreteObjectGenerated”与用于CustomAlgorithm0(“InterceptOrderMessage”)和ValueAccumulatorBlock0(“ProcessResetMessage”)的事件处理器链接。由此,当CustomMarketMaker0具有履行消息时,其将点燃DiscreteObjectGenerated事件,并且将通知已被链接的所有处理器。在该情况下,当通知ProcessResetMessage处理器时,其将累加器值复位为0。
继续该示例,如图3D-7中图示的,已在证券块(“SimpleInstrumentBlock0”)和证券属性块(“InstrumentFieldBlock0”)之间进行连接。证券块被生成为“InstrumentSnapshot”类的实例,其基于接收的用于证券“ESZ0”的市场数据来更新其连续输出。InstrumentSnapshot类提供了成员变量或性质,这些成员变量或性质可被引用以得到用于证券的属性的对应值。例如,当调用“SetAllVariables”(设置算法中的所有值)或“HandleUpdate”(通过某一连续值的更新而影响的设置值)方法时,证券属性块将其值设置为证券块的“.Bid”属性。
图3E图示了根据某些实施例的交易界面310。某些块可被指定为“变量”。例如,常数块、常量布尔块、和证券块可被指定为变量。
变量区域313准备修改变量块。变量区域313显示每一变量块名称及其缺省值。该变量区域可被选择以改变变量块名称和/或其缺省值。变量也可被称为算法的参数。
如图示的,设计帐篷区311包括已被指定为变量的两个块,证券块321和常量块322。例如当放置块时或者在放置块之后,可将块指定为变量。例如,可使用光标来选择块,并然后可选择菜单项来指定应使得该块为变量。块指定的变量可利用例如不同颜色、边界、背景、图案、和/或文本来指示。这里,文本“[Variable]”已被附加到显示的块名称。
如上面讨论的,变量区域313包括名称列323和缺省值列324,名称列323具有用于每一变量块321和32的条目,而缺省值列324具有用于每一变量块的对应缺省值条目。例如,证券块321被命名为“InstrumentBlock0”并具有缺省值“ESZ0”,而常量块322被命名为“ConstantBlock0”并具有缺省值“5”。
用户可选择列324中的缺省值条目,以改变变量块的缺省值,使得在算法的评估中使用新缺省值。类似地,用户可选择名称列323中的名称条目,以改变相应变量块的名称。变量块321和322可通过例如改变变量块的值(其充当该算法的参数),而允许用户操纵算法的行为(而不是基础逻辑)。
控制区域314提供在设计算法时使用的控制。控制区域314可包括播放按钮和暂停按钮,用于启动和暂停算法的仿真。可使用算法的仿真来指示算法的逻辑将如何运转。另外,控制区域314可包括生成按钮(未示出),其可促使基于该算法生成编程代码。当没有正基于算法的改变自动生成编程代码时,可使用生成按钮。当设计的算法复杂并且在每次算法的修改之后的编程代码的生成(以及如果合适,该编程代码的随后编译)花费不期望的长时间时,这可以是可期望的。在某些实施例中,控制区域314可包括编译按钮(未示出),这将促使对基于该算法生成的编程代码进行编译。当没有正基于算法的改变自动生成和/或编译编程代码时,可使用该编译按钮。当正设计的算法复杂并且在每次算法的修改之后的编程代码的编译花费不期望的长时间时,这可以是可期望的。
图3F-3G图示了根据某些实施例的交易界面310。交易界面310提供实时反馈特征。实时反馈特征对于设计帐篷区311中的特定块提供用于该特定块的值的显示。例如,可对于该块的一个或更多输入和/或输出显示实时反馈值。实时反馈值可例如关于该块或对应输入和/或输出而显示。只要块的输入或输出的值改变,就可以更新实时反馈。注意,一块的输出的改变可导致将第一块的输出(直接或间接)用作输入的另一块的输出改变,这导致两块的实时反馈被更新。
如图3F中图示的,各块331已被放置在设计帐篷区311中。对于块331的每一输出,提供示出输出的值的实时反馈332。注意,块333是数字块,并且不提供实时反馈,因为输出的值被示出在块333自己的显示中。在某些实施例中,对于某一放置块的一个或更多输入提供实时反馈。在某些实施例中,对于某一放置块的输入和输出两者提供实时反馈。在某些实施例中,对于设计帐篷区311中的所有块提供实时反馈。
证券块的实时反馈显示“GCJ1”的值。被配置为提供买入数量的证券属性块的实时反馈显示值“3”,这代表证券GCJ1的买入数量是3。加法器块的实时反馈显示值13,这是两个输入值3(来自证券属性块)和10(来自第一数字块)之和。除法块的实时反馈显示值6.5,这是将第一输入值13(来自加法器块)除以第二输入值2(来自第二数字块)的结果。
可以不提供对于某些块的实时反馈,除非正对该算法进行仿真。例如,如图3G中图示的,不提供对于做市商块335的输出的实时反馈。这是因为,除非算法正在运行(例如,正在仿真),做市商块335不操作并与市场交互。由此,做市商块335不提供基于其操作的任何连续值(因为其没有正进行操作),也不生成任何离散事件(再次,因为其没有正进行操作)。也不提供对于值提取器块336的输出的实时反馈。这是因为,值提取器块336具有离散输入,并由此其输出仅具有当接收到离散事件时的值。然而,除非该算法正在运行,否则不接收离散事件。
从算法自己提供要显示的实时反馈值。例如,所生成的用于正设计的算法的编程代码可包括更新诸如交易界面310的交易界面的显示的附加指令。在某些实施例中,所生成的用于该算法的编程代码不包括用于更新交易界面的显示的附加指令,因为例如诸如在算法服务器302上可以不存在交易界面。如图3D-2和3D-3中图示的,“SetAllVariables”方法当被调用时,调用“SendUpdate”方法。SendUpdate方法向用户接口提供该更新所用于的块的标识、该更新所用于的特定输出索引、以及值(这里,加法器块的值)。由此,只要用于块的值改变,就向用户接口提供更新,以更新该实时反馈。SendUpdate方法还可以由生成导出的类的块的基类调用,以提供用户接口更新值。类似地,如图3D-6中图示的,“InterceptOrderMessage”事件处理器被注册为当事件“DiscreteObjectGenerated”发生时被调用。InterceptOrderMessage方法向用户接口提供对应离散事件的通知。由此,只要生成该离散事件,用户接口就可以提供实时反馈。
当算法正在运行时(例如当其正在被仿真时),可对于设计帐篷区311中的所有块提供实时反馈。因为在某些时间点发生离散事件,所以当发生事件时,可显示离散事件的发生的指示符。例如,当在离散输入和/或输出处发生离散事件时,该输入和/或输出可闪光、改变颜色、大小、或形状。作为另一示例,当通过离散输入和输出之间的连接提供离散事件时,该连接可闪光、改变颜色、大小、或形状。作为另一示例,可提供沿着该连接的动画,以代表正沿着该连接从输出向输入提供的离散事件。该动画可以是例如沿着该连接移动的图标(红圆圈),或者该连接可搏动(pulsate)。
当正在设计算法时以及当正在运行算法时,实时反馈特征向用户提供反馈。实时反馈可允许用户评估该算法的逻辑如何运转,包括算法的操作安全性和完整性、一般趋势、以及获利/亏损可能性。
图3H-3L图示了根据某些实施例的交易界面310。交易界面310提供安全特征,以降低在设计算法时的潜在错误。
如图3H中图示的,证券块341已被放置在设计帐篷区311中。然而,当放置证券块341时,不指定证券,这是无效配置,因为如果还没有指定证券,则证券块不能输出证券名称。在证券块341附近显示警告指示符342(这里,在红圆圈中具有感叹号(“!”)的图标),以指示存在问题,并且当在证券块341附近放置光标时,显示该问题的解释343。在某些实施例中,可显示其他(或附加)指示符,以指示诸如设计帐篷区311的背景变成浅红和/或在状态条中显示警告或错误消息的问题。
如图3I中图示的,证券属性块344已被放置在设计帐篷区311中。然而,被配置为提供证券的最佳买入价的证券属性块344还没有被提供需要的输入:提供最佳买入价的证券名称。即,证券属性块344还没有连接到证券块(或可提供证券名称的另一块)。结果,算法定义是无效的。与图3H中的情况类似,也显示警告指示符和解释。
如图3J中图示的,证券属性块344和做市商块345已被放置在设计帐篷区311中。用户正尝试将证券属性块344的输出(具有数字值类型的连续输出)连接到做市商块345的证券输入(具有证券值类型的连续输入)。这些输入和输出的值类型是不兼容的,并所以将导致无效算法定义。指示符346(这里,具有通过其的斜线的圆圈)被显示在尝试的连接线上,以指示连接无效。另外,还显示解释347。如果在连续输出和离散输入之间尝试连接,则还可以提供类似反馈。
如图3K中图示的,加法器块348a和加法器块348b已被放置在设计帐篷区311中。用户正尝试将加法器块348b的输出连接到加法器块348a的输入。然而,加法器块348a的输出已作为输入连接到加法器块348b。允许所尝试的连接将导致生成的编程代码的循环从属性。特别是,尝试生成编程代码以确定加法器块348a的值的步骤将导致无限循环。由此,这样的算法定义是无效的,并且与图3J中提供的反馈类似,该连接被指示为无效的并显示解释。
如图3L中图示的,发生器块349a、漏斗块349b、值提取器块349c和值累加器块349d已被放置在设计帐篷区311中。用户正尝试将值累加器块349d的离散输出连接到漏斗块349b的离散输入。然而,漏斗块349b、值提取器块349c和值累加器块349d中的每一个是通过块,从而接收的每一离散事件通过到对应离散输出输出。由此,当离散事件由发生器块349a(也连接到漏斗块349b)提供时,其将被传递通过每一连接的块。允许尝试的连接将导致生成的编程代码的无限循环。特别是,生成的编程代码将在处理发生器块所提供的离散事件时,将离散事件顺序地无限传递到每一块以处理,其中该处理包括将离散事件提供到循环中的下一块。由此,这样的算法定义是无效的,并且与图3J提供的反馈类似的,连接被指示为无效的,并且显示解释。
在某些实施例中,可以在交易界面310的单独区域中提供警告和/或错误消息。这例如可允许用户容易地浏览所有仍存在的警告和错误,而无需个别检查每一块。
图3M-3R图示了根据某些实施例的交易界面310。交易界面310提供分组特征,以允许例如降低混乱(clutter)、使能算法的部分的重新使用(包括创建可在算法之间共享的模块),并使能虚拟化特征。降低混乱和算法的部分的重新使用可导致较好的算法,因为其降低了算法设计中错误的可能性。下面讨论虚拟化特征的优点。
如图3M中图示的,已设计了简单倒卖(scalping)算法。作为纵览,倒卖算法将按照最好买入价买入,并然后按照履行价格之上的一个交易增量卖出,获得每个单位买入和卖出一个交易增量的利润。更具体地,该算法包括买入做市商块351和卖出做市商块352。买入做市商块351被提供有证券块所指定的买入证券(“ESZ0”)。买入做市商块351被提供有提供该证券的最好买入价的证券字段块所指定的买入价。买入做市商块351被提供有数目块所指定的固定买入数量10。当买入做市商块351接收其正工作的买入订单的履行确认时,生成离散事件。
卖出做市商块352将为卖出订单工作,以冲销(cover)买入做市商块351所持有的头寸。卖出做市商块352被提供有相同卖出证券(“ESZ0”)。卖出做市商块352被提供有由向履行价格(当接收到履行确认时,由值提取器块从买入做市商块351所生成的离散事件中提供)添加该证券的最小价格增量(由证券字段块提供)的加法器块所指定的卖出价格。卖出做市商块352被提供有提供已由买入做市商块351买入的累加数量的累加器块所指定的卖出数量,这是从当买入做市商块351接收到履行确认时所生成的离散事件中提取的。
由此,当运行算法时,买入做市商块351将按照最佳买入价买入数量10,并按照履行价格加上最小价格增量来卖出(可能跨越多个卖出订单)数量10。
如图3N中图示的,与该算法的冲销逻辑部分关联的块已通过绘制围绕它们的框353而选择。也可以使用其他用户接口技术来选择用户感兴趣的块,诸如与按下shift或control键组合用光标选择。
一旦已选择了块,它们可通过诸如选择菜单项的动作来分组。
如图3O中图示的,所分组的块然后在其中包括这些块的缩略图像的组块353中显示。组块353通过降低所示的块和连接的数目,来降低设计帐篷区311中的混乱。另外,组块可被保存在模块库中,使得其可装载到另一算法中并被重新使用。组块也可被称为已分组的块。组块中的块可被称为例如定义的算法的一部分、子算法、或子例程。
组块353可被创建有与由不在组块353中的块的输出提供值的组块353中的块的输入对应的输入354。例如,如图3O中图示的,组块353具有连续证券输入和离散输入。连续证券输入对应于卖出做市商块352和确定最小价格增量的证券字段块的连续证券输入。离散输入对应于累加器块和值提取器块的离散输入。
组块353可被选择,并然后使用诸如选择菜单项或双点击的动作,组块353中包括的块可被编辑。如图3P中图示的,可按照相同方式显示和操纵具有与设计帐篷区311类似的设计帐篷区的新窗口。组块353包括两个新输入块355和356,它们对应于组块353的输入。输入块355对应于组块353的连续证券输入,而输入块356对应于组块353的离散输入。每一输入块355和356具有提供值的单一输出,该值被提供到组块353的相应输入。
尽管因为组块353中没有块具有与组块353外部的块相连的输出、所以在图3P中没有示出,但是组块也可包括输出块。与上面讨论的输入块类似,输出块对应于组块的输出。组块中具有与输出块相连的输出的块将向与组块的对应输出相连的组块外部的块提供值。
当设计组块时,可放置输入块和输出块以创建用于组块的输入和输出。当放置时,可提示用户指定输入或输出的类型。作为选择,输入或输出块可缺省为诸如连续数字的预定义类型。输入或输出块的类型可例如通过选择输入或输出并使用提示键入类型的诸如菜单项或双点击的动作,在该算法的设计期间由用户改变。类似地,用户还可以指定输入或输出块的名称(以及由此组块的对应输入或输出)。
组块可包括另一组块。该组块的嵌套允许算法的各部分的较少混乱和潜在较大的可再用性。
当生成程序代码时,生成组块作为用于正设计的算法的主CustomAlgorithm0类中嵌套的Algorithm类的子类。当在其他组块中嵌套组块时,生成的编程代码类似地嵌套每一生成的子类。另外,任何非原语块可在它们的最接近的组块父母中声明和定义。这样,例如,如果组块被嵌套三个组块深度并且它在其中具有做市商块(非原语块的示例),则做市商块的子类将驻留在三级深度导出的算法类中。
返回到上面讨论的倒卖算法,如图3M中图示的,该算法具有缺陷。可以回忆一下,倒卖算法目标在于按照最好买入价买入,并然后按照履行价格之上的一个交易增量卖出,获得每个单位买入和卖出一个交易增量的利润。如果买入做市商块351接收到其下订的买入订单的整个数量10的单一履行,则算法将按照预期操作。然而,如果按照多于一个价格水平接收到多于一个履行确认,则算法将不按照期望起作用。例如,假设买入做市商块351为订单工作以按照最佳买入价114125买入数量10。然后,对于数量3接收到第一履行确认(由此,第一履行是按照履行价格114125的数量3)。响应于该履行,卖出做市商块351将为订单工作以按照114150的价格(114125(履行价格)+25(最小价格增量))卖出数量3。现在假设最佳买入价降低到114100。买入做市商块351将然后对于数量7将其工作订单重新报价为新的(并且现在较低的)最佳买入价。然后,对于数量7接收第二履行确认(由此,第二履行是按照履行价格114100对于数量7的)。所以,倒卖算法的期望行为是应按照114150(114125+25)的价格下订数量3(冲销第一履行)的第一卖出订单、并应按照114125(114100+25)的价格下订数量7(冲销第二履行)的第二卖出订单。
然而,图3M中图示的算法将不正确地为订单工作以实现期望行为。当接收到第一履行时,卖出做市商块352将下订第一冲销订单以按照114125+25的价格卖出数量3。然而,如果在履行第一冲销订单之前接收到第二履行,则从累加器块接收新报价数量(其被更新为反映现在已履行了数量10)的卖出做市商块352将按照价格114100+25(最近订单的价格(第二履行)加上最小价格增量)数量10为其冲销订单工作。结果,第一履行将不按照期望价格得到冲销(这是不意欲的和/或不期望的行为)。这里,如果完全履行该冲销订单,则冲销订单的整个数量10将按照相同价格履行,即使该算法的期望行为将用于要按照接收的每一履行所特定的价格和数量工作的冲销订单。
交易应用300的虚拟化特征解决该本质的问题。组块可被选择,并然后使用诸如选择菜单项的动作,该组块可被指定为虚拟化的。如图3Q中图示的,组块353已被虚拟化,并且这通过将组块353的边界从实线改变为虚线来指示。在某些实施例中,组块可按照其他方式被指定为虚拟化的,诸如向块的名称附加文本、改变边界颜色、背景颜色、或背景图案。
对于向虚拟化组块提供的每一离散事件创建虚拟化组块的实例。即,每次在虚拟化组块处接收到离散事件时,创建该虚拟化组块的新实例以处置离散事件。这解决了上面讨论的期望行为:由组块的逻辑基于该离散事件特定的信息而处置每一离散事件。继续以上示例,但是将组块353指定为虚拟化的,用于履行的买入做市商块351所生成的每一离散事件将导致虚拟化组块353的新实例被创建为处置那个特定离散事件。
所以,要虚拟化的每个组块必须具有离散事件输入,因为这是向促使创建新实例的虚拟化组块通知该离散事件。一旦已对虚拟化组块进行了实例化,那个特定实例就不再从其范围外部(即,从不在虚拟化组块内的块)接收离散事件。相反,来自虚拟化组块的范围外部的任何随后离散事件将导致虚拟化组块的新实例的创建。然而,离散事件仍然可以由虚拟化组块内的块生成和处理,并且在虚拟化组块内部生成的离散事件可以被提供到虚拟化组块的离散输入。图3R在概念上图示了当买入做市商块351已生成三个离散事件时,算法的逻辑将如何工作。响应于来自买入做市商块351的三个离散事件的每一个,组块353的三个实例被实例化。注意,所显示的算法将实际上仅示出图3Q中图示的单一虚拟化组块353,并且仅示出图3R中示出的三个实例以指示对组块进行虚拟化的概念。在某些实施例中,可指示组块的实例的数目。例如,实例的数目可通过示出虚拟化组块的堆栈按照图3R所示类似的方式用图形来指示,其中堆栈的尺寸代表已实例化的虚拟化组块的实例的数目。作为另一示例,实例的数目可通过作为已实例化的虚拟化组块的示例的数目的计数而代表的组块中(例如角落中)显示的数目来指示。
另外,虚拟化组块不能具有连续输出(然而,其可具有离散输出),因为这样的输出的值没有被进行语法定义。这是因为可存在虚拟化组块的多于一个实例(或者,如果还没有接收到用于其的离散事件,则潜在地没有实例)并且由此这样的连续输出可同时具有不同值(或根本没有值)。另外,虚拟化组块可以不包括指定为变量的块,因为在虚拟化组块被实例化之前,该变量将不“存在”。
虚拟化组块可包括另一组块或另一虚拟化组块,正如上面讨论地那样组块可以被嵌套。
当生成程序代码时,生成虚拟化组块作为Algorithm类的子类,与上面讨论的非虚拟化组块类似。然而,不是当维持主CustomAlgorithm0类(用于虚拟化组块的子类的初始空的列表)时以及当要向与虚拟化组块对应的子类提供离散事件时进行实例化,而是创建虚拟化组块子类的新实例。
客户机装置和算法服务器之间的网络连接可被不预期地切断。例如客户机装置连接到算法服务器所使用的因特网服务供应商(“ISP”)可具有路由器故障或物理上切断的通信链路,这可破坏客户机装置和算法服务器之间的通信。作为另一示例,网络中的中间节点可发生故障,而且破坏客户机装置和算法服务器之间的通信。作为另一示例,客户机装置可崩溃(crash),破坏到算法服务器的连接。在当前系统中,当破坏这样的连接时,算法中止或继续运行,而没有认识到连接已被破坏。在前一情况下,交易者可被留在不能容易地(或潜在地根本不能,因为他的连接出现故障)走出的敞口头寸(openposition)。在后一情况下,交易者可能不能修改用于关闭或停止算法的参数,该算法不再正确操作或者该算法可能不适于市场中的条件变化。通常,交易者运行可能非常有风险的算法,并且他们可能期望能够一经通知(at moment'snotice)就关断算法或者改变参数。
在某些实施例中,一个或更多块可被指定为知道客户机装置和算法服务器之间的连接状态。例如,当下订时,用户可被呈现选项,以指定即使客户机装置和运行该算法的算法服务器之间的连接断开,该块也应继续运行。该选项还可以通过选择该块并使用诸如菜单项或键盘命令的动作来指定。作为缺省,当客户机装置和算法服务器之间的连接被破坏时,算法可暂停或中止。在某些实施例中,即使客户机装置和运行该算法的算法服务器之间的连接断开,整个算法也被指定为继续运行。
例如,做市商块可具有选项,以即使客户机装置和算法服务器之间的连接被破坏,也保持市场中由做市商块生成的订单。在算法的保值或冲销订单部分中使用的做市商块可按照该方式配置,使得即使因为连接被破坏使得下那些订单的算法的那部分不再运行,该算法的另一部分所持有的任何头寸也将按照期望被保值或冲销。
在某些实施例中,可向提供代表客户机装置和算法服务器之间的连接的状态的连续布尔输出的正设计的算法添加输入块。块然后可以采取来自该连接状态输入块的值作为输入,以控制它们的行为。例如,连接状态输入块可连接到做市商块的条件输入,使得当连接状态为真时(代表连接),做市商块仅使订单工作。
一旦已在交易界面310中定义了算法,可保存该算法。算法可被给予名称(例如,在正建造算法的同时和/或当保存算法时)。保存的算法可然后在将来时间利用交易界面310或另一交易界面来调用或引用。例如,可利用交易界面310装载所保存的算法,使得其可在另一订单上被编辑或重新使用。作为另一示例,保存的算法可以如下面讨论的从另一交易界面被引用为订单类型。
上面讨论的交易界面310的组件、元素和/或功能性可例如按照硬件、固件、和/或作为软件指令集的各种形式,单独实现或组合实现。某些实施例可被提供为驻留在诸如存储器、硬盘、CD-ROM、DVD、EPROM、和/或文件服务器的计算机可读介质上的指令集,用于在通用目的计算机或其他处理装置上执行。
IV.发起和管理算法
某些实施例准备启动要通过选择为订单类型的算法来管理的订单的下订。某些实施例准备启动要通过从值轴选择的用户定义的交易算法来管理的订单的下订。某些实施例准备在算法正管理订单时改变算法的变量。某些实施例准备手动修改算法正管理的订单。某些实施例准备向未管理的订单分配算法来管理订单。某些实施例准备显示正通过值轴上的不同的用户定义的交易算法所管理的工作订单。
图4A-4F图示了根据某些实施例的交易界面。如图4A中图示的,交易界面410是允许将保存的算法选择为订单类型的订单票据。保存的算法可能已经使用例如与上面讨论的交易界面200和310类似的交易界面保存。
保存的算法可以使用选择界面415来选择,选择界面415如图示的提供包括标准订单类型(诸如限价和市场)以及保存的算法的下拉(drop-down)列表。在某些实施例中,选择界面415包括用于从可用的保存的算法中进行选择的其他元素。例如,选择界面415可打开履行导航器,以浏览特定算法。作为另一示例,选择界面415可包括已基于算法类型按照等级分类的保存算法的树形图。
交易界面420是简化订单票据,其还允许利用选择界面415选择保存算法作为订单类型。
当从交易界面410或420启动订单并且已将保存的算法选择为订单类型时,根据选择的算法管理订单。如果选择的算法已被配置为采取来自交易界面的参数(诸如订单票据价格或数量),则在算法运行时,交易界面410或420中指定的值将被提供给算法。
如图4B-4C图示的,在已使用选择界面415选择了算法订单类型之后,示出了交易界面430(与上面讨论的交易界面410类似的订单票据风格交易界面)和交易界面440(市场深度阶梯或轴风格交易界面)。这里,选择的算法与图2I中图示的类似。交易界面440可以包括值轴,其包括对应于或基于可交易对象的价格水平的值。这些值可以例如是可交易对象的价格(例如价格轴)。与可交易对象相关的信息(诸如在与值轴中的值对应的价格水平处可用的数量)也可以沿着值轴显示。算法的变量分别在变量区域435和445中示出,并可在启动订单之前改变。变量区域435被合并在交易界面430中作为相同窗口的一部分。变量区域445被合并在交易界面440中作为单独窗口。变量区域435和445中的变量缺省为在变量区域206的缺省值列272中指定的值,如图2I图示的。当改变时,启动的订单将根据利用改变的变量值选择的算法工作。
如图4D中图示的,交易界面450是示出市场中工作的订单的订单簿。这里,选择正根据算法(也与图2I中图示的类似)工作的订单451。算法的变量在变量区域455(与变量区域435和445类似)中示出并可以改变。当改变(并应用改变)时,算法将根据改变的变量值继续运行。在不暂停或停止算法的情况下,变量的改变成为有效的。
在某些实施例中,交易界面450允许用户手动修改算法正管理的订单。例如,用户可改变订单的价格或数量或者删除订单。作为响应,管理订单的算法可改变订单价格,其可以改变订单数量,其可以不干任何事,或者其可以不执行新动作,而是仅具有基于手动修改的新信息或阈值,以例如根据算法定义来使用。
在某些实施例中,交易界面450可包括算法没有管理的订单(例如,手动键入订单)。可选择未管理的订单,并且可向其应用算法。例如,用户可选择未管理的订单,并使用诸如菜单项或键盘命令的动作,而被呈现可用算法的列表,以施加到所选择的未管理订单。可用算法的列表可包括例如包括订单块的保存的算法。当施加到选择的未管理订单时,所选择的算法可然后根据该算法管理订单。作为另一示例,用户可选择未管理的撤销前有效(“GTC”)订单,并向其施加所选择的算法,使得该算法可管理跨越将来交易会话的订单。
如图4E中图示的,交易界面460是市场深度阶梯或轴风格交易界面,与上面讨论的交易界面440类似。几个订单已被启动,并被图示为按照不同价格水平工作。订单461被启动为利用第一算法管理,而订单462被启动为利用第二算法管理。由此,交易界面460准备显示根据相同算法管理的多个工作订单的单一界面。另外,交易界面460准备显示根据多个算法管理的工作订单的单一界面。
在某些实施例中,根据特定算法管理的工作订单被公共标识。例如,与第一算法关联的每一工作订单可按照图形标识,例如按照特定背景颜色、前景颜色、背景图案、边界颜色、边界风格、形状、符号、数字、文本、和/或字体。与第二算法关联的工作订单可然后例如使用不同颜色、图案、边界、形状、符号、数字、文本、和/或字体来标识。
在某些实施例中,根据特定算法管理的工作订单被个别标识。例如,与相同算法的不同实例关联的每一工作订单可利用诸如颜色、图案、边界、形状、符号、数字、文本、和/或字体的标识符来区分于与该算法的不同实例关联的其他工作订单。根据算法的第一实例管理的订单可在它们的工作订单指示符的角落具有数字“1”,而根据算法的第二实例管理的订单可在它们的工作订单指示符的角落具有数字“2”。通过某一算法的不同实例管理的工作订单的指示可以与上面讨论的通过不同算法管理的工作订单的指示组合施加。
如图4F中图示的,交易界面470是算法管理器。交易界面470还可以被称为座舱或仪表板。交易界面470包括可用算法的列表471。可从列表471中选择特定算法。当选择算法时,在视图区域472中显示所选择的算法的视图,并还显示运行所选择的算法的实例的列表473。如图示的,视图区域472可示出使用与上面讨论的交易界面310类似的交易界面进行的算法定义。然而,视图区域472还可以显示使用与上面讨论的交易界面200类似的交易界面定义的算法的视图。运行所选择的算法的实例的列表473可包括关于运行实例的信息,诸如其被启动的时间、其头寸、状态、利润和亏损、工作订单的数目、履行订单的数目、下订最近订单所用于的和/或接收履行所用于的证券、和/或订单账户信息。
另外,变量区域474显示所选择的算法的变量以及用于所选择的算法的选择实例的那些变量的值。变量区域474与上面讨论的变量区域435、445和455类似。可改变用于所选择的算法的选择实例的变量。当改变(并且施加改变)时,算法将根据改变的变量值继续运行。在暂停或停止算法的情况下,变量的改变成为有效的。
在某些实施例中,当算法所管理的订单在交易会话关闭时未履行时,诸如交易界面200、290、310、410、420、430、440、450、460、和/或470的交易界面适于允许用户指定行为。例如,交易界面可允许用户指定算法所管理的未履行订单应被取消,并且算法停止。作为另一示例,交易界面可允许用户指定算法所管理的未履行订单应该在下一交易会话开始时继续被管理。作为另一示例,交易界面可允许用户指定算法所管理的未履行订单应该在下一交易会话开始时暂停,并当用户未暂停时,重新开始由该算法管理。
上面讨论的交易界面410、420、430、440、450、460和470的组件、元素和/或功能性可例如按照硬件、固件、和/或作为软件指令集的各种形式,单独实现或组合实现。某些实施例可被提供为驻留在诸如存储器、硬盘、CD-ROM、DVD、EPROM、和/或文件服务器的计算机可读介质上的指令集,用于在通用目的计算机或其他处理装置上执行。
V.排列工具
图5图示了根据某些实施例的排列工具500。可使用排列工具500用于例如排列保值选项。在期货交易中,最通常策略之一是“价差交易”,这是这样的方法,借助于该方法,在一个证券中具有市场定向风险影响的交易者乐于通过在一个或多个类似证券中下订交易,以偏移、最小化、或减少交易者的风险的变化,来防范他的风险。启动两个头寸的两个价格创建组合或价差价格。交易者可以然后最终尝试进行解开敞口头寸的交易,最好是按照从他启动头寸的价格获利的价差价格差。
对于一些自动交易程序,保值技术可被实现为自动防范对于交易者的风险。保值技术可自动操作以在一个特定证券中保值,或者可被编程为根据预先编程的方法在多个证券选择中进行选择。然而,当前系统不准备不依赖于预先确定的证券选择的保值交易。
启动非自动操作价差交易头寸(特别是对于做市商来说)的困难在于,由于技术的速度增益,所以更有效地保值人们的交易的机会已变得非常困难。由于它们在市场中的流动资金提供角色的本质,所以做市商被频繁通知它们正为对方提供流动资金(即,正接收交易执行)的无公告或者准备工作。对于做市商或可突然获取敞口交易头寸的任何交易者来说,当启动价差的第一腿的时间和当交易者可保值该交易的时间之间的时间间隙已成为对于有效保值和风险管理的严重损害。不能迅速保值交易的交易者可亏损几百、几千、或甚至几百万美元。交易者不仅必须花费时间来判断哪个证券是他们的要保值的最佳证券,而且他们必须执行保值交易。
某些实施例提供排列工具500,其在手动保值交易时提供两个有区别的速度优势,以最佳创建(但不限于创建)价差头寸。第一方面使得用户预先选择通过参数的预先编程的方法恒定分析的一组证券,以按照优选顺序来确定(哪些)哪个证券是在任何特定时刻买入或卖出的最有利的证券。在一个实施例中,该技术可被实现为在正考虑程序的证券中分析现有价差市场中的各种买入/卖出级别。在另一实施例中,其可以着眼于交易者的交易头寸总量(inventory),来判断哪个保值交易将帮助交易者最好降低它的总体风险。事实上,该系统的执行处理之后的方法是无限的。该信息可以由交易者使用,以去除判断利用哪个证券防范他们的风险所需的时间。
除了自动分析哪个证券提供最佳保值的能力之外,排列工具500的另一方面在于其可用于实际自动键入买入或卖出订单或订单组,以根据前述预先编程的保值方法来执行市场中可用的“最好”保值或保值组。仅需要的交易者的潜在动作在于预先选择考虑的证券,键入期望数量(其可以是预置的),并点击交易界面上的买入或卖出执行标题。该自动操作的保值留给交易者应按照与交易者的期望排列方法结盟的有利价差价格累加的各种保值交易总量。排列工具500对于运行执行以下交易的风险的任何交易者是有用的,该交易可能变得难以在大量市场环境下保值。
排列工具500包括选择区域510,具有用户可标识或选择用于分析的可交易对象的列表。在该示例中,列出的可交易对象是各个月的欧洲美元期货。“最好”列(最好买入520和最好卖出530)按照顺序显示所选择的证券的排列,其中该示例中的买入520基于当前卖出价排列,而卖出基于当前买入价排列。
排列工具500的订单票据部分540允许用户根据排列系统来键入买入或卖出的数量。买入和卖出按钮允许期望证券的自动执行。在该系统中,用户具有各种选择550,包括仅买入/卖出排列第一的证券的选择、履行所有选择的证券的选择、或者如果必要时循环的选择。例如,在第一位置处的证券可用的数量不满足交易者的期望数量的情况下,排列工具500可按照初始价格使得该证券中的限价订单工作。更激进的方案在于执行第一位置处的证券可用的任何数量,并且如果必要则继续前进以自动保值接下来的合约。自动执行将仅工作到列表的底部(在该示例中排列第5),并且如果还没有满足与其关联的数量,则通过在所有列出的月份中交易到更高而使得限价订单工作。如果必要的话(诸如当存在纯市场订单时),排列工具500可循环,并且当在列表的顶部重新开始时,应用将继续到下一可用价格。
上面讨论的排列工具500的组件、元件、和/或功能性可例如按照硬件、固件、和/或作为软件指令集的各种形式,单独实现或按组合实现。某些实施例可被提供为驻留在诸如存储器、硬盘、CD-ROM、DVD、EPROM、和/或文件服务器的计算机可读介质上的指令集,用于在通用目的计算机或其他处理装置上执行。
VI.示例计算装置
图6图示了根据某些实施例的计算装置600的框图。客户机装置110可包括例如一个或多个计算装置600。客户机装置301可包括例如一个或多个计算装置600。算法服务器302可包括诸如一个或多个计算装置600。网关120可包括诸如一个或多个计算装置600。交易所130可包括诸如一个或多个计算装置600。交易所303可包括诸如一个或多个计算装置600。
计算装置600包括总线610、处理器620、存储器630、网络接口640、显示装置650、输入装置660、和输出装置670。计算装置600可包括附加、不同、或更少组件。例如,可提供多个总线、多个处理器、多个存储装置、多个网络接口、多个显示装置、多个输入装置、多个输出装置、或其任何组合。作为另一示例,计算装置600可以不包括与显示装置650分离的输出装置670。作为另一示例,计算装置600可以不包括显示装置650。作为另一示例,计算装置600可以不包括输入装置660。取代的是,例如,计算装置600可以由外部或远程输入装置经由网络接口640控制。
总线610可包括通信总线、信道、网络、电路、开关、织物(fabric)、或用于在计算装置600的组件之间传递数据的其他机制。总线610可以可通信地与计算装置600的任何组件耦接并在其间传递数据。例如,在交易应用的安装处理期间,可从输入装置660和/或网络接口640向存储器630传递该处理器620所要运行的一个或多个计算机可读指令。当计算装置600正在运行或准备运行存储器630中存储的交易应用时,处理器620可经由总线610从存储器630恢复指令。
处理器620可包括一般处理器、数字信号处理器、特定用途集成电路、现场可编程门阵列、模拟电路、数字电路、编程的处理器、其组合、或其他现在已知或稍后开发的处理装置。处理器620可以是单一装置或装置的组合,诸如与网络或分布处理关联。可使用任何处理策略,诸如多处理、多任务、并行处理、和/或远程处理。处理可以是本地或远程的,并可从一个处理器向另一处理器移动。
处理器620可以可操作为执行在一个或多个有形介质中编码的逻辑,诸如存储器630和/或经由网络装置640。如这里使用的,在一个或多个有形介质中编码的逻辑包括处理器620或不同处理器可执行的指令。该逻辑可以作为诸如软件、硬件、集成电路、固件、和/或微代码的一部分存储。该逻辑可以经由(例如与因特网相连的)通信网络从外部通信装置接收。处理器620可执行逻辑,以进行在图中图示的或这里描述的功能、动作、或任务。
存储器630可以是有形介质,诸如计算机可读存储介质。计算机可读存储介质可包括各类易失性和非易失性存储介质,包括但不限于随机存取存储器、只读存储器、可编程只读存储器、电可编程只读存储器、电可擦除只读存储器、闪存、磁带或磁盘、光学介质、其任何组合、或任何其他现在已知或稍后开发的有形数据存储装置。存储器630可以包括单一装置或多个装置。例如,存储器630可包括随机存取存储器和硬盘驱动器存储器。存储器630可以与处理器620相邻、是处理器620的一部分、用处理器620编程、与处理器620联网、和/或远离处理器620,使得存储器630中存储的数据可由例如处理器620恢复和处理。
存储器630可存储处理器620可执行的指令。可执行这些指令,以进行这里描述的或图中所示的动作或功能的一个或多个。
网络接口640可以是单路或双路通信耦接。因此,网络接口640可以可通信地连接一个、两个、或多个通信网络或装置。例如,总线610可经由网络接口640与和上面讨论的网关120类似的网关耦接,使得计算装置600的组件之一、一些、或全部是网关可存取的、或者可与网关通信。作为另一示例,网络接口640可将总线610与其他通信网络耦接。网络接口640可以是例如综合业务数字网(ISDN)卡或调制解调器,以提供数据通信连接。作为另一示例,网络接口640可以是局域网(LAN)卡,以向例如连接到因特网的可兼容LAN提供数据通信连接。还可以实现无线链路。网络接口640可发送和接收携带代表诸如各类信息的模拟或数字数据流的电学、电磁、或光学信号。
显示装置650可例如包括可视输出装置、阴极射线管(CRT)显示器、电子显示器、电子纸、平板显示器、发光二极管(LED)显示器、电致发光显示器(ELD)、等离子显示板(PDP)、液晶显示器(LCD)、薄膜晶体管显示器(TFT)、有机发光二极管显示器(OLED)、表面导电电子发射器显示器(SED)、激光电视、碳纳米管、纳米晶体显示器、头戴式显示器、投影仪、三维显示器、透明显示装置、和/或其他现在已知或稍后开发的显示器。
显示装置650适于显示交易屏幕。交易屏幕可以与例如上面讨论的交易屏幕类似。交易屏幕可以是交互的。交互式交易屏幕可允许例如使用交易屏幕进行一个或多个交易动作。例如,交互交易屏幕可允许使用一个或多个订单条目动作而设置和/或发送一个或多个订单条目参数。可使用显示装置650和/或输入装置660与例如交易屏幕交互。
输入装置660可包括例如键盘、鼠标、麦克风、触摸屏、轨迹球、小键盘、操纵杆、和/或用于提供输入的其他装置。可使用输入装置600,例如向处理器620提供命令选择。例如,输入装置660可以是用于控制交易屏幕上显示的光标的鼠标。鼠标可包括例如用于选择和控制的一个或多个按钮。
输出装置670可例如包括键盘、鼠标、扬声器、触摸屏、轨迹球、小键盘、触觉装置或系统、操纵杆、和/或用于提供输出的其他装置。例如,可使用输出装置670,以向用户输出一个或多个信号(诸如触觉信号或音频信号)。
尽管已参考某些实施例而描述了本发明,但是本领域技术人员将理解的是,可进行各种改变,并且可替换等效物,而不脱离本发明的范围。另外,可进行许多修改,以使得特定情况或材料适于本发明的教义,而不脱离它们的范围。所以,预期的是,本发明不限于所公开的某些实施例,而是本发明将包括落入权利要求的范围之内的所有实施例。

Claims (32)

1.一种设备,包括:
客户机装置,
其中该客户机装置适于显示设计帐篷区,其中该设计帐篷区包括由用户安排来指定交易算法的定义的多个放置块;
其中该客户机装置适于确定所述多个放置块中的第一放置块的第一实时反馈值,其中该第一实时反馈值是基于市场数据和该定义而确定的;和
其中该客户机装置适于显示所确定的第一实时反馈值。
2.根据权利要求1的设备,其中所述多个放置块是由用户从多个可用块中选择的。
3.根据权利要求1的设备,其中所述多个放置块的安排包括所述多个放置块中的一个或多个块之间的一个或多个连接。
4.根据权利要求1的设备,其中该第一实时反馈值是对于该第一放置块的输入确定的。
5.根据权利要求1的设备,其中该第一实时反馈值是对于该第一放置块的输出确定的。
6.根据权利要求1的设备,其中该市场数据是从电子交易所接收的。
7.根据权利要求1的设备,其中该市场数据是从仿真环境接收的。
8.根据权利要求1的设备,其中第一实时反馈值进一步基于与该第一放置块对应的功能性。
9.根据权利要求1的设备,其中该第一实时反馈值是相对于该第一放置块而显示的。
10.根据权利要求1的设备,其中该客户机装置适于检测离散事件的生成,并且其中该客户机装置适于显示代表该离散事件的发生的指示符。
11.根据权利要求10的设备,其中该指示符包括使得其上提供有所生成的离散事件的连接闪光。
12.根据权利要求10的设备,其中该指示符包括其上提供有所生成的离散事件的输出的动画。
13.根据权利要求10的设备,其中该指示符包括其上提供有所生成的离散事件的连接上的动画。
14.根据权利要求10的设备,其中该客户机装置适于确定用于所述多个放置块中的第二放置块的第二实时反馈值,其中该第二实时反馈值是基于市场数据和定义确定的,其中该第二放置块不同于该第一放置块,并且其中该客户机装置适于显示所确定的第二实时反馈值。
15.一种设备,包括:
客户机装置,
其中该客户机装置适于显示算法区域;
其中该客户机装置适于确定该算法区域中的第一表达式的实时评估值,其中该第一表达式由一个或多个放置建造块按钮指定,其中每一放置建造块按钮代表第一表达式的元素;
其中该客户机装置适于确定用于该第一表达式的第一元素的第一实时评估值;和
其中该客户机装置适于显示与该第一元素相关的所确定的第一实时评估值。
16.根据权利要求15的设备,其中该算法区域包括价格区域、数量区域、和条件区域。
17.根据权利要求15的设备,其中该第一表达式包括IF-THEN-ELSE元素。
18.根据权利要求15的设备,其中该客户机装置适于确定该算法区域中的第二表达式的第二实时评估值,其中该第二表达式是该第一表达式的第一元素的元素。
19.一种方法,包括:
计算装置显示值轴;
该计算装置接收用于选择用户定义的交易算法的命令;
该计算装置接收用于启动订单的下订的命令;和
根据所选择的用户定义的交易算法来管理订单。
20.根据权利要求19的方法,其中所述用于启动订单的下订的命令包括价格和数量中的至少一个,其中所述根据所选择的用户定义的交易算法来管理订单的步骤基于所述价格和所述数量中的至少一个。
21.根据权利要求19的方法,进一步包括:
该计算装置显示与该值轴相关的第一指示符,其中该第一指示符代表根据第一用户定义的交易算法正管理的工作订单;和
该计算装置显示与该值轴相关的第二指示符,其中该第二指示符代表根据第二用户定义的交易算法正管理的工作订单,其中该第一用户定义的交易算法和该第二用户定义的交易算法是不同的。
22.一种方法,包括:
计算装置显示交易界面,其中该交易界面包括订单条目区域和排列区域;
该计算装置接收用于用户所选择的多个可交易对象的市场数据;
该计算装置基于所接收的市场数据来确定所述多个可交易对象的排列;
该计算装置在该交易界面的排列区域中显示所确定的所述多个可交易对象的排列,其中所述多个可交易对象的排列的显示步骤是基于所接收的市场数据动态更新的;
该计算装置通过该交易界面的订单条目区域从用户接收买入或卖出的数量;和
该计算装置基于所述多个可交易对象的排列以及买入或卖出的数量,来启动用于所述多个可交易对象的至少一个的至少一个订单的下订。
23.根据权利要求22的方法,其中该交易界面包括选择区域,适于允许用户选择所述多个可交易对象。
24.根据权利要求22的方法,其中该交易界面包括执行策略选择区域,其中该执行策略选择区域适于允许用户从多个可用执行策略中选择执行策略。
25.根据权利要求24的方法,进一步包括:计算装置接收通过该交易界面的执行策略选择区域的执行策略的选择。
26.根据权利要求25的方法,其中所述启动至少一个订单的下订的步骤基于该执行策略的选择。
27.一种设备,包括:
客户机装置,
其中该客户机装置适于显示设计帐篷区,其中该设计帐篷区包括由用户安排来指定交易算法的定义的多个放置块,其中第一组多个放置块包括分组块,其中所述分组块包括第二组多个放置块。
28.根据权利要求27的设备,其中该分组块是虚拟化组块,其中当该虚拟化组块接收到该虚拟化组块的输入上的离散事件时,对该虚拟化组块所代表的算法功能性的新实例进行实例化。
29.根据权利要求28的设备,其中该虚拟化组块的输入连接到所述多个放置块中的、提供履行确认离散事件的第一块的输出,其中每一履行确认离散事件对应于正履行的订单的数量的至少一部分。
30.根据权利要求29的设备,其中该虚拟化组块对于与所接收的离散事件对应的所履行的订单的数量的至少一部分提供保值功能性。
31.根据权利要求27的设备,其中所述第一组多个放置块和所述第二组多个放置块中的至少一个包括第一块,其中当算法服务器处理交易算法时,与该第一块对应的功能性基于在该客户机装置和该算法服务器之间的连接状态。
32.根据权利要求31的设备,其中通过从连接状态输入块到该第一块的输入的连接,向该第一块提供该客户机装置和该算法服务器之间的连接状态。
CN2010800581315A 2009-10-20 2010-10-19 用户定义的算法的电子交易 Pending CN102947853A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010084240.XA CN111539815B (zh) 2009-10-20 2010-10-19 用户定义的算法的电子交易

Applications Claiming Priority (19)

Application Number Priority Date Filing Date Title
US25332409P 2009-10-20 2009-10-20
US25331509P 2009-10-20 2009-10-20
US61/253,315 2009-10-20
US61/253,324 2009-10-20
US26330009P 2009-11-20 2009-11-20
US61/263,300 2009-11-20
US31200310P 2010-03-09 2010-03-09
US61/312,003 2010-03-09
US31868510P 2010-03-29 2010-03-29
US61/318,685 2010-03-29
US32006110P 2010-04-01 2010-04-01
US61/320,061 2010-04-01
US39331310P 2010-10-14 2010-10-14
US61/393,313 2010-10-14
US12/905,709 2010-10-15
US12/905,726 2010-10-15
US12/905,726 US9652803B2 (en) 2009-10-20 2010-10-15 Virtualizing for user-defined algorithm electronic trading
US12/905,709 US10096066B2 (en) 2009-10-20 2010-10-15 User-defined algorithm electronic trading
PCT/US2010/053172 WO2011049936A2 (en) 2009-10-20 2010-10-19 User-defined algorithm electronic trading

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202010084240.XA Division CN111539815B (zh) 2009-10-20 2010-10-19 用户定义的算法的电子交易

Publications (1)

Publication Number Publication Date
CN102947853A true CN102947853A (zh) 2013-02-27

Family

ID=43880042

Family Applications (2)

Application Number Title Priority Date Filing Date
CN2010800581315A Pending CN102947853A (zh) 2009-10-20 2010-10-19 用户定义的算法的电子交易
CN202010084240.XA Active CN111539815B (zh) 2009-10-20 2010-10-19 用户定义的算法的电子交易

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202010084240.XA Active CN111539815B (zh) 2009-10-20 2010-10-19 用户定义的算法的电子交易

Country Status (11)

Country Link
US (13) US9652803B2 (zh)
EP (1) EP2545514A4 (zh)
JP (5) JP5485405B2 (zh)
KR (4) KR102017877B1 (zh)
CN (2) CN102947853A (zh)
AU (1) AU2010308296B2 (zh)
BR (3) BR112012009233A2 (zh)
CA (3) CA3234139A1 (zh)
MX (3) MX344724B (zh)
SG (2) SG10201405879QA (zh)
WO (1) WO2011049936A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105787656A (zh) * 2016-02-25 2016-07-20 王聪东 一种阶梯刻度相交法替代循环处理供求关系系统
US9881338B2 (en) 2013-06-24 2018-01-30 Aequitas Innovations Inc. System and method for automated trading of financial interests

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11100582B2 (en) 2003-09-22 2021-08-24 Trading Technologies International, Inc. System and method for dynamically determining quantity for risk management
US8620629B1 (en) * 2004-09-20 2013-12-31 The Mathworks, Inc. Identification and simulation of multiple subgraphs in multi-domain graphical modeling environment
US9652803B2 (en) 2009-10-20 2017-05-16 Trading Technologies International, Inc. Virtualizing for user-defined algorithm electronic trading
US8386368B2 (en) * 2009-12-14 2013-02-26 Trading Technologies International, Inc. Cover-OCO for legged order
US8682773B1 (en) * 2010-05-03 2014-03-25 KnowVera, LLC Methods and system for visually designing trading strategies and execution thereof
WO2012073075A2 (en) * 2010-12-02 2012-06-07 Integrated Transaction Systems Ltd Method for monitoring and controlling of messages in a trading system
US8566220B2 (en) 2011-01-26 2013-10-22 Trading Technologies International, Inc. Block placing tool for building a user-defined algorithm for electronic trading
US9792652B2 (en) * 2012-01-04 2017-10-17 Broadway Technology Llc User interface for computer-implemented trading system
US10755351B2 (en) 2012-03-29 2020-08-25 Trading Technologies International, Inc. Controlling operation of a trading algorithm based on operating condition rules
US20150332398A1 (en) * 2012-09-04 2015-11-19 Slav Brkic Risk management system and method for monitoring and controlling of messages in a trading system
US10417707B2 (en) 2012-09-13 2019-09-17 Chicago Mercantile Exchange Inc. Futures exchange support of spot trading
US10007949B2 (en) * 2012-10-19 2018-06-26 Trading Technologies International, Inc. Visual depiction of warnings and errors
US10068290B2 (en) * 2012-10-30 2018-09-04 Trading Technologies International, Inc. System and method for determining a stable quoting quantity for use in a trading strategy
US20140180892A1 (en) * 2012-12-20 2014-06-26 Trading Technologies International, Inc. Mitigating Communication Risks in an Electronic Trading System
US20140279360A1 (en) * 2013-03-15 2014-09-18 FastMatch, Inc. Factor based matching
US20140316961A1 (en) * 2013-04-23 2014-10-23 Chicago Mercantile Exchange, Inc. Dynamic Tick Size Order Aggregator
US20140330688A1 (en) * 2013-05-01 2014-11-06 Bonaire Software Solutions, Llc System and method for creating and managing a charging condition matrix
US10628884B1 (en) * 2014-04-16 2020-04-21 Liquidnet Holdings, Inc. Database-driven processing of algorithmic trading plans utilizing specialized user interface methods, computer systems and computer programs
US11195230B2 (en) * 2014-07-25 2021-12-07 Clearingbid, Inc. Systems including a hub platform, communication network and memory configured for processing data involving time-stamped/time-sensitive aspects and/or other features
KR20170047292A (ko) 2014-08-22 2017-05-04 아이이엑스 그룹, 인크. 전자 거래 시스템에서의 동적 페그 주문
CN106296241B (zh) * 2015-05-21 2019-12-03 中国联合网络通信集团有限公司 划分网格的方法及装置
KR101711112B1 (ko) * 2015-07-30 2017-03-07 주식회사 셈웨어 알고리즘 거래 시스템
US10416842B1 (en) * 2015-09-22 2019-09-17 The Mathworks, Inc. Clarity in model-based design
EP3398155A1 (en) * 2015-12-30 2018-11-07 Chicago Mercantile Exchange, Inc. Execution of co-dependent transactions in a transaction processing system
US10809978B2 (en) * 2017-06-02 2020-10-20 Texas Instruments Incorporated Merge sort accelerator
US11941225B1 (en) * 2018-10-04 2024-03-26 United Services Automobile Association (Usaa) Systems and methods for self-directed investing
WO2020110933A1 (ja) 2018-11-28 2020-06-04 株式会社トラスト・テクノロジー プログラミング装置、およびプログラム
JP7184006B2 (ja) 2019-10-01 2022-12-06 三菱電機株式会社 半導体チップのピックアップ治具、半導体チップのピックアップ装置およびピックアップ治具の調節方法
CN111191413B (zh) * 2019-12-30 2021-11-12 北京航空航天大学 一种基于图排序模型的事件核心内容自动标记方法、装置及系统
CN111242735B (zh) * 2020-01-10 2024-03-15 深圳市家之思软装设计有限公司 数值模板生成方法及数值模板生成装置
US20210350426A1 (en) * 2020-05-07 2021-11-11 Nowcasting.ai, Inc. Architecture for data processing and user experience to provide decision support
US20220108401A1 (en) * 2020-07-23 2022-04-07 Fmr Llc Machine Learning Portfolio Simulating and Optimizing Apparatuses, Methods and Systems
US11354741B1 (en) * 2021-02-15 2022-06-07 Chicago Mercantile Exchange Inc. User interface enabling unconstrained data inputs to a constrained system
US20230267538A1 (en) * 2022-02-22 2023-08-24 Jpmorgan Chase Bank, N.A. Method and system for proxy event visualization

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1369076A (zh) * 1999-08-03 2002-09-11 电子速度公司 电子交易系统中关联定单的系统和方法
CN1392978A (zh) * 2000-08-24 2003-01-22 泽姆普莱克斯有限公司 以图形表示定义公式的方法
US20060129475A1 (en) * 2004-12-09 2006-06-15 Rosenthal Collins Group, L.L.C. Method and system for providing configurable features for graphical user interfaces for electronic trading
US20080021809A1 (en) * 2006-04-28 2008-01-24 Henri Waelbroeck Drag-and-drop graphical control interface for algorithmic trading engine

Family Cites Families (179)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5677156A (en) * 1979-11-28 1981-06-25 Ricoh Co Ltd Ink jet recorder
US5270922A (en) 1984-06-29 1993-12-14 Merrill Lynch & Company, Inc. System for distributing, processing and displaying financial information
US4674044A (en) 1985-01-30 1987-06-16 Merrill Lynch, Pierce, Fenner & Smith, Inc. Automated securities trading system
US4914568A (en) 1986-10-24 1990-04-03 National Instruments, Inc. Graphical system for modelling a process and associated method
US5168446A (en) 1989-05-23 1992-12-01 Telerate Systems Incorporated System for conducting and processing spot commodity transactions
US5136501A (en) 1989-05-26 1992-08-04 Reuters Limited Anonymous matching system
US5101353A (en) 1989-05-31 1992-03-31 Lattice Investments, Inc. Automated system for providing liquidity to securities markets
US5297031A (en) 1990-03-06 1994-03-22 Chicago Board Of Trade Method and apparatus for order management by market brokers
US5245535A (en) 1991-04-05 1993-09-14 Citibank, N.A. System for demonstrating financial concepts and displaying financial data
US5692233A (en) 1992-05-28 1997-11-25 Financial Engineering Associates, Inc. Integrated system and method for analyzing derivative securities
US6167386A (en) 1998-06-05 2000-12-26 Health Hero Network, Inc. Method for conducting an on-line bidding session with bid pooling
US6553346B1 (en) 1996-09-04 2003-04-22 Priceline.Com Incorporated Conditional purchase offer (CPO) management system for packages
CA2119921C (en) 1994-03-23 2009-09-29 Sydney H. Belzberg Computerized stock exchange trading system
US5809483A (en) 1994-05-13 1998-09-15 Broka; S. William Online transaction processing system for bond trading
EP0686926A3 (en) 1994-05-24 1996-06-12 Ron S Dembo Process and apparatus for optimal replication of portfolios
IL117424A (en) 1995-04-27 1999-09-22 Optimark Tech Inc Crossing network utilizing satisfaction density profile
US5689652A (en) 1995-04-27 1997-11-18 Optimark Technologies, Inc. Crossing network utilizing optimal mutual satisfaction density profile
EP0847561B1 (en) 1995-08-28 2003-10-22 Ebs Dealing Resources, Inc. Anonymous trading system with improved quote input capabilities
US6519574B1 (en) 1995-12-12 2003-02-11 Reuters Limited Electronic trading system featuring arbitrage and third-party credit opportunities
US5819238A (en) 1996-12-13 1998-10-06 Enhanced Investment Technologies, Inc. Apparatus and accompanying methods for automatically modifying a financial portfolio through dynamic re-weighting based on a non-constant function of current capitalization weights
US7058617B1 (en) * 1996-05-06 2006-06-06 Pavilion Technologies, Inc. Method and apparatus for training a system model with gain constraints
US5787402A (en) 1996-05-15 1998-07-28 Crossmar, Inc. Method and system for performing automated financial transactions involving foreign currencies
US6014643A (en) 1996-06-28 2000-01-11 Minton; Vernon F. Interactive securities trading system
US6061662A (en) 1997-08-15 2000-05-09 Options Technology Company, Inc. Simulation method and system for the valuation of derivative financial instruments
US6195647B1 (en) 1996-09-26 2001-02-27 The Nasdaq Stock Market, Inc. On-line transaction processing system for security trading
US5963923A (en) 1996-11-12 1999-10-05 Garber; Howard B. System and method for trading having a principal market maker
US5959621A (en) 1996-12-06 1999-09-28 Microsoft Corporation System and method for displaying data items in a ticker display pane on a client computer
AU4060502A (en) 1996-12-20 2002-06-27 Financial Services Technology Consortium Method and system for processing electronic documents
US6112189A (en) 1997-03-19 2000-08-29 Optimark Technologies, Inc. Method and apparatus for automating negotiations between parties
GB2339941B (en) 1997-04-30 2001-10-31 Roderick Malcolm Gordon Lawrie Network computer trading system
US5873071A (en) 1997-05-15 1999-02-16 Itg Inc. Computer method and system for intermediated exchange of commodities
US20020138390A1 (en) 1997-10-14 2002-09-26 R. Raymond May Systems, methods and computer program products for subject-based addressing in an electronic trading system
US6996540B1 (en) 1997-10-14 2006-02-07 Blackbird Holdings, Inc. Systems for switch auctions utilizing risk position portfolios of a plurality of traders
JP3415009B2 (ja) 1997-11-14 2003-06-09 沖電気工業株式会社 プログラム開発装置および記録媒体
EP1067471A1 (en) 1997-12-08 2001-01-10 Nippon Steel Corporation Commodity exchanging apparatus, commodity exchanging system, commodity exchanging method and storage medium
US5918217A (en) 1997-12-10 1999-06-29 Financial Engines, Inc. User interface for a financial advisory system
US6064985A (en) 1998-01-21 2000-05-16 Assured Equities, Inc. Automated portfolio management system with internet datafeed
US6229534B1 (en) 1998-02-27 2001-05-08 Sabre Inc. Methods and apparatus for accessing information from multiple remote sources
US6161098A (en) 1998-09-14 2000-12-12 Folio (Fn), Inc. Method and apparatus for enabling small investors with a portfolio of securities to manage taxable events within the portfolio
US6317728B1 (en) 1998-10-13 2001-11-13 Richard L. Kane Securities and commodities trading system
US6233566B1 (en) 1998-12-31 2001-05-15 Ultraprise Corporation System, method and computer program product for online financial products trading
US6272474B1 (en) 1999-02-08 2001-08-07 Crisostomo B. Garcia Method for monitoring and trading stocks via the internet displaying bid/ask trade bars
AU3362000A (en) 1999-02-12 2000-08-29 State Street Corporation Processing orders to a computerized trading market
TR200102496T2 (tr) 1999-02-24 2002-01-21 Ho Cha Min Stoklar, bonolar, malzemeler, opsiyonlar, endeksler, cari fiyatlar, vb. için otamatik sipariş yöntemi ve ticaret sistemi
AU3247600A (en) 1999-03-01 2000-09-21 Wit Capital Corporation A system and method for conducting securities transactions over a computer network
US6408282B1 (en) 1999-03-01 2002-06-18 Wit Capital Corp. System and method for conducting securities transactions over a computer network
US7212999B2 (en) 1999-04-09 2007-05-01 Trading Technologies International, Inc. User interface for an electronic trading system
US6278982B1 (en) 1999-04-21 2001-08-21 Lava Trading Inc. Securities trading system for consolidation of trading on multiple ECNS and electronic exchanges
AU4369100A (en) 1999-04-22 2000-11-10 Trading Technologies, Inc. Electronic securities trading system
US6418419B1 (en) 1999-07-23 2002-07-09 5Th Market, Inc. Automated system for conditional order transactions in securities or other items in commerce
AU1250001A (en) 1999-08-30 2001-03-26 Epit Inc. User interface for semi-fungible trading
US7685048B1 (en) 1999-09-01 2010-03-23 Bloomberg L.P. Electronic trading system for forwards spread trades
WO2001022266A2 (en) 1999-09-23 2001-03-29 Bornstein Jeremy J For user interface for a financial trading system
US8311926B1 (en) 1999-09-23 2012-11-13 The Nasdaq Omx Group, Inc. Montage for automated market system
US6691094B1 (en) 1999-09-28 2004-02-10 Lee N. Herschkorn Bank loan trading system and method
US20020038279A1 (en) 1999-10-08 2002-03-28 Ralph Samuelson Method and apparatus for using a transaction system involving fungible, ephemeral commodities including electrical power
CN1353381A (zh) * 1999-11-02 2002-06-12 昂耐股份有限公司 自动计算机网络交易信息管理系统和方法
EP1234369A1 (en) 1999-12-01 2002-08-28 Automated Power Exchange, Inc. Method and apparatus of managing ephemeral, fungible commodities based upon real-time forward prices
US20020055899A1 (en) 1999-12-06 2002-05-09 Williams Joseph C. Display system and method for displaying and organizing financial information
US7356499B1 (en) 2000-02-09 2008-04-08 Dean Amburn Method and apparatus for automated trading of equity securities using a real time data analysis
US6772132B1 (en) 2000-03-02 2004-08-03 Trading Technologies International, Inc. Click based trading with intuitive grid display of market depth
US7447655B2 (en) 2000-03-02 2008-11-04 Trading Technologies International, Inc. System and method for automatic scalping of a tradeable object in an electronic trading environment
US7228289B2 (en) 2000-03-02 2007-06-05 Trading Technologies International, Inc. System and method for trading and displaying market information in an electronic trading environment
US7127424B2 (en) 2000-03-02 2006-10-24 Trading Technologies International, Inc. Click based trading with intuitive grid display of market depth and price consolidation
US7389268B1 (en) 2000-03-02 2008-06-17 Trading Technologies International, Inc. Trading tools for electronic trading
US6938011B1 (en) 2000-03-02 2005-08-30 Trading Technologies International, Inc. Click based trading with market depth display
US7246092B1 (en) 2000-05-12 2007-07-17 The Nasdaq Stock Market, Inc. Montage for an electronic market
US8069106B2 (en) 2000-06-01 2011-11-29 Pipeline Financial Group, Inc. Block trading system and method providing price improvement to aggressive orders
US7437325B2 (en) 2002-03-05 2008-10-14 Pablo Llc System and method for performing automatic spread trading
US8924277B2 (en) 2000-08-17 2014-12-30 Nyse Group, Inc. Method and system for automatic execution of a securities transaction
US20020069156A1 (en) 2000-09-01 2002-06-06 Kerry Adam Electronic trading platform for agricultural commodities
US7089205B1 (en) 2000-09-29 2006-08-08 Unx, Inc. Basket trading system having an interface for user specification of goods to be traded as a unit
US7305361B2 (en) 2000-10-14 2007-12-04 Goldman Sachs & Co. Apparatus, methods and articles of manufacture for constructing and executing computerized transaction processes and programs
US7496535B2 (en) 2000-10-14 2009-02-24 Goldman Sachs & Co. Computerized interface for constructing and executing computerized transaction processes and programs
US20020046156A1 (en) 2000-10-14 2002-04-18 Goldman, Sachs & Company Apparatus, methods and articles of manufacture for executing computerized transaction processes
US20020049661A1 (en) 2000-10-14 2002-04-25 Goldman, Sachs & Company Apparatus, methods and articles of manufacture for constructing and executing computerized transaction processes and programs
US20020046146A1 (en) 2000-10-14 2002-04-18 Otero Hernan G. Apparatus, methods and articles of manufacture for constructing and executing computerized transaction processes and programs
US20030088495A1 (en) 2000-12-07 2003-05-08 Gilbert Andrew C. Systems and methods for linking bids and offers in a trading interface
JP2002229783A (ja) 2001-01-31 2002-08-16 Toshiba Corp ソフトウェア構築支援システム、その方法およびソフトウェア構築支援プログラム
US6693651B2 (en) 2001-02-07 2004-02-17 International Business Machines Corporation Customer self service iconic interface for resource search results display and selection
US20020120551A1 (en) 2001-02-27 2002-08-29 Clarkson Jones Visual-kinesthetic interactive financial trading system
US7146336B2 (en) 2001-03-08 2006-12-05 Oanda Corporation Currency trading system, methods, and software
US20020128950A1 (en) 2001-03-12 2002-09-12 Michael Wu Artificial intelligence based trading system
US8145557B2 (en) 2001-03-30 2012-03-27 Bgc Partners, Inc. Bid/offer spread trading
US6983260B2 (en) 2001-04-06 2006-01-03 Omx Technology Ab Automated exchange system for trading orders having a hidden volume
US7243083B2 (en) 2001-06-14 2007-07-10 Trading Technologies International, Inc. Electronic spread trading tool
US7418416B2 (en) 2001-06-20 2008-08-26 Morgan Stanley Gamma trading tool
CA2403300A1 (en) * 2002-09-12 2004-03-12 Pranil Ram A method of buying or selling items and a user interface to facilitate the same
US20030004853A1 (en) 2001-06-28 2003-01-02 Pranil Ram Graphical front end system for real time security trading
US8196056B2 (en) * 2001-07-24 2012-06-05 The Mathworks, Inc. Handling parameters in block diagram modeling
US7653873B2 (en) 2001-08-31 2010-01-26 Siemens Medical Solutions Health Services Corporation System and user interface supporting task schedule configuration
US20030093352A1 (en) 2001-10-15 2003-05-15 Muralidhar Sanjay P. Method, apparatus and program for evaluating financial trading strategies and portfolios
US7512555B2 (en) * 2001-11-13 2009-03-31 Gregory M Finn Investment management tool
US7672895B2 (en) * 2002-02-19 2010-03-02 Trading Technologies International, Inc. System and method for simulating an electronic trading environment
US7813995B2 (en) 2002-03-05 2010-10-12 Trading Technologies International, Inc. System and method for estimating a spread value
AU2003276626A1 (en) 2002-06-18 2003-12-31 Douglas Ray Duquette System and method for analyzing and displaying security trade transactions
US9805417B2 (en) 2002-06-19 2017-10-31 Trading Technologies International, Inc. System and method for automated trading
FI20021655A (fi) 2002-06-19 2003-12-20 Nokia Corp Menetelmä lukituksen avaamiseksi ja kannettava elektroninen laite
US20040006529A1 (en) 2002-06-20 2004-01-08 Fung Ka Shun Kevin Method and system for utilizing a special purpose vehicle for improving the liquidity of transactions
US7168045B2 (en) 2002-06-28 2007-01-23 Sap Aktiengesellschaft Modeling business objects
JP2004046657A (ja) 2002-07-15 2004-02-12 Answer:Kk 計算支援方法とその装置、及び計算支援ソフト
US7610237B1 (en) * 2002-09-30 2009-10-27 Trading Technologies International Inc. System and method for creating trade-related annotations in an electronic trading environment
FI20021736A (fi) 2002-09-30 2004-03-31 Nokia Corp Menetelmä ja järjestely lukituksen toiminnan ohjaamiseksi
US7694272B2 (en) 2002-10-21 2010-04-06 Sungard (Israel) Ltd Method, a language and a system for the definition and implementation of software solutions by using a visualizable computer executable modeling language
US7571134B1 (en) 2002-11-13 2009-08-04 Trading Technologies International, Inc. Trading interface for facilitating trading of multiple tradeable objects in an electronic trading environment
US7418422B2 (en) 2002-11-13 2008-08-26 Trading Technologies International, Inc. Method, apparatus and interface for trading multiple tradeable objects
US7523064B2 (en) 2002-11-13 2009-04-21 Trading Technologies International, Inc. System and method for facilitating trading of multiple tradeable objects in an electronic trading environment
JP2004178584A (ja) 2002-11-26 2004-06-24 Asulab Sa 機能、装置、又は所定の場所にアクセスするためのタッチスクリーンによるセキュリティコードの入力方法、及びその方法を実行するためのデバイス
AU2002953011A0 (en) * 2002-12-02 2002-12-12 Xemplex Pty Ltd Method of componentisation of a graphically defined formula
US20050080701A1 (en) 2002-12-23 2005-04-14 Ge Corporate Financial Services, Inc. Methods and systems for managing risk management information
US7844536B1 (en) * 2003-01-31 2010-11-30 Trading Technologies International, Inc. System and method for linking and managing linked orders in an electronic trading environment
US7752117B2 (en) 2003-01-31 2010-07-06 Trading Technologies International, Inc. System and method for money management in electronic trading environment
US7512557B1 (en) * 2003-06-30 2009-03-31 Trading Technologies International, Inc. System and method for timed order entry and modification
US7587357B1 (en) 2003-06-30 2009-09-08 Trading Technologies International Inc. Repositioning of market information on trading screens
US20050004852A1 (en) 2003-07-03 2005-01-06 Whitney Scott M. System, method and computer medium for trading interface
US11100582B2 (en) 2003-09-22 2021-08-24 Trading Technologies International, Inc. System and method for dynamically determining quantity for risk management
US7702568B1 (en) 2003-09-22 2010-04-20 Trading Technologies International, Inc. System and method for icon oriented representation of trading strategies
US7861185B1 (en) 2003-12-30 2010-12-28 Trading Technologies International, Inc. System and method for dynamically determining quantity for risk management
US20050071243A1 (en) * 2003-09-30 2005-03-31 Anandhi Somasekaran Non-disruptive business process debugging and analysis
US7739164B1 (en) 2003-10-07 2010-06-15 Trading Technologies International, Inc. System and method for displaying risk data in an electronic trading environment
US20080109785A1 (en) 2004-01-16 2008-05-08 Bailey Bendrix L Graphical Program Having Graphical and/or Textual Specification of Event Handler Procedures for Program Objects
US8046289B2 (en) 2004-01-29 2011-10-25 New York Mercantile Exchange, Inc. Electronic pitcard for wireless financial exchange
US20050203826A1 (en) 2004-03-12 2005-09-15 Chicago Mercantile Exchange, Inc. Implied spread trading system
US20050228743A1 (en) 2004-04-01 2005-10-13 Wave Rules, Llc. Systems and methods of electronic trading using automatic book updates
US7296233B2 (en) 2004-05-10 2007-11-13 Microsoft Corporation Spy-resistant keyboard
US7599867B1 (en) 2004-06-30 2009-10-06 Trading Technologies International, Inc. System and method for chart pattern recognition and analysis in an electronic trading environment
US20060010066A1 (en) 2004-07-12 2006-01-12 Rosenthal Collins Group, L.L.C. Method and system for providing a graphical user interface for electronic trading
US20070083456A1 (en) * 2004-08-10 2007-04-12 Akers Wayne S Algorithmic trading
US7542938B1 (en) * 2004-12-28 2009-06-02 Trading Technologies International, Inc. System and method for quick quote configuration
US7848991B1 (en) * 2004-12-30 2010-12-07 Trading Technologies International, Inc. System and method for modifying trading strategies based on message usage
US20060195817A1 (en) * 2005-02-28 2006-08-31 Microsoft Corporation Visual workflow modeling tools for user interface automation
GB2423838A (en) 2005-02-28 2006-09-06 Patsystems Electronic trading system
US7634437B1 (en) 2005-03-31 2009-12-15 Trading Technologies International, Inc. System and method for displaying trading data
US7596528B1 (en) 2005-03-31 2009-09-29 Trading Technologies International, Inc. System and method for dynamically regulating order entry in an electronic trading environment
US7590576B1 (en) 2005-03-31 2009-09-15 Trading Technologies International Inc. Visual representation and configuration of trading strategies
US20060253582A1 (en) 2005-05-03 2006-11-09 Dixon Christopher J Indicating website reputations within search results
USD539297S1 (en) 2005-05-05 2007-03-27 Noviello Joseph C User interface for an electronic trading system for a computer screen
US20060265453A1 (en) 2005-05-19 2006-11-23 International Business Machines Corporation Method and system of applying a template to a message
US7921072B2 (en) 2005-05-31 2011-04-05 Alcatel-Lucent Usa Inc. Methods and apparatus for mapping source schemas to a target schema using schema embedding
US7711630B2 (en) 2005-06-06 2010-05-04 Trading Technologies International. Inc. System and method for trading multiple tradeable objects using a single trading interface
US7577600B1 (en) * 2005-06-30 2009-08-18 Trading Technologies International, Inc. System and method for regulating order entry in an electronic trading environment
CN101501719A (zh) * 2005-07-11 2009-08-05 雷曼兄弟有限公司 用于向自动证券订单执行系统传递参数的系统和方法
JPWO2007037310A1 (ja) 2005-09-29 2009-04-09 株式会社C−Grip コンピュータプログラムのプログラミング方法及びプログラミング用プログラム
WO2007057008A1 (en) 2005-11-21 2007-05-24 Saxo Bank A/S A financial trading system
US7711631B2 (en) * 2005-12-29 2010-05-04 Trading Technologies International, Inc. System and method for a trading interface incorporating a chart
US20070168275A1 (en) 2006-01-13 2007-07-19 Andrew Busby Method for trading using volume submissions
US20070174173A1 (en) 2006-01-21 2007-07-26 Brucato Steven J Method for displaying market data and entering trading orders
US20070250783A1 (en) 2006-04-24 2007-10-25 Ehealthinsurance Services, Inc. Method and system to provide online application forms
US20070250769A1 (en) 2006-04-24 2007-10-25 Ehealthinsurance Services, Inc. Method and system to provide online application forms
US7904376B2 (en) * 2006-04-28 2011-03-08 Pipeline Financial Group, Inc. Rich graphical control interface for algorithmic trading engine
EP2081145A1 (en) 2006-04-28 2009-07-22 Pipeline Financial Group, Inc. Rich graphical control interface for algorithmic trading engine
US7908203B2 (en) 2006-04-28 2011-03-15 Pipeline Financial Group, Inc. Coordination of algorithms in algorithmic trading engine
US7882014B2 (en) 2006-04-28 2011-02-01 Pipeline Financial Group, Inc. Display of market impact in algorithmic trading engine
US7870059B2 (en) 2006-04-28 2011-01-11 Pipeline Financial Group, Inc. Display of selected items in visual context in algorithmic trading engine
US20070265953A1 (en) 2006-05-09 2007-11-15 Cunningham William D Smooth scrolling for software application
US7577608B1 (en) * 2006-07-07 2009-08-18 Trading Technologies International Inc. System and method for providing a linear spread
JP4374013B2 (ja) * 2006-10-31 2009-12-02 株式会社東芝 中継装置、並びに中継方法
US8027907B2 (en) 2006-11-20 2011-09-27 Codestreet Llc Fixed-income system for managing pre-trade activity
GB0624033D0 (en) 2006-12-01 2007-01-10 Iti Scotland Ltd Dynamic intervention with software applications
US8769485B2 (en) 2006-12-04 2014-07-01 Tibco Software, Inc. Data parallelism and parallel operations in stream processing
US9038041B2 (en) 2006-12-04 2015-05-19 Tibco Software, Inc. Stream processor with compiled programs
US8739068B2 (en) * 2007-06-15 2014-05-27 Microsoft Corporation Dynamic user interface for in-diagram shape selection
JP5367237B2 (ja) 2007-06-18 2013-12-11 ソニー株式会社 サーバ
CA2694593A1 (en) 2007-07-26 2009-01-29 Pipeline Financial Group, Inc. Block trading system and method providing price improvement to aggressive orders
US20090089202A1 (en) * 2007-09-28 2009-04-02 Fidessa Corporation Algorithmic order management tool for trading financial instruments
US20090144186A1 (en) 2007-11-30 2009-06-04 Reuters Sa Financial Product Design and Implementation
US20090157501A1 (en) 2007-12-16 2009-06-18 Rolland Russell Martel Integrated Exchange for 24 hour real time trading of fungibles & continuous cash T+0 settlement
US8442885B1 (en) * 2008-02-14 2013-05-14 Jpmorgan Chase Bank, N.A. Algorithmic trading management system and method
US7945505B2 (en) * 2008-03-12 2011-05-17 Liquidity Development, Llc Methods and systems for trading contracts and operating exchanges
US20100057602A1 (en) * 2008-08-28 2010-03-04 Armutcu Ercan S Electronic trading GUI
US20100161821A1 (en) 2008-12-18 2010-06-24 Slamkovic Richard D Midleware broker
US20110040669A1 (en) 2009-08-17 2011-02-17 Darren Lee Automated spread trading system
US20110040668A1 (en) 2009-08-17 2011-02-17 Darren Lee Automated spread trading system
US9652803B2 (en) 2009-10-20 2017-05-16 Trading Technologies International, Inc. Virtualizing for user-defined algorithm electronic trading
US20110208670A1 (en) 2010-02-19 2011-08-25 Jpmorgan Chase Bank, N.A. Execution Optimizer
US8510206B2 (en) * 2010-07-26 2013-08-13 Trading Technologies International, Inc. Consolidated price level expansion
US8566220B2 (en) 2011-01-26 2013-10-22 Trading Technologies International, Inc. Block placing tool for building a user-defined algorithm for electronic trading
US10007949B2 (en) * 2012-10-19 2018-06-26 Trading Technologies International, Inc. Visual depiction of warnings and errors
US10438285B1 (en) * 2013-03-15 2019-10-08 Charles Schwab & Co., Inc. System and method for displaying order status and receiving and changing orders

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1369076A (zh) * 1999-08-03 2002-09-11 电子速度公司 电子交易系统中关联定单的系统和方法
CN1392978A (zh) * 2000-08-24 2003-01-22 泽姆普莱克斯有限公司 以图形表示定义公式的方法
US20060129475A1 (en) * 2004-12-09 2006-06-15 Rosenthal Collins Group, L.L.C. Method and system for providing configurable features for graphical user interfaces for electronic trading
US20080021809A1 (en) * 2006-04-28 2008-01-24 Henri Waelbroeck Drag-and-drop graphical control interface for algorithmic trading engine

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9881338B2 (en) 2013-06-24 2018-01-30 Aequitas Innovations Inc. System and method for automated trading of financial interests
US10346918B2 (en) 2013-06-24 2019-07-09 Aequitas Innovations Inc. System and method for automated trading of financial interests
US11087399B2 (en) 2013-06-24 2021-08-10 Aequitas Innovations Inc. System and method for automated trading of financial interests
US11823265B2 (en) 2013-06-24 2023-11-21 Aequitas Innovations Inc. System and method for automated trading of financial interests
CN105787656A (zh) * 2016-02-25 2016-07-20 王聪东 一种阶梯刻度相交法替代循环处理供求关系系统

Also Published As

Publication number Publication date
KR102017877B1 (ko) 2019-09-03
US9652803B2 (en) 2017-05-16
MX344724B (es) 2017-01-05
US11055782B2 (en) 2021-07-06
KR20120102644A (ko) 2012-09-18
BR122013024235A2 (pt) 2019-08-06
US20240013304A1 (en) 2024-01-11
JP5961198B2 (ja) 2016-08-02
SG10201405879QA (en) 2014-11-27
KR102047374B1 (ko) 2019-11-21
US20200160448A1 (en) 2020-05-21
BR122013024230A2 (pt) 2018-03-27
CA2774398A1 (en) 2011-04-28
US20110093378A1 (en) 2011-04-21
MX2012004691A (es) 2012-08-30
US20220138854A1 (en) 2022-05-05
US20170186087A1 (en) 2017-06-29
MX2021002806A (es) 2021-05-31
JP2017117473A (ja) 2017-06-29
KR20180053774A (ko) 2018-05-23
KR101862801B1 (ko) 2018-05-31
JP6513110B2 (ja) 2019-05-15
US20200051169A1 (en) 2020-02-13
US11842401B2 (en) 2023-12-12
KR20180121690A (ko) 2018-11-07
US20220405842A1 (en) 2022-12-22
CN111539815A (zh) 2020-08-14
WO2011049936A2 (en) 2011-04-28
KR101915257B1 (ko) 2018-11-06
JP5485405B2 (ja) 2014-05-07
WO2011049936A3 (en) 2012-11-15
US11449939B2 (en) 2022-09-20
CA3234139A1 (en) 2011-04-28
US20240054561A1 (en) 2024-02-15
JP6775615B2 (ja) 2020-10-28
EP2545514A4 (en) 2013-09-11
US20110093379A1 (en) 2011-04-21
US20190236703A1 (en) 2019-08-01
AU2010308296B2 (en) 2013-10-31
US20210279801A1 (en) 2021-09-09
US11257156B2 (en) 2022-02-22
JP2014160466A (ja) 2014-09-04
US20190012738A1 (en) 2019-01-10
US10296975B2 (en) 2019-05-21
JP2013508862A (ja) 2013-03-07
CN111539815B (zh) 2024-04-05
SG10201705134SA (en) 2017-07-28
US11823270B2 (en) 2023-11-21
US10572942B2 (en) 2020-02-25
JP2016021242A (ja) 2016-02-04
CA3152686A1 (en) 2011-04-28
EP2545514A2 (en) 2013-01-16
AU2010308296A1 (en) 2012-04-12
KR20190103488A (ko) 2019-09-04
BR112012009233A2 (pt) 2016-08-23
US11568491B2 (en) 2023-01-31
CA2774398C (en) 2022-06-21
JP2019071112A (ja) 2019-05-09
US10096066B2 (en) 2018-10-09
US20230130695A1 (en) 2023-04-27
JP6104329B2 (ja) 2017-03-29
US10504182B2 (en) 2019-12-10

Similar Documents

Publication Publication Date Title
CN102947853A (zh) 用户定义的算法的电子交易
AU2014200235A1 (en) User-defined algorithm electronic trading

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20130227

RJ01 Rejection of invention patent application after publication