因子与评价

因子模块

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,表示运行时使用的因子评价模板。
其中,factors 包含以下键值对:
  • type:STRING,表示因子模块的类型,分为 public 和 private。

  • factor_id:STRING,因子模块的唯一 ID。

  • funcs:STRING[],表示要运行的因子函数名称。

factor_templates 的元素包含以下键值对:
  • 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。

analysis_template 包含以下键值对:
  • 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
...
*/