You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
AlphaGenerator/prepare_prompt/alpha_prompt1.txt

227 lines
9.0 KiB

## 核心设计理念
**因子经济学逻辑**:
- 动量效应:价格趋势的持续性
- 均值回归:价格的回复特性
- 波动率特征:风险与收益的关系
- 流动性溢价:成交量蕴含的信息
- 市场情绪:价量关系的异常表现
Grammar Rules
/* */ - Block comments for multiple lines
; - Statement separator (not needed for last line)
Last statement is the Alpha expression for BRAIN simulator
Alpha expression cannot be assigned to a variable
No classes, objects, pointers, or functions allowed
**统计有效性准则**:
- 信息比率最大化:信号与噪声比
- 因子稳定性:在不同市场环境下保持有效
- 单调性:因子值与预期收益的单调关系
- 可解释性:基于扎实的金融逻辑
## 技术实现要求
**智能参数匹配**:
- 动量类:短周期[10,20,30]捕捉近期趋势
- 反转类:中周期[40,50,60]识别过度反应
- 波动类:长周期[120,250]确保统计稳定性
- 流动性类:多周期对比分析异常变化
**噪声处理技术**:
- 移动平均线:平滑噪声,突出趋势
- 标准偏差:测量波动程度
- 归一化:将不同时间窗口的因子值调整到同一尺度
**嵌套结构逻辑**:
- 单层:直接有效的原始信号
- 双层:信号提炼与降噪处理
- 三层:多维度特征融合与增强
**操作符汇总
**算术运算符 (Arithmetic):
abs(x) - 绝对值
add(x, y, filter=false) - 加法 (x + y)
densify(x) - 分组字段稠密化
divide(x, y) - 除法 (x / y)
inverse(x) - 倒数 (1/x)
log(x) - 自然对数
max(x, y, ..) - 最大值
min(x, y, ..) - 最小值
multiply(x, y, filter=false) - 乘法 (x * y)
power(x, y) - 幂运算 (x^y)
reverse(x) - 取反 (-x)
sign(x) - 符号函数
signed_power(x, y) - 保留符号的幂运算
sqrt(x) - 平方根
subtract(x, y, filter=false) - 减法 (x - y)
to_nan(x, value=0, reverse=false) - 值与NaN转换
**逻辑运算符 (Logical):
and(input1, input2) - 逻辑与
if_else(input1, input2, input3) - 条件判断
input1 < input2 - 小于比较
input1 <= input2 - 小于等于
input1 == input2 - 等于比较
input1 > input2 - 大于比较
input1 >= input2 - 大于等于
input1 != input2 - 不等于
is_nan(input) - 是否为NaN
not(x) - 逻辑非
or(input1, input2) - 逻辑或
**时间序列运算符 (Time Series):
days_from_last_change(x) - 上次变化天数
hump(x, hump=0.01) - 限制变化幅度
jump_decay(x, d, sensitivity=0.5, force=0.1) - 跳跃衰减
kth_element(x, d, k) - 第K个值
last_diff_value(x, d) - 最后一个不同值
ts_arg_max(x, d) - 最大值相对索引
ts_arg_min(x, d) - 最小值相对索引
ts_av_diff(x, d) - 与均值的差
ts_backfill(x, lookback=d, k=1, ignore="NAN") - 回填
ts_corr(x, y, d) - 时间序列相关性
ts_count_nans(x, d) - NaN计数
ts_covariance(y, x, d) - 协方差
ts_decay_linear(x, d, dense=false) - 线性衰减
ts_delay(x, d) - 延迟值
ts_delta(x, d) - 差值 (x - 延迟值)
ts_max(x, d) - 时间序列最大值
ts_mean(x, d) - 时间序列均值
ts_min(x, d) - 时间序列最小值
ts_product(x, d) - 时间序列乘积
ts_quantile(x, d, driver="gaussian") - 分位数
ts_rank(x, d, constant=0) - 时间序列排名
ts_regression(y, x, d, lag=0, rettype=0) - 回归分析
ts_scale(x, d, constant=0) - 时间序列缩放
ts_std_dev(x, d) - 时间序列标准差
ts_step(1) - 天数计数器
ts_sum(x, d) - 时间序列求和
ts_target_tvr_decay(x, lambda_min=0, lambda_max=1, target_tvr=0.1) - 目标换手率衰减
ts_target_tvr_delta_limit(x, y, lambda_min=0, lambda_max=1, target_tvr=0.1) - 目标换手率差值限制
ts_zscore(x, d) - 时间序列Z分数
**横截面运算符 (Cross Sectional):
normalize(x, useStd=false, limit=0.0) - 标准化
quantile(x, driver=gaussian, sigma=1.0) - 分位数转换
rank(x, rate=2) - 排名
scale(x, scale=1, longscale=1, shortscale=1) - 缩放
scale_down(x, constant=0) - 按比例缩放
vector_neut(x, y) - 向量中性化
winsorize(x, std=4) - 缩尾处理
zscore(x) - Z分数
**向量运算符 (Vector):
vec_avg(x) - 向量均值
vec_max(x) - 向量最大值
vec_min(x) - 向量最小值
vec_sum(x) - 向量求和
**变换运算符 (Transformational):
bucket(rank(x), range="0,1,0.1" or buckets="2,5,6,7,10") - 分桶
generate_stats(alpha) - 生成统计量
trade_when(x, y, z) - 条件交易
**分组运算符 (Group):
combo_a(alpha, nlength=250, mode='algo1') - 组合Alpha
group_backfill(x, group, d, std=4.0) - 分组回填
group_cartesian_product(g1, g2) - 笛卡尔积分组
group_max(x, group) - 分组最大值
group_mean(x, weight, group) - 分组均值
group_min(x, group) - 分组最小值
group_neutralize(x, group) - 分组中性化
group_rank(x, group) - 分组排名
group_scale(x, group) - 分组缩放
group_zscore(x, group) - 分组Z分数
**特殊运算符 (Special):
in - 包含判断
self_corr(input) - 自相关性
universe_size - 宇宙大小
**归约运算符 (Reduce):
reduce_avg(input, threshold=0) - 平均值归约
reduce_choose(input, nth, ignoreNan=true) - 选择归约
reduce_count(input, threshold) - 计数归约
reduce_ir(input) - IR归约
reduce_kurtosis(input) - 峰度归约
reduce_max(input) - 最大值归约
reduce_min(input) - 最小值归约
reduce_norm(input) - 范数归约
reduce_percentage(input, percentage=0.5) - 百分比归约
reduce_powersum(input, constant=2, precise=false) - 幂和归约
reduce_range(input) - 范围归约
reduce_skewness(input) - 偏度归约
reduce_stddev(input, threshold=0) - 标准差归约
reduce_sum(input) - 求和归约
## 卓越因子特征
每个表达式应体现:
1. **经济学直觉**:基于公认的市场异象
2. **计算鲁棒性**:避免过拟合和极端值敏感
3. **交易可行性**:考虑实际执行成本
4. **创新性**:在经典因子上进行合理改进
## 终极Alpha标准(第18个)
- 多因子融合:结合动量、价值、质量、情绪等多个维度
- 多时间尺度:协调使用短、中、长期窗口
- 风险调整:隐含波动率控制或标准化处理
- 市场状态适应:能够适应不同市场环境
- 因子组合优化:考虑因子之间的相关性和组合风险
- 动态调整:能够根据市场条件实时调整参数
- 表达式不要太复杂
**表达式不要太复杂
可用字段:{fields_formatted}
可用运算符:{operators_formatted}
**重要规则(必须严格遵守):**
1. **CRITICAL:必须使用提供的「可用字段」列表中的完整字段ID,如 anl10_cpsff_2371、anl10_cpsfq1_consensus_2351 等**
2. **CRITICAL:绝对禁止使用 close、volume、high、low、open 等不完整的字段名**
3. **必须使用提供的「可用运算符」列表中的运算符**
4. **每个表达式必须是独立的,不能有赋值或其他语法结构**
5. **请严格按照 operator(field_id, numeric_parameter) 的格式编写**
6. **如果违反以上规则,生成的表达式将被系统拒绝!**
**错误示例(禁止使用):**
- ts_corr(rank(close), rank(volume), 10)
- ts_sum(returns, 20) / ts_std_dev(returns, 20)
- close - open
**正确示例(使用格式):**
- ts_corr(rank(fnd72_pit_or_cr_q_oper_inc_to_tot_debt), rank(fnd72_pit_or_cr_q_oper_inc_to_tot_debt), 10)
- divide(ts_sum(fnd72_pit_or_cr_q_oper_inc_to_tot_debt, 20), ts_std_dev(fnd72_pit_or_cr_q_oper_inc_to_tot_debt, 20))
*=========================================================================================*
输出格式:
输出必须是且仅是纯文本。
每一行是一个完整、独立、语法正确的WebSim表达式。
严禁任何形式的解释、编号、标点包裹(如引号)、Markdown格式或额外文本。
===================== !!! 重点(输出方式) !!! =====================
现在,请严格遵守以上所有规则,开始生成可立即在WebSim中运行的复合因子表达式。
不要自行假设, 你需要用到的操作符 和 数据集, 必须从我提供给你的里面查找, 并严格按照里面的使用方法进行组合
**输出格式**(一行一个表达式, 每个表达式中间需要添加一个空行, 只要表达式本身, 不需要赋值, 不要解释, 不需要序号, 也不要输出多余的东西):
表达式
表达式
表达式
...
表达式
=================================================================
重申:请确保所有表达式都使用WorldQuant WebSim平台函数,不要使用pandas、numpy或其他Python库函数。输出必须是一行有效的WQ表达式。
以下是我的账号有权限使用的操作符, 请严格按照操作符, 以及我提供的数据集, 进行生成,组合 100 个 alpha:
不要自行假设, 你需要用到的操作符 和 数据集, 必须从我提供给你的里面查找, 并严格按照里面的使用方法进行组合
=================================================================
ts_product ts_zscore ts_mean ts_scale add sign subtract ts_delta ts_rank greater ts_av_diff ts_quantile ts_count_nans ts_covariance
ts_arg_min divide ts_corr multiply if_else ts_sum ts_delay group_zscore ts_arg_max ts_std_de ts_backfill
以上这些操作符不能传入事件类型的数据集, 只能传入时间序列数据集, 不能传入事件数据,不能传入事件数据,不能传入事件数据