策略开发标准流程
由qxiao创建,最终由qxiao 被浏览 5 用户
我们在进行模拟交易策略开发时主要分两种情况:
情况一:将数据(因子)的加工、清洗和存储作为独立任务,模拟交易策略依赖数据因子任务的成功执行,进而触发模拟交易任务的运行;
情况二:数据(因子)的加工、清洗和存储与模拟交易策略任务置于同一个任务中,只不过从代码逻辑来讲先执行数据(因子)的入库保存,再执行模拟交易策略运行;
在介绍具体的情况下的使用细节时,我们首先介绍平台提交任务时使用到的几个参数的概念:
1.参数可分为两组:依赖标签和输出标签,输入数据和输出数据;
(1)依赖标签:指该任务运行时需要依赖前置任务的输出标签,用户可通过输入关键字模糊匹配选择用户有权使用的依赖标签;
(2)输出标签:指该任务运行时的输出标签,用户可自由输入定义(该标签可作为用户自己的其他任务的输入标签或者其他用户有权使用时的输入标签)
(3)输入数据:指该任务的代码中需要依赖使用的数据标签,来源于用户自己其他任务的输出数据或者是其他用户在平台上提交的用户有使用权限的输出数据,用户可通过输入关键字模糊匹配选择用户有权使用的数据标签;
(4)输出数据:指该任务的代码中输出的更新或创建的数据表(即只能是用户自己的数据表或者数据视图);用户可通过输入关键字模糊匹配选择用户的数据表,从而输出对应的输出数据标签(该数据标签可作为用户自己的其他任务的输入数据或者其他用户有权使用时的输入数据)
2.根据上述概念,我们可知输入数据和输出数据是特殊的输入标签和输出标签;针对输出标签,我们未限制用户一定要引用数据跟数据关联;但是输出数据,我们规定必须引用数据跟数据映射起来;
3.不论是输入、输出数据还是输入、输出标签,只有前置任务有输出对应的输出数据/标签时,我们的后置任务才可使用前置任务的输出数据/标签,从而后台任务才可根据对应的标签关联关系触发对应任务的运行。
4.根据数据和标签的关联关系,只有前置任务成功完成时,才会触发对应后置任务的运行。
注:上述输入、输出标签同理都可以替换为对应的输入、输出数据
\
情况一
一:用户点击【编写策略】进入AIStudio,然后进行相关数据(因子)的加工、清洗、存储,构建用户运行模拟交易任务需要的使用的数据(因子)。
1.用户构建数据(因子)代码;
2.用户构建数据(因子)完成后,提交对应的数据(因子)任务
(1)点击提交按钮;
(2)选择因子任务或者数据任务;
(3)输出数据:务必填入
①后续策略任务需要使用该任务的关联数据
②若后续的模拟交易策略分享至策略社区给其他用户订阅,我们会根据相关输出数据赋予用户对应的数据订阅权限
二、用户在AIStudio构建自己的模拟交易策略
1.用户构建策略代码
2.用户构建策略代码完成后,提交对应的日频交易任务
3.输入数据:务必填入
①该策略任务需要依赖该输出数据的前置任务的数据
②只有前置任务更新完成,数据刷新后才会触发该策略任务运行,保证策略信号质量
③若后续的该交易策略分享至策略社区给其他用户订阅,我们会根据相关输入数据赋予用户对应的数据订阅权限
\
情况二
用户点击【编写策略】进入AIStudio,直接进行相关策略代码编写
1.用户构建策略代码
(1)策略代码逻辑中先进行数据(因子)的加工、清洗、存储入库;对于数据生产模块,为了保障用户的著作权和隐私性,用户可点击【设为代码保护单元格】,这样用户在策略社区订阅时,数据的具体加工逻辑代码是不可见的。
(2)然后再在上述逻辑完成后进行交易策略逻辑的编辑
(3)在该任务中同时包含数据入库的逻辑和交易策略的逻辑,该策略中会同时生产数据(因子)和策略交易信号
2.用户构建策略完成后,提交对应的日频交易任务
(1)点击提交按钮;
(2)选择日频交易任务;
(3)输出数据:务必填入
①后续策略任务需要使用该任务的关联数据
②若后续的模拟交易策略分享至策略社区给其他用户订阅,我们会根据相关输出数据赋予用户对应的数据订阅权限