用于资产管理和交易的基于类的分布式进化算法

文档序号:6629678阅读:174来源:国知局
用于资产管理和交易的基于类的分布式进化算法
【专利摘要】本发明涉及用于资产管理和交易的基于类的分布式进化算法。服务器计算机和多个客户端计算机形成网络计算系统,该网络计算系统是可扩展的,并且适于使用运行在客户端计算机上的软件应用来持续评估生成的多个基因的性能特性。每个客户端计算机持续周期性地接收与其存储器中存储的基因相关联的数据。使用此数据,客户端计算机通过将由基因提供的解与周期性接收的与该基因相关联的数据进行比较来评估该基因的性能特性。由此,每个基因的性能特性利用每个周期性接收的数据而被更新和改变。基因的性能特性定义其适应度。基因可以被初始地指派为不同类以改进收敛性,但是随后可以决定将其与其他类基因合并,从而改进多样性。
【专利说明】用于资产管理和交易的基于类的分布式进化算法
[0001] 相关申请夺叉引用
[0002] 本申请是国际申请号为PCT/US2010/032847、国际申请日为2010年04月28日、国 家申请号为201080018800. 6、进入中国国家阶段日期为2011年10月27日的发明专利申请 的分案申请。
[0003] 本申请基于35 USC 119(e)要求2009年4月28日提交的名称为"Distributed Evolutionary Algorithm for Stock Trading"的美国临时申请号 61/173581 以及 2009 年 4 月 28 日提交的名称为 "Distributed Evolutionary Algorithm for Stock Trading,'的 美国临时申请号61/173582的权益,在此通过引用将两者的内容全文并入。

【背景技术】
[0004] 复杂的金融趋势和模式分析处理通常利用超级计算机、大型机或功能强大的工作 站和PC完成,它们通常位于公司的防火墙内,并且由该公司的信息技术(IT)组拥有和操 作。在这种硬件和运行该硬件的软件方面的投资是巨大的。维护(修复、调整、打补丁)和 操作(电气,安全数据中心)这种基础架构的成本同样巨大。
[0005] 股票价格的波动通常是不可预测的,但是偶尔呈现出可预测模式。基因算法(GA) 被公知为已经在股票分类中使用。根据一种理论,在任何给定时间,5 %的股票遵循一种趋 势。基因算法因此有时被使用来将股票分类为遵循或不遵循趋势,并且取得一些成功。
[0006] 作为基因算法的超集的进化算法在穿越混沌搜索空间时是良好的。如同Koza,J. R 1992 年在 MIT 会议上发表的 "Genetic Programming :0n the Programming of Computers by Means of Natural Selection"中已经示出,进化算法可以被使用来在断言注释时进化 完整的程序。进化算法的基本元素是环境、基因模型、适应性函数(fitness function)以及 复制函数。环境可以是任何问题陈述的模型。基因可以由用于管理在所述环境内管理其行 为的规则集定义。规则是要在所述环境中执行的动作所遵循的条件列表。适应性函数可以 利用进化规则集正在与所述环境进行协商的成功程度定义。适应性函数由此用于评估每个 基因在所述环境中的适应度(fitness)。复制函数通过将规则与所述父基因中的最适应的父 基因混合来生成新基因。在每代中,仓Il建新的群体(population)。
[0007] 在所述进化过程的开始,通过将形成基因的构件块或字母放置在一起,完全随机 地创建组成所述初始群集的基因。在基因编程时,所述字母是一组条件和动作,该一组条件 和动作组成在所述环境内管理所述基因的行为的规则。一旦建立起群集,就使用所述适应 性函数来对该群集进行评估。具有最高适应度的基因随后被使用来在被称作复制的过程中 创建下代。通过复制,父基因的规则被混合,并且有时被变异(即,在规则中进行随机变化) 来创建新的规则集。该新的规则集随后被分配给将作为所述新代的成员的子基因。在一些 具体实现中,上代中的最适应成员(称为精英)也被复制到下代。


【发明内容】

