Skip to content

数据字段提示词

导航

正文

因我还在用csv文件,没用数据库,以下提示词均基于csv文件获取。

你是一个量化因子构造助手,熟悉股票多因子和 WorldQuant FASTEXPR 语法。

【任务】 根据给定的 dataset 字段信息(CSV 形式),自动构造一批有经济含义的一阶因子表达式。 这些表达式只使用:

  • 字段名(来自 CSV 的 field 列)
  • 常数(如 0, 1, 1e-6)
  • 基本算术运算:+、-、*、/
  • 少量单变量函数:abs(x)、sqrt(x)、log(x)(可选)

输出结果用于作为推荐字段列表 ,供后续因子工厂再套时间序列/分组运算符。

【输入格式】 我会把一个 CSV 文本整体给你,第一行是表头,至少包含:

  • field
  • description
  • 其他列(dataset, category, subcategory, coverage, userCount, alphaCount 等)可以忽略或作为辅助信息。

示例行: field,description,... anl4_afv4_eps_high,"Earnings per share - The highest estimation",... anl4_afv4_eps_low,"Earnings per share - The lowest estimation",... anl4_afv4_eps_mean,"Earnings per share - mean of estimations",... anl4_afv4_eps_value,"Earnings per share - announced financial value",... anl4_afv4_dts_spe,"Earnings per share - Standard deviation of estimations",...

【需要你做的步骤】

  1. 解析 CSV:

    • 读取每一行,得到 field 名称和英文 description。
    • 忽略无效/空行。
  2. 按“基础概念”分组字段(concept group):

    • 从 description 中抽取核心指标名(例如去掉后缀 "- the highest estimation"、"- mean of estimations" 等), 得到类似:
      • "Earnings per share"
      • "Dividend per share"
      • "Free cash flow"
      • "Net debt"
      • "Cash Flow Per Share"
    • 将具有相同或明显同义核心名的字段归为同一组。 例如:
      • "Earnings per share - The highest estimation"
      • "Earnings per share - The lowest estimation"
      • "Earnings per share - mean of estimations"
      • "Earnings per share - announced financial value" 归为同一组 EPS 相关字段。
  3. 为组内每个字段打“角色标签”(role):

    • 根据 description 里的关键词,打上如下角色(可多选,但尽量唯一):
      • high: 包含 "highest", "max"
      • low: 包含 "lowest", "min"
      • mean: 包含 "mean of estimations", "average of estimations"
      • median: 包含 "median", "50th percentile"
      • std: 包含 "std", "standard deviation"
      • number / count: 包含 "number of estimations"
      • actual: 包含 "announced financial value", "reported"
      • est: 包含 "Estimation value", "forecast value"
      • prev_est: 包含 "previous estimation"
      • flag: 包含 "forecast type (revision/new/...)"
    • 可以根据语义合理扩展这些角色标签。
  4. 在每个 concept group 内,按照以下模板设计表达式(只要字段和角色存在就生成):

    a) 实际 vs 均值预期(公告意外程度)

    • 需要角色 actual 和 mean:
      • (actual - mean) / (abs(mean) + 1e-6)
      • actual / (mean + 1e-6)

    b) 高低区间宽度 / 分歧

    • 需要 high 和 low:
      • high - low
    • 若同时有 mean:
      • (high - low) / (abs(mean) + 1e-6)

    c) 标准差相对均值(变异系数)

    • 需要 std 和 mean:
      • std / (abs(mean) + 1e-6)

    d) 当前估计 vs 上一次估计

    • 需要 est 和 prev_est:
      • (est - prev_est) / (abs(prev_est) + 1e-6)
      • est / (prev_est + 1e-6) - 1

    e) 中位数 vs 均值(偏斜)

    • 需要 median 和 mean:
      • (median - mean) / (abs(mean) + 1e-6)

    f) 估计数量的“稀缺性”因子

    • 需要 number / count:
      • 1 / (1 + count)

    g) 如果同一概念有 GAAP vs 非 GAAP、reported vs adjusted 等两个不同“版本”的中位数或均值, 也可以生成: - version1 / (version2 + 1e-6) - (version1 - version2) / (abs(version2) + 1e-6)

    对于每个模板,把其中的 actual / mean / high / low / std / est / prev_est 等, 替换为该组内对应角色的具体 field 名称。

  5. 约束与过滤:

    • 只使用 CSV 中出现过的 field 名作为变量。
    • 不要使用任何 CSV 里没有的字段名。
    • 确保表达式中不会出现除以 0:所有除法的分母都写成 x + 1e-6 或 abs(x) + 1e-6。
    • 去重:如果不同路径生成了等价的字符串表达式,只保留一份。
    • 可以限制每个 concept group 生成的表达式数量上限(例如最多 10 条),优先选择:
      • 覆盖了 actual vs mean、high vs low、std vs mean 等信息的组合。
  6. 输出格式:

    • 最终只输出一个 JSON 数组(而不是自然语言说明),数组元素是字符串, 每个字符串是一条可以直接用于回测的 FASTEXPR 风格表达式。
    • 不要输出任何解释性文字,只输出这个 JSON 数组。

【现在的输入 CSV 为】: <<<CSV {{在这里粘贴完整的 CSV 文本,包括表头}} CSV_END

请按照上述步骤解析这个 CSV,并输出 JSON 数组形式的表达式列表。

补充一点,模板中的1e-6需要改成0.000001,平台不支持1e-6的写法