本申请要求于2007年11月8日提交的题为“执行复杂算法的分布式网络”的第60/986,533号美国临时申请和于2008年6月25日提交的题为“执行复杂算法的分布式网络”的第61/075722号美国临时申请的优先权,这两个临时申请的全部内容通过引用并入本文。
具体实施方式
根据本发明的一个实施方式,通过将实现复杂的基于软件的金融趋势和模式分析所需的处理能力分布到世界范围内的大量(例如,数千、数百万)单独的或集群的计算节点、并平衡经由宽带连接连接到因特网的数百万中央处理单元(CPU)或图形处理单元(GPU),显著减少了执行这种分析的成本。尽管下面的描述是参照CPU给出,但是可以理解,本发明的实施方式可等同地应用于GPU。
本文中:
·系统指硬件系统、软件系统或组合的硬件/软件系统;
·提供者可包括同意加入本发明的分布式网络计算系统并且拥有、维护、操作、管理或控制一个或多个中央处理单元(CPU)的个人、公司、或组织;
·网络由包括中央或组织/终端计算基础设施和任意数量的N个提供者的几个元素构成,每个提供者与一个或多个节点相关联,每个节点具有任意数量的处理设备。每个处理设备包括至少一个CPU和/或主机内存,例如DRAM;
·CPU被构造为支持一个或多个节点以形成网络的一部分,节点是适于执行计算任务的网络元素。信号节点可驻留在一个以上的CPU上,例如多核处理器的多个CPU;以及
·宽带连接被定义为电缆、DSL、WiFi、3G无线、4G无线或被开发以将CPU连接到因特网和将CPU互连的任意其它现有的或将来的有线或无线标准上的高速数据连接。
图1是根据本发明的一个实施方式的网络计算系统100的示例性高级框图。网络计算系统100被显示为包括四个提供者120、140、160、180和一个或多个中央服务器基础设施(CSI)200。示例性的提供者120被显示为包括承载(hosting)由提供者120拥有、操作、维护、管理或控制的几个节点的一群CPU。这群CPU包括处理设备122、124和126。在该实施例中,处理设备122显示为膝上型计算机,处理设备124和126显示为桌上型计算机。类似地,示例性的提供者140被显示为包括置于处理设备142(膝上型计算机)和处理设备144(手持数字通信/计算设备)内的多个CPU,这些CPU承载由提供者120拥有、操作、维护、管理或控制的节点。示例性的提供者160被显示为包括置于处理设备162(膝上型计算机)内的CPU,示例性的提供者180被显示为包括置于处理设备182(手机/VoIP手持设备)内的CPU。可以理解,根据本发明的网络计算机系统可包括任意数量的N个提供者,每个提供者与一个或多个节点相关联,并且每个提供者具有任意数量的处理设备。每个处理设备包括至少一个CPU和/或主机内存,例如DRAM。
宽带连接将提供者连接到CSI 200,以执行本发明的计算操作。这种连接可以是电缆、DSL、WiFi、3G无线、4G无线、或者被开发以将CPU连接至因特网的任意其它现有的或将来的有线或无线标准。在一些实施方式中,这些节点还能够相互连接并且相互传递信息,如图1所示。图1中的提供者140、160、180被显示为相互直接通信和传递信息。根据本发明,可使用任何CPU,只要客户端软件被允许在该CPU上运行。在一些实施方式中,多客户端软件将指令提供给多CPU设备,并且使用在那些设备中可用的存储器。
在一个实施方式中,网络计算系统100执行金融算法/分析,并且计算交易政策。为了实现这个目的,将与该算法/分析相关联的计算任务分为多个子任务,将每个子任务分配和委派给这些节点中的不同节点。然后,由CSI 200收集和组合这些节点得到的计算结果,以得到即将到来任务的解决方案。每个节点接收的子任务可包括相关的算法或计算代码、通过该算法实现的数据、和将通过相关算法和数据解决的一个或多个问题。由此,在这些实施方式中,CSI 200接收和组合由置于节点内的CPU提供的部分解决方案,以生成所请求的计算问题的解决方案,这将在下面进一步描述。当网络计算系统100处理的计算任务涉及金融算法时,通过综合由节点提供的部分解决方案所得到的最终结果可包括对一个或多个资产交易的建议。
进化算法的定标可以二维(即,池大小和/或评估)实现。在进化算法中,池或基因种群越大,搜索空间中的差异就越大。这意味着找到更适合的基因的可能性变大。为了实现此目的,可将池分布到许多处理客户端上。每个处理器评估其基因池并且将最适合的基因发送到服务器,这将在下面进行进一步描述。
根据本发明的一个实施方式,通过执行符合监管要求且与胜出节点相关联的胜出算法所建议的交易政策,得到金融报酬。由这些实施方式所实现算法(如将在下面进行进一步描述的遗传算法或AI算法的)中的基因或实体可被构造为竞争得到最佳可能解决方案并且获得最佳结果。在这些算法中,每个提供者(例如,图1的提供者120、140、160和180)随机接收用于执行计算的完整算法(代码)并且被分配一个或几个节点ID。在一个实施方式中,每个提供者还能够随着时间将其知识和决定添加至其相关联的算法。这些算法可进化并且某些算法将表现出比其它算法更成功。换句话说,最终,一个或多个算法(最初随机分配的)将比其它算法具有更高等级的智能,变成胜出算法,并且可用于执行交易建议。生成胜出算法的节点被称为胜出节点。节点ID用于追踪胜出算法至其节点以识别胜出节点。CSI 200可通过选择最佳算法或者通过组合从多个CPU获得的部分算法来构造算法。所构造的算法可完全由胜出算法来定义,或者通过组合多个节点或CPU生成的部分算法来定义。所构造的算法用于执行交易。
在一些实施方式中,如图2所示,使用反馈环路给CPU提供关于它们各自的算法进化得有多好的更新。这些算法可包括已被相关联的CPU计算过的算法、或对相关提供者感兴趣的资产的算法。这类似于随时间改进算法组件的窗口,提供例如执行算法的提供者的数量、已经消失的代的数量等信息。这构成了提供者共享其计算能力的附加动机,因为这为提供者提供了参与共同努力的经历。
在一些实施方式中,由本发明的各单独的CPU或网络计算系统实现的算法提供了对一个资产或一组资产的风险调整性能的估量;这种估量在金融文献中通常被称为是这个资产或这组资产的α值。α值通常通过对S&P 500指数超额收益中的资产(例如,有价证券或共有基金的超额收益)进行回归而生成。通常已知为β的另一参数用于调整风险(斜率系数),而α是截距。
例如,假设共有基金具有25%的回报,并且短期利率为5%(超额收益为20%)。假设在相同时期内,市场超额收益为9%。另外假设共有基金的β为2.0。换句话说,假设共有基金的风险是S&P 500指数的两倍。给定风险的情况下,期望的额外回报为2×9%=18%。实际的超额收益是20%。因此,α是2%或200基点。α还称为詹森指数并且由下式定义:
其中,
n=观察次数(例如,36个月);
b=基金的β;
x=市场回报率;以及
y=基金回报率。
人工智能(AI)或机器学习等级算法用于识别趋势并且执行分析。AI算法的实施例包括分类器、专家系统、案例推理、贝叶斯网络、基于行为的AI、神经网络、模糊系统、进化计算和混合式智能系统。在Wikipedia(维基百科)提供了这些算法的简要描述,如下所述。
分类器是可根据实施例进行调整的函数。具有多种分类器,每种分类器具有其优点和弱点。最广泛使用的分类器是神经网络、支持向量机、k近邻算法、高斯混合模型、朴素贝叶斯分类器和决策树。专家系统应用合理的能力以得出结论。专家系统可处理大量的已知信息并且基于这些信息提供结论。
案例推理系统存储一组问题并且以称为案例的有组织的数据结构进行回答。通过问题表示的案例推理系统在其知识库中寻找与新问题最相关的案例,并且通过适当修改后给出其解决方案作为输出。基于行为的AI是手动建立AI系统的模块化方法。神经网络是具有非常强的模式识别能力的可训练系统。
模糊系统提供用于在不确定的情况下推理的技术,并且广泛用于现代工业和消费者产品控制系统中。进化计算应用生物激励概念,例如种群、突变和适者生存,以对问题生成越来越好的解决方案。这些方法最明显地分为进化算法(例如,遗传算法)和群体智能(例如,蚁群算法)。混合式智能系统是上述系统的任意组合。可以理解,还可使用任意其它算法(AI或其它算法)。
为了实现这种分配并同时保护与下面描述的提供者相关联的节点间交换的金融数据的安全性和下面进行进一步描述的胜出模式的完整性,没有节点知道i)它正在解决全部趋势/模式计算还是仅其一部分;以及ii)节点计算的结果是否由系统均衡以决定金融交易政策并执行该交易政策。
算法的处理与交易订单的执行是分开的。根据基础设施被组织成客户端-服务器或者对等网格计算模型,通过一个或几个中央服务器或终端服务器做出交易决定和执行交易订单。交易决定不是由提供者的节点做出的。提供者、在本文中也被称为节点拥有者或节点(在下面进行进一步描述),指同意加入本发明的分布式网络并且拥有、维护、操作、管理或控制一个或多个CPU的个人、公司、或者组织。提供者作为分包商,并且在法律上或金融上不以任何方式为任何交易负责。
根据本发明,提供者通过签署在本文中称为提供者许可协议(PLA)且管理约定条款的文件,自愿租赁并且使用其CPU的处理能力和存储器容量。根据本发明,PLA规定每个提供者同意共享其CPU的最低要求,并且定义保密性和责任问题。PLA规定相关联的提供者不是终端用户,并且不从其CPU计算操作的结果中获益。PLA还阐明提供者必须满足的条件,以从接收租用其计算基础设施的报酬。
提供者是通过使本发明的网络系统能够接入其CPU能力和内存容量而获得补偿。该补偿可进行有规律地(例如,每月)或无规律地支付,其可以在每个时期是相同的,或者在不同的时期是不同的,可与最小的计算机可用/使用门限相关、或者以所使用的CPU周期(以确定使用)或CPU活动性的任何其它可能指标计算,上述的计算机可用/使用门限可通过查验(ping)机制测定(以确定可用性)。在一个实施方式中,如果未达到可用/使用门限,则不支付补偿。这就鼓励提供者(i)定期地与可用CPU保持有效的宽带连接和/或(ii)不鼓励提供者将其可用CPU能力用于其它任务。而且,可在每个CPU基础上支付补偿,以鼓励提供者增加对本发明可用的CPU的数量。可向为本发明提供CPU场(CPU farm)的提供者支付额外的奖励。还可单独使用其它形式的基于非现金补偿或激励方案,或者将其与基于现金的补偿方案结合使用,在下面进行进一步描述。
提供者在注册和加入本发明网络系统后下载客户端软件,该客户端软件适用于其CPU类型和特性并且被配置为自安装或由提供者安装。客户端软件提供简单可视化的服务表示,例如,屏幕保护程序。这种表示指出提供者在每个时期得到的钱数。例如,这种表示可采用落入收银机的硬币的形式。这样增强了具有通过加入本发明的网络系统而提供的优点的可视化效果。由于客户端软件在后台运行,因此在计算机上感觉不到其运行。
客户端软件可被有规律地更新,以增加与其相关联的提供者的交互式体验。为此,在一个实施方式中,将“众包(crowd sourcing)”知识模块设置于客户端软件内,以要求个人例如进行市场预测并且均衡集合的观点,如本发明的学习算法的一个或多个方面。
作为开发更具交互式体验的一部分,可给提供者提供机会以选择其希望用其CPU分析的资产,例如,基金、商品、股票、货币等。这种选择可自由执行,或者可从提供给提供者的资产列表中进行这种选择。
在一个实施方式中,通过与一个或多个资产相关的包括公司新闻、股市图等在内的新闻周期性地更新屏幕保护程序/交互式客户端软件。这种表示的“感觉良好”的效果对提供者而言是重要的,尤其对那些不精明的投资者而言是重要的。通过下载本发明并且选择例如少量感兴趣的股票,提供者可感觉参与到金融领域中。本发明看起来复杂的金融屏幕保护程序被设计为增加参与金融中的印象,即,用于改进本发明的病毒营销理念的“光晕(halo)”效应。
一旦提供者开始挣钱或者开始从根据本发明接收的激励中获得满足感,他们就会开始与他们的朋友、同事、家庭成员等传达关于从他们现有的计算机基础设施挣钱或奖励“信用”的机会。这导致贡献给服务的节点将增加,从而导致处理能力增强,因此得到更高的商业效益。商业效益越高,就会有越多资金用来补充和增加更多的提供者。
在一些实施方式中,增加奖励以加快成员人数比率和本发明的病毒营销方面,将在下面进行进一步描述。例如,在一个实施方式中,采用推荐的系统,由此给现有提供者支付介绍新提供者的推荐费。提供者还可有资格参与定期抽奖,其中,在给定时期至少贡献了最小门限CPU能力的每个提供者均参与幸运抽奖。例如,获奖者被奖予现金分红或其它形式的补偿。其它形式的奖励例如可通过如下方法实现:(i)追踪算法性能并且奖赏具有胜出节点(即,被确定为在给定时期内构造最有利算法并且因而具有胜出算法的节点)的提供者;(ii)追踪胜出算法的子集,将这些子集中的每个标记上ID,识别胜出节点,并且奖赏在胜出算法中找到其计算机生成的算法子集ID的所有提供者;以及(iii)追踪和奖赏在给定时期内具有最高可用性的CPU。
在一些实施方式中,当单独的提供者和其他提供者合作、或者邀请其他提供者构成“提供者组”以增加赢取可用奖金的机会时,奖励增加。在其它实施方式中,可在奖金的基础上使用策略,例如赢取正确或最佳预测“众包”知识的奖金的机会。
为了使账户和现金处理工作最少,在一些实施方式中,为每个提供者提供虚拟现金账户。如上所述,将支付给每个提供者的报酬定期地(例如,每月)记入账户中。记入现金账户的任何现金可构成登记费用,它不会转化为实际的现金流出直到提供者请求银行将其转账到他/她的物理银行。
可通过许多其它方式对提供者的CPU共享进行补偿。例如,可给这些提供者提供交易信息来代替现金。交易信息包括特定股票或任何其它资产的买进或卖出触发。服从关于提供交易设备的现行法律,交易信息可在使用本发明的实体没有交易或不希望交易的一列资产上(例如随机地)抽出。如上所述,还可为提供者(成组或个别地)拥有或其表明感兴趣的资产提供这种交易信息。在一些实施方式中,为提供者的账户收取维护费以负担与提供者的账户相关的操作。
客户软件在提供者CPU上的存在提供了可卖给商人和广告商的广告机会(通过向提供者做广告)。通过在例如资产类型、特定公司、基金等方面获得关于提供者感兴趣领域的知识,呈现高度针对性的广告机会。此外,CPU客户提供消息和媒体传递机会,例如,新闻广播、突发新闻、RSS传播、电传股票行情录、论坛和聊天室、视频等。所有这些服务都可通过将费用直接记入提供者账户的方式而得到。包括在后台运行的相关程序的交互式前端应用(取代屏幕保护程序)实现这种功能。
服从现行法律和法规,可基于个体或机构将交易信号出售给提供者和非提供者。交易信号从本发明实现的趋势&分析工作生成。客户端软件可被定制,以通过最佳方式传递这种信号。服务费可自动地应用于提供者的账户。例如,提供者可在按月支付费用的基础上每月接收关于预定数量的股票的信息。
还可将多个API、应用编程接口组件和工具,提供给第三方市场参与者(例如,共有基金和套利基金管理者),以从本发明提供的许多优点中获益。第三方参与者例如可以(i)在本发明提供的交易模型上交易;(ii)通过本发明提供的软件、硬件和基础设施建立他们自己的交易模型,然后与其它金融机构共享该模型或将该模型卖给其它金融机构。例如,投资银行可从使用本发明的实体花费W美元租用Z小时的X百万计算周期和一组Y编程程序(基于AI的可执行软件),以确定例如油期货的最新趋势和交易模式。同样地,本发明提供了全面的交易政策定义工具和执行平台以平衡唯一强大的趋势/模式分析架构。
提供者的账户还可用作交易账户或基金源,用于在一个或多个在线经纪公司开设账户。可从在线经纪公司收取推荐费,并且介绍一些已知客户给他们。本发明的基础设施(硬件、软件)、API和工具等还可被扩展以解决其它领域(例如,基因、化学工程、经济、情景分析、客户行为分析、气候和天气分析、防御和智力)中同样复杂的计算任务。
客户端-服务器配置
根据本发明的一个实施方式的网络包括至少五个元件,其中三个元件(如下所示的i、ii和iii)执行根据本发明的各种实施方式的软件。这五个元件包括:(i)中央服务器基础设施;(ii)操作控制台;(iii)网络节点;(iv)执行平台(执行平台的一部分通常属于主要经纪);以及(iv)数据传送服务器,该服务器通常属于主要经纪或金融信息提供者。
参照图3,CSI 200包括一个或多个计算服务器。CIS 200被配置为担当节点处理工作的聚合器和节点的管理器。CSI 200的这个“控制塔”角色可从计算过程管理的角度理解,即,哪些节点以哪种顺序对所考虑的各种问题和数据中的哪种类型的问题和数据进行计算。CSI 200操作还可从计算问题定义和解决方案的角度理解,即,要求节点计算的计算问题的格式化、针对具体性能门限评估节点的计算结果、以及如果认为结果合适则做出处理或停止处理的决定。
CSI 200可包括日志服务器(未示出),该日志服务器适于监听节点心跳或常规请求以理解和管理网络的计算可用性。CSI 200还可访问数据传送102、104、106和其它外部信息源以获得相关信息,即,解决即将到来的问题所需的信息。问题和数据的封装可发生在CSI 200处。然而,节点被配置为合法且实际可行地引导它们自身的信息聚集,如下所述。
尽管CSI 200在该实施方式中显示为单个框且作为一个功能实体,但是在一些实施方式中CSI 200可以是分布式处理器。此外,CSI 200还可以是分级联合拓扑的一部分,其中CSI可实际伪装为节点(见下面)以作为客户端连接至父CSI。
根据一些实施方式,例如,当使用遗传算法时,CSI被布置为分层系统,也称为联合客户端-服务器架构。在这些实施方式中,CSI维持遗传算法的大多数既成结果。包括多个节点的第二组件被分配有处理遗传算法和生成执行“基因”的任务,将在下面进一步描述。第三组件评估这些基因。为此,第三组件从第二层接收所形成和所训练的基因,并且在解决方案空间的一部分上对其进行评估。然后,这些评估由第二层收集,相对于由保持在CSI中的基因在该具体时刻获得的最小性能等级设定的门限进行估量。系统的第三层将顺利地通过门限(或门限的一部分)比较的基因递交给CSI。该实施方式将CSI从评估中释放(在下面的动作12中描述),并且使系统能更有效地操作。
根据本发明,存在与分层系统相关联的多个优点。首先,因为存在多个中间服务器,增强了客户端服务器通信的可扩展性,从而增加了节点数目。其次,在将结果转发至主服务器之前,通过在联合服务器处对结果进行不同等级的过滤,减少了中央服务器上的负载。换句话说,由于节点(客户端)与它们的本地服务器通信,然后本地服务器与中央服务器通信,因此减少了中央服务器上的负载。最后,可将任何给定的任务分配给网络的具体部分。因此,网络的所选部分可被专门用于控制分配给即将到来的任务的处理能力。可以理解,在该实施方式中可使用任意数量的层。
操作控制台
操作控制台是操作员与系统交互所需的人机接口组件。通过操作控制台220,操作员可输入他/她希望算法解决的特定问题的决定因素,选择他/她想要使用的算法类型,或者选择算法的组合。操作员可测定网络的尺寸,尤其他/她想要为给定处理任务保留的节点数量。操作员可输入目标以及算法的性能门限。操作员可将在任意给定时间上处理的结果虚拟化,通过多个工具分析这些结果,将所生成的交易政策格式化,以及执行交易仿真。控制台还在追踪网络负载、故障和故障转移事件中作为监视角色。控制台提供与任意时刻的可用容量相关的信息,网络故障警告、过载或速度问题、安全问题,并且保留过去处理工作的历史。操作控制台2s0与执行平台300连接以执行交易政策。交易政策的格式化及其执行或者在无需人工干预的情况下自动进行,或者通过人工审批过程实现。操作控制台使操作员能够选择上述方法之一。
网络节点
网络节点计算手边的问题。图1示出了5个这种节点,即,节点1、2、3、4和5。这些节点将它们处理的结果发回CSI 200。该结果可包括部分或全部的进化算法和显示该算法执行到怎样的数据。如果现行法律允许并且可行,节点还可访问数据传送102、104、106和其他外部信息源以获得他们被要求解决的问题的相关信息。在系统的高级阶段中,节点进化以通过交互式体验的形式将进一步的功能提供回提供者,从而允许提供者输入感兴趣的资产、对金融趋势的意见等。
执行平台
执行平台通常是第三方运行组件。执行平台300接收从操作控制台220发送的交易策略,并且实现例如与金融市场(例如,纽约股票交易所、Nasdaq、芝加哥商业交易所等)相关的所需执行。执行平台将从操作控制台220接收的指令转化为交易订单,在任何给定时间告知这些交易订单的状态,并且当已经执行交易订单时向操作控制台220和其它“清算室”系统报告交易订单的具体内容,例如价格、交易大小、应用于订单的其它约束或条件。
数据传送服务器
数据传送服务器通常也是系统的第三方运行组件。数据传送服务器(例如,数据传送服务器102、104、106)为多种交易资产(例如,股票、债券、商品、货币及其派生物,例如期权、期货等)提供实时和历史金融数据。它们可直接与CSI 200或节点连接。数据传送服务器还可提供对各种技术分析工具的访问,例如为金融指标(MACD、布林带、ADX、RSI等),这些可由算法在处理中作为“条件”或“观点(perspective)”。通过使用适当的API,数据传送服务器使算法能够修改技术分析工具的参数,以使条件和观点的范围变宽,从而增加算法搜索空间的维度。这样的技术指标还可系统基于经由数据传送服务器接收到的金融信息进行计算。数据传送服务器还可包括由算法使用的非结构化或定性的信息,从而使系统考虑其搜索空间内的结构化和非结构化数据。
客户端-服务器配置--数据流和过程流
下面是根据本发明的一个示例性实施方式的数据和过程流的实施例。下面描述的各种动作参照图2示出。箭头及其相关动作通过使用相同的标号标识。
动作1
操作员通过操作控制台选择问题空间和一个或多个算法以解决问题空间。操作员通过操作控制台220将与动作1相关联的下列参数应用到CSI 200:
目标:目标定义了期望从处理中生成的交易政策的类型,如果有必要或合适,还为算法设置性能门限。一个实施例如下。交易政策可以是“买进”、“卖出”、“卖空”、“空单补回”或“持有”特定证券(股票、商品、货币、指数、期权、期货及其组合等)。交易政策可允许杠杆作用。交易政策可包括每个被交易证券所使用的量。交易政策可允许通宵持有金融证券,或者可要求在白天的具体时间等自动清算的位置。
搜索空间:搜索空间定义了算法中允许的条件或观点。例如,条件或观点包括:(a)金融证券(股票、商品、期货等);(b)特定证券的原始市场数据,例如,“最小价位”(特定时间点上证券的市场价)、交易量、股票的空头净额、或期货的未平仓量;(c)通用市场数据,例如,S&P500股票指数数据、或NYSE金融板块指数(特定板块指标)等。它们还可包括(d)原始市场数据的派生-数学变换,例如“技术指标”。公共技术指标包括[来自2008年6月4号Wikipedia上的“技术分析”条目]:
·累积/分布指数-基于日范围的收盘
·平均真实波动范围-平均日交易量
·布林带-价格波动范围
·突破-价格何时超过和保持在支持区间或阻力区间以上
·商品渠道指数-标识周期趋势
·估波-Edwin Coppock开发的估波指标具有唯一的目标:标识牛市的开始
·艾略特波浪理论和黄金分割计算成功价格变动和价格折返率
·逆折(Hikkake)模式-用于识别逆转和调整
·MACD-指数平滑/异同移动平均线
·动力指标-价格改变的速度
·资金流量-价格上升时日交易股票的量
·移动平均数-落后于价格走势
·平衡交易量-购买和卖出股票的动力
·PAC制图-通过价格水平画出量的二维方法
·抛物转向指标(Parabolic SAR)-基于价格趋势的Wilder追踪止损以在强势过程中保持在抛物线内
·枢轴点-通过计算特定货币或股票的高价、低价和收盘价格的数值平均得到
·点数图-与价格相关而与时间无关的图表
·盈利-估量以比较不同交易系统或同一系统内的不同投资的性能
·BPV评级-通过量和价格识别逆转的模式
·相对强度指数(RSI)-显示价格强度的震荡指标
·阻力区间-引起增加的卖出的区间
·Rahul Mohindar震荡指标-标识指标的趋势
·随机震荡指标,最近交易范围内的平仓
·支持区间-引起增加的买入的区间
·趋势线-支持区间或阻力区间的斜线
·Trix-于20世纪80年代由Jack Hutson开发的显示三重指数平滑移动平均指标的斜率的震荡指标
条件或观点还可包括:(e)基础分析指标。这种指标属于与证券相关联的组织,例如,利润与收入比或企业的资产与负债比;(f)定性数据,例如市场新闻、行业新闻、收益情况公告等。它们通常是非结构化数据,需要被预处理和组织以可被算法读出。条件或观点还可包括:(g)知晓算法的当前交易位置(例如,为具体证券上的“长”或“短”算法)和当前利润/损失情况。
可调整的算法:可调整的算法定义了具体设置,例如最大可允许规则或每个规则的条件/观点等。例如,算法可被允许具有5个“买进”规则和5个“卖出”规则。这些规则中的每一个可被允许具有10个条件,例如5个特定股票技术指标、3个特定股票“分笔”数据点和2个通用市场指标。
指导:指导定义了将算法引向搜索空间部分的任何预先存在或学习到的条件或观点是由人生成的还是从上一处理周期生成的,以更快地实现更好的性能。例如,指导条件可规定在股票的市场价格非常强大的早晨上涨将禁止算法在一天内对股票短期持仓(股票看跌)。
数据要求:数据要求定义了到目前为止的算法需要的历史金融数据,以i)追踪自身;以及ii)被测。数据可包括用于所考虑的特定证券、或者用于市场或行业的原始市场数据,例如,最小价位数据和交易量数据、数据分析指标数据、基础分析指标数据、以及被组织为可读格式的非结构化数据。数据需要被提供用作如上所述“搜索空间”的程度。“当前时间”可理解为动态值,其中数据不断被更新并持续地反馈给算法。
时效性:时效性给操作者提供了规定将完成处理任务的时间的选项。这会对CSI如何将计算任务按优先级排列造成影响。
处理能力分配:根据处理能力分配,操作者能够将特定处理任务相对于其他任务按优先级排列,并绕过处理队列(见下面)。操作控制台将上面的信息传送给CSI。
交易执行:根据交易执行,操作者规定操作控制台是基于处理活动(和这些交易的项,例如交易活动的量)的结果执行自动交易,还是需要人为决定来执行交易。这些设置的全部或部分可在网络执行其处理活动时被修改。
动作2
这个动作包括两种情形。在每个情况中,CSI 200识别搜索空间是否调用其不拥有的数据。
情形A:当从操作控制台200接收到动作1指令时,CSI 200将算法格式化为节点(客户侧)可执行代码。
情形B:CSI 200不将算法格式化为客户侧(节点)可执行代码。在这种情形下,节点已经包含它们自身的算法代码,该算法代码如下面参考动作10所进一步描述地随时间升级。代码在节点上执行,并且结果由CSI 200聚集和选择。
动作3
CSI 200对一个或多个数据传送服务器进行API调用,以获得缺失的数据。例如,如图2所示,当CSI 200确定其没有从1995年到1999年通用电气股票的5分钟代码数据时,CSI 200会对数据传送服务器102和104进行API调用以获得该信息。
动作4
根据这个动作,数据传送服务器将被请求的数据上传到CSI。例如,如图2所示,数据传送服务器102和104将被请求的信息上传到CSI 200。
动作5
在从数据传送服务器接收到被请求的数据之后,CSI 200将该数据与将要执行的算法匹配并且确认被请求的数据的可用性。然后将该数据将转发至CSI 200。在数据不完整的情况下,CSI 200可生成标记以告知网络节点必须由自己获取数据,如下面进一步描述。
动作6
对于这个动作有两种情形。根据第一种情形,节点可规律地查验(ping)CSI以得到其可用性。根据第二种情形,节点可基于正在客户机上执行的节点客户请求指令和数据,CSI 200仅在客户访问CSI 200时知晓客户的存在。在这种情形下,CSI 200不能维护所有连接的客户的状态表。
动作7
通过集合节点的心跳信号(即,由节点生成的表示其可用性的信号)或在第二种情形下集合节点的指令和数据请求,CSI 200总是知晓可用的处理容量。如下面进一步描述,集合(aggregation)表示添加与每个代码相关的心跳信号数量的过程。CSI 200还实时地将该信息提供给操作控制台220。基于该信息和从如上关于动作1所描述从操作控制台接收到的与时效性、优先级处理等相关的的其它指令,CSI 200决定(i)马上对给定数量的节点实施优先级处理分配(即,基于任务的优先级分配客户处理容量);或者(ii)将新的处理任务添加至节点的活动队列并且基于时效性要求管理该队列。
CSI根据目标规律地且动态地评估计算的进展(将在下面进一步描述)并且通过任务调度管理器将该容量与活动队列相匹配。除了要求优先级处理的情况(参见动作1)之外,CSI都尝试通过匹配处理容量以及分割处理容量来优化处理容量使用,以解决活动队列的需求。这个动作未在图2中示出。
动作8
基于可用网络节点的数量(如动作7中所描述的)、目标/门限、时效性要求、以及其他这类因素,CSI 200形成一个或多个分配包,随后将其传送至选定的可用节点用于处理。包含在分配包中的例如是(i)部分或全部算法的表达式(例如,XML表达式),对于基因算法,该表达式中包括基因;(ii)相应的数据,部分或全部(见上面的动作5);(iii)节点的计算活动设置和执行指令,可包括特定节点的或普通计算的目标/门限、处理时间线、触发调用以请求从节点到数据传送服务器直接传送缺失数据的标记;等等。在一个实施例中,门限参数可被定义为当前驻留在CSI 200内的最坏性能算法的适用性或核心性能度量。处理时间线可包括例如1小时或24小时。可选地,时间线可以是无限制的。参考图2,CSI 200显示为正与节点3和4通信以执行优先级处理分配和将包分配到这些节点。
如果节点已经包含其自身的算法代码(如上面在动作2中所描述的)和执行指令,那么,该节点从CSI接收的包通常只包括节点执行其算法所需的数据。图2的节点5被假设为包含其自身的算法,并且显示为正与CSI 200通信以仅接收与动作8相关的数据。
动作9
基于选定的实施,该动作具有两种可能情形。根据第一种情形,CSI 200将分配包发送到选定用于处理的所有节点。根据第二种情形,根据节点的请求,CSI 200将分配包或请求所针对的相关部分发送到已经发送这种请求的每个节点。这个动作未在图2中示出。
动作10
每个选定的节点解析由CSI 200发送的包的内容并且执行所请求的指令。这些节点并行计算,每个节点专用于解决分配给该节点的任务。如果节点请求附加数据来执行其计算,那么相关指令可提示节点从CSI 200上传更多/不同数据到节点的本地数据库。可选地,如果被配置为这样,那么节点可以单独访问数据传送服务器并且进行数据上传请求。图2中的节点5显示为与数据传送服务器106通信以上传被请求的数据。
节点可被配置为为了附加基因(当使用遗传算法时)和数据而规律地查验CSI。CSI 200可被配置为管理其随机发送到各个节点的指令/数据。因此,在这些实施方式中,CSI不依赖于任何特定的节点。
偶尔,对节点的客户代码(即,安装在客户端的可执行代码)进行更新也是必要的。由此,定义执行指令的代码可指导节点客户下载和安装较新版本的代码。节点客户定期地将其处理结果下载到节点的本地驱动器,从而在发生可能由CSI或意外引起的中断事件时,节点可找到其停止处并从该处继续处理。由此,根据本发明实现的处理不依赖于任何具体节点的可用性。因此,如果节点因任何原因发生故障和变得不可用,都不需要对特定任务进行重新分配。
动作11
在到达(i)特定目标/门限(如上参照动作8所描述的)、(ii)用于计算的最大分配时间(也参照动作8描述)之后;或者(iii)根据来自CSI的请求,节点调用在CSI上运行的API。对API的调用可包括与节点当前可用性相关的数据、其当前容量(当事件条件(i)或(ii)先前未遇到和/或客户具有更多处理容量时)、自上次通信之后的处理历史、相关处理结果(即,对问题的最新解决方案)、以及节点客户代码是否需要升级的检查。这种通信可以是同步的(即,所有节点在同一时间发送它们的结果)或异步的(即,不同的节点根据节点的设置或发送给节点的指令在不同的时间发送它们的结果)。在图2中,节点1显示为对CSI 200进行API调用。
动作12
基于从一个或多个节点接收到结果,CSI开始比较结果与下列各项:i)初始目标;和/或ii)通过其它节点获得的结果。CSI维护节点在任意时间点上生成的最佳解决方案列表。在遗传算法的情况下,最佳解决方案可以是例如最优的1,000个基因,基因可按性能顺序分等级并且因而设置当节点继续它们的处理活动时会超出的最小门限。动作12未在图2中示出。
动作13
当节点如动作11中所述与CSI 200联系时,CSI 200可将指令返回到该节点,使该节点例如上传新数据,升级其自身(即,下载和安装最近版本的客户可执行代码)、关闭等。CSI可被进一步配置为使其分配包的内容动态演变。这种演变可关于下列各项实现:(i)算法;(ii)选定以训练和运行算法的数据集;(iii)节点的计算活动设置。算法评估可通过结合由节点处理实现的改进,或者通过为算法操作的搜索空间添加尺寸而实现。如上面参考动作4所描述地,CSI 200被配置为将客户可执行代码发送到节点。因而,新的改进算法能够演变。
动作14
持续重复与上面动作相关的过程直到下列条件之一得到满足:i)实现目标;ii)到达必须完成处理任务的时间(见上面描述的动作2);iii)调度优先级任务而造成过程中断;iv)CSI的任务调度管理器在活动队列的管理中切换优先级(见上面的动作7);或者v)操作员停止或取消计算。
如果任务被中断,那么如上面的情况iii)或iv)那样,算法的状态、数据集、结果历史和节点活动设置被缓存到CSI 200,以允许任务在处理能力再次可用时继续执行。CSI 200还将过程终止发送到已与CSI 200联系的任一节点。在任一给定点,CSI 200可选择忽视节点的联系请求,关闭节点,发信号给节点告知其当前工作已被终止等。
动作15
CSI 200在下列情况下为操作控制台220告知任务处理活动的状态:(i)定期;(ii)基于来自操作控制台220的请求;(iii)当处理完成时,例如,如果处理任务的目标已经实现;或者(iv)处理任务必须完成的时间已到。在每次状态更新或处理活动完成时,CSI 200提供在状态更新或完成时的最佳算法。最佳算法是节点和CSI 200的处理活动的结果,并且是在结果和网络中进行的进化活动上执行的比较分析的结果。
动作16
基于根据最佳算法的交易政策,做出交易或不交易的决定。依据为特定任务选择的设置,该决定可由操作控制台220自动做出,或者由操作员批准而做出。这个动作未在图2中示出。
动作17
操作控制台220将交易订单格式化,使其与执行平台的API格式一致。交易订单通常可包括:(i)证券;(ii)将被交易的证券的面额数量;(iii)做出的订单是限价订单还是市场订单的决定;(iv)根据选定最佳算法的交易政策做出的买入或卖出、或空单补回或卖空的决定。这个动作未在图2中示出。
动作18
操作控制台将交易订单发送到执行平台300。
动作19
通过执行平台300在金融市场中执行交易。
图3示出了置于客户端300和服务器350内的多个组件/模块。如图所示,每个客户端包括已由客户随机创建的所有基因的池302。随机创建的基因由评估模块304评估。为池中的每个基因执行评估。每个基因涉及随机选择的股票或股票指数在多天(例如,100天)的情况。为池中的每个基因执行评估。在完成所有基因的评估之后,选择最佳性能(例如,最优的5%)基因并将其置于优秀池306中。
优秀池中的基因允许再生。为了实现这个目标,基因再生模块308随机选择并组合两个或更多的基因,即,通过混合用于创建父基因的规则来实现。然后,池302重新装入新创建的基因(子基因)和曾在优秀池中的基因。旧的基因池被丢弃。池302中的新一代基因继续按照上面描述的方式被评估。
基因选择模块310被配置为在被请求时将更好且更适合的基因提供给服务器350。例如,服务器350可给基因选择模块310发询问“适合我最坏基因的是X,请问有性能更好的基因么?”。基因选择模块310可回答“我有10个更好的基因”并且尝试将这些基因发送给服务器。
在新基因被服务器接受之前,基因通过服务器中的欺诈检测模块352经历欺诈检测过程。贡献/聚集模块354被配置为通过每个客户追踪贡献以聚集该贡献。一些客户可能非常活跃,而其它客户可能不活跃。一些客户可能比其它客户运行在快得多的机器上。通过具有由每个客户贡献的处理能力的贡献/聚集模块354更新客户端数据库356。
基因接受模块360被配置为确保这些基因比在从客户到达的基因被添加到池358之前已经存在于服务器池358中的基因更好。由此,基因接受模块360给每个接受的基因标上ID,并且在将接受的基因添加到服务器池358之前执行多个壳体清洁操作。
图4示出了置于图1的每个处理设备中的各个组件。每个处理设备显示为包括至少一个处理器402,处理器402通过总线子系统404与多个外围设备通信。这些外围设备可包括存储子系统406、用户接口输入设备412、用户接口输出设备414和网络接口子系统416,存储子系统406部分地包括存储器子系统408和文件存储子系统410。输入和输出设备允许用户与数据处理系统402交互。
网络接口子系统416将接口提供给其他计算机系统和存储源404。网络可包括因特网、局域网(LAN)、广域网(WAN)、无线网络、企业内部网、专用网、公共网、交换网络、或其它适合的通信网络。网络接口子系统416用作从其它源接收数据的接口,以及用作将数据从处理设备传输到其它源的接口。网络接口子系统416的实施方式包括以太网孔、调制解调器(电话、卫星、电缆、ISDN等)、(异步)数字用户线(DSL)单元等。
用户接口输入设备412可包括键盘、定位设备(例如,鼠标、轨迹球)、触摸板、或图表、扫描仪、条形码扫描仪、并入显示器中的触摸屏、音频输入设备(例如,声音识别系统、麦克风)、以及其他类型的输入设备。通常,用语输入设备的使用是为了包括将信息输入到处理设备的所有可能类型的设备和方法。用户接口输入设备414可包括显示子系统、打印机、传真机、或非视觉显示器(例如,音频输出设备)。显示子系统可以是阴极射线管(CRT)、例如液晶显示器(LCD)的平板设备、或投影设备。通常用语输出设备的使用希望包括从处理设备输出信息的所有可能类型的设备和方法。存储子系统406可被配置为存储提供根据本发明实施方式的功能的基础编程和数据结构。例如,根据本发明的一个实施方式,实现本发明功能的软件模块可存储在存储子系统206中。这些软件模块可由处理器402执行。存储子系统406还可提供用于根据本发明使用的数据的贮存库。存储子系统406可包括例如存储器子系统408和文件/盘存储子系统410。
存储器子系统408可包括多个存储器,多个存储器包括用于在程序执行过程中存储指令和数据的主随机存储器(RAM)418和存储固定指令的只读存储器(ROM)420。文件存储子系统410提供用于程序和数据文件的永久(非易失性)存储,并且可包括硬盘驱动器、软盘驱动器以及相关的可移动介质、光盘只读存储器(CD-ROM)设备、光盘驱动器、可移动介质磁带盒、以及其他类似的存储介质。
总线子系统404提供了使处理设备的各个组件和子系统相互通信的机制。尽管总线子系统404示意性地显示为单总线,但是总线子系统的可选实施方式可使用多总线。
处理设备可以是包括个人计算机、便携式计算机、工作站、网络计算机、大型机、信息站或其它数据处理系统的各种类型的处理设备。可以理解,图4所示的处理设备的描述只是一个实施例。比图2所示的系统具有或多或少组件的许多其它配置是可能的。
本发明的上述实施方式是示例性的而非限制性的。各种替换和等同是可能的。根据本发明的公开,其它添加、删减或修改是显而易见的且落入所附权利要求的范围内。