一种在可移动计算设备实现量化交易的方法及系统与流程

文档序号:12127258阅读:311来源:国知局
一种在可移动计算设备实现量化交易的方法及系统与流程

本发明涉及量化交易相关的信息处理领域,特别是涉及一种在可移动计算设备实现量化交易的方法及系统。本文中,使用者是指通过量化交易系统构建并使用量化交易策略对各类金融投资标的进行历史回测、模拟盘交易或者实盘交易的交易者,包括:自然人、外接程序等。



背景技术:

量化交易,是指在股票、债券、期货、期权、外汇等金融投资领域中,为减少投资者主观情绪对投资判断带来的影响,而将交易策略系统化、模型化的投资交易方式。在量化交易的框架下,交易策略代表使用者的交易逻辑,它由一系列的可以量化的交易信号以及与之相对应的交易动作组成。其中,交易信号是指使用者基于市场行情、技术指标或者波动理论等推衍得出的可模型化的信号;交易动作是指在交易信号触发后,量化交易系统为使用者实施的具体操作动作。交易动作可以是简单的交易信号提醒,在接到提醒后由使用者手动完成交易操作,包括:下单、撤单等;交易动作也可以是具体的交易操作,即:将交易操作完全交由量化交易系统自动地执行。相较于主观交易,量化交易由于交易策略的定量化而更为科学、客观,并且可令投资收益更加稳定。量化交易是投资行业中非常重要的一种投资交易模式。

量化交易系统,是指实现量化交易功能的软件平台。目前,国内外已有多家供应商提供量化交易系统供使用者选用。使用者可以在量化交易系统中通过编程语言输入自己的交易策略,然后利用系统提供的指令接口与数据接口对该交易策略进行历史回测或者开展模拟盘、实盘交易等。其中一些量化交易系统为了进一步提升使用者的用户体验,还尝试将大量基础函数打包成为更为精简、易用的编程语言,如文华财经开发的麦语言等。

随着智能手机、平板电脑等可移动计算设备的普及,利用可移动计算设备随时随地进行量化交易的需求变得迫切。然而业内现有的各类量化交易系统虽然提供了丰富的量化交易功能,但普遍对运行设备的计算能力有较高要求,因此很难应用于计算能力较弱、电源容量有限的可移动计算设备。此外,现有系统普遍需要使用者通过编程语言输入交易策略,而可移动计算设备往往不具备输入键盘并不适合大量输入、修改程序代码,这也同样给现有系统应用于可移动计算设备带来了障碍。



技术实现要素:

本发明所要解决的技术问题是提供一种在可移动计算设备实现量化交易的方法及系统,以降低在进行量化交易的过程中可移动计算设备的计算压力,进而降低可移动计算设备的能量消耗。本发明的另一个目的在于简化使用者输入操作,以降低量化交易过程对键盘的依赖,提升使用者通过可移动计算设备进行量化交易的用户体验。

为了解决上述技术问题,本发明提供了一种在可移动计算设备实现量化交易的方法,包括:

位于第一计算设备的交互模块进行以下步骤:接收使用者输入的基本操作动作,所述基本操作动作包括:组件选用删除、组件参数设置、组件组合连接、策略存储请求;若接收到的基本操作动作为组件选用删除、和/或组件参数设置、和/或组件组合连接,则在已存储的策略构造信息的基础上,存储经该基本操作动作更新后的策略构造信息;所述策略构造信息 是指交易策略的构成信息,包括:交易策略选用的组件、组件的参数以及组件之间的组合连接情况;若接收到的基本操作动作为策略存储请求,则生成与已存储的策略构造信息对应的策略文本;然后,向位于第二计算设备的策略运行系统传递策略存储请求并传递该策略文本。

位于第二计算设备的策略运行系统进行以下步骤:在接收到交互模块传递的策略存储请求后,存储由交互模块传递来的策略文本;判断策略运行系统能否根据传递来的策略文本生成可执行的策略代码模块;若不能,则标记该策略为不可执行策略;若能,则生成并存储与该策略文本对应的可执行的策略代码模块以备对该策略实施运行,并标记该策略为可执行策略。

优选的,所述第一计算设备是一种可移动计算设备,包括:智能手机、平板电脑、手提电脑、掌上电脑、掌上游戏机、智能穿戴设备。

优选的,所述策略运行系统对策略实施的运行包括:历史回测、和/或模拟盘交易、和/或实盘交易。

优选的,所述步骤还包括:当交互模块接收到的基本操作动作为策略存储请求时,判断位于第二计算设备的策略运行系统能否根据已存储的策略构造信息生成可执行的策略代码模块,并将判断结果信息添加到由该策略构造信息生成的策略文本中;该判断结果信息用于策略运行系统对该策略的可执行性做出判断。

优选的,所述基本操作动作还包括:策略修改请求,并进行以下步骤:若交互模块接收到的基本操作动作为策略修改请求,则交互模块向策略运行系统传递策略修改请求;策略运行系统接收到来自交互模块的策略修改请求后,向交互模块传递请求策略的策略文本;交互模块接收到请求策略的策略文本后,生成与该策略文本对应的图形化交易策略以向使用者呈现策略构造信息;所述图形化交易策略是指策略构造信息的呈现,包括:文字、和/或图像、和/或声音的呈现形式;与此同时,生成与传递来的策略文本对应的策略构造信息,用于更新、存储经使用者修改后的策略构造信息。

优选的,所述基本操作动作还包括:策略运行请求,并进行以下步骤:若交互模块接收到的基本操作动作为策略运行请求,则判断请求策略是否为可执行策略;若是,则交互模块向策略运行系统传递策略运行请求;策略运行系统接收到来自交互模块的策略运行请求后,通过该策略对应的可执行的策略代码模块对该策略实施运行。

本发明还提供了一种在可移动计算设备实现量化交易的方法,包括:位于第一计算设备的交互模块进行以下步骤:接收使用者输入的基本操作动作,所述基本操作动作包括:组件选用删除、组件参数设置、组件组合连接、策略存储请求;若接收到的基本操作动作为组件选用删除、和/或组件参数设置、和/或组件组合连接,则在已存储的策略构造信息的基础上,存储经该基本操作动作更新后的策略构造信息;所述策略构造信息是指交易策略的构成信息,包括:交易策略选用的组件、组件的参数以及组件之间的组合连接情况;若接收到的基本操作动作为策略存储请求,则判断位于第二计算设备的策略运行系统能否根据已存储的策略构造信息生成可执行的策略代码模块;若能,则生成与已存储的策略构造信息对应的策略文本;然后,向位于第二计算设备的策略运行系统传递策略存储请求并传递该策略文本。