[0008] 根据本发明的一个实施例,一种联网计算机系统,包括一个或多个服务器计算机 以及多个客户端计算机,多个客户端计算机中的每个被指派为不同的类,其中每个类由指 示符的子集定义。每个客户端计算机部分包括存储器、通信端口和处理器。每个客户端服 务器中的存储器可被操作来存储多个基因,每个基因由一组条件以及与客户端计算机被指 派的类相关联的指示符的子集来表征。每个客户端计算机中的通信端口持续周期性地接收 与存储在存储器中的基因相关联的数据。每个客户端计算机中的处理器通过将该客户端计 算机的每个基因所提供的解与周期性接收的和该基因相关联的数据进行比较来评估该基 因的性能特性。由此,每个基因的性能特性利用每个周期性接收的数据而被更新和改变。基 因的性能特性定义其适应度。
[0009] 在一个实施例中,与每个基因相关联的数据是历史交易数据,并且每个基因所提 供的解是由该基因推荐的交易。在一个实施例中,指示符的子集中的至少两个是重叠的指 示符。在一个实施例中,丢弃其适应度在覆盖第一时间段的评估之后被确定为小于第一预 定阈值的基因。在周期性地接收到新数据时,剩余(存留的)基因继续由它们的客户端计 算机评估。
[0010] 在一个实施例中,在第一评估时间段中存留的基因响应于来自服务器计算机的指 令而继续由客户端计算机在一个或多个附加时间段内进行评估。在每个附加时间段期间, 丢弃适应度小于阈值的基因。当服务器请求时,在一个或多个评估时间段中存留的基因被 存储在精英基因池中,以供服务器选择。与多个时间段对应的用于评估基因的适应度的阈 值可以相等或者可以不相等。
[0011] 在一个实施例中,服务器计算机从客户端计算机的精英池中选择基因,并且它们 存储在其存储器中。服务器可以将它从任何类的客户端计算机接收的基因传送回具有相同 类的客户端计算机,以用于覆盖附加时间段的进一步评估。这种客户端计算机在附加时间 段内持续对基因进行进一步评估,并且尝试将存留的基因传送回服务器。被客户端计算机 丢弃的基因被报告给服务器。在一个实施例中,服务器仅仅接收适应度被客户端计算机确 定为等于或大于服务器先前存储的该基因的适应度的基因。
[0012] 在一个实施例中,被客户端计算机初始评估的基因根据客户端计算机存储并执行 的计算机指令而生成。在一个实施例中,服务器在任何给定时间将固定数目的基因存储在 其存储器中。在从客户端计算机接受新基因后,服务器将所接受的基因的适应度值与服务 器先前已经存储在服务器中的该基因的对应适应度值结合。
[0013] 根据本发明的一个实施例,一种求解计算问题的方法,部分包括:存储多个基因, 每个基因由多个条件、指示符的子集以及基因类来表征;持续周期性地接收与多个基因相 关联的数据;以及通过将每个基因所提供的解与周期性接收的与该基因相关联的数据进行 比较,评估该基因的性能特性。由此,每个基因的性能特性利用每个周期性接收的数据而被 更新和改变。基因的性能特性定义其适应度。
[0014] 在一个实施例中,与每个基因相关联的数据是历史交易数据,并且每个基因所提 供的解是由该基因推荐的交易。在一个实施例中,指示符的子集中的至少两个是重叠指示 符。在一个实施例中,丢弃其适应度在第一时间段的评估之后被确定为小于第一预定阈值 的基因。在周期性地接收到新数据时,剩余(存留)基因继续由其客户端计算机进行评估。
[0015] 在一个实施例中,在第一评估时间段中存留的基因响应于指令而继续在一个或多 个附加时间段内被评估。在每个附加时间段期间,丢弃适应度小于阈值的基因。在一个或 多个评估时间段内存留的基因被存储在精英基因池中以供选择。与多个时间段对应的用于 评估基因的适应度的阈值可以相等或者可以不相等。
[0016] 在一个实施例中,服务器计算机从客户端计算机的精英池中选择基因,并且将它 们存储在其存储器中。服务器可以将它从任何类的客户端计算机接收的基因传送回具有相 同类的客户端计算机,以进行覆盖附加时间段的进一步评估。这种客户端计算机在附加时 间段内持续对基因进行进一步评估,并且尝试将存留的基因传送回服务器。被客户端计算 机丢弃的基因被报告给服务器。在一个实施例中,服务器仅仅接收适应度被客户端计算机 确定为等于或大于服务器先前存储的基因的适应度的基因。
[0017] 在一个实施例中,被客户端计算机初始评估的基因根据客户端计算机中存储并执 行的计算机指令而生成。在一个实施例中,在任何给定时间,服务器将固定数目的基因存储 在其存储器中。在从客户端计算机接受新基因后,服务器将所接受的基因的适应度值与服 务器先前已经存储在服务器中的该基因的对应适应度值进行结合。
[0018] 在一个实施例中,丢弃其适应度在覆盖跨P天的第一时间段的评估之后被确定为 小于第一预定阈值的基因。在周期性地接收到新数据时,继续评估在评估中存留的剩余基 因。
[0019] 在一个实施例中,在第一评估时间段中存留的基因响应于指令而继续在一个或多 个附加时间段内被评估。在每个附加时间段期间,丢弃适应度小于阈值的基因。在一个或 多个评估时间段内存留的基因被存储在精英基因池中,以供可能的选择。服务器计算机将 所选择的基因存储在存储器中。与多个时间段对应的用于评估基因的适应度的阈值可以相 等或者可以不相等。
[0020] 在一个实施例中,由服务器计算机存储的所选择的基因可以被仅仅传送回给先前 评估这些基因并且因此所具有的类与它们所接收的基因相同的客户端计算机,以供进行覆 盖附加时间段的进一步评估。在该进一步评估中存留的基因被提供来用于选择。在该进一 步评估中没有存留的基因被丢弃,但是在报告中指出。在一个实施例中,仅仅选择适应度被 确定为等于或大于先前存储的基因的适应度的基因来进行存储。在另一实施例中,由服务 器计算机存储的所选择的基因可以被传送回先前没有评估这些基因的客户端计算机,以进 行进一步评估,只要该客户端的类别与基因类别相同。
[0021] 在一个实施例中,基因根据客户端计算机存储并执行的计算机指令而被生成。在 一个实施例中,在任何给定时间,服务器计算机存储固定数目的所选择的基因。在一个实施 例中,如果服务器计算机的新近选择的基因先前被服务器计算机选择和存储,则将该新近 选择的基因的适应度值与该基因的对应适应度值结合。

【专利附图】

