因子与评价
因子模块
starfish::facplfBasic::facplf_create_new_factor(param)
详情
新建一个因子模块。
参数
param:字典,键的类型为字符串。包含以下键值对:
-
name 必填,字符串,表示因子模块的名称。
-
properties 选填,字符串,表示因子模块的属性。多个属性使用逗号 "," 分隔。
-
tags 选填,字符串,表示因子模块的标签,多个标签使用逗号 "," 分隔。
-
comment 选填,字符串,表示因子模块的备注信息。
返回值
一个字典,包含以下键值对:
-
factor_id:因子模块的唯一 ID。
例子
starfish::facplfBasic::facplf_create_new_factor({"name": "apitest_factorModule","properties": "SQL,Level2","tags": "test"})
/* output:
factor_id->d1d3c1e8-083e-781a-6f66-839acf3e5105
*/
starfish::facplfBasic::facplf_edit_factor(param)
详情
编辑因子模块。
参数
param:字典,键的类型为字符串。包含以下键值对:
-
factor_id 必填,字符串,表示因子模块的唯一 ID。
-
name 选填,字符串,表示修改后的因子模块的名称。
-
properties 选填,字符串,表示修改后的因子模块的属性。多个属性使用逗号 "," 分隔。
-
tags 选填,字符串,表示修改后的因子模块的标签,多个标签使用逗号 "," 分隔。
-
comment 选填,字符串,表示修改后的因子模块的备注信息。
-
code 选填,字符串,表示修改后的因子模块的实际代码。
返回值
一个整型标量,表示成功修改的数量。
例子
starfish::facplfBasic::facplf_edit_factor({"factor_id": "eebbf822-7330-403d-ac86-ef82f91a46d5", "name": "test_factor","properties": "SQL","tags": "test","comment": "", "code": "def apitest(price){return max(price)}"})
// output:1
starfish::facplfBasic::facplf_get_factor_list()
详情
查看因子模块列表。
参数
无
返回值
一个字典,包含以下键值对:
-
total:整型,因子模块总数。
-
items:表,因子模块列表。包含以下字段:
字段名
类型
说明
factor_id UUID 因子模块的唯一 ID。 func_list STRING 因子模块的因子函数名称。 name STRING 因子模块的名称。 properties STRING 因子模块的属性。 tags STRING 因子模块的标签。 comment STRING 因子模块的备注。 run_record_count INT 因子模块的运行次数。 create_time TIMESTAMP 因子模块的创建时间。 update_time TIMESTAMP 因子模块的更新时间 creator STRING 创建因子模块的用户名称。
例子
starfish::facplfBasic::facplf_get_factor_list()
/* output
total->1
items->
factor_id func_list name properties tags comment run_record_count create_time update_time creator
------------------------------------ ---------- ------- ---------- ---- ------- ---------------- ----------------------- ----------------------- -------
e60677a1-0733-e064-cf5d-711cab7caa45 WQAlpha101 apitest SQL test 1 2024.10.25 11:47:46.975 2024.10.25 11:47:46.975 admin
*/
starfish::facplfBasic::facplf_get_factor_detail(param)
详情
查看因子模块详情。
参数
param:字典,键的类型为字符串。包含以下键值对:
-
factor_id 必填,字符串,表示因子模块的唯一 ID。
返回值
一个字典,包含以下键值对:
-
factor_id:因子模块的唯一 ID。
-
func_list:字符串类型数组向量,表示因子模块的因子函数列表。
-
name:字符串标量,表示因子模块的名称。
-
properties:字符串标量,表示因子模块的属性。
-
comment:字符串标量,表示因子模块的备注。
-
tags:字符串标量,表示因子模块的标签。
-
create_time:TIMESTAMP,表示因子模块的创建时间。
-
update_time:TIMESTAMP,表示因子模块的更新时间。
-
creator:字符串标量,表示创建因子模块的用户名称。
-
run_record_count:整型标量,表示因子模块的运行次数。
-
analysis_record_count:整型标量,表示因子模块的评价次数。
-
code:BLOB,表示因子模块代码。
例子
starfish::facplfBasic::facplf_get_factor_detail({"factor_id": "d1d3c1e8-083e-781a-6f66-839acf3e5105"})
/* output:
factor_id->d1d3c1e8-083e-781a-6f66-839acf3e5105
func_list->["test_factor"]
name->"test_factor"
properties->"SQL"
comment->""
tags->""
create_time->2024.10.23 15:41:42.582
update_time->2024.10.31 17:16:48.095
creator->"admin
run_record_count->25
analysis_record_count->1
code->def test_factor(price){return max(price)}
*/
starfish::facplfRun::facplf_create_draft_test(param)
详情
运行因子模块。在使用前,需要先运行 use starfish::facplfRun
。
参数
param:字典,键的类型为字符串。包含以下键值对:
-
factors 必填,DICT,表示要运行的因子模块。
-
factor_templates:必填,DICT[],表示运行时使用的因子模板。
-
analysis:必填,BOOL,表示是否进行因子评价。
- analysis_template:选填,DICT,表示运行时使用的因子评价模板。
-
type:STRING,表示因子模块的类型,分为 public 和 private。
-
factor_id:STRING,因子模块的唯一 ID。
-
funcs:STRING[],表示要运行的因子函数名称。
-
template_id:STRING,因子模板的唯一 ID。
-
template_params:DICT[],因子模板的参数,每个 dict 包含以下键值对:
-
name:字符串标量,表示因子模板的参数名称;
-
value:标量,类型由下一个参数 type 的取值决定,表示因子模板的参数值;
-
type:字符串标量,表示因子模板的参数类型,有如下取值:
-
string:文本输入,参数值需要传入一个string;
-
date:日期选择,参数值需要传入一个 DATE 格式的 string;
-
time:时间选择,参数值需要传入一个 TIME 格式的 string;
-
datetime:日期时间选择,参数值需要传入一个 DATETIME 格式的 string;
-
float:数字输入框,参数值需要传入一个数值类型标量;
-
double:数字输入框,参数值需要传入一个数值类型标量;
-
short:数字输入框,参数值需要传入一个数值类型标量;
-
int:数字输入框,参数值需要传入一个数值类型标量;
-
long:数字输入框,参数值需要传入一个数值类型标量;
-
bool:是否选择器,参数值需要传入一个 bool 类型的标量;
-
db_tb_select:库表选择器,参数值需要传入一个 dict,包含以下键值对:
-
database:字符串,表示选择的数据库的库名;
-
table:字符串,表示选择的数据库中指定的表名;
-
-
db_tb_col_select:库表列选择器,参数值需要传入一个 dict,包含以下键值对:
-
database:字符串,表示选择的数据库的库名;
-
table:字符串,表示选择的数据库中指定的表名;
-
column:字符串,表示选择的库表中指定的列名;
-
-
prev_task_result:前置模板运行结果选择器,参数值需要传入一个数值类型标量,表示 【TODO】
-
factor: 因子函数入参,表示要运行的因子函数,参数值需要传入一个 NULL。
-
-
-
template_id:STRING,评价模板的唯一 ID。
-
template_params:DICT[],
评价模板的参数,每个 dict 包含以下键值对:
-
name:字符串标量,表示评价模板的参数名称;
-
value:标量,类型由下一个参数 type 的取值决定,表示评价模板的参数值;
-
type:字符串标量,表示评价模板的参数类型,取值范围与因子模板的参数类型取值范围一致。
-
返回值
一个字典,包含以下键值对:
-
tests:STRING[],表示因子模块的运行结果。
例子
use starfish::facplfRun
starfish::facplfRun::facplf_create_draft_test({"factors": [{"type": "private","factor_id": "d1d3c1e8-083e-781a-6f66-839acf3e5105","funcs": ["apitest"]}],"factor_templates": [{"template_id": "440a4075-6903-0ffe-4365-434782e5801b","template_params": [{"name": "data","type": "db_tb_select","value": {"database": "dfs://factor_test","table": "data"}},{"name": "factorName","type": "factor","value": NULL},{"name": "startDate","type": "date","value": "2024.09.20"},{"name": "endDate","type": "date","value": "2024.09.20"},{"name": "securityidName","type": "string","value": "securityid"},{"name": "tradetimeName","type": "string","value": "tradetime"},{"name": "frequency","type": "string","value": "1m"}]}],"analysis": false})
// output: tests->["admin_apitest_factorModule2_apitest_6927068c_f7c0_7a84_627f_146261d813e8"]
starfish::facplfBasic::facplf_get_test_detail(param)
详情
查看因子模块的运行结果。
参数
param:字典,键的类型为字符串。包含以下键值对:
-
test_id:必填,字符串,因子模块的运行结果的 ID。
返回值
-
test_id:STRING,测试任务的 ID。
-
name:STRING,测试任务的名称。
-
comment:STRING,测试任务的备注。
-
create_time:TIMESTAMP,测试任务的创建时间。
-
status:INT,测试任务的状态,0 表示未完成,1 表示成功,-1 表示失败。
-
jobs:ANY VECTOR,作业列表,元素为字典,描述任务内各作业的详细信息,包含以下键值对:
-
factor_name:STRING,因子模块的名称。
-
func_name:STRING,运行的因子函数名称。
-
test_id:STRING,作业对应的任务 ID。
-
test_status:INT,作业运行状态,0 表示未完成,1 表示成功,-1 表示失败。
-
test_run_time:DOUBLE,作业运行时长,单位为秒。
-
analysis_record_id:STRING,分析记录 ID。如无此项则不返回。
-
analysis_status:INT,分析状态,0 表示未完成,1 表示成功,-1 表示失败。如无此项则不返回。
-
analysis_run_time:DOUBLE,分析运行时长,单位为秒。如无此项则不返回。
-
-
params:DICT,测试任务相关的参数信息,包含以下键值对:
-
factor_templates:ANY VECTOR,因子模板列表,元素为字典,描述模板信息,包含以下键值对:
-
template_id,STRING,模板 id。
-
template_params,ANY VECTOR,模板参数列表,元素为字典,每个字典描述一个参数,包含以下键值对:
-
name,STRING,参数名称。
-
type,STRING,参数类型。
-
value,ANY,参数值。
-
-
-
analysis,BOOL,是否启用分析。
-
analysis_template,DICT,分析模板,结构与 factor_templates 中的模板参数相同,仅在启用分析时返回。
-
例子
starfish::facplfBasic::facplf_get_test_detail({"test_id": "311fc710-a592-6ba9-bd3a-77e0677309a1"})
/* output:
test_id->311fc710-a592-6ba9-bd3a-77e0677309a1
name->apitest_task
comment->
create_time->2024.10.28T16:54:29.064
status->1
jobs->factor_name func_name test_id test_status test_run_time
--------------------- --------- ----------------------------- ----------- -------------
apitest_factorModule2 apitest admin_apitest_factorModule2...1 0.176
params->analysis_template->
analysis->0
factor_templates->...
*/
starfish::facplfBasic::facplf_get_single_test_detail(param)
详情
查看单个因子的运行结果。
参数
param:字典,键的类型为字符串。包含以下键值对:
-
test_id:必填,字符串,因子模块的运行结果的 ID。
返回值
一个字典,包含以下键值对:
-
test_id:STRING,因子模块的运行结果的 ID。
-
factor_name:STRING,因子模块的名称。
-
func_name:STRING,运行的因子函数名称。
-
create_time:TIMESTAMP,因子模块的创建时间。
-
params:DICT[],运行时使用的因子模板参数。
-
status:INT,因子模块的运行结果,0 表示未完成,1 表示运行成功,-1 表示运行失败。
-
node:STRING,运行因子模块的节点名称。
-
source_code BLOB 运行的因子函数代码
-
result TABLE 因子模块运行的计算结果表
-
failed_reason STRING 因子模块失败的原因,运行成功或未完成则返回空字符串
例子
starfish::facplfBasic::facplf_get_single_test_detail({"test_id": "admin_apitest_factorModule2_apitest_6927068c_f7c0_7a84_627f_146261d813e8"})
/* output:
test_id->"admin_apitest_factorModule2_apitest_6927068c_f7c0_7a84_627f_146261d813e8"
factor_name->"apitest_factorModule2"
func_name->"apitest"
create_time->2024.10.24T10:41:16.828
params->[{"template_id": "440a4075-6903-0ffe-4365-434782e5801b","template_params": [{"name": "data","type": "db_tb_select","value": {"database": "dfs://factor_test","table": "data"}},{"name": "factorName","type": "factor","value": null},{"name": "startDate","type": "date","value": "2024.09.20"},{"name": "endDate","type": "date","value": "2024.09.20"},{"name": "securityidName","type": "string","value": "securityid"},{"name": "tradetimeName","type": "string","value": "tradetime"},{"name": "frequency","type": "string","value": "1m"}],"preset": null}]
status->1
node->"single7301"
source_code->defg apitest(price){return max(price)}
result->
securityid tradetime factorname value
---------- ----------------------- ------------------------------ -----------------
600100 2024.09.20T09:30:00.000 apitest_factorModule2::apitest 9.333968369755893
600100 2024.09.20T09:31:00.000 apitest_factorModule2::apitest 9.945276074577122
...
failed_reason->""
*/
因子计算模板
starfish::facplfBasic::facplf_create_new_private_factor_template(param)
详情
新建一个因子计算模板。
参数
param:字典,键的类型为字符串。包含以下键值对:
-
name:必填,STRING,因子计算模板的名称。
-
properties:选填,STRING,因子计算模板的属性,多个属性使用逗号 "," 分隔。
-
tags:选填,STRING,因子计算模板的标签,多个标签使用逗号 "," 分隔。
-
comment:选填,STRING,因子计算模板的备注。
返回值
一个字典,包含以下键值对:
-
template_id:UUID,因子计算模块的唯一 ID。
例子
starfish::facplfBasic::facplf_create_new_private_factor_template({"tags": "test","factor_properties": "SQL","name": "test_template"})
// output: template_id->623b9f8c-3933-23b4-d506-13bb3524c084
starfish::facplfBasic::facplf_edit_private_factor_template(param)
详情
编辑因子计算模板。
参数
param:字典,键的类型为字符串。包含以下键值对:
-
template_id:必填,STRING,因子计算模板的唯一 ID。
-
name:选填,STRING,要修改后的因子计算模板的名称。
-
factor_properties:选填,STRING,要修改后的因子计算模板的属性,多个属性可以用逗号分隔。
-
tags:选填,STRING,要修改后的因子计算模板的标签,多个标签可以用逗号分隔。
-
comment:选填,STRING,要修改后的因子计算模板的备注。
-
code:选填,STRING,要修改后的因子计算模板的实际代码。
返回值
一个整型标量,表示成功修改的数量。
例子
starfish::facplfBasic::facplf_edit_private_factor_template({"template_id": "623b9f8c-3933-23b4-d506-13bb3524c084", "name": "test_template1","properties": "SQL","tags": "test","comment": "", "code": 'def test_template1(data, startDate, endDate, factorName, oriName, tarName, tarValueName, securityidName, tradetimeName, frequency){\r\n // 该计算模板以SQL的方式调用因子模块代码,并进行group by分组\r\n // 找出因子函数所需参数\r\n syntax = (exec syntax from defs() where name = factorName)[0]\r\n parameter = syntax[1:(strlen(syntax)-1)].split(\",\")\r\n mapping = dict(parameter, parameter)\r\n\r\n // 列名映射\r\n ori = oriName.strReplace(\" \",\"\").split(\",\")\r\n tar = tarName.strReplace(\" \",\"\").split(\",\")\r\n mapping[tar] = ori\r\n param = mapping[parameter]\r\n\r\n // 生成元代码\r\n args = each(sqlCol, param)\r\n // 将指定值转成int型\r\n args[!isNull(int(param))] = dropna(int(param))\r\n\r\n // sql 元代码\r\n // 选择所有代码并进行因子计算\r\n tarValueNameVector = tarValueName.split(\",\")\r\n selects = (sqlColAlias(parseExpr(\"\'\"+frequency+\"\'\"), `frequency),sqlColAlias(makeUnifiedCall(funcByName(factorName), args), tarValueNameVector))\r\n from_tb = data\r\n whereConditions = expr(startDate, <=, sqlCol(tradetimeName,date), <=, endDate)\r\n ret = sql(\r\n select = selects,\r\n from = from_tb,\r\n where = whereConditions,\r\n groupBy=[sqlCol(securityidName), sqlColAlias(parseExpr(\"interval(\"+ tradetimeName +\",\"+ frequency+\",\"+\'\"none\"\'+\")\"), tradetimeName)],\r\n groupFlag = 1\r\n )\r\n return ret.eval()\r\n}'})
// output:1
starfish::facplfBasic::facplf_get_private_factor_template_list()
详情
查看因子计算模板列表。
参数
无
返回值
一个字典,包含以下键值对:
-
total:整型,因子计算模板总数。
-
items:表,因子计算模板列表。包含以下字段:
键
值类型
说明
template_id UUID 因子计算模板的唯一 ID name STRING 因子计算模板的名称 factor_properties STRING 因子计算模板的属性 tags STRING 因子计算模板的标签 comment STRING 因子计算模板的备注 create_time TIMESTAMP 因子计算模板的创建时间 update_time TIMESTAMP 因子计算模板的创建时间 creator STRING 创建因子计算模板的用户名称
例子
starfish::facplfBasic::facplf_get_private_factor_template_list()
/* output
total->1
items->
template_id name factor_properties tags comment create_time update_time creator
------------------------------------ ------------- ----------------- ---- ------- ----------------------- ----------------------- -------
623b9f8c-3933-23b4-d506-13bb3524c084 test_template SQL test 2024.10.24 16:52:53.342 2024.10.24 17:57:36.002 admin
*/
starfish::facplfBasic::facplf_get_private_factor_template_detail(param)
详情
查看因子模块详情。
参数
param:字典,键的类型为字符串。包含以下键值对:
-
template_id 必填,字符串,表示因子计算模板的唯一 ID。
返回值
一个字典,包含以下键值对:
-
template_id:STRING,因子计算模板的唯一 ID。
-
name:STRING,因子计算模板的名称。
-
factor_properties:STRING,因子计算模板的属性。
-
tags:STRING,因子计算模板的标签。
-
comment:STRING,因子计算模板的备注。
-
create_time:TIMESTAMP,因子计算模板的创建时间。
-
update_time:TIMESTAMP,因子计算模板的更新时间。
-
creator:STRING,创建因子计算模板的用户名称。
-
code:BLOB,因子计算模板代码。
例子
starfish::facplfBasic::facplf_get_private_factor_template_detail({"template_id": "623b9f8c-3933-23b4-d506-13bb3524c084"})
/* output:
template_id->"623b9f8c-3933-23b4-d506-13bb3524c084"
name->"apitest_factorTemplate2"
factor_properties->""
tags->"SQL"
comment->""
create_time->2024.10.24 16:52:53.342
update_time->2024.10.24 17:57:36.002
creator->"admin"
code->def apitest_factorTemplate2(data, startDate, endDate, factorName, oriName, tarName, tarValueName, securityidName, tradetimeName, frequency){\r\n // 该计算模板以SQL的方式调用因子模块代码,并进行group by分组\r\n // 找出因子函数所需参数\r\n syntax = (exec syntax from defs() where name = factorName)[0]\r\n parameter = syntax[1:(strlen(syntax)-1)].split(\",\")\r\n mapping = dict(parameter, parameter)\r\n\r\n // 列名映射\r\n ori = oriName.strReplace(\" \",\"\").split(\",\")\r\n tar = tarName.strReplace(\" \",\"\").split(\",\")\r\n mapping[tar] = ori\r\n param = mapping[parameter]\r\n\r\n // 生成元代码\r\n args = each(sqlCol, param)\r\n // 将指定值转成int型\r\n args[!isNull(int(param))] = dropna(int(param))\r\n\r\n // sql 元代码\r\n // 选择所有代码并进行因子计算\r\n tarValueNameVector = tarValueName.split(\",\")\r\n selects = (sqlColAlias(parseExpr(\"'\"+frequency+\"'\"), `frequency),sqlColAlias(makeUnifiedCall(funcByName(factorName), args), tarValueNameVector))\r\n from_tb = data\r\n whereConditions = expr(startDate, <=, sqlCol(tradetimeName,date), <=, endDate)\r\n ret = sql(\r\n select = selects,\r\n from = from_tb,\r\n where = whereConditions,\r\n groupBy=[sqlCol(securityidName), sqlColAlias(parseExpr(\"interval(\"+ tradetimeName +\",\"+ frequency+\",\"+'\"none\"'+\")\"), tradetimeName)],\r\n groupFlag = 1\r\n )\r\n return ret.eval()\r\n}
*/
因子评价模板
starfish::facplfBasic::facplf_create_new_analysis_template(param)
详情
新建一个因子评价模板。
参数
param:字典,键的类型为字符串。包含以下键值对:
-
name:必填,STRING,因子评价模板的名称。
-
tags:选填,STRING,因子评价模板的标签,多个标签可以用逗号分隔。
-
comment:选填,STRING,因子评价模板的备注。
返回值
一个字典,包含以下键值对:
-
template_id:UUID,因子评价模板的唯一 ID。
例子
starfish::facplfBasic::facplf_create_new_analysis_template({"name": "test_analysis","tags": "IC"})
// output: template_id->858fed65-37fe-621c-76ba-e0c050b3a02f
starfish::facplfBasic::facplf_edit_analysis_template(param)
详情
编辑因子评价模板。
参数
param:字典,键的类型为字符串。包含以下键值对:
-
template_id:必填,STRING,因子评价模板的唯一 id。
-
name:选填,STRING,要修改后的因子评价模板的名称。
-
tags:选填,STRING,要修改后的因子评价模板的标签,多个标签可以用逗号分隔。
-
comment:选填,STRING,要修改后的因子评价模板的备注。
-
code:选填,STRING,要修改后的因子评价模板的代码。
返回值
一个整型标量,表示成功修改的数量。
例子
starfish::facplfBasic::facplf_edit_analysis_template({"template_id": "858fed65-37fe-621c-76ba-e0c050b3a02f","name": "test_analysis","tags": "IC","comment": "","code": "use alphalens\r\ndef test_analysis(factorData, originData, factorTimeCol, factorSecurityidCol, factorCol, originTimeCol, originSecurityidCol, originPriceCol){\r\n factor = sql((sqlCol(factorTimeCol,,`date),sqlCol(factorSecurityidCol,,`asset), sqlCol(factorCol,,`factor)), factorData, orderBy=(sqlCol(factorTimeCol), sqlCol(factorSecurityidCol))).eval()\r\n prices = sql(sqlCol(originPriceCol,last), originData, groupBy = (sqlCol(originTimeCol,date,`date), sqlCol(originSecurityidCol)), groupFlag = 2).eval()\r\n factor_data = get_clean_factor_and_forward_returns(factor,prices,groupby=NULL,binning_by_group=false,quantiles=2,bins=NULL,periods=[1, 5, 10],filter_zscore=20,groupby_labels=NULL,max_loss=0.35,zero_aware=false,cumulative_returns=true)\r\n return create_information_tear_sheet(factor_data, group_neutral=false, by_group=false)[`Information_Analysis]\r\n}"})
// output:1
starfish::facplfBasic::facplf_analysis_template_list()
详情
查看因子评价模板列表。
参数
无
返回值
一个字典,包含以下键值对:
-
total:整型,因子评价模板总数。
-
items:表,因子评价模板列表。包含以下字段:
字段名
类型
说明
template_id UUID 因子评价模板的唯一 id name STRING 因子评价模板的名称 tags STRING 因子评价模板的标签,多个标签之间用逗号分隔 is_custom STRING 是否为自定义模板 create_time TIMESTAMP 因子评价模板的创建时间 update_time TIMESTAMP 因子评价模板的创建时间 creator STRING 创建因子评价模板的用户名称 comment STRING 因子评价模板的备注 run_record_count INT 因子评价模板的运行次数 source_code BLOB 因子评价模板的实际代码
例子
starfish::facplfBasic::facplf_analysis_template_list()
/* output
total->1
items->
template_id name tags is_custom create_time update_time creator comment run_record_count source_code
------------------------------------ ------------- ------- ---------- ------------------------ ----------------------- ------- ------- ---------------- ------------------------
858fed65-37fe-621c-76ba-e0c050b3a02f test_analysis IC true 2024.10.24 16:32:45.233 2024.10.24 17:07:36.134 admin 1 use alphalens def ...
*/
starfish::facplfBasic::facplf_analysis_template_detail(param)
详情
查看因子评价模板详情。
参数
param:字典,键的类型为字符串。包含以下键值对:
-
template_id 必填,字符串,表示因子评价模板的唯一 ID。
返回值
一个字典,包含以下键值对:
-
template_id:STRING,因子评价模板的唯一 id。
-
name:STRING,因子评价模板的名称。
-
tags:STRING,因子评价模板的标签,多个标签之间用逗号分隔。
-
create_time:TIMESTAMP,因子评价模板的创建时间。
-
update_time:TIMESTAMP,因子评价模板的创建时间。
-
creator:STRING,创建因子评价模板的用户名称。
-
ccomment:INT,因子评价模板的备注。
-
source_code:BLOB,因子评价模板的代码。
例子
starfish::facplfBasic::facplf_get_factor_detail({"factor_id": "d1d3c1e8-083e-781a-6f66-839acf3e5105"})
/* output:
template_id->"858fed65-37fe-621c-76ba-e0c050b3a02f"
name->"apitest_factorAnalysis"
tags->"IC"
create_time->2024.10.25 14:43:04.531
update_time->2024.10.25 15:12:15.873
creator->"admin"
comment->""
source_code->use alphalens\r\ndef apitest_factorAnalysis(factorData, originData, factorTimeCol, factorSecurityidCol, factorCol, originTimeCol, originSecurityidCol, originPriceCol){\r\n factor = sql((sqlCol(factorTimeCol,,`date),sqlCol(factorSecurityidCol,,`asset), sqlCol(factorCol,,`factor)), factorData, orderBy=(sqlCol(factorTimeCol), sqlCol(factorSecurityidCol))).eval()\r\n prices = sql(sqlCol(originPriceCol,last), originData, groupBy = (sqlCol(originTimeCol,date,`date), sqlCol(originSecurityidCol)), groupFlag = 2).eval()\r\n factor_data = get_clean_factor_and_forward_returns(factor,prices,groupby=NULL,binning_by_group=false,quantiles=2,bins=NULL,periods=[1, 5, 10],filter_zscore=20,groupby_labels=NULL,max_loss=0.35,zero_aware=false,cumulative_returns=true)\r\n return create_information_tear_sheet(factor_data, group_neutral=false, by_group=false)[`Information_Analysis]\r\n}
*/
starfish::facplfRun::facplf_run_analysis(param)
详情
查看因子评价模板详情。
参数
param:字典,键的类型为字符串。包含以下键值对:
-
type:必填,INT,因子评价模板的运行类型,此处运行时取值为 3,表示直接运行。
-
analysis_template:选填,DICT,运行时使用的因子评价模板。
其中,analysis_template 包含以下键值对:
-
template_id:STRING,因子评价模板的唯一 id。
-
template_params:DICT[],因子评价模板的参数,每个 dict 包含以下键值对:
-
name:字符串标量,表示评价模板的参数名称;
-
value:标量,类型由下一个参数 type 的取值决定,表示评价模板的参数值;
-
type:字符串标量,表示评价模板的参数类型,取值范围与因子模板的参数类型取值范围一致。
-
返回值
一个字典,包含以下键值对:
-
aly_job_id:STRING[],因子评价模板的运行作业 id。
-
aly_task_id:STRING,因子评价模板的运行任务 id。
例子
use starfish::facplfRun
starfish::facplfRun::facplf_run_analysis({"type": 3,"analysis_template": {"template_id": "858fed65-37fe-621c-76ba-e0c050b3a02f","template_params": [{"name": "factorData","type": "db_tb_select","value": {"database": "dfs://factor_test","table": "result"}},{"name": "originData","type": "db_tb_select","value": {"database": "dfs://factor_test","table": "data"}},{"name": "factorTimeCol","type": "string","value": "tradetime"},{"name": "factorSecurityidCol","type": "string","value": "securityid"},{"name": "factorCol","type": "string","value": "value"},{"name": "originTimeCol","type": "string","value": "tradetime"},{"name": "originSecurityidCol","type": "string","value": "securityid"},{"name": "originPriceCol","type": "string","value": "price"}]}})
/* output:
aly_job_id->["admin_apitest_factorAnalysis_29998048_42a7_3b68_efba_9b9b37e284bd"]
aly_task_id->"29998048-42a7-3b68-efba-9b9b37e284bd"
*/
starfish::facplfBasic::facplf_get_analysis_record_detail(param)
详情
查看因子评价模板运行结果。
参数
param:字典,键的类型为字符串。包含以下键值对:
-
analysis_record_id 必填,字符串,因子评价模板的运行作业 ID。
返回值
一个字典,包含以下键值对:
-
analysis_record_id:STRING,因子评价模板的运行作业 id。
-
analysis_type:INT,因子评价模板的运行类型。
-
factor_name:STRING,因子评价模板运行时的因子模块名称,由于是直接运行,此处为空。
-
func_name:STRING,因子评价模板运行时的因子函数名称,由于是直接运行,此处为空。
-
analysis_template_id:STRING,因子评价模板的唯一 id。
-
analysis_template_name:STRING,因子评价模板的名称。
-
create_time:STRING,因子评价模板运行任务的创建时间。
-
creator:STRING,因子评价模板运行任务的创建者。
-
status:INT,因子评价模板任务的运行状态,0表示未完成,1表示已完成,-1表示运行失败。
-
run_time:DOUBLE,因子评价模板任务的运行耗时,单位为秒。
-
run_node:STRING,因子评价模板任务运行的节点名。
-
vid:UUID,因子评价模板任务运行的可视化模板 id。
-
factor_id:UUID,因子评价模板任务运行的因子模块 id。
-
params:DICT,因子评价模板的运行参数。
-
result:TABLE,因子评价模板运行的返回结果。
例子
starfish::facplfBasic::facplf_get_analysis_record_detail({"analysis_record_id": "admin_apitest_factorAnalysis_29998048_42a7_3b68_efba_9b9b37e284bd"})
/* output:
analysis_record_id->"admin_apitest_factorAnalysis_29998048_42a7_3b68_efba_9b9b37e284bd"
analysis_type->3
factor_name->""
func_name->""
analysis_template_id->"858fed65-37fe-621c-76ba-e0c050b3a02f"
analysis_template_name->"apitest_factorAnalysis"
create_time->2024.10.25 15:18:30.621
creator->"admin"
status->1
run_time->0.057
run_node->"single7301"
vid->null
factor_id->null
params->{"template_id": "858fed65-37fe-621c-76ba-e0c050b3a02f","template_params": [{"name": "factorData","type": "db_tb_select","value": {"database": "dfs://factor_test","table": "result"}},{"name": "originData","type": "db_tb_select","value": {"database": "dfs://factor_test","table": "data"}},{"name": "factorTimeCol","type": "string","value": "tradetime"},{"name": "factorSecurityidCol","type": "string","value": "securityid"},{"name": "factorCol","type": "string","value": "value"},{"name": "originTimeCol","type": "string","value": "tradetime"},{"name": "originSecurityidCol","type": "string","value": "securityid"},{"name": "originPriceCol","type": "string","value": "price"}]}
result->
Information_Analysis forward_returns_1D forward_returns_5D forward_returns_10D
-------------------- ------------------ ------------------- --------------------
IC_Kurtosis -1.8857 -1.8857 -1.5
IC_Mean 0.1667 0.1667 0.3333
...
*/