位于第二计算设备的策略运行系统进行以下步骤:在接收到交互模块传递的策略存储请求后,存储由交互模块传递来的策略文本;生成并存储与该策略文本对应的可执行的策略代码模块以备对该策略实施运行。

优选的,所述第一计算设备是一种可移动计算设备,包括:智能手机、平板电脑、手提电脑、掌上电脑、掌上游戏机、智能穿戴设备。

优选的,所述策略运行系统对策略实施的运行包括:历史回测、和/或模拟盘交易、和/或实盘交易。

优选的,所述基本操作动作还包括:策略修改请求,并进行以下步骤:若交互模块接收到的基本操作动作为策略修改请求,则交互模块向策略运行系统传递策略修改请求;策略运行系统接收到来自交互模块的策略修改请求后,向交互模块传递请求策略的策略文本;交互模块接收到请求策略的策略文本后,生成与该策略文本对应的图形化交易策略以向使用者呈现策略构造信息;所述图形化交易策略是指策略构造信息的呈现,包括:文字、和/或图像、和/或声音的呈现形式;与此同时,生成与传递来的策略文本对应的策略构造信息,用于更新、存储经使用者修改后的策略构造信息。

优选的,所述基本操作动作还包括:策略运行请求,并进行以下步骤:若交互模块接收到的基本操作动作为策略运行请求,则交互模块向策略运行系统传递策略运行请求;策略运行系统接收到来自交互模块的策略运行请求后,通过请求策略对应的可执行的策略代码模块对该策略实施运行。

本发明还提供了一种在可移动计算设备实现量化交易的系统,包括:交互模块与策略运行系统;

交互模块位于第一计算设备,包括:第一存储单元、交互操作单元、策略文本生成单元、第一输入输出单元;第一存储单元,用于存储策略构造信息、策略文本;所述策略构造信息是指交易策略的构成信息,包括:交易策略选用的组件、组件的参数以及组件之间的组合连接情况;所述策略文本是指策略构造信息对应的字符文本;交互操作单元,用于接收使用者输入的基本操作动作、呈现图形化交易策略,以及用于判断已存储策略的可执行性;所述基本操作动作包括:组件选用删除、组件参数设置、组件组合连接、策略存储请求、策略修改请求、策略运行请求、策略删除请求、策略删除请求;所述图形化交易策略是指策略构造信息的呈现,包括:文字、和/或图像、和/或声音的呈现形式;策略文本生成单元,用于生成与已存储的策略构造信息对应的策略文本;第一输入输出单元,用于向位于第二计算设备的策略运行系统传递信息,以及用于接收并解析策略运行系统向交互模块传递来的信息。

策略运行系统位于第二计算设备,包括:判断单元、可执行代码生成单元、第二存储单元、策略运行单元、第二输入输出单元;判断单元,用于判断策略运行系统能否根据输入的策略文本来生成可执行的策略代码模块;若不能,则标记该策略为不可执行策略;若能,则将输入的策略文本传递至可执行代码生成单元,并标记该策略为可执行策略;可执行代码生成单元,用于根据输入的策略文本来生成可执行的策略代码模块,并传递生成的可执行的策略代码模块至第二存储单元进行存储;第二存储单元,用于存储策略文本、可执行的策略代码模块、以及策略是否可执行的信息;策略运行单元,用于对存储的可执行的策略代码模块 实施运行;第二输入输出单元,用于向位于第一计算设备的交互模块传递信息,以及用于接收并解析交互模块向策略运行系统传递来的信息。

优选的,所述第一计算设备是一种可移动计算设备,包括:智能手机、平板电脑、手提电脑、掌上电脑、掌上游戏机、智能穿戴设备。

优选的,所述交互模块还包括:预判断单元,用于判断位于第二计算设备的策略运行系统能否根据已存储的策略构造信息生成可执行的策略代码模块,并将判断结果信息添加到由该策略构造信息生成的策略文本中;该判断结果信息用于策略运行系统对该策略的可执行性做出判断。

本发明还提供了一种在可移动计算设备实现量化交易的系统,包括:交互模块与策略运行系统;

交互模块位于第一计算设备,包括:第一存储单元、交互操作单元、策略文本生成单元、第一输入输出单元、判断单元;第一存储单元,用于存储策略构造信息、策略文本;所述策略构造信息是指交易策略的构成信息,包括:交易策略选用的组件、组件的参数以及组件之间的组合连接情况;所述策略文本是指策略构造信息对应的字符文本;交互操作单元,用于接收使用者输入的基本操作动作,以及用于呈现图形化交易策略;所述基本操作动作包括:组件选用删除、组件参数设置、组件组合连接、策略存储请求、策略修改请求、策略运行请求;所述图形化交易策略是指策略构造信息的呈现,包括:文字、和/或图像、和/或声音的呈现形式;策略文本生成单元,用于生成与已存储的策略构造信息对应的策略文本;第一输入输出单元,用于向位于第二计算设备的策略运行系统传递信息,以及用于接收并解析策略运行系统向交互模块传递来的信息;判断单元,判断位于第二计算设备的策略运行系统能否根据已存储的策略构造信息生成可执行的策略代码模块;

策略运行系统位于第二计算设备,包括:可执行代码生成单元、第二存储单元、策略运行单元、第二输入输出单元;可执行代码生成单元,用于根据输入的策略文本来生成可执行的策略代码模块,并传递生成的可执行的策略代码模块至第二存储单元进行存储;第二存储单元,用于存储策略文本、可执行的策略代码模块;策略运行单元,用于对存储的可执行的策略代码模块实施运行;第二输入输出单元,用于向位于第一计算设备的交互模块传递信息,以及用于接收并解析交互模块向策略运行系统传递来的信息。

优选的,所述第一计算设备是一种可移动计算设备,包括:智能手机、平板电脑、手提电脑、掌上电脑、掌上游戏机、智能穿戴设备。

与现有技术相比,本发明具有以下优点:

1、本发明通过将策略构建、管理等功能与计算密集的策略编译、执行等功能进行分离,有效地降低了第一计算设备的计算压力与能量消耗,令量化交易系统可以轻量级地部署于可移动计算设备,既节省了移动端的系统资源,也方便了使用者使用。