【附图说明】
[0022] 图1是根据本发明的一个实施例的被配置为执行进化算法的网络计算系统的示 例高级方框图。
[0023] 图2示出了根据本发明的一个示例实施例的图1中的客户端计算机系统和服务器 计算机系统的多个功能逻辑块。
[0024] 图3示出了针对给定池的作为评估时间的函数的示例收敛因子;
[0025] 图4示出了根据本发明的一个示例实施例的具有服务器和多个客户端的网络计 算机系统,该多个客户端形成多个不同的类;
[0026] 图5A示出了根据本发明的一个实施例的一个或多个客户端计算机评估多个基因 的性能特性的示例流程图。
[0027] 图5B示出了根据本发明的一个实施例的一个或多个服务器计算机评估多个基因 的性能特性的示例流程图。
[0028] 图6示出了图1中的客户端计算机和服务器计算机的多个组件。

【具体实施方式】
[0029]根据本发明的一个实施例,服务器计算机和多个客户端计算机形成网络计算系 统,该网络计算系统是可扩展的,并且适于使用运行在客户端计算机上的软件应用来持续 评估生成的多个基因的性能特性。每个客户端计算机被指派为多个类之一。每个类由该类 的客户端成员用以创建新基因的指示符的子集表示并且与之相关联。在一些实施例中,两 个或更多类被合并来生产新的基因类,该新的基因类至少由合并的类的指示符子集的并集 表示。由此,在一些实施例中,新类由合并类的指示符子集的并集表示。在其他实施例中, 新类由合并类的指示符子集以及与合并类的指示符子集不同的指示符的新子集的并集表 示。在又一实施例中,两个类的合并还导致增加由可以随机生成的指示符的不同子集表示 的新类。在下面的描述中,服务器计算机被理解为指代任何具有一个或多个CPU或GPU的 数据处理设备,该数据处理设备协调、管理、收集来自一个或多个客户端计算机的数据,控 制或指导该一个或多个客户端计算机的动作。例如,在所具有的CPU包含4个处理内核的 设备中,一个处理内核可以被指派为服务器,而剩余的三个处理内核可以被指派作为客户 端计算机。备选地,例如,客户端计算机可以是个人计算/通信设备,该个人计算/通信设 备被指定为服务器计算机的另一计算设备管理,以及利用从该另一计算设备接收的指令控 制。在一个实施例中,基因是推荐交易选项的虚拟资产交易者(asset trader)。
[0030] 在下面的描述中,应当理解,(i)系统指的是硬件系统、软件系统或结合的硬件/ 软件系统;(ii)网络计算系统指的是多个移动或固定计算机系统,该多个移动或固定计算 机系统彼此无线通信地或使用有线线路进行通信;网络计算系统部分包括多个计算机,多 个计算机中的至少一个是中央或分布式服务器计算机,以及剩余的计算机是客户端计算 机,每个服务器计算机或客户端计算机包括至少一个CPU和存储器。
[0031] 图1是根据本发明的一个实施例的网络计算系统100的示例高级方框图。网络计 算系统100被示出为部分包括N个客户端计算机20以及一个服务器计算机10。应当理解, 服务器10可以是集中式服务器或分布式服务器。客户端计算机可以是膝上型计算机、台式 计算机、蜂窝/VoIP手持通信/计算设备、平板计算机等。
[0032] 宽带连接将客户端计算机(在本文中或者称为客户端)20连接到服务器计算机 (在本文中或者称为服务器)10。这种连接可以是电缆、DSL、WiFi、3G无线、4G无线或者任 何其他现有的或将来的被开发来将CPU连接到因特网的有线或无线标准。可以使用任何 CPU,只要根据本发明并且在下面进一步描述的客户端软件能够在该CPU上运行。
[0033] 在一个实施例中,网络计算系统100实现金融算法/分析,并且计算交易策略。为 此,与上述算法/分析相关联的计算任务被分为多个子任务,多个子任务中的每个被指派 和委派给一个不同的客户端。客户端所实现的计算结果此后被服务器10收集和结合,以得 到目前正处理的任务的解。每个客户端所接收的子任务可以包括相关算法或计算代码、由 该算法实现的数据、以及要通过使用相关算法和数据解决的一个或多个难题/问题。相应 地,在一些示例中,服务器10接收并结合布置在客户端中的CPU所提供的部分解,以生成针 对所请求的计算问题的解。当网络计算系统10正在处理的计算任务包括金融算法时,通过 综合客户端提供的部分解而实现的最终结果可以包括关于一个或多个资产的交易的建议。 在其他示例中,客户端所执行的任务彼此独立。相应地,在这些实施例中,虽然客户端所实 现的结果没有彼此结合,但是服务器利用池来结合它从客户端接收到的结果以提出解。尽 管参照使用基因来针对金融资产(例如,股票、指数、货币等)提出建议提供下面的描述,但 是应当理解,本发明的实施例同样适用于发现任何其他计算问题的解,如下进一步的描述。
[0034]进化算法的定标(scaling)可以在二个维度进行,即利用池尺寸和/或评估。在 进化算法中,池或基因群集越大,基因的多样性越大。因此,发现较为适应的基因的可能性 随着池尺寸的增加而增加。为此,基因池可以分布在多个客户端上。每个客户端评估其基 因池,并且将最适应的基因传送到服务器,如下进一步。
[0035]根据本发明的与网络相连的每个客户端接收或下载客户端软件。客户端软件自动 生成多个基因,基因的数目可以根据存储器尺寸和客户端的CPU处理能力改变。例如,在一 个实施例中,客户端可以具有1000个用于评估的基因。
[0036]基因被假设为是虚拟交易者,该虚拟交易者被给予假定钱数来使用历史数据进行 交易。这些交易根据规则集执行,该规则集定义基因并由此提示该基因买入、卖出、保持其 位置或退出其位置。规则是其后跟随动作的条件列表,该动作可以是例如买入、卖出、退出 或保持。规则还可以被设计为包含盈利目标以及止损目标,由此使得退出动作变为多余。当 没有触发基因中的规则时发生保持动作,因此,基因有效地保持其当前位置。条件是基于指 示符的条件的连接列表(conjunction list)。指示符是可以被馈送到比如最低价格变动 (tick)或接近价格的条件的系统输入。指示符还可以自省来指示基因在任何给定时候的适 应度或其他属性。
[0037]根据本发明的一个示例实施例,下面的代码在条件、指示符以及基因所采取的动 作方面定义该基因:
[0038] if (PositionProfit >=2% and ! (tick = (-54/10000) % prev tick and MACD is negative)and ! (tick = (-119/10000) % prev tick and Position is long))and ! (ADX x 100 <= 5052))
[0039] then SELL
[0040]其中,"and"表示逻辑"与"操作," !"表示逻辑"非"操作,"tick"、"MACD"和"ADX" 是股票指示符,"SELL"表示卖出动作,以及"PositionProfit"表示基因的曲线位置。
[0041]基因在股票交易日被评估。股票交易日是针对特定股票的历史数据的日价值。在 给定股票交易日的特定间隔,例如,每5分钟,通过将指示符的当前值指派到每个规则的条 件中,评估基因的规则。如果针对指示符值,基因的条件都不为真,则该基因保持其先前位 置。如果该基因没有位置,则它不执行动作。基因可以被设计为采取其满足条件的第一规 则的动作。如果例如该规则的动作是卖出,则所采取的由该基因提议的交易是卖出。在另 一示例中,引发退出动作的规则可以击败所有其他表决(vote),并且迫使退出该基因的当 前位置。
[0042] 根据本发明的一个实施例,基因的适应度或成功是通过近似以及使用大量数据而 被确定的。用于评估基因的模型因此可以是部分的并且覆盖较短的时间跨度,同时提高针 对更多的股票交易日评估基因时的准确性以及盈利体验。为了建立基因的适应度的初始近 似,如下进一步,首先针对可用数据的子集来评估基因的适应度。已经进行的基因适应度评 估所针对的时间段在本文中被称为基因的成熟年龄,在本文中也被称为基因的年龄。达到 预定年龄的基因能够复制下代基因并对下代基因做出贡献。每个这种基因可以继续存活并 待在基因池中,只要其累积适应度满足预定条件。
[0043] 用于评估基因的适应度的历史数据非常大。因此,即使采用当今的高处理能力及 大存储容量计算机,在单个机器上在合理的时间内实现优异结果通常是不可行的。大的基 因池还要求大存储器以及高处理能力。根据本发明的一个实施例,定标被使用来在合适的 时间段内实现高质量的评估结果。定标操作在两个维度内执行,即,在池尺寸内以及在对相 同基因的评估内,以生成更多种类的基因池,从而增加发现更适应的基因的可能性。因此, 根据本发明的一个实施例,在多个用于评估的客户端上分发基因池。每个客户端继续使用 该客户端持续周期性接收的历史数据来评估其基因池。换言之,继续针对客户端周期性且 持续接收的附加历史数据来评估基因的性能(在本文中也称为基因的适应度)。满足一个 或多个预定条件的基因被传送到服务器。
[0044] 根据本发明的另一实施例,基因分发还被用来增加针对相同基因进行的评估的速 度。为此,服务器接收到的但还没达到特定成熟年龄或还未满足一个或多个预定条件的基 因,可以被从服务器传送回多个客户端以供进一步评估。客户端针对基因实现的评估结果 (或者在本文中称为部分评估)被传送回服务器。服务器将基因的部分评估结果与在将基 因传送到客户端时的该基因的适应度值合并,以得到该基因的适应度测量值。例如,假设基 因的年龄是500个评估日,并且该基因被从服务器传送到例如两个客户端,每个客户端被 指示在附加的100天内评估该基因。相应地,每个客户端还在该附加的100个股票交易日内 评估该基因,并且将其评估结果报告给服务器。这两个结果与基因在被传送到两个客户端 时的该基因的适应度测量值结合。结合后的结果表示针对700天评估的该基因的适应度。 换言之,根据这个示例,分布式系统针对每个客户端仅仅使用100个不同的评估日,将基因 的成熟年龄从500天增加到700天。根据本发明,分布式系统因此在评估其基因时是可高 度扩展的。
[0045] 有利地,根据本发明,客户端能够在它们的本地复制时使用在服务器中存储的基 因,从而提高了它们的基因的质量。每个客户端是独立的进化设备,不仅评估其池中的基 因,而且创建新代基因并且在本地推进进化过程。由于客户端利用它们自有的本地进化过 程来推进,因此它们的处理能力不会浪费,即使它们不是与服务器持续通信。一旦重新建立 与服务器间的通信,客户端可以将它们的最适应基因传送到服务器,并且从服务器接收基 因来进行进一步评估。
[0046] 每个客户端计算机具有用于访问一个或多个数据馈送服务器(通常使用参考标 记30示出)的通信端口,以获得解决目前正处理的问题所需要的信息。当推荐比如股票、 商品、货币等的资产的交易策略时,数据馈送服务器所提供的信息包括覆盖指定时间段的 资产值。或者,尽管没有示出,解决目前正处理的问题所需要的信息可以经由服务器10,从 数据馈送服务器30提供给客户端20。尽管服务器10在图1中被示出为单个中央服务器, 但是应当理解,服务器10可以是分布式服务器。
[0047]图2示出了每个客户端20和服务器10的多个逻辑块。如图所示,每个客户端20 被示出为包括由在该客户端上运行的独立应用软件生成的基因池24。下面,每个基因被假 设为是金融资产(例如,股票)的交易者,但是应当理解,基因通常适合于发现任何其他计 算问题的解。使用评估块22,在跨P个交易日(例如,600天)的第一预定时间段内评估客 户端的每个基因的性能特性。通过比较每个基因的交易建议并且确定在预定时间段内该基 因的对应返回率,执行针对该基因的评估。基因的性能特性在本文中也称为基因的适应度。 客户端20接收历史交易数据,以确定其基因的适应度。
[0048]一旦完成对其所有基因的性能评估,每个客户端计算机选择并将其性能最好的基 因(存留基因)放入精英池26中。在一个实施例中,存留基因可以是利用它们的建议的返 回率确定的基因池中的性能排名前5 %的基因。在其他实施例中,存留基因是适应度超过预 定阈值的基因。无法满足针对适应度的所要求的条件的剩余基因不会存留,并且被丢弃。每 个客户端继续使用该客户端继续周期性接收的历史交易数据来评估其精英(存留)基因。
[0049] 在一些实施例中,当在最初P个交易日内对基因进行初始评估之后,还在多个(S 个)附加时间段内对存留基因进行评估,每个附加时间段的跨度为Q个其他交易日。例如, 在最初600个交易日期间的对基因的初始评估之后,在两个附加时间段内对每个存留基因 进一步进行评估,每个附加时间段的跨度为600个更多的交易日。因此,在这些示例中,在 1800个交易日内评估每个基因。这些多个时间段可以是非重叠的连续时间段。此外,每个 附加时间段的交易日的数目,即,Q,可以等于或者可以不等于初始评估时间段的交易日的 数目,g卩,P。每个这种附加时间段中的评估可能导致丢失在先前评估中已经存留的基因。 例如,如果已经在例如600天的初始评估时间段中存留的基因在跨度例如1200天的交易日 期间的适应度小于预定阈值水平,则它可能不会在例如600天的第二时间段期间执行的评 估中存留。丢弃在精英池26中存储的无法在这些附加评估时间段中存留的基因。被要求 通过初始评估时间段的适应度阈值水平可以与被要求来通过后续评估的适应度阈值水平 相同或者可以不相同。
[0050] 在初始评估时间段和后续评估时间段的适应度条件下存留的基因被保持存储在 精英池26中,并且可供基因选择块28用于可能的选择以及被传送到服务器10。服务器10 从客户端计算机接收的基因被存储在服务器10的服务器基因池14中。基因选择块28将 在基因的相关联的精英池26中的基因的适应度与池14中的性能最差的基因的适应度进行 比较。在一个实施例中,服务器10仅仅接受由客户端计算机确定的适应度至少等于或好于 基因池14中存储的该基因的适应度的基因。服务器10因此向客户端计算机告知其性能最 差的基因的适应度,以使得基因选择模块28能够进行该比较并且识别出服务器10将接受 的基因。例如,服务器10可以向基因选择模块28传送查询,该查询指示"我的最差基因的 适应度是X,你有性能更好的基因吗?"。基因选择模块28可以通过讲述"我具有10个这 种更好的基因"进行应答,并且尝试将这些基因传送给服务器。在一个实施例中,基因池14 具有固定尺寸。因此,为了接受新基因,服务器10丢弃在其池14中存储的基因中的一个基 因。在一个实施例中,池14的初始群集根据在客户端的汇聚式(collective)精英池中初 始存储的所有基因中的最适应的基因形成。继续这个过程,直到池14达到其满容量,该满 容量可以动态改变。在另一实施例中,为了形成其初始群体,池14继续接受在精英池中存 储的基因,直到池14达到其满容量。
[0051]基因接受块12被配置为在从客户端到达的基因被添加到服务器池358之前,确保 该基因所具有的适应度比已经存储在服务器池14中存储的基因更好。在每个所接受的基 因被添加到服务器池14之前,基因接受块12利用标识符对该基因加戳记并且执行多个空 间清理操作。
[0052] 精英池26中的基因被允许复制。为此,基因复制块30随机选择并结合两个或更 多基因,即,通过混合用于创建父基因的规则。随后利用新近创建的基因(子基因)以及位 于精英池中的基因重新填充池24。旧的基因池被丢弃。继续如上对池24中的新的群体进 行评估。
[0053] 在一些实施例中,服务器10将池24中所存储的每个成熟年龄(S卩,已经进行的基 因适应度的评估所针对的交易日的总和)小于预定值的基因传送回一组所选择的客户端 计算机,以在跨度为W个交易日的附加时间段内进行进一步的适应度评估。在附加时间段 内评估出的适应度无法满足一个或多个预定条件(即,它们的适应度小于所要求的阈值) 的基因被客户端计算机丢弃。在附加时间段内评估出的适应度满足一个或多个预定条件的 基因被传送回服务器10,以供存储在池14中。客户端计算机将所丢弃的基因报告给服务 器。
[0054] 在一些实施例中,为了增加在池14中存储的基因的年龄,服务器10将该基因传送 给多个客户端计算机,每个客户端计算机被指示在不同的交易日集内对基因执行进一步评 估。例如,假设4个客户端计算机被选择对在池14中存储的基因的适应度进行进一步评估。 由此,第一个被选择的客户端计算机被指示来在第一时间段内对该基因进行评估;第二个 被选择的客户端计算机被指示来在第二时间段内对该基因进行评估;第三个被选择的客户 端计算机被指示来在第三时间段内对该基因进行评估;以及第四个被选择的客户端计算机 被指示来在第四时间段内对该基因进行评估。应当理解,第一时间段、第二时间段、第三时 间段和第四时间段可以是彼此重叠或者彼此不重叠的不同时间段。然后,服务器从选择的 客户端计算机接收适应度值,并且将这些适应度与该基因的先前适应度结合(如同在将该 基因传送回客户端之前由服务器维护的),以得到该基因的适应度值的更新值。因此,根据 本发明,通过在并行操作的多个客户端计算机之间分发评估任务,提高了基因的老化速度。 在一个实施例中,先前适应度值和新适应度值的平均值被用于计算被服务器传送到客户端 来进行进一步评估的基因的新适应度值。由于服务器中的基因被传送到若干客户端来进行 评估,因此如果一个或多个客户端出现故障,则仅仅基因的部分评估结果丢失。
[0055] 可以执行服务器池基因的备份/恢复过程,以确保在服务器出现故障的情况下的 连续性。此外,因为客户端被配置为具有被指示来进行评估的服务器基因的副本,并且因为 客户端在它们的进化过程中是自给自足的,所以即使当服务器出现故障或者以其他方式掉 线时,客户端可以继续对它们的基因进行评估,并且推进进化过程。当服务器恢复在线时, 甚至可以根据在客户端中存储的基因重新创建服务器池。因此,根据本发明的实施例,网络 计算系统不会丢失对基因的先前处理的历史记录。
[0056]数据馈送服务器50提供更广范围的已交易资本(例如,股票、债券、商品、货币等) 以及它们的衍生物(比如,期权、期货等)的历史金融数据。数据馈送服务器50可以与服 务器20或者客户端直接进行交互。数据馈送服务器还可以提供对多个技术分析工具的访 问,比如金融指示符 MAO)、Bollinger Band、ADX、RSI 等。
[0057] 随着时间推移,服务器池中的基因可以开始进行类似的行为,并且以相关的方式 使用相同的指示符集来得到它们的建议。这指示对更适应的基因的搜索正在最初用于定义 基因的一组可识别条件和指示符上收敛。在收敛发生时,可以被识别的任何给定池中的更 适应的基因的比率开始减少。换言之,随着基因老化,它们的适应度增加,由此导致基因的 更高的收敛因子。收敛可以达到一个这样的点,在该点处尽管继续评估基因但是存留基因 池保持相对不变。因此,识别更适应基因的收敛可以有利地实现基因池的多样性。在对更 适应的基因的继续搜索中,收敛由此可以表示局部最佳点,而不是最佳点。
[0058] 图3示出了针对给定池的作为评估时间的函数的示例收敛因子。可以看出,随着 评估时间增加,收敛率渐进地接近恒定值Q。多种不同的技术可以用于测量基因池的收敛性 和均匀性。下面的表达式(1)提供了基因池的收敛因子的一种测量。
[0059]

