一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

创建量化交易策略的方法和装置与流程

2022-09-15 00:45:17 来源:中国专利 TAG:


1.本技术实施例涉及软件技术领域,并且更具体地,涉及一种创建量化交易策略的方法和装置。


背景技术:

2.量化交易策略在金融市场的应用日益广泛。量化交易策略可直接影响投资用户或团队的利益损失。因此,创建量化交易策略显得尤其重要。
3.用户在创建量化交易策略时,往往是通过编程语言编写代码的方式实现对数据的定量分析。在该方式下,用户需要具有写程序代码的能力,例如理解编程中的变量、函数、类、tcp连接等复杂的概念,阅读繁重的api文档,专业门槛较高。另外,还可以通过策略导向的方式引导用户创建量化交易策略,例如通过向用户提供固定的规则接口,使得用户可以通过比如勾选的方式实现量化交易策略的创建,但该方式难以满足用户的个性化需求。
4.因此,亟需一种简单、灵活的创建量化交易策略的方式来满足用户需求。


技术实现要素:

5.本技术实施例提供了一种创建量化交易策略的方法和装置,能够实现简单、灵活地创建量化交易策略,满足用户的各种需求。
6.第一方面,提供了一种创建量化交易策略的方法,该方法包括:
7.显示图形化界面,所述图形化界面包括至少一个可编辑的控件;
8.获取用户通过所述图形化界面输入的图形化量化交易策略,所述图形化量化交易策略包括至少两个已编辑的控件和连接线,其中,所述连接线用于连接所述已编辑的控件,所述已编辑的控件包括属性参数;
9.根据所述图形化量化交易策略,获取量化交易策略脚本;
10.运行所述量化交易策略脚本,获取量化交易结果。
11.第二方面,提供了一种创建量化交易策略的装置,该装置包括:
12.显示单元,用于显示图形化界面,所述图形化界面包括至少一个可编辑的控件;
13.获取单元,用于获取用户通过所述图形化界面输入的图形化量化交易策略,所述图形化量化交易策略包括至少两个已编辑的控件和连接线,其中,所述连接线用于连接所述已编辑的控件,所述已编辑的控件包括属性参数;
14.处理单元,用于根据所述图形化量化交易策略,获取量化交易策略脚本;
15.所述处理单元还用于运行所述量化交易策略脚本,获取量化交易结果。
16.第三方面,提供了一种电子设备,包括处理器和存储器。该存储器用于存储计算机程序,该处理器用于调用并运行该存储器中存储的计算机程序,执行上述第一方面中的方法。
17.第四方面,提供了一种计算机可读存储介质,用于存储计算机程序,该计算机程序使得计算机执行上述第一方面以及第一方面的任意实现方式中的方法。
18.第五方面,提供了一种计算机程序产品,包括计算机程序指令,所述计算机程序指令使得计算机执行上述第一方面以及第一方面的任意实现方式中的方法。
19.第六方面,提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面以及第一方面的任意实现方式中的方法。
20.本技术实施例通过获取用户通过图形化界面输入的图形化量化交易策略,并对该图形化量化交易策略进行编译获取量化交易策略脚本,通过运行该策略脚本,能够获取量化交易结果。本技术中用户通过图形化界面,可以根据各种需求编辑出想要的图形化量化交易策略,而不需要具有编写程序代码的能力,从而本技术能够实现简单、灵活地创建量化交易策略,满足用户的各种需求。
附图说明
21.图1是本技术实施例应用的一种应用场景的示意图;
22.图2是本技术实施例提供的一种创建量化交易策略的方法的示意性流程图;
23.图3是本技术实施例提供的图形化界面的一个具体示例;
24.图4是本技术实施例提供的条件框对应的属性栏的具体的例子;
25.图5是本技术实施例提供的在弹窗中编辑组合条件的界面的一个示例;
26.图6是本技术实施例提供的对各条件进行逻辑关联的一个示例;
27.图7是本技术实施例提供的组合条件控件预览的一个示例;
28.图8是本技术实施例提供的组合条件控件预览的另一个示例;
29.图9是本技术实施例提供的事件框对应的属性栏的具体的例子;
30.图10是本技术实施例提供的根据图形化量化交易策略确定的至少一个路径的一个具体例子;
31.图11是本技术实施例提供的根据图形化量化交易策略确定的至少一个路径的另一个具体例子;
32.图12是本技术实施例提供的策略脚本运行的一个示意性流程图;
33.图13是本技术实施例提供的接口响应的通信架构的一个示意性框图;
34.图14是本技术实施例的创建量化交易策略的装置400的示意性框图;
35.图15是本技术实施例提供的电子设备800的示意性框图。
具体实施方式
36.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。针对本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
37.应理解,在本技术实施例中,“与a对应的b”表示b与a相关联。在一种实现方式中,可以根据a确定b。但还应理解,根据a确定b并不意味着仅仅根据a确定b,还可以根据a和/或其它信息确定b。
38.在本技术的描述中,除非另有说明,“至少一个”是指一个或多个,“多个”是指两个或多于两个。另外,“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/
或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
39.还应理解,本技术实施例中出现的第一、第二等描述,仅作示意与区分描述对象之用,没有次序之分,也不表示本技术实施例中对设备个数的特别限定,不能构成对本技术实施例的任何限制。
40.还应理解,说明书中与实施例有关的特定特征、结构或特性包括在本技术的至少一个实施例中。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
41.此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
42.图1是本技术实施例提供的一种应用场景示意图。该应用场景涉及电子设备101,电子设备101可以是各类终端设备,例如智能手机(如android手机,ios手机、windows phone手机等)、平板电脑、掌上电脑、笔记本电脑、移动互联网设备(mobile internet device)、可穿戴设备、车载设备等,不做限定。终端设备也可以称为用户设备(user equipment,ue)、终端或用户装置等,不做限定。
43.可选的,电子设备101可以与服务器(例如行情服务器)通过无线通信技术进行数据的传输。示例性的,图1所示电子设备101可以为客户端/服务器(client/server,c/s)模式,客户端可以从服务端(例如服务器)拉取数据。作为一个具体的示例,客户端可以采用mvp(model-view-presenter)架构,使得界面、数据操作、数据仓库等相互分离。
44.本技术实施例中,示例性的,电子设备可以显示包括至少一个可编辑控件的图形化界面,用户可以通过操作电子设备101输入图形化量化交易策略,该图形化量化交易策略包括至少两个已编辑的控件和连接线。电子设备101响应于用户的操作,获取到图形化量化交易策略,并获取量化交易策略脚本,进而对该脚本进行运行,获取量化交易结果。
45.示例性的,本技术实施例中量化交易的标的可以为期货、股票或基金等产品,不做限定。
46.需要说明的是,图1中所示的应用场景仅用于说明本技术实施例而非限定。在具体实施时,可以根据实际需要灵活地应用本技术实施例提供的技术方案。
47.图2示出了本技术实施例提供的一种创建量化交易策略的方法200的示意性流程图。方法200可以由图1中的电子设备101,或设置于该电子设备101中的电路或芯片执行。如图2所示,方法200包括步骤210至240。
48.210,显示图形化界面,所述图形化界面包括至少一个可编辑的控件。
49.示例性的,终端设备上安装的应用程序(application,app)的界面上可以显示图形化界面,用于用户创建量化交易策略。该app可以为桌面端app,或手机端app,不作限定。
50.这里,控件可以为图形化控件。具体而言,在本技术实施例中,可以将量化交易策
略抽象为图形化控件。示例性的,控件包括开始控件、条件控件和事件控件中的至少一种。其中,图形化界面中的各个控件是可编辑的,用户可以通过编辑输入控件的属性参数。
51.220,获取用户通过所述图形化界面输入的图形化量化交易策略,所述图形化量化交易策略包括至少两个已编辑的控件和连接线,其中,所述连接线用于连接所述已编辑的控件,所述已编辑的控件包括属性参数。
52.示例性的,用户可以将量化交易策略过程拆分成不同的条件或事件,然后通过图形化界面选择控件(例如开始控件、条件控件和事件控件中的至少一种),并通过编辑控件以输入所选控件的属性参数,然后通过连接线对至少两个控件进行连接,例如串联或并联,实现各种各样的量化交易策略。这里,该连接线可以表示所连接的至少两个控件之间的关联关系。
53.在一些可选的实施例中,所述图形化界面包括控件栏、策略画布和属性栏。此时,作为获取用户通过所述图形化界面输入的图形化量化交易策略的一种实现方式,可以获取用户在所述控件栏中选择的至少一个控件。然后,响应于用户的第一操作,将所述至少一个控件添加至所述策略画布,其中,所述策略画布中预先设置开始控件。然后,可以获取用户在所述策略画布中选择的控件,并在所述属性栏对所述选择的控件的属性参数进行编辑。之后,响应于用户的第二操作,将所述至少一个控件和所述开始控件通过所述连接线进行连接,以生成所述图形化量化交易策略。
54.下面结合app的显示界面对创建图形化量化交易策略的过程进行详细描述。应理解,以下实施例中的各界面图只是为了便于理解本技术实施例提供的技术方案,并不构成对本技术技术方案的限定。
55.图3示出了图形化界面的一个具体示例,该图形化界面包括导航栏310、控件栏320、策略画布330和属性栏340。
56.如图3所示,导航栏310可以显示当前的量化交易策略(比如图3中的策略1、策略2、策略3、新建策略、新建策略1、新建策略2等),或运行的量化交易策略。可选的,导航栏310还可以显示量化交易策略的状态,例如正在回测。可选的,导航栏还可以显示新建量化交易策略的图标,例如“ ”。
57.继续参见图3,控件栏320用于显示多个可编辑的控件,例如条件控件和事件控件。其中,条件控件库用于存放判断条件,事件控件库用于存放执行操作的事件。一个或多个条件可以对应一个条件控件,一个或多个事件可以对应一个事件控件,不作限定。
58.示例性的,条件控件例如可以是一组逻辑判断,例如if/else逻辑判断。用户可以自行选择不同的判断条件,例如均线是否为多头排列?最大可买数量是否大于1?条件控件还可以对选择的账户判断是否持仓,是否有未完成的订单条件进行判断等。
59.示例性的,事件控件可以是一个执行函数,例如以对手价格买入1手某股票,或对整个账户全部撤单。看似简单的逻辑,内部则需要对异常做处理,同时还需要做全局的间隔管理,防止对服务器造成过于集中的并发请求。
60.在一些可选的实施例中,条件控件包括信号控件、账户控件和组合控件中的至少一种。
61.具体而言,信号是跟市场有关的客观数据。可选的,可以根据用户常用的交易依据将信号条件控件分为技术面、基本面、资金面和消息面等几类。在一些实施例中,可以预定
义信号,让用户拖来即用,例如macd的预定义结果是“金叉”、“死叉”、“顶背离”、“底背离”等。图3中的控件栏320示出了信号控件的一个具体例子。例如,技术面可以包括指数平滑异动平均线(moving average convergence and divergence,macd)、随机指标(kdj)、相对强弱指标(relative strenth index,rsi)、动量指标等条件控件,基本面可以包括市盈率(price to earning ratio,pe)、资产收益率(return on assets,roa)、净资产收益率(rate of return on common stockholder’equity,roe)、每股收益(earnings per share,eps)等条件控件,资金面可以包括资金流向、资金分布、筹码分布等条件控件,消息面可以包括舆情跟踪条件控件。
62.可选的,控件栏中还可以包括变量比较信号,用于比较全局变量、常数、数值型条件变量之间的大小关系。
63.具体而言,账户条件是跟个人的交易业务账户有关的,是个性化的。可选的,可以根据用户常用的账号状态,将账户条件控件分别账户资产、最大可买可卖、持仓、订单、成交等几类。例如,资产账户可以包括最大购买力、卖空购买力、现金购买力、资产净值、风险状态、现金、多头市值、空头市值、初始保证金、margin call保证金、维持保证金等条件控件,最大可买可卖可以包括现金可买、最大可买、持仓可卖等条件控件,持仓可以包括持仓方向、持有数量、可卖数量、成本价/开仓价、持仓市值、盈亏比例、盈亏金额、今日买入总量(仅股票)、今日买入总额(仅股票)、今日卖出总量(仅股票)、今日卖出总额(仅股票)、未实现盈亏(仅期货)、以实现盈亏(仅期货)等条件控件,订单可以包括订单状态、上一笔多单的价格、上一笔空单的价格等条件控件,成交可以包括成交状态、成交价格、成交数量等条件控件。
64.具体而言,可以将多个条件,通过且、或、()的逻辑关系打包成一个组合条件,该组合条件可以对应一个组合条件控件。其中,该多个条件可以称为子条件。示例性的,子条件的数量可以为不大于10个。可选的,本技术实施例支持用户自定义组合条件控件。
65.在一些可选的实施例中,事件控件包括下单、撤单、清仓、消息提醒、退出策略程序、赋值运算等时间控件。可选的,下单、撤单和清仓可以属于交易类事件控件。
66.作为一种实现方式,由于控件的内容较多,可以列举一些比较常用的放置在控件栏中,其余可以通过下拉菜单,或点击查看更多展示,不作限定。
67.在一些实施例中,用户可以搜索想要的条件控件或事件控件,对应的界面将自动跳转到该条件控件或事件控件。
68.在一些可选的实施例中,用户可以通过第一操作,选择控件栏320中的控件并添加到策略画布330中形成对应的框,以形成图形化量化交易策略。作为第一操作的一个示例,可以通过左键长按,和/或拖拽组合控件按钮,将该控件添加到策略画布330中。作为具体的示例,当鼠标悬浮在控件栏中的控件上时,此控件会浮起,提示用户可以拖动。可选的,此时画布颜色可以相应变化,以提示用户可以放置的区域。当拖动控件完全进入画布区域后,控件会从原来控件栏中的样式切换成画布内的样式,表示进入可放置的状态。
69.策略画布330中的元素包括框和线。其中,框可以对应用户添加的控件,或预先设置的开始控件。属性栏340用于对控件进行属性编辑。当用户选中策略画布330中的元素(例如框或线)时,属性栏340中可以显示出该元素对应的可编辑参数。示例性的,控件可能存在大量复杂的属性,例如下单时间控件的属性可以包括订单类型、标的、方向、价格、数量等。
本技术实施例通过将属性编辑集中在属性栏中,能够有助于帮助用户理解控件属性,降低开发的复杂度。
70.示例性的,每个图形化量化交易策略可以都有一个开始控件。开始控件可以在创建策略的时候默认生成,即不需要用户拖动创建。
71.继续参见图3,策略画布330中可以默认设置为显示开始控件对应的框(可以称之为开始框)。当选中开始框时,属性栏340中可以显示开始控件的参数编辑设置。开始控件可以包括对于整个图形化量化交易策略的全局属性设置,例如包括适用账户设置、循环设置和全局变量设置中的至少一种。
72.示例性的,由于不同类型的账户(例如期货账户、证券账户等)之间存在部分差异,通过设置适用账户参数,能够在同一款量化交易产品中兼容不同类型的金融产品或衍生品。账户类型也可以称为策略类型。当设置了该参数时,控件栏可以自动联动显示适用的控件,从而避免干扰项。
73.如图3中属性栏340所示,可以通过下拉菜单选择策略类型,例如可以为证券、期货、股票、基金等,不作限定。在一些实施例中,当确定了策略类型之后,如果用户拉取了不适用于所选的策略类型的条件,可以进行警告或提醒。
74.循环设置可以设置在开始设置中,可以包括整个策略的循环设置。具体而言,策略的脚本的循环依赖于二级市场的报价驱动,相应的,用户可以选择每只股票每个报价变动运行一次,或者每根k先开盘运行一次。如图3中属性340所示,标的表示循环参照的标的,频率表示策略循环的频率。作为示例,on_bar_open()可以表示信号标的在指定的k线周期下,每根k线开盘的时候运行一次,on_tick()表示信号标的每个逐笔运行一次,仅执行一次表示该策略只运行一次。
75.全局变量是为了维系前后节点(例如控件)的联系,可以通过全局变量传递节点之间的数据。全局变量设置支持创建全局变量,以供画布内的条件框和/或事件框参数选择,例如可以用于赋值计算、循环迭代的场景。示例性的,如图3所示,可以通过相应的按钮,对全局变量进行新增、编辑、删除等操作。
76.例如,当在开始控件331对应的属性栏340中点击新建按钮,全局变量下方出现可编辑的全局变量框341,此时可以对该全局变量框进行编辑,例如填写变量名、赋值,当点击完成时,该全局变量建立成功。应注意,当在开始框的属性中修改全局变量的变量名或赋值,则后面用到对应的控件时,该全局变量随之改变。
77.作为示例,赋值可以选择手动输入,或选择条件变量。如果用户选择了条件变量,那么可以显示条件变量(例如个信号条件控件或账户条件控件)对应的参数框以进行参数设置。
78.在一些实施例中,当在属性栏编写了开始框的参数后,在策略画布中可以显示参数信息,以便于用户阅读。透出信息例如包括命名、标的、频率中的至少一种,或者其他,不作限定。例如,在图3中,开始框331的透出信息为“每日k运行一次”,其中“日k”为频率信息。
79.在一些实施例中,当用于选择控件栏320中的控件并添加到策略画布330中时,策略画布320中显示该控件对应的框,例如条件控件对应的框(可以称之为条件框)、事件控件对应的框(可以称之为事件框)。
80.本技术实施例中,当选中条件框时,属性栏340中可以显示条件控件的参数编辑设
置。示例性的,条件框可以有四个区域的参数可以调配,分别为变量1区域、判断区域和变量2区域。以下结合图4对条件框的参数设置进行说明。
81.图4示出了条件框对应的属性栏的具体的例子。在(a)图中,变量1区域的条件变量为macd,在(b)图中,变量1区域的条件变量为最大可买。具体而言,变量1区域可以呈现于变量1相关的参数设置,参数设置条数随用户拖拽变量1的不同而改变。例如,如图4中(a)所示,当变量1选择macd时,则下方呈现与macd相关的参数供用户进行设置。
82.示例性的,判断区域可以设置为枚举型,例如用户可以通过下拉菜单进行选择。具体而言,判断可以根据用户选择的条件形成对应的下拉枚举选项,例如对于macd、ema、kdj、量比等字段型调节,判断下拉选项可以为“是”和“不是”;对于流动比率、速冻比率、净利率等数值型条件,判断下拉选项可以为“>”、“<”、“≥”、“≤”、“=”和“≠”等,不做限定。
83.示例性的,变量2区域可以根据变量1的变化而变量。可以分为两种情况:
84.情况一:当变量1为枚举型条件变量时,变量2可以为下拉枚举选项;
85.情况二:当变量1为数值型条件变量时,变量2可以为三种输入方式:1手动输入;2条件变量(例如数值型条件变量);3全局变量。
86.需要说明的是,在变量1或变量2选择后,如果与开始框设置的策略类型出现冲突,则可以对用户进行条件使用提醒,例如可以提醒用户此条件对哪种账户适用。例如,现金可买是只对证券账户适用,而期货账户不适用。
87.示例性的,条件框的命名支持用户修改,也适用于在画布中展示。例如,可以默认对框进行命名,比如可以根据拖入画布的框的顺位进行命令。作为具体的例子,第二个拖进来的条件控件,命名可以为条件2。
88.在一些实施例中,可以支持用户对条件进行备注。可选的,该备注可以记录在画布产生的代码中,形成备注。
89.在一些实施例中,当在属性栏编写了条件框的参数后,在策略画布中可以显示参数信息,以便于用户阅读。透出信息例如包括命名、变量1、变量1相关参数、判断、变量2、变量2相关参数等中的至少一种,或者其他,不作限定。例如,在图3中,条件框332的透出信息为“条件1macd是低位金叉”,其中“条件1”为命名,“macd”为变量1,“是”为判断,“低位金叉”为变量2;条件框333的透出信息为“条件2b>6?”,其中“条件2”为命名,“b”为变量1,“>”为判断,“6”为变量2。
90.在一些实施例中,用户还可以在策略画布330中添加组合条件控件。可选的,上述方法300还包括响应于用户的第三操作,显示弹窗;获取用户在所述弹窗中输入的至少两个条件(即子条件)和所述至少两个条件的关联关系;根据所述至少两个条件和所述关联关系,生成所述组合条件控件。
91.示例性的,组合条件控件的参数编辑在弹窗中完成,而不是在属性栏中。图5示出了在弹窗中编辑组合条件的界面的一个示例。示例性的,弹窗界面可以包括两部分,分别为条件设置部分(例如图5中的左侧部分)和不同条件的关联关系部分(如图5中的右侧部分)。
92.如图5所示,作为第三操作的一个示例,可以通过左键长按,和/或拖拽组合条件控件按钮,弹出弹窗350的编辑窗口,其中用户可以输入组合条件名称。在条件设置中,点击“ 新增条件”按钮,可以出现子条件编辑框,例如可以包括变量1区域、判断区域、变量2区域等。
93.示例性的,对于变量1区域,可以有2中输入方式:1条件变量、2全局变量(可提供创建全局变量入口)。示例性的,当选择条件变量时,下拉框中的内容可以为条件库中的全部条件,此时还可以呈现对应的参数框(需要用户填写),参数框为条件变量对应的参数设置。当选择全局变量时,下拉框中的内容可以为开始框中已设置的全局变量,此时可以无参数框展示。
94.当用户选择条件变量,并编写完变量1的相关参数后,可以在变量1中显示条件变量及其参数的预览。当用户选择全局变量时,预览为全局变量名称。
95.示例性的,对于判断区域和变量2区域,与上文中条件框对应的属性栏类似,具体可以参见上文中的描述,不再赘述。
96.在一些可选的实施例中,可以对子条件进行删除,例如可以通过“删除”按钮删除子条件。可选的,删除子条件不影响其他子条件的编号。
97.对于组合条件控件中的已设置过的条件,可以用“或”、“且”、“(”、“)”进行关联。图6示出了对各条件进行逻辑关联的一个示例。示例性的,对于“条件”、“或”、“且”等,可以通过点击按钮输入,对于“(”、“)”,可以通过键盘输入,或通过按钮输入。“条件”、“或”、“且”输入至编辑框内后,可以通过下拉框进行更改。
98.在一些可选的实施例中,例如在用户编辑好条件之间的关联关系后,还可以通过中序变量的方式生成二叉树,其中叶子节点可以是条件,树枝节点是逻辑运算符号,然后可以通过树形结构将该二叉树展示出来。图7示出了组合条件控件预览的一个示例。其中,可以将逻辑关联的内容通过树的形式展示。
99.应注意,如果逻辑关联中存在部分正常和部分异常的情况,可以按照最多能展示的正常情况展示与逻辑展示即可。
100.作为示例,在正常情况下,多个条件多个逻辑次属于正常情况,可以按照顺序逐步运算即可。例如,“条件a且条件b或条件c”等同于“条件a且条件b”或条件c。在出现相同逻辑词多个条件的情况下,{可以根据条件数量增加分叉,而不是增加“{”树的数量。具体可以参见图8中的两个条件、大于两个条件,相同逻辑词、大于两个条件,不同逻辑词对应的“{”树结构。
101.对于一些异常情况,例如包括最小颗粒为空括号、括号未配对、条件 条件、逻辑词 逻辑词、条件 逻辑词、逻辑词 条件等,当逻辑关系中只存在空括号、括号未配对时,不做逻辑展示,意味着显示为空。如果逻辑关联检测本身是异常,则按逻辑关系中能展示的最小颗粒展示,例如存在条件 逻辑词、逻辑词 条件时,例如可以展示“a且”或“且b”。逻辑关联中只存在条件 条件、逻辑词 逻辑词时,按照最多能展示的正常情况展示逻辑展示,例如可以展示“a b”、“且且”等。
102.示例性的,当完成组合条件编辑时,可以保存弹窗中的参数设置,并关闭弹窗。对应的,策略画布中可以显示对应的组合条件。
103.在一些可选的实施例中,在用户编辑组合条件控件的过程中,可以进行检验逻辑。如果检验出现问题则前端交互提醒。示例性的,检验逻辑的规则如下:
104.对于参数填写,条件设置中参数(例如条件、判断、值)必须有值;
105.对于逻辑关联,条件与条件之间需要用“或”、“且”等进行关联;括号需要配对,不能有落单的单括号;逻辑词“且”“或”不能连续放置;“(”“)”之间需要有内容,不能出现空括
号;逻辑词“或”或“且”左右均不能出现单括号,如:“或)”、“(且”等。
106.在一些实施例中,当选中策略画布中组合条件控件时,属性栏的主要内容可以包括条件名称以及预览。可选的,可以将组合条件中的子条件内容透出来,而子条件的具体参数可以不展示。例如,透出来的子条件的内容可以为“macd是低位金叉”、“净利润>20%”、“最大可买>0”等。
107.可选的,属性栏中还可以存在组合条件控件的编辑入口,点击后可以进入弹窗,进而可以对该组合条件进行编辑。
108.本技术实施例中,当选中事件框时,属性栏340中可以显示事件控件的参数编辑设置。图9示出了事件框对应的属性栏的具体的例子。其中(a)图中以事件为下单为例,其中数量和价格分别支持3种输入方式:1手动输入、2条件变量(例如数值型条件变量)、3全局变量。
109.其中(b)图中以事件为赋值运算为例,被赋值变量支持枚举型,用户可下拉选择被赋值的全局办理,下拉项中展示的全局变量是在开始框中设置的,若无设置全局变量,则下拉项可为空;运算可以为枚举型,用户可下拉选择运算符,决定下面变量的数量。示例性的,运算符可以包括:求和、做差、四舍五入、绝对值、整除、除数取余等。值的数量与选择的运算有关。变量可以由3中输入方式,同上,不再赘述。
110.示例性的,事件框的命名支持用户修改,也适用于在画布中展示。例如,可以默认对框进行命名,比如可以根据拖入画布的框的顺位进行命令。作为具体的例子,第二个拖进来的事件控件,命名可以为事件2。
111.在一些实施例中,当在属性栏编写了事件框的参数后,在策略画布中可以显示参数信息,以便于用户阅读。例如,下单事件的透出信息例如包括命名,以及所有参数的部分或全部,比如图3中的事件框334:“事件2下单信号标的买100股市价单”。又例如,赋值事件的投出信息例如包括命名,以及属性栏中的预览,比如图3中的事件框335:“事件1b=1 2”。
112.在一些可选的实施例中,可以将控件(例如开始控件、条件控件或事件控件)抽象为数据结构。进一步的,可以对控件实现序列化接口,可以根据控件功能实现完整策略存储,例如对于不同类型的控件实现保存和读取接口,以实现对控件信息的存储,从而可以跨时间、跨设备地使用同一策略,实现策略云同步。
113.本技术实施例中,策略画布330中各控件对应的框可以通过线连接,例如进行串联或并联。其中,开始控件包括图形化量化交易策略的起点。示例性的,开始控件可以是整个图形化量化交易策略的起点,也即图形化量化交易策略对应的程序的主入口。条件控件或事件控件包括入口和出口,所述入口用于放置所述连接线的终点,所述出口用于放置所述连接线的起点。示例性的,用户可以通过第二操作,根据所需要的量化交易策略,将连接线的两端分别放置在控件的出口和入口。
114.示例性的,线可以具有箭头,用于表示控件的运行顺序,从而可以将单独的控件连接成完整的策略流程图。
115.在一些可选的实施例中,开始框可以有多个出口,条件框支持单进单出或者单进双出,事件框支持单进单出或者单进无出。可选的,框可以支持新增至画布、画布中拖拽、hover&选中、多选、复制、剪贴、粘贴、删除等,不做限定。在一些实施例中,开始框不支持删除、复制、剪贴或粘贴等操作。
116.在一些可选的实施例中,连接线包括两种,分别为带参数的线和不带参数的线。不带参数的线,即可以包括方向而不包括参数,例如可以为开始控件或事件控件后面的线。带参数的线,可以包括方向和参数。例如,条件控件的出口放置的连接线包括第一参数,所述第一参数用于指示所述条件控件所表示的条件是否成立。也就是说,由条件框出来的线,参数可以为“是”或“否”,对应的,线上可以标识出对应的情形,例如可以在线上叠加显示“是”或“否”字体。可选的,可以对线的参数进行修改。
117.作为一个具体的例子,条件框出来的线,默认参数为“是”。当选中线之后,可以在属性栏中修改线的参数,例如由“是”修改为“否”。
118.作为示例,线可以从框的右侧出,左侧进;线可以穿过画布中的框,并置于框的前面;线可以作为单独的对象放置在画布中。示例性的,对线的操作,支持连线、拖拽、hover&选中、多选、删除、剪贴、复制或粘贴等。
119.需要说明的是,对策略画布上的量化交易策略的检测可以伴随整个创建策略的过程,例如可以包括策略整体的检测、控件内部的检测、控件之间的检测,例如检查每个节点的数据是否符合规则,路径是否合理等,以保证最终的策略能够正常生成代码并且是可用的。
120.进一步的,本实施例中可以包括如下步骤:
121.基于控件的功能,确定控件对应的功能系数;
122.基于各控件之间的功能系数,确定控件之间的关联关系;
123.根据关联关系,判定两个控件之间是否可以连线,以在两个控件不能连线但用户将两者连接时,进行报错。
124.具体的,基于控件的功能确定控件对应的功能系数,例如设定节点控件(开始控件和结束控件)的功能系数为0.1、条件控件的功能系数为0.3,事件控件的功能系数为0.6,若当两个控件的功能系数之差的绝对值大于或者等于0.3时,判定两者为强关联关系;若当两个控件的功能系数之差的绝对值大于或者等于0.2、且小于0.3时,判定两者为中关联关系;若当两个控件的功能系数之差的绝对值小于0.2时,判定两者为弱关联关系。在两个控件互相为弱关联关系时,则判定两个控件之间不能连线,在用户将两者连接时,进行报错。通过上述方式可以快速、高效的进行错误提醒,提高策略生成的效率。
125.230,根据所述图形化量化交易策略,获取量化交易策略脚本。
126.具体而言,当用户在策略画布上完成图形化量化交易策略,即将完整的策略流程绘制完成之后,可以对该图形化量化交易策略进行编译,生成量化交易策略脚本。
127.在一些可选的实施例中,可以根据所述图形化量化交易策略,确定至少一个路径(path),该路径包括至少一个第一控件和该第一控件与相邻控件的连接线。作为一种可能的实现方式,可以将该第一控件封装为第一函数。之后,根据该第一函数和第一控件与相邻控件的连接线,将所述路径封装为第二函数,第二函数内部调用所述路径内的第一控件的第一函数。之后,根据该第二函数,获取所述量化交易策略脚本,其中,所述量化交易策略脚本包括回调函数,该回调函数调用第二函数。
128.图10示出了根据图形化量化交易策略确定的至少一个路径的一个具体例子。其中,一个圆圈可以代表一个控件,可以称之为节点。如图10所示,最左侧的节点表示开始控件,其余的节点为条件控件或事件控件,每条路径上可以包括至少一个节点(例如第一控件
对应的节点,第一控件例如为条件控件或事件控件)和该节点与相邻节点的连接线。
129.示例性的,在确定至少一个路径时,路径的数量可以与开始控件的出口数相同。也就是说,从开始控件的节点出发,每条线上的节点和节点之间的连线可以组成一条路径。同时,根据每条路径上节点之间的连线可以确定每条路径内的节点的顺序关系。具体可以参见图10中路径1至路径n。
130.如图10所示,当路径包括至少两个第一控件(即节点),该至少两个第一控件组成树形网络拓扑结构。具体的,本技术对路径上每个节点的分叉次数不做限定,例如每个分叉节点可能是1叉树,也可能是2叉树。
131.需要说明的是,图形化量化交易策略中还可能存在未被纳入路径的部分,例如图10中的控件孤岛对应的2个节点。未被纳入路径的部分,可以不在当前策略脚本的运行体系当中,例如可以以控件孤岛的形式游离在流程之外。另外,控件孤岛可以存在在策略画布上,以方便用户在策略调试的过程中随时调取,但并不会参与代码编译。
132.由于开始控件中设置了整个量化交易策略的循环属性,从而每次触发主回调函数,可以按顺序串行触发多条路径。示例性的,每条路径可以被封装成单独的路径函数(例如第二函数),每个控件也可以被封装成单独的控件函数(例如第一函数)。在量化交易策略脚本运行时,主回调函数可以调用每条路径对应的路径函数,每条路径对应的路径函数内部可以调用每个控件对应的控件函数。
133.在本技术实施例中,基于图形化量化交易策略构建的至少一个路径,使得函数调用关系清晰,层次关系明显,从而自动化的策略代码生成过程更加可控,各种异常处理都有明确的边界。
134.在一些可选的实施例中,在根据条件控件生成脚本的过程中,可以判断条件是否成立来选择下一个要执行的节点生成的函数。
135.图11是根据图形化量化交易策略确定的至少一个路径的另一个具体例子。示例性的,图11中路径1部分的转换后代码如下:
[0136][0137][0138]
在另一些可能的实现方式,在生成策略脚本时,还可以把每个节点生成一个方法,然后整个路径可以逐步调用每个方法的过程。或者,还可以把整个策略看成是一个树形结构,根据该树形结构,生成对应的代码和缩进,可以把一个路径里的代码都放在一个方法里,以避免生成较多的方法,方便逻辑阅读。
[0139]
240,运行所述量化交易策略脚本,获取量化交易结果。
[0140]
图12示出了策略脚本运行的一个示意性流程图。如图12所示,策略脚本运行时,策略程序可以与客户端(例如windows/mac)的应用程序编程接口(application programming interface,api)模块建立连接。api模块完成各自请求的收发,并做数据缓存,以减少对于后台的请求压力。缓存数据可以直接返回,其他数据可以再次向后台请求。api模块对数据做处理后,可以返回数据给策略程序。示例性的,所有行情类请求和交易类请求,都可以按照图12所示的架构实现。
[0141]
示例性的,可以使用python作为运行策略脚本的呈现语言。由于python语言用户操作简单,不需要单独安装环境,用户可方便自行编辑和接入运行。
[0142]
图13示出了本技术实施例提供的接口响应的通信架构的一个示意性框图。如图13所示,策略运行过程中,可以实时管理策略的运行、查看策略运行的状态和/或查看策略运行结果。示例性的,运行结果可以包括账号资产、持仓、订单等信息,或者包括k线上的打点信息和预设的消息通知。
[0143]
如图13所示,策略管理模块和策略程序可以分进程运行,这样策略管理模块作为父进程,容易控制子进程的运行情况,也避免策略程序异常时导致策略管理模块卡死的问题。
[0144]
示例性的,进程之间可以采用socket通信,以实现方便可移植或扩展。另外,通过socket通信也能够使得脚本程序兼容现有的opend程序,即脚本可以在现有的openapi程序上运行。除此之外,本技术实施例也可以采用其他方式实现跨进程通信,例如管道、共享内存、远程过程调用等,本技术对此不做限定。
[0145]
进一步的,本实施例中在基于图形化量化交易策略运行量化交易策略脚本,并运行成功之后,可以获取图形化量化交易策略的策略名称,之后将该图形化量化交易策略存储,以便于之后复盘或者复用。除此之外,本实施例还包括如下步骤:
[0146]
基于图形化量化交易策略中的控件标识生成策略控件信息;
[0147]
基于图形化量化交易策略的策略功能和策略控件信息,存储所述图形化量化交易策略;
[0148]
在获取到新建图形策略的新建名称时,从存储的图形化量化交易策略中选取目标策略进行推荐。
[0149]
本实施例中基于图形化量化交易策略中的控件标识生成策略控件信息的方式可以是将图形策略中所有的控件标识连接起来,得到控件信息,以从控件信息中可以直接获取到其中存有的控件;之后在获取到新建图形策略的新建名称时,从存储的图形化量化交易策略中进行匹配,以确定对应的目标策略并进行推荐。
[0150]
因此,本技术实施例通过获取用户通过图形化界面输入的图形化量化交易策略,并对该图形化量化交易策略进行编译获取量化交易策略脚本,通过运行该策略脚本,能够获取量化交易结果。本技术中用户通过图形化界面,可以根据各种需求编辑出想要的图形化量化交易策略,而不需要具有编写程序代码的能力,从而本技术能够实现简单、灵活地创建量化交易策略,满足用户的各种需求。
[0151]
以上结合附图详细描述了本技术的具体实施方式,但是,本技术并不限于上述实施方式中的具体细节,在本技术的技术构思范围内,可以对本技术的技术方案进行多种简单变型,这些简单变型均属于本技术的保护范围。例如,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本技术对各种可能的组合方式不再另行说明。又例如,本技术的各种不同的实施方式之间也可以进行任意组合,只要其不违背本技术的思想,其同样应当视为本技术所公开的内容。
[0152]
还应理解,在本技术的各种方法实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例
的实施过程构成任何限定。应理解这些序号在适当情况下可以互换,以便描述的本技术的实施例能够以除了在图示或描述的那些以外的顺序实施。
[0153]
上文结合图1至图13,详细描述了本技术的方法实施例,下文结合图14至图15,详细描述本技术的装置实施例。
[0154]
图14是本技术实施例的创建量化交易策略的装置400的示意性框图。如图14所示,所述装置400可包括显示单元410、获取单元420和处理单元430。
[0155]
显示单元410,用于显示图形化界面,所述图形化界面包括至少一个可编辑的控件。
[0156]
获取单元420,用于获取用户通过所述图形化界面输入的图形化量化交易策略,所述图形化量化交易策略包括至少两个已编辑的控件和连接线,其中,所述连接线用于连接所述已编辑的控件,所述已编辑的控件包括属性参数。
[0157]
处理单元430,用于根据所述图形化量化交易策略,获取量化交易策略脚本。
[0158]
所述处理单元430还用于运行所述量化交易策略脚本,获取量化交易结果。
[0159]
在一些可选的实施例中,所述图形化界面包括控件栏、策略画布和属性栏。所述获取单元420具体用于:
[0160]
获取用户在所述控件栏中选择的至少一个控件;
[0161]
响应于用户的第一操作,将所述至少一个控件添加至所述策略画布,其中,所述策略画布中预先设置开始控件;
[0162]
获取用户在所述策略画布中选择的控件,并在所述属性栏对所述选择的控件的属性参数进行编辑;
[0163]
响应于用户的第二操作,将所述至少一个控件和所述开始控件通过所述连接线进行连接,以生成所述图形化量化交易策略。
[0164]
在一些可选的实施例中,所述控件栏包括条件控件和/或事件控件。
[0165]
在一些可选的实施例中,所述条件控件包括组合条件控件,所述显示单元410还用于响应于用户的第三操作,显示弹窗。所述获取单元420还包括:获取用户在所述弹窗中输入的至少两个条件和所述至少两个条件的关联关系。所述处理单元430还用于根据所述至少两个条件和所述关联关系,生成所述组合条件控件。
[0166]
在一些可选的实施例中,处理单元430还用于:
[0167]
通过中序变量的方式生成二叉树,其中,所述二叉树的叶子节点表示所述至少两个条件,所述二叉树的树枝节点表示所述至少两个条件的关联关系。
[0168]
显示单元410还用于显示所述组合条件控件的预览图,所述预览图包括所述二叉树。
[0169]
所述开始控件的属性设置包括适用账户设置、循环设置和全局变量设置中的至少一种。
[0170]
在一些可选的实施例中,所述处理单元430具体用于:
[0171]
根据所述图形化量化交易策略,确定至少一个路径,所述路径包括至少一个第一控件和所述第一控件与相邻控件的连接线;
[0172]
将所述第一控件封装为第一函数;
[0173]
根据所述第一函数和所述第一控件与相邻控件的连接线,将所述路径封装为第二
rate sdram,ddr sdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synch link dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,dr ram)。
[0187]
在本技术的一些实施例中,该计算机程序可以被分割成一个或多个模块,该一个或者多个模块被存储在该存储器810中,并由该处理器820执行,以完成本技术提供的编码方法。该一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述该计算机程序在该电子设备800中的执行过程。
[0188]
可选的,如图8所示,该电子设备800还可包括:
[0189]
收发器830,该收发器830可连接至该处理器820或存储器810。
[0190]
其中,处理器820可以控制该收发器830与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。收发器830可以包括发射机和接收机。收发器830还可以进一步包括天线,天线的数量可以为一个或多个。
[0191]
应当理解,该电子设备800中的各个组件通过总线系统相连,其中,总线系统除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。
[0192]
根据本技术的一个方面,提供了一种通信装置,包括处理器和存储器,该存储器用于存储计算机程序,该处理器用于调用并运行所述存储器中存储的计算机程序,使得所述编码器执行上述方法实施例的方法。
[0193]
根据本技术的一个方面,提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得该计算机能够执行上述方法实施例的方法。或者说,本技术实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述方法实施例的方法。
[0194]
根据本技术的另一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方法实施例的方法。
[0195]
换言之,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本技术实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,dvd))、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
[0196]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟
以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0197]
在本技术所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0198]
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。例如,在本技术各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
[0199]
以上仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以该权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献