fix(factors): 修复 AST 优化器并发命名冲突及逻辑运算支持
- 修复 ExpressionFlattener 跨实例临时名称冲突 - 添加 & 和 | 逻辑运算符的 DSL/Parser/Translator 支持 - 增加回归测试验证修复
This commit is contained in:
31
AGENTS.md
31
AGENTS.md
@@ -937,6 +937,37 @@ LSP 报错:Syntax error on line 45
|
||||
python tests/test_sync.py
|
||||
```
|
||||
|
||||
### 因子编写规范
|
||||
|
||||
**⚠️ 强制要求:编写因子时,优先使用字符串表达式而非 DSL 表达式。**
|
||||
|
||||
1. **推荐方式(字符串表达式)**
|
||||
```python
|
||||
from src.factors import FactorEngine
|
||||
|
||||
engine = FactorEngine()
|
||||
engine.add_factor("ma20", "ts_mean(close, 20)")
|
||||
engine.add_factor("alpha", "cs_rank(ts_mean(close, 5) - ts_mean(close, 20))")
|
||||
```
|
||||
|
||||
2. **不推荐方式(DSL 表达式)**
|
||||
```python
|
||||
from src.factors.api import close, ts_mean, cs_rank
|
||||
|
||||
engine.register("ma20", ts_mean(close, 20)) # 不推荐
|
||||
```
|
||||
|
||||
3. **原因说明**
|
||||
- 字符串表达式更易于序列化存储到因子元数据(`factors.jsonl`)
|
||||
- 字符串表达式支持从元数据动态加载和复用
|
||||
- 字符串表达式便于在配置文件中定义和维护
|
||||
- 与 `src/scripts/register_factors.py` 批量注册脚本兼容
|
||||
|
||||
4. **使用场景**
|
||||
- ✅ 在 `register_factors.py` 的 `FACTORS` 列表中定义因子
|
||||
- ✅ 动态添加因子到 FactorEngine
|
||||
- ✅ 从因子元数据查询并注册因子
|
||||
|
||||
### Emoji 表情禁用规则
|
||||
|
||||
**⚠️ 强制要求:代码和测试文件中禁止出现 emoji 表情。**
|
||||
|
||||
Reference in New Issue
Block a user