This commit is contained in:
2026-01-02 00:26:49 +08:00
parent 11e585b71b
commit 2d265949d7
19 changed files with 2169 additions and 123 deletions
+9 -121
View File
@@ -1,125 +1,13 @@
任务指令
【策略类型】优化因子
multiply(ts_rank(divide(ts_backfill(fnd6_drc, 252), assets), 126), subtract(group_rank(divide(ts_backfill(fnd6_drc, 252), assets), sector), 0.5))
【当前情况】
[[假设]]
毛利率结构分化蕴含行业竞争格局信息:毛利率持续高于行业均值但呈现收窄趋势的企业,往往面临竞争加剧或定价权削弱,这可能预示未来盈利增速放缓;反之,毛利率持续低于行业均值但呈现扩张趋势的企业,可能正通过效率提升或产品结构改善获得竞争优势,未来盈利存在上行潜力。
[[实施方案]]
使用基础数据“毛利”与“营业收入”计算毛利率(毛利/营业收入)。使用时序行业中性化算子(如“group_standardize_0”),在申万行业分类下,计算每只股票过去八个季度的毛利率相对于行业均值的标准分。再采用时序变化算子(如“ts_decay_linear”)捕捉该标准分在过去四个季度的变化斜率。斜率值为负(标准分下降)时赋予负阿尔法权重,斜率为正(标准分上升)时赋予正阿尔法权重。
[[阿尔法因子优化建议]]
该逻辑的核心在于“趋势”与“相对位置”的交互。建议引入横截面动量算子(如“rank”)对最终的斜率值进行再排序,以强化头部与尾部信号。同时,可考虑对营业收入增长率施加条件约束(例如,仅当营收增长率非负时信号生效),以避免因收缩业务导致毛利率被动提升的噪音干扰。
{
"id": "88qMa31V",
"type": "REGULAR",
"author": "YC93384",
"settings": {
"instrumentType": "EQUITY",
"region": "USA",
"universe": "TOP3000",
"delay": 1,
"decay": 0,
"neutralization": "INDUSTRY",
"truncation": 0.08,
"pasteurization": "ON",
"unitHandling": "VERIFY",
"nanHandling": "OFF",
"maxTrade": "OFF",
"language": "FASTEXPR",
"visualization": false,
"startDate": "2018-01-20",
"endDate": "2023-01-20"
},
"regular": {
"code": "multiply(ts_rank(divide(ts_backfill(fnd6_drc, 252), assets), 126), subtract(group_rank(divide(ts_backfill(fnd6_drc, 252), assets), sector), 0.5))",
"description": null,
"operatorCount": 8
},
"dateCreated": "2025-12-25T03:16:45-05:00",
"dateSubmitted": null,
"dateModified": "2025-12-25T03:16:45-05:00",
"name": null,
"favorite": false,
"hidden": false,
"color": null,
"category": null,
"tags": [],
"classifications": [
{
"id": "DATA_USAGE:SINGLE_DATA_SET",
"name": "Single Data Set Alpha"
}
],
"grade": "INFERIOR",
"stage": "IS",
"status": "UNSUBMITTED",
"is": {
"pnl": 2429129,
"bookSize": 20000000,
"longCount": 966,
"shortCount": 1435,
"turnover": 0.028,
"returns": 0.0491,
"drawdown": 0.0485,
"margin": 0.003504,
"sharpe": 1.36,
"fitness": 0.85,
"startDate": "2018-01-20",
"checks": [
{
"name": "LOW_SHARPE",
"result": "PASS",
"limit": 1.25,
"value": 1.36
},
{
"name": "LOW_FITNESS",
"result": "FAIL",
"limit": 1.0,
"value": 0.85
},
{
"name": "LOW_TURNOVER",
"result": "PASS",
"limit": 0.01,
"value": 0.028
},
{
"name": "HIGH_TURNOVER",
"result": "PASS",
"limit": 0.7,
"value": 0.028
},
{
"name": "CONCENTRATED_WEIGHT",
"result": "PASS"
},
{
"name": "LOW_SUB_UNIVERSE_SHARPE",
"result": "PASS",
"limit": 0.59,
"value": 0.68
},
{
"name": "SELF_CORRELATION",
"result": "PENDING"
},
{
"name": "MATCHES_COMPETITION",
"result": "PASS",
"competitions": [
{
"id": "challenge",
"name": "Challenge"
}
]
}
]
},
"os": null,
"train": null,
"test": null,
"prod": null,
"competitions": null,
"themes": null,
"pyramids": null,
"pyramidThemes": null,
"team": null
}
*=========================================================================================*
@@ -130,7 +18,7 @@ multiply(ts_rank(divide(ts_backfill(fnd6_drc, 252), assets), 126), subtract(grou
===================== !!! 重点(输出方式) !!! =====================
现在,请严格遵守以上所有规则,开始生成可立即在WebSim中运行的复合因子表达式。
**输出格式**(一行一个表达式, 每个表达式中间需要添加一个空行, 只要表达式本身, 不要解释, 不需要序号, 也不要输出多余的东西):
**输出格式**(一行一个表达式, 每个表达式中间需要添加一个空行, 只要表达式本身, 不需要赋值, 不要解释, 不需要序号, 也不要输出多余的东西):
表达式