2、本发明极大地简化了使用者在进行量化交易过程中的输入操作,尤其是在输入交易策略的过程中,本发明以策略组件选取、删除、参数修改、组合连接等操作代替了复杂的程序代码输入。这一设计的好处是:首先,这一设计降低了量化交易系统对输入键盘的依赖而进一步方便了它在可移动计算设备的应用;其次,基于组件而非编程语言来构建交易策略大大地降低了量化交易系统使用者的技术门槛,令使用者在不需要掌握任何一门编程语言的情形 下就可以将自己的交易逻辑转变为交易策略。

3、在本发明的框架下,交易策略全部使用经过反复验证的标准化组件搭建,屏蔽了交易策略由于部分错误程序代码可能造成天量损失的风险,如发生在2013年8月16日的光大证券乌龙指事件。增强了量化交易策略的安全性,保护投资者。

4、在本发明的框架下,交易策略搭建便利、结构清晰,维护与更新也非常便利,可有效地提升投资者的生产效率。

附图说明

图1是本发明提供的交互操作界面示例图;

图2是基于交互操作界面搭建交易策略的过程示例图;

图3是本发明对基本操作动作的处理步骤图;

图4a—图4c分别具体的策略存储步骤、策略修改步骤以及策略修改步骤;

图5a—图5b为第二框架下的策略存储步骤与策略修改步骤;

图6是存储策略构造信息的多叉树的变化示例图;

图7是策略可执行性判断算法流程图;

图8策略代码生成算法的Java代码示例;

图9是本发明的系统框图;

图10是本发明对应第二框架的系统框图;

具体实施方式

为使本发明的目的、技术方案以及优点更加清楚、明确,下面结合附图并举实施例对本发明作进一步详细说明。应当理解,此处所描述的具体实施例仅用于解释本发明,并不用于限定本发明。

本发明的主要目的之一是降低使用者在通过交易系统进行量化交易的过程中对编程语言的依赖。基于本发明的实施例应向使用者提供多种不同的策略组件,使用者通过组件选用删除、组件参数设置、组件组合连接等操作来完成对量化交易策略的输入或者修改。实施方案当中还应实现具体的交互操作单元,用于接收使用者输入的基本操作动作、更新策略构造信息,以及呈现图形化交易策略。实施例的交互操作单元包括如图1所示的交互操作界面。该操作界面可通过第一计算设备的触摸屏与使用者进行交互,它包括:

组件库101,是可滚动窗口,向使用者提供各类策略组件。使用者可通过点选或拖拽等方式对组件库101中提供的组件进行选取。窗口下面的“……”标志用于表示该窗口可向下滚动显示更多其他组件。

组件图标102,是代表某一具体组件的图标,列于组件库101内。组件图标上“RSI”字样表示该图标所代表组件的名称。使用者可通过点选或拖拽等方式对该组件进行选取。

操作画布103,是可交互操作窗口。操作画布103用于显示使用者通过组件库101所选用的策略组件图形,并且使用者可以在该区域操作策略组件图形以搭建图形化交易策略。使用者在该区域可对组件图形进行多种操作,包括但不限于:移动、移除、改变大小、组合连接、参数设置等。

策略列表104,是可滚动窗口,用于显示已存储的交易策略以及对已存储策略进行相关操 作。

策略图标105,是代表某一已存储策略的图标,列于策略列表104内。策略图标上“均线趋势”字样表示该图标所代表策略的名称(策略名称可由使用者指定亦可系统自动指定)。使用者可通过点击图标对该策略进行选择,然后配合功能区106中提供的相关功能按钮对该策略进行相关操作(如:运行、修改等)。优选的,也可定义相关的快捷操作方式以简化使用者操作。例如,可定义双击策略图标以实现开始策略修改的功能。

功能区106,提供各类基本功能按钮。其中,存储策略、策略修改、策略运行三个按钮用于接收策略存储请求、策略修改请求、策略运行请求等使用者基本操作。全局参数按钮用于对策略的全局运行参数进行设置,如K线间隔,时间粒度等。删除策略按钮用于对选定策略执行删除操作。新建策略按钮用于新建策略操作,同时清空操作画布103以及策略构造信息。功能区中还包括按钮,如果使用者点击该按钮则退出交互操作界面。

功能按钮图标107,是代表某一功能按钮的图标,列于功能区106内。图标上“策略运行”字样为按钮功能的名称。

组件库101中向使用者提供的各类组件可通过预存储或者通过预置算法获得。所谓通过预存储获得的方式是指将可选组件的种类提前存储于交互操作界面所在的软件之中;所谓通过预置算法获得的方式,是指交互操作界面在使用者开始操作前通过向服务器查询来获得使用者可选用的组件类型。为丰富可构建策略的种类,优选的,可提供以下几类策略组件,包括:

(1)逻辑结构组件,代表逻辑结构以及逻辑运算的组件,包括:条件结构、分支结构、与或非逻辑运算、比较运算等组件等;例如,组件库101中的“和/或”组件表示对输入的操作量进行逻辑“和”或者“或”的逻辑运算后获得的布尔量结果;再如,组件库101中的“>”组件表示对输入的操作量进行比较运算后获得的布尔量结果;以及,组件库101中的“如果…则”组件表示在输入条件下进行相应的动作,是一种条件结构组件。

(2)基本量组件,代表搭建交易策略所需要的基本数据,包括:移动平均线、MACD、RSI等在内的可以量化的技术指标组件、行情数据组件、基本面数组组件等;例如,组件库101中的“MACD”、“RSI”、“MA”、“KDJ”等组件,它们都对应特定的价格技术指标。

(3)方法组件,代表对输入的操作量进行函数映射、处理的组件,包括:时间序列提取、数学函数、以及各类统计方法组件等;例如,组件库101中的“时间序列”组件,用于将输入操作量转化为具有一定长度的连续序列。具体序列长度可由该组件参数指定。

(4)动作类组件,代表交易动作的组件,包括:开仓、平仓、交易信号提醒等组件;例如,组件库101中的市价买入组件,表示以“市价单”对标的执行买入操作。

(5)其他用于构建量化交易策略的组件,如:持仓判断组件等。持仓判断组件,用于判断策略对某标的是否具有持仓并返回布尔量结果。

图2为基于图1中的操作界面进行搭建交易策略的过程示例图,它包括:

操作201,表示使用者以拖拽组件图标至操作画布的方式来选用“MACD”组件。类似地,实施例定义反向的操作动作实现组件删除的功能,即拖拽操作画布内的组件至画布外区域代表删除该组件。组件选用删除是本发明定义的使用者输入的基本操作动作之一。所述使用者输入的基本操作动作包括两种:

第一种是指会令策略构造信息发生变化的用户操作,包括:组件选用删除、组件参数设 置、组件组合连接;不会令策略构造信息发生变化的用户操作并不属于基本操作动作,如组件在操作画布中移动;

第二种是指策略级别上的用户操作,包括:策略存储请求、策略修改请求、策略运行请求、策略删除请求等。优选的,对应同一类操作动作,可定义多种不同的用户操作方式以提升用户体验。例如,组件选取操作可同时对应拖拽至操作画布选取以及直接单击组件图标选取等操作方法。

策略组件图形202-205,分别为“MACD”、“>”、“如果…则”、“市价买入”四个组件在操作画布内所对应的策略组件图形。策略组件图形代表了对应组件可实现功能的基本样式。例如,组件图形203代表了对左右两输入量进行比较运算,图形中左右的空格代表待输入的比较操作量。策略组件图形可被看作为小型处理单元,一般包括输入与输出(如图形203-205);也有一部分组件图形仅有输出而无输入,如图形202。

策略组件图形的输入输出具有一定类型。主要的输入输出类型包括但不限于:数量、数量序列、布尔量、动作量。组件图形的输入输出量由策略组件的种类所决定,例如:“MACD”组件无输入类型,输出类型为数量;“>”组件的输入为数量,输出为布尔量;“如果…则”与“市价买入”组件的输出都为动作量,但“如果…则”组件包含两项输入分别为:布尔量与动作量,“市价买入”的输入为数量。组件图形的输出由组件图形本身所表示,而填充输入则可通过将其他组件拖入图形空白处进行组合连接或者直接由使用者输入等方式完成。实施例通过限定输入输出类型以对操作画布中可能出现的一些错误操作进行屏蔽,例如:当使用者试图将“市价买入”组件图形拖拽至“>”组件图形的空白处时,实施例可由输入输出类型判断出“市价买入”组件无法作为“>”组件的输入量,而拒绝两者进行组合连接。这种基于类型判别的预屏蔽方法可以有效降低后续语法检查的计算复杂度。优选的,为更加精细地限定操作画布中的错误操作,可进一步细化输入输出类型,如可将数量细分为:浮点数量与整数量等。

操作206,表示使用者拖拽组件图形202至组件图形203的输入空白处进行组合连接。如前所述,实施例在接收到该操作动作之后首先判断待组合连接的输入输出类型是否匹配,如果匹配则允许该组合连接操作。由于“MACD”组件的输出与“>”组件的输入都为数量类型两者匹配,因此实施例允许该组合连接操作。经过该操作,“MACD”组件即变为“>”组件的左输入量。

策略组件图形207,为经过操作206后所合成的复合组件图形。该图形表示以“MACD”组件为左输入量的“>”组件。组件组合连接也是本发明定义的使用者输入的基本操作动作之一。需要说明的是,本发明定义的组件组合连接也包括组件分离,允许使用者将已进行组合连接的组件还原成为未组合连接状态。例如实施例中的交互操作界面,使用者可通过点击策略组件图形207中带有“MACD”字样的部分,然后拖拽“MACD”组件至操作画布空白处以将“MACD”组件与“>”组件还原为未组合连接状态。这一操作为操作206的反向操作。

实施例当中的交互操作界面是以拖入组件合成复合策略组件图形的方式来实现组件的组合连接。与此方式相对,实施人员也可考虑以连线的方式将组件图形202连接到组件图形203的输入空白处来实现组件的组合连接。第一种方式(即实施例中的方式)的好处是,无须定义连线组件,避免了潜在的连线回路的错误;而缺点在于同一组件不能在操作画布中复用, 同一交易策略可能需要投入更多的策略组件。与之相对,第二种方式的好处是同一组件可以复用,即通过连线同一组件可作为多个组件的输入;但是缺点是可能会出现连线回路的错误(某一组件的输出成为该组件输入中的一环),而增加可执行性判断算法的复杂度。

策略组件图形208,为策略组件图形207经过使用者直接输入参数“5”后形成。该参数输入过程为:使用者首选点击策略组件图形207的空白处,然后通过滚动参数列表选取或者通过软键盘输入参数“5”。组件参数设置也是本发明定义的使用者输入的基本操作动作。实施例当中,可供使用者设置的组件参数包括:局部组件参数与全局组件参数。局部组件参数是指定义操作画布内某一组件的组件参数,如组件图形208的输入参数“5”;全局组件参数是指定义操作画布内全部组件的参数。如实施例中提供的“时间粒度”参数定义了策略所选用指标取值更新的时间间隔,“K线间隔”参数定义了K线行情数据的采样频率,“标的列表”参数定义了策略所应用的投资标的。实施例当中,全局组件参数通过点击交互操作界面功能区的“全局参数”按钮进行设置。

策略组件图形209,为策略组件图形207经过使用者直接输入参数“100”后形成,表示以市价买入100股。

操作210与操作211,分别表示使用者拖拽组件图形208与209至组件图形204的输入空白处进行组合连接。

策略组件图形212,为经过操作210与211后所合成的复合组件图形。该复合组件图形已经成为具有一定意义的交易逻辑,它所代表的交易逻辑为:“当价格指标MACD大于5时,则买入100股”。

实施例当中,操作画布所呈现的图像信息(各个组件图形、组件图形的局部参数以及组件图形的组合连接情况)以及全局参数的文字信息向使用者呈现出了完整的策略构造信息。两部分信息的结合即为本发明所定义的图形化交易策略。由图形化交易策略,使用者可及时了解到已输入策略的组成、逻辑、参数,并基于此对策略构造信息做出修改以及其他后续操作。

基于前述的操作界面,使用者可以通过组件选用删除、组件参数设置、组件组合连接等操作而非编程语言来搭建具体的交易策略,并通过操作界面呈现的图形化交易策略获知已搭建的策略构造信息。除与使用者进行交互,操作界面还需对使用者输入的基本操作做出相应处理。如图3所示,为本发明对使用者输入的基本操作的处理步骤图,它包括:

步骤301,交互模块根据使用者操作判断接收到了基本操作动作。实施例将基本操作动作定义为各类“事件”,并为各类“事件”定义触发的IO条件。当使用者操作满足某一“事件”的触发条件后即可判定为接收到该触发“事件”所对应的基本操作动作。

步骤302,交互模块判断输入的基本操作动作是否为构造信息更新类操作,如果是则进行步骤303,否则进行步骤304。构造信息更新类操作包括:组件选用删除、和/或组件参数设置、和/或组件组合连接。对应实施例提供的操作界面(图1),该类操作包括:(1)改变操作画布内组件个数、类型、参数、连接情况的操作;(2)以及通过功能区“全局参数”按钮进行的全局参数设置的操作。需要注意的是,使用者在操作画布内实施的其他不会改变策略构造信息的操作并不算作基本操作动作。例如:移动组件图形、改变组件图形大小等操作,虽然会改变图形化交易策略(策略的呈现)但并不会改变所对应的策略构造信息。

步骤303,交互模块更新已存储的策略构造信息。策略构造信息是指交易策略的构成信息,包括:交易策略选用的组件、组件的参数以及组件之间的组合连接情况。已存储的策略构造信息是指当前操作界面呈现的图形化交易策略所对应的策略构造信息。例如在实施例当中,当使用者拖拽某组件图标至操作画布对某一组件进行选用时,交互模块应将被选入的组件信息添加到之前的已存储的策略构造信息之中。

步骤304,交互模块判断输入的基本操作动作是否为策略存储请求,如果是则进行步骤305,否则进行步骤306。在实施例当中,使用者可通过点击功能区的“存储策略”按钮发出策略存储请求。优选的,也可在使用者点击“存储策略”按钮之后提供后续的操作界面,以实现策略命名、对已存储策略覆盖等功能。

步骤305,交互模块进行策略存储步骤,具体步骤在后续的图4a与图5a的说明中进行详述。

步骤306,交互模块判断输入的基本操作动作是否为策略修改请求,如果是则进行步骤307,否则进行步骤308。在实施例当中,使用者可通过在策略列表中点选某一已存储的策略,然后点击功能区的“策略修改”按钮来发出策略修改请求。

步骤307,交互模块进行策略修改步骤,具体步骤在后续的图4b的说明中进行详述。

步骤308,交互模块判断输入的基本操作动作是否为策略删除请求,如果是则进行步骤309,否则进行步骤310。在实施例当中,使用者可通过在策略列表中点选某一已存储的策略,然后点击功能区的“删除策略”按钮来发出策略删除请求。

步骤309,交互模块进行策略删除步骤,包括:(1)交互模块向位于第二计算设备的策略运行系统发出策略删除请求,该请求中包含待删除策略的相关信息(如:ID、使用者信息等);(2)位于第二计算设备的策略运行系统在接收到策略删除请求后,删除与请求策略相关的一切信息,包括:策略可执行性信息、策略文本、策略可执行代码模块等。实施例当中,策略运行系统还会将删除结果反馈回交互模块,如果策略删除成功,则交互模块会从交互操作界面的策略列表中去除已删除的策略以向使用者反馈删除成功的结果。优选的,还可包含删除确认的步骤。

步骤310,交互模块判断输入的基本操作动作是否为策略运行请求,如果是则进行步骤311。在实施例当中,使用者可通过在策略列表中点选某一已存储的策略,然后点击功能区的“策略运行”按钮来发出策略运行请求。优选的,可在使用者点击“策略运行”按钮之后提供后续的操作界面,用于输入策略运行相关参数以实现更加完整的功能。策略运行相关参数包括:运行类别(历史回测、模拟盘交易、实盘交易)、资金账号(模拟账号或实盘账号)、资金密码、回测日期(开始与结束日期)等。此类参数在业内各类量化交易平台上都有详细列举,此不赘述。

步骤311,交互模块进行策略运行步骤,具体步骤在后续的图4c与图5b的说明中进行详述。

上述步骤解决了使用者如何通过策略组件以及交互操作界面来进行量化交易的问题。图4a-图4c进一步给出了进行策略存储(步骤305)、策略修改(步骤307)、策略运行(311)的详细步骤。

如图4a所示,为本发明进行策略存储的具体步骤,它包括:

步骤401,在接到策略存储请求后,交互模块根据已存储的策略构造信息生成与之对应的策略文本。所述策略文本是指策略构造信息的文本形式,作为载体将策略构造信息由第一计 算设备传递至第二计算设设备。策略文本可采用经典的文本格式(如txt格式),也可以直接采用典型的网络数据交互格式(如json、xml等)。

步骤402,交互模块向位于第二计算设备的策略运行系统传递策略存储请求以及策略文本。

步骤403,位于第二计算设备的策略运行系统在接收到策略存储请求以及策略文本后,存储策略文本以及其他策略相关的信息,如:策略创立时间、使用者信息、策略名称、备注信息等。

步骤404,判断是否能够根据接收到的策略文本来生成可以执行的代码,如果是则进行步骤406,否则进行步骤405。由于使用者输入的交易策略具有随意性,后台运行系统可能无法根据接收到的策略文本生成可执行的策略代码,因此在进行生成代码的步骤前需要进行这一步检查。在后续的说明中将给出检查算法的详细方案。

步骤405,标记策略为不可执行策略,该标记信息(策略可执行性信息)可与其他策略相关信息一并存储。不可执行策略是指策略运行系统无法实施运行的策略。

步骤406,标记策略为可执行策略,该标记信息(策略可执行性信息)可与其他策略相关信息一并存储。优选的,该标记信息在将策略简单地划分为可执行与不可执行的基础上,还可将执行性策略进一步细分为:仅可回测、可回测可实盘、仅可实盘等,以方便策略管理。

步骤407,生成并存储接收到的策略文本所对应的可执行代码模块,以备后续调用运行。可执行代码模块要满足可以被动态调用的条件,它可以直接以代码文本的形式存储(如支持脚本解释执行的系统),也可以通过动态编译功能编译成系统可调用的代码模块(如基于Java、.Net Framework编写的系统)。在后续的说明中将给出实施例生成可执行代码的过程。

上述步骤给出了本发明进行策略存储的具体过程。这一过程主要解决了两方面技术问题。第一,策略内容及其相关信息远程存储于第二计算设备,节省了第一计算设备的系统资源。第二,提供可执行性检查,解决了基于策略组件构建的交易策略的语法检查问题。

优选的,上述步骤401在生成策略文本前,还可先判断位于第二计算设备的策略运行系统能否根据已存储的策略构造信息生成可执行的策略代码模块,并将判断结果信息添加到由该策略构造信息生成的策略文本中;该判断结果信息可帮助策略运行系统在进行步骤404时直接对策略的可执行性做出判断。

优选的,上述步骤后还可加入存储结果信息的反馈步骤,将策略存储结果以及策略相关信息(如可执行性信息等)传递回交互模块。交互模块再通过交互操作界面将信息呈现给使用者。例如,实施例当中的操作界面会根据返回的存储成功信息将存储成功的策略图标添加至策略列表,并将策略的可执行性表现在策略图标上。

图4b给出了本发明进行策略修改的具体步骤,它包括:

步骤408,交互模块向位于第二计算设备的策略运行系统传递策略修改请求。策略修改请求中包括请求策略的相关信息,用于策略运行系统定位请求策略的存储位置。

步骤409,策略运行系统向交互模块传递请求策略的策略文本。

步骤410,交互模块在接收到策略文本后生成图形化交易策略向使用者呈现策略构造信息。在这里需要强调的是,图形化交易策略是对策略构造信息的呈现,因此某一图形化交易策略对应唯一的策略构造信息;而某一策略构造信息可具有多种不同的呈现,可对应多种图 形化交易策略。因此在这一步骤中,交互模块需要定义生成图形化交易策略的具体规则,包括:组件图形的大小、摆放间距、摆放顺序。在实施例当中,组件图形采用系统默认尺寸,以1/2组件高度像素个数作为间距从左至右、从上至下摆放各个组件。

步骤411,交互模块根据接收到的策略文本生成并更新策略构造信息,用于针对后续使用者做出的修改操作对策略构造信息做出更新。

上述步骤实际上实现了呈现已存储策略对应的图形化交易策略的功能。完整的策略修改功能的实现还要配合上后续的修改操作以及策略存储步骤,这些步骤在前面已进行说明因此不再赘述。

图4c给出了本发明进行策略运行的具体步骤,它包括:

步骤412,交互模块判断请求策略是否为可执行策略,如果是进行步骤414,否则进行步骤413。该步骤在具体实施时分为两种情形:(1)当交互模块具备可执行性信息时可利用该信息直接做出判断;(2)当交互模块不具备可执行性信息时,交互模块应当向位于第二计算设备的策略运行系统发起查询,并依据查询结果做出判断。

优选的,策略运行系统应当在完成策略存储步骤后将可执行性信息反馈回交互模块,如此可令交互模块具备可执行性信息进而降低通信资源损耗(情形(1)省去了可执行性信息查询流程)。

步骤413,交互模块拒绝策略运行请求。当交互模块具备可执行性信息时,可以对针对不可执行策略的运行请求完全屏蔽。例如在实施例当中的交互操作界面,如果使用者点选不可执行策略,则无法点击功能区的策略运行按钮。

步骤414,交互模块向位于第二计算设备的策略运行系统传递策略运行请求。实施例当中,策略请求中包括前述的策略运行相关参数。

步骤415,策略运行系统在接收到策略运行请求后,通过已生成策略代码以及传递来的策略运行参数对策略实施运行。

优选的,提供的策略运行包括:策略历史回测、模拟盘交易、实盘交易。三种运行模式的具体流程以及实现方式已由业内各种量化交易平台充分公开,属于领域公知技术。

图4a—图4c提供的处理步骤允许交互模块在策略存储步骤中向策略运行系统传递不可执行策略的策略文本,这一框架的好处在于可支持使用者将尚未完成的交易策略存储于第二计算设备,以便使用者进行后续修改。这一设计节约了第一计算设备的存储资源,但却增加了第一、第二计算设备间通信资源的消耗。

与上述框架相对,本发明还提供了第二种框架,即不允许交互模块在策略存储步骤中向策略运行系统传递不可执行策略的策略文本。在第二种框架下,策略可执行性判定完全置于交互模块以降低第一、第二计算设备间通信资源的消耗。图5a—图5b提供了第二种框架所对应的策略存储步骤与策略运行步骤。此框架下的策略修改步骤与图4b中第一框架下的策略修改步骤一致,因此不再特殊说明。

如图5a所示,为第二框架下的策略存储步骤,它包括:

步骤501,在接到策略存储请求后,交互模块判断位于第二计算设备的策略运行系统是否能够根据已存储的策略构造信息来生成可以执行的代码,如果是进行步骤503,否则进行步骤502。检查算法的原理与步骤404中的检查算法一致,后续会有详细叙述。

步骤502,交互模块拒绝策略存储请求或进行本地保存,具体采取哪种处理方式取决于具体实施方案。实施方案可选择放弃对不可执行策略的存储功能以对本发明进行更轻量级的实现。对应这一方案,该步骤应采取拒绝策略存储请求。实施例当中的交互操作界面会以弹窗的方式将存储错误信息反馈给使用者。

实施方案也可通过交互模块本地保存的方式来支持不可执行策略的存储功能,令支持的功能更为完整。对应这一方案,该步骤应采取本地存储。本地存储的步骤为:(1)生成策略文本(参照步骤401与步骤503);(2)存储策略文本以及策略相关信息(参照步骤403)。

步骤503,交互模块根据已存储的策略构造信息生成与之对应的策略文本。与步骤401一致。

步骤504,交互模块向位于第二计算设备的策略运行系统传递策略存储请求以及策略文本,与步骤402一致。

步骤505,位于第二计算设备的策略运行系统在接收到策略存储请求以及策略文本后,存储策略文本以及其他策略相关的信息,与步骤403一致。

步骤506,生成并存储接收到的策略文本所对应的可执行代码模块,以备后续调用运行,与步骤407一致。

如图5b所示,为第二框架下的策略运行步骤,它包括:

步骤507,交互模块向位于第二计算设备的策略运行系统传递策略运行请求。策略请求中可包括前述的策略运行相关参数,与步骤414一致。在第二框架下,交互模块具备策略的可执行性信息可完全屏蔽不可执行策略的运行请求。因此可保证这一步骤涉及到的请求策略一定为可执行策略。

步骤508,策略运行系统在接收到策略运行请求后,通过已生成策略代码以及传递来的策略运行参数对策略实施运行,与步骤415一致。