【权利要求】
1. 一种服务器计算机系统,包括: 存储器,是所述服务器计算机系统可访问的并且存储有服务器基因池,所述服务器基 因池具有多个个体中的一些个体,所述多个个体中的每个个体标识多个指示符中的对应指 示符子集、并且还标识依赖于所述指示符子集的至少一个动作,并非所有指示符子集都是 相同的; 通信端口,所述服务器计算机系统通过所述通信端口从多个客户端计算机中的客户端 计算机接收个体,所述多个客户端计算机中的每个客户端计算机被指派为一个类,每个所 述类与多个指示符中的相应指示符子集相关联,并且所述类中的至少一个类包括不止一个 客户端计算机,每个接收到的个体是所述多个个体之一、并且与相关联的接收到的适应度 值相结合地被接收;以及 处理器,被配置用于: 接受接收到的个体中的至少一些个体,以及 向给定客户端计算机传输被接受的个体的第一子集中的每个给定个体以用于进一步 评估,所述给定客户端计算机是所述服务器计算机从其接收所述给定个体的类的成员。
2. 根据权利要求1所述的服务器计算机系统,其中所述服务器计算机系统从所述客户 端计算机接收的每个所述个体先前已经关于第一数量的历史交易数据而被评估、并且被发 现具有超过预定阈值适应度的适应度。
3. 根据权利要求2所述的服务器计算机系统,其中所述处理在接受接收到的个体中的 至少一些个体时: 确定是否每个接收到的个体都已被存储在所述服务器基因池中;以及 丢弃具有低于预定服务器最小适应度的更新适应度值的所有接收到的个体, 其中每个接收到的个体的所述更新适应度值是尚未被存储在所述服务器基因池中的 个体的所述个体的接收到的适应度值, 并且其中对于已经被存储在所述服务器基因池中的个体,每个接收到的个体的所述更 新适应度值是所述个体的接收到的适应度值与所述服务器基因池中先前针对所述个体而 存储的适应度值的结合。
4. 根据权利要求3所述的服务器计算机系统,其中所述预定服务器最小适应度取决于 所述服务器基因池中的最小适应个体的适应度。
5. 根据权利要求3所述的服务器计算机系统,其中所述处理器进一步被配置为在所述 服务器基因池中存储接受的个体中的至少一些个体。
6. 根据权利要求1所述的服务器计算机系统,其中所述处理器进一步被配置为确定所 述类中的第一类是否满足预定收敛条件,如果是: 将所述第一类与所述类中的第二类合并以形成合并类,被指派给所述第一类的所述客 户端计算机中的至少一些被重新指派给所述合并类;以及 将已经被接受并且从是所述第一类的成员的客户端计算机接收到的个体传输给是所 述合并类的成员的客户端计算机以用于进一步评估。
7. 根据权利要求6所述的服务器计算机系统,其中所述第二类也被所述服务器计算机 系统确定为满足预定收敛条件,其中所述第一类与所述第二类的合并还包括将被重新指派 的、指派给所述第二类的所述客户端计算机中的至少一些客户端计算机系统重新指派给所 述合并类,并且其中所述处理器进一步被配置为向是所述合并类的成员的客户端传输已经 被接受、并且从是所述第二类的成员的客户端计算机接收的个体以用于进一步评估。
8. 根据权利要求6所述的服务器计算机系统,其中所述合并类与先前与所述第一类相 关联的指示符子集和先前与所述第二类相关联的指示符子集相关联。
9. 根据权利要求1所述的服务器计算机系统,其中通过所述通信端口,在接收个体时, 所述服务器计算机系统从所述客户端计算机中的特定客户端计算机接收所述个体中的不 止一个个体。
10. 根据权利要求1所述的服务器计算机系统,其中所述处理器在传输以用于进一步 评估时,向所述客户端计算机中的特定客户端计算机传输不止一个个体。
11. 根据权利要求1所述的服务器计算机系统,其中所述处理器向其传输所述给定个 体以用于进一步评估的所述给定客户端计算机不同于所述服务器计算机从其接收所述给 定个体的客户算计算机。
12. -种服务器计算机系统,包括: 存储器,是所述服务器计算机系统可访问的并且存储有服务器基因池,所述服务器基 因池具有多个个体中的一些个体,所述多个个体中的每个个体标识多个指示符中的对应指 示符子集、并且还标识依赖于所述指示符子集的至少一个动作,并非所有指示符子集都是 相同的; 通信端口,所述服务器计算机系统通过所述通信端口从多个客户端计算机中的客户端 计算机接收个体,所述多个客户端计算机中的每个客户端计算机被指派为一个类,每个所 述类与多个指示符中的相应指示符子集相关联,并且所述类中的至少一个类包括不止一个 客户端计算机;以及 处理器,被配置用于: 接受接收到的个体中的至少一些个体,以及 向所述客户端计算机传输被接受的个体的第一子集中的每个个体以用于进一步评估, 其中被传输以用于进一步评估的每个给定个体被传输到群组的成员以用于进一步评 估,所述群组包括: 是所述服务器计算机系统从其接收所述给定个体的相同类的成员的客户端计算机;以 及 是至少部分给予所述服务器计算机系统从其接收所述给定个体的类而导出的类的成 员的客户端计算机。
13. 根据权利要求12所述的服务器计算机系统,其中所述处理器在接受接收到的个体 中的至少一些个体时: 确定是否每个接收到的个体都已被存储在所述服务器基因池中;以及 丢弃具有低于预定服务器最小适应度的更新适应度值的所有接收到的个体,其中每个 接收到的个体的所述更新适应度值是: 对于尚未存在于所述服务器基因池中的个体,是由所述服务器计算机系统与接收到的 所述个体相结合地接收到的适应度值;以及 对于已经存在于所述服务器基因池中的个体,是由所述服务器计算机系统接收到的适 应度值与先前与所述服务器基因池中的所述个体相关联的适应度值的结合。
14. 根据权利要求13所述的服务器计算机系统,其中所述预定服务器最小适应度取决 于所述服务器基因池中的最小适应个体的适应度。
15. 根据权利要求13所述的服务器计算机系统,其中所述处理器进一步被配置为在所 述服务器基因池中存储接受的个体中的至少一些个体。
16. 根据权利要求12所述的服务器计算机系统,其中所述处理器进一步被配置为确定 所述类中的第一类是否满足预定收敛条件,如果是,则将所述第一类与所述类中的第二类 合并以形成合并类,被指派给所述第一类的所述客户端计算机中的至少一些被重新指派给 所述合并类; 其中被传输以用于进一步评估的所述个体中的第一个体由来自所述第一类的所述服 务器计算机系统接收, 并且其中所述第一个体被传输给所述合并类中的第一客户端计算机以用于进一步评 估。
17. 根据权利要求16所述的服务器计算机系统,其中所述第一客户端计算机在合并之 前是所述第一类的成员。
18. 根据权利要求16所述的服务器计算机系统,其中所述第一客户端计算机在合并之 前是所述第二类的成员。
19. 根据权利要求16所述的服务器计算机系统,其中所述第二类也被所述服务器计算 机系统确定为满足预定收敛条件, 其中所述第一类与所述第二类的合并还包括将被指派给所述第二类的所述客户端计 算机中的至少一些客户端计算机系统重新指派给所述合并类, 其中被传输以用于进一步评估的所述个体中的第二个体由来自所述第二类的所述服 务器计算机接收, 并且其中所述第二个体被传输给所述合并类中的第二客户端计算机以用于进一步评 估。
20. 根据权利要求16所述的服务器计算机系统,其中所述合并类与先前与所述第一类 相关联的指示符子集和先前与所述第二类相关联的指示符子集的并集相关联。
21. 根据权利要求12所述的服务器计算机系统,其中被传输以用于进一步评估的所述 个体中的一个个体还被传输给所述群组中的附加成员以用于进一步评估。
22. 根据权利要求12所述的服务器计算机系统,其中所述服务器计算机系统从所述客 户端计算机接收的每个个体先前关于第一数量的历史交易数据而被评估、并且被发现具有 超过预定阈值适应度的适应度。
23. 根据权利要求22所述的服务器计算机系统,其中向其传输所述个体中的特定个体 以用于进一步评估的特定客户端计算机: 关于第二数量的历史交易数据而进一步评估所述特定特体; 在所述进一步评估之后,确定所述特定个体是否具有超过预定阈值适应度的适应度; 以及 仅在是的情况下,将所述特定个体传回所述服务器计算机系统。
24. 根据权利要求12所述的服务器计算机系统,其中通过所述通信端口,在接收所述 个体时,所述服务器计算机系统从所述客户端计算机中的特定客户端计算机接收所述个体 中的不止一个个体。
25. 根据权利要求12所述的服务器计算机系统,其中所述处理器在传输以用于进一步 评估时,向所述客户端计算机中的特定客户端计算机传输不止一个个体。
26. 根据权利要求12所述的服务器计算机系统,其中所述处理器向其传输所述给定个 体以用于进一步评估的所述给定客户端计算机不同于所述服务器计算机从其接收所述给 定个体的客户算计算机。
27. -种用于与多个客户端计算机结合使用的服务器计算机系统,每个客户端计算机 被指派给相应的类,所述服务器计算机系统包括: 存储器,是所述服务器计算机系统可访问的并且存储有服务器基因池,所述服务器基 因池具有多个个体,每个个体标识多个指示符以及依赖于所述指示符的至少一个动作,每 个所述类与多个指示符中的相应指示符子集相关联,并非所有子集都是相同的; 通信端口,所述服务器计算机系统通过所述通信端口从所述客户端计算机接收个体, 包括全部从所述类中的第一类接收的所述个体的第一子集;以及 处理器,被配置用于: 确定所述第一类是否满足预定收敛条件,如果是,则将所述第一类与所述类中的第二 类合并以形成合并类,被指派给所述第一类的所述客户端计算机中的至少一些被重新指派 给所述合并类,以及 向所述客户端计算机传输接收到的个体的所述第一子集中的每个个体以用于进一步 评估; 其中被传输以用于进一步评估的所述第一子集中的每个个体被传输到如下客户端计 算机以用于进一步评估: 如果所述第一类不满足所述预定收敛条件,则是所述第一类中的客户端计算机,以及 如果所述第一类满足所述预定收敛条件,则是所述合并类中的客户端计算机。
28. 根据权利要求27所述的服务器计算机系统,其中所述处理器进一步被配置为: 确定是否每个接收到的个体都已被存储在所述服务器基因池中; 丢弃具有低于预定服务器最小适应度的更新适应度值的所有接收到的个体,其中每个 接收到的个体的所述更新适应度值是: 对于尚未存在于所述服务器基因池中的个体,是由所述服务器计算机系统与接收到的 所述个体相结合地接收到的适应度值;以及 对于已经存在于所述服务器基因池中的个体,是由所述服务器计算机系统接收到的适 应度值与先前与所述服务器基因池中的所述个体相关联的适应度值的结合。
29. 根据权利要求28所述的服务器计算机系统,其中所述预定服务器最小适应度取决 于所述服务器基因池中的最小适应个体的适应度。
30. 根据权利要求28所述的服务器计算机系统,其中所述处理器进一步被配置为在所 述服务器基因池中存储接受的个体中的至少一些个体。
31. 根据权利要求27所述的服务器计算机系统,其中由所述服务器计算机系统通过所 述通信端口接收的所述个体还包括全部从所述第二类接收的个体的第二子集, 其中所述第二类也被所述服务器计算机系统确定为满足预定收敛条件, 其中所述第一类与所述第二类的合并还包括将被指派给所述第二类的所述客户端计 算机中的至少一些客户端计算机系统重新指派给所述合并类, 其中所述处理器进一步被配置为将接收到的个体的所述第二子集中的每个个体传输 给所述合并类的客户端计算机以用于进一步评估。
32. 根据权利要求27所述的服务器计算机系统,其中所述合并类与先前与所述第一类 相关联的指示符子集和先前与所述第二类相关联的指示符子集的并集相关联。
33. 根据权利要求27所述的服务器计算机系统,和其中被传输以用于进一步评估的所 述个体中的一个个体被传输给以下客户端计算机以用于进一步评估: 如果所述第一类不满足所述预定收敛条件,则是所述第一类中的附加客户端计算机, 以及 如果所述第一类满足所述预定收敛条件,则是所述合并类中的附加客户端计算机。
【文档编号】G06F15/173GK104317771SQ201410529310
【公开日】2015年1月28日 申请日期:2010年4月28日 优先权日:2009年4月28日
【发明者】B·霍德雅特, H·沙尔扎德 申请人:遗传融资(巴巴多斯)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1