综上,基于前述的交互操作界面以及图3—图5中的详细步骤,使用者可通过对位于第一计算设备的交互模块进行操作来完成策略输入、策略存储、策略修改、策略删除、策略运行等量化交易基本功能。需要说明的是,几项基本功能在业务逻辑上具有一定的顺序。使用者需要首先进行输入策略,在策略输入后才可进行策略存储,并且只有在策略被存储后才可对该策略进行策略修改、策略删除、策略运行等操作。

下面,本文通过实施例对本发明中策略构造信息相关部分的实现方法作进一步说明。策略构造信息记录了使用者当前输入策略的构成信息,包括:策略选用的组件、组件的参数以及组件之间的组合连接情况。在实施例当中,策略构造信息以多叉树的结构存储于系统内存之中。多叉树的结构与内容会随着使用者输入新的操作而不断调整更新。图6中给出了存储策略构造信息的多叉树的变化过程示例图。该图中的变化过程对应图2中搭建交易策略的过程。它包括:

多叉树601,对应图2中操作画布包含策略组件图形202、203、204、205时的策略构造信息。组件图形202、203、204、205分别为“MACD”、“>”、“如果…则”、“市价买入”组件的初始化组件图形。由于初始化组件图形没有嵌入到其他组件,因此在多叉树上被作为根节点(对应操作画布)的下一级子节点被存储起来。实施例当中,对应使用者将新组建拖入操作画布的响应处理函数可以用代码表示为:

StrategyTree.addNewNode(NodeTypeID,TargetNodeID,Input_Para);

其中,StrategyTree为记录策略构造信息的多叉树对象,addNewNode为添加新节点方法,它包含:NodeTypeID参数为新选用组件的类型ID、TargetNodeID参数为目标接入组件的ID号、Input_Para为目标接入组件的参数位置。类型ID是实施例为各类组件定义的类型标识,组件的ID号为组件节点对象的标识号,目标接入组件指的是组合新选用组件以作为输入参数的组件对象。如果新选用组件并没有作为其他组件对象的输入参数(如图2中的操作201),则认为目标接入组件为操作画布,对应目标接入组件的ID为0。实施例为多叉树中的每一个组件节点对象分配唯一的ID号。

多叉树602,对应图2中操作206后的策略构造信息。操作206将“MACD”组件与“>”组件进行组合连接,将“MACD”组件作为“>”组件的左输入量。经此操作,“MACD”组件变为“>”组件的下一级子节点。实施例当中,对应此变化的响应处理函数可以用代码表示为:

StrategyTree.moveNode(NodeID,TargetNodeID,Input_Para);MoveNode方法与addNewNode的区别在于,MoveNode方法并不会产生新的组件节点对象。

多叉树603,对应分别对“>”组件与市价买入组件进行参数输入后的策略构造信息。两个常量节点被加入到“>”组件与市价买入组件的下一层级。实施例当中,对应此变化的响应处理函数可以用代码表示为:

StrategyTree.setPara(NodeID,Input_Para,Para_value);

其中,Para_value为使用者输入的参数值。

多叉树604,对应图2中组件图形212所代表的策略构造信息。“>”组件与市价买入组件以及他们的子节点被移动至“如果…则”组件的下一层级。对应这一变化的处理函数可以用moveNode方法实现。

以多叉树结构存储的策略构造信息可以很容易通过多级文本的方法转化为策略文本。策略构造信息及其所对应策略文本的对应关系应具有唯一性。实施例当中使用xml格式作为策略文本的基本格式。Xml文本与内存中多叉树对象的转化方法为计算机领域内的公知技术,因此,关于xml格式的策略文本的转化方法本文不予详述。

实施例提供了基于策略构造信息多叉树存储结构的策略执行性判断算法。图7中给出了该算法的流程图,它包括:

步骤701,首先判断根节点下第一层是否仅有一个子节点。例如,图6中,多叉树601、602、603不符合该条件,而多叉树604则符合该条件。如不符合该条件,则判断策略为不可执行策略,返回false;如果符合该条件则进入到下一步。

为方便进行这一判断,实施例在定义多叉树的类中加入了“第一层节点数”的属性,并在该类定义的方法中加入更新该属性的代码。这样便可在进行此步骤时由该属性取值直接作出判断。

步骤702,其次检查根节点下所有子节点参数是否全部完整,如果符合该条件则判断为可执行策略,返回true,反之则判断为不可执行策略,返回false。例如,在图6中多叉树603,“>”组件与“市价买入”组件参数完整,但是“如果…则”组件参数不完整,因此不符合该条件,对应策略为不可执行策略。而图形604则符合该条件,对应策略为可执行策略。

与701类似,为方便进行这一步判断,实施例在定义多叉树的类中加入了“待填充参数数目”属性,并在该类定义的方法中加入更新该属性的代码。这样便可在进行此步骤时由该属 性取值直接作出判断。实施方案也可通过遍历多叉树的每个节点并查看参数填充情况的方法来进行判断。

需要特殊说明的是,图7中提供的判断算法是在操作界面能够对不合规则的组件组合连接与参数输入做出屏蔽(前述的根据组件输入输出类型进行判断的方法)的前提下才有效。如果操作界面并没有实现该屏蔽功能,则图7中的算法还需要增加对各子节点的参数类型进行匹配情况检查的步骤。

利用策略文本与策略构造信息的一致性,图7中算法同样也可用于判断策略文本所代表策略的可执行性。

下面,本文将具体介绍实施例根据策略构造信息生成可执行的策略代码模块的方法。由于策略文本与策略构造信息的一致性,根据策略文本生成可执行的策略代码模块的步骤同样可以应用该方法。

实施例首先将策略构造信息转化为策略运行系统可编译的代码文本。注意,代码文本不同于策略文本,策略文本是以通信传输为目的,代码文本是以可被运行系统识别、执行为目的。图8提供了进行这一步骤的算法代码片段,该算法基于递归思想,以从叶节点向根节点的方式逐步将多叉树所代表的策略构造信息转化为代码文本。具体地,如图8,它包括:

代码片段801,TreeNode为多叉树的节点类,treeNode为节点类的对象,代表当前节点。算法继而获取当前节点的子节点列表childList以及子节点数目childNumber。

代码片段802,为叶节点的处理部分。算法通过子节点列表childList判断当前节点是否为叶节点,如果为叶节点则返回叶节点所对应的代码字符串。unit_text_builder函数用于返回组件对应的具体代码字符串。以图6中的多叉树604为例,叶节点包括“MACD”组件以及两个常量参数“5”与“1000”,三个叶节点通过unit_text_builder函数返回的代码字符串分别为:

Units.getItem(“MACD”)

5

100

代码片段803,为非叶节点的处理部分。该段代码核心思想是利用递归原理,首先计算当前节点的子节点代码字符串,并通过动态字符串数组将各个子节点的代码字符串记录下来,然后作为参数通过unit_text_builder函数返回当前节点的程序代码字符串。例如图6中的多叉树604的倒数第二行,“>”组件代码串为:

(

第一子节点代码字符串

)>(

第二子节点代码字符串

)

unit_text_builder首先通过treeNode参数判定当前节点为“>”组件,并获取“>”组件对应的上面5个代码组成部分,然后通过List参数提取出两个子节点的代码字符串分别为:Units.getItem(“MACD”)与5,进而返回拼出的组件代码串

(Units.getItem(“MACD”))>(5)同样道理,也可以拼接出市价买入组件对应的代码串为:

Transactions.getItem(“MarketBuy”,100);

如此,递归到第一层就可以获得完整的代码:

If((Units.getItem(“MACD”))>(5)){Transactions.getItem(“MarketBuy”,100);}上述代码为代码文本中对应交易逻辑的部分。代码文本的其他部分,包括:依赖库的引用(Java中的import函数)以及特定指标与行情的订阅等,也可通过图8中的递归方法来解析并生成相应代码。

对于一些基于解释型语言(如Python、Matlab)的策略运行系统,上述步骤生成的代码文本即可以作为可执行的策略代码;而对于一些半编译型语言(Java、C#)的策略运行系统还需要继续通过动态编译的手段将代码文本编译成为系统可动态调用的代码模块,以便在接收到策略运行请求后动态加载该部分代码并实施策略运行。

针对上述的一种在可移动计算设备进行量化交易的方法,本发明还提供了一种在可移动计算设备进行量化交易的系统,用于具体实现上述方法中提供的各类量化交易功能。如图9所示,是本发明所述的一种在可移动计算设备进行量化交易系统的系统结构图。系统主要由交互模块901与策略运行系统906两部分组成。

交互模块901,位于第一计算设备,用于与使用者进行交互,临时存储策略构造信息、策略文本,以及与位于第二计算设备的策略运行系统数据与指令交换。它包括:第一存储单元902、交互操作单元903、策略文本生成单元904、第一输入输出单元905。

第一存储单元902,用于存储策略构造信息、策略文本,以供其他模块读取、操作。

交互操作单元903,用于接收使用者输入的基本操作动作,以及用于呈现图形化交易策略;一方面交互操作单元903需要与使用者进行交互,包括:接收使用者操作、向使用者反馈信息等。另一方面,它需要与第一存储单元902以及第一输入输出单元905进行交互,包括:更新存储于第一存储单元902的策略构造信息以及向第一输入输出单元905传递指令信号,如策略存储、策略修改等。

策略文本生成单元904,用于生成与已存储的策略构造信息对应的策略文本。策略文本生成单元904在接收到第一输入输出单元905的指令后会将存储于第一存储单元902的策略构造信息转化为策略文本并传递给第一输入输出单元905。

第一输入输出单元905,用于向位于第二计算设备的策略运行系统发送信息。为实现该功能,第一输入输出单元905需要接收来自交互操作单元903的各类指令信号,接收策略文本生成单元904传递来的策略文本。第一输入输出单元905还用于接收并解析策略运行系统向交互模块发送来的信息,包括:反馈结果信息至交互操作单元903、根据策略文本解析策略构造信息,并将其存储于第一存储单元902等。

策略运行系统906,位于第二计算设备,用于存储策略、编译策略以及运行策略等。它包括:判断单元907、可执行代码生成单元908、第二存储单元909、策略运行单元910、第二输入输出单元911。

判断单元907,用于判断策略运行系统能否根据输入的策略文本来生成可执行的策略代码模块;若不能,则标记该策略为不可执行策略;若能,则将输入的策略文本传递至可执行代码生成单元,并标记该策略为可执行策略。具体判断方法,请参照图7相关说明。判断单元需要将判断结果信息存储于第二存储单元909。

可执行代码生成单元908,用于根据输入的策略文本来生成可执行的策略代码模块,并传递生成的可执行的策略代码模块至第二存储单元909进行存储。具体生成代码的方法,请参照图8相关说明。

第二存储单元909,用于存储策略文本、可执行的策略代码模块、以及策略的可执行性信息;

策略运行单元910,用于对存储的可执行的策略代码模块实施运行,包括:执行相关交易动作(模拟盘、实盘)、计算策略绩效、以及向第二输入输出单元911反馈结果信息等。

第二输入输出单元911,用于向位于第一计算设备的交互模块发送信息。为实现该功能,第二输入输出单元911需要接收来自策略运行单元910的反馈结果信息以及读取第二存储单元909中存储的策略相关信息、策略文本等。第二输入输出单元911还用于接收并解析交互模块向策略运行系统发送来的信息,包括:策略存储请求、策略修改请求等。

优选的,前述交互模块901还包括:预判断单元,用于判断位于第二计算设备的策略运行系统能否根据已存储的策略构造信息生成可执行的策略代码模块,并将判断结果信息添加到由该策略构造信息生成的策略文本中。当实施方案包含该模块时,策略运行系统可根据该判断结果信息直接对策略的可执行性做出判断。

优选的,所述的系统还包括:认证信息接收单元与认证单元;认证信息接收单元位于第一计算设备,用于接收使用者的用户认证信息;所述用户认证信息包括:使用者输入的用户名和密码、和/或使用者具备的数字证书、和/或短信验证码、和/或动态密码、和/或使用者生物特征;认证单元位于第二计算设备,用于根据第一计算设备传递来的用户认证信息对使用者身份、和/或权限进行认证。

上述系统对应图4a—图4c所示的处理步骤,这一框架允许交互模块向策略运行系统传递不可执行策略的策略文本。针对与图5a—图5b所示处理步骤对应的另一框架,本发明也提供了相应系统的实现方案。该方案的系统框架图如图10所示。该系统与图9中所示系统的主要差别在于判断单元1001位于第一计算设备的交互模块。该系统中其他模块的功能、连接关系均与图9中系统类似,因此参照图9相关说明以及该系统在本文发明内容部分的相关说明即可完成实施,此不赘述。

应当理解的是,本发明的应用不限于上述的举例,对本领域技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1