Panda QuantFlow 节点介绍
本文档介绍 PandaAi 开源目录下的所有节点,包括节点的功能、输入和输出参数。
目录
01-基础工具
Python代码输入
- 文件: code_node.py
- 节点名称: Python代码输入
- 分组: 01-基础工具
功能: 用于输入Python策略代码
输入:
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | str | 策略代码 |
输出:
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | str | 策略代码 |
位置: code_node.py:26
公式输入
- 文件: formula_node.py
- 节点名称: 公式输入
- 分组: 02-特征工程
功能: 用于输入因子/特征公式
输入:
| 参数名 | 类型 | 说明 |
|---|---|---|
| formulas | str | 公式 |
输出:
| 参数名 | 类型 | 说明 |
|---|---|---|
| formulas | str | 公式 |
02-特征工程
特征工程构建
- 文件: feature_engineering_build_node.py
- 节点名称: 特征工程构建
- 分组: 02-特征工程
功能: 根据特征公式和标签公式构建特征工程,并计算特征值
输入:
| 参数名 | 类型 | 说明 |
|---|---|---|
| formulas | str | 特征公式 |
| label | str | 标签 |
| start_date | str | 开始时间 |
| end_date | str | 结束时间 |
输出:
| 参数名 | 类型 | 说明 |
|---|---|---|
| factor | DataFrame | 特征值 |
| feature_model | FeatureModel | 特征工程模型 |
位置: feature_engineering_build_node.py:31
03-机器学习
LightGBM模型
- 文件: lightgbm_node.py
- 节点名称: LightGBM模型
- 分组: 03-机器学习
功能: 训练LightGBM回归模型
输入:
| 参数名 | 类型 | 说明 |
|---|---|---|
| feature | FeatureModel | 特征工程 |
| start_date | str | 训练开始时间 |
| end_date | str | 训练结束时间 |
| n_estimators | int | 决策树数量(越大越容易过拟合) |
| max_depth | int | 最大深度(越大越容易过拟合) |
| learning_rate | float | 学习率(越小越容易欠拟合) |
| num_leaves | int | 叶子节点数量(越大越容易过拟合) |
| subsample | float | 子样本比例(越大越容易过拟合) |
| colsample_bytree | float | 列采样比例(越大越容易过拟合) |
| reg_alpha | float | L1正则化(越大越容易欠拟合) |
| reg_lambda | float | L2正则化(越大越容易欠拟合) |
输出:
| 参数名 | 类型 | 说明 |
|---|---|---|
| model | MLModel | 训练好的模型(包含模型路径和类型) |
LSTM模型
- 文件: ml_lstm_node.py
- 节点名称: LSTM模型
- 分组: 03-机器学习
功能: 训练LSTM时间序列模型
输入:
| 参数名 | 类型 | 说明 |
|---|---|---|
| factor | DataFrame | 特征值(包含label列) |
| time_step | int | 时间步长 |
| units | int | LSTM单元数 |
| batch_size | int | 批大小 |
| epochs | int | 训练轮数 |
| dropout_rate | float | Dropout比例 |
| learning_rate | float | 学习率 |
输出:
| 参数名 | 类型 | 说明 |
|---|---|---|
| model | MLModel | 训练好的LSTM模型 |
GRU模型
- 文件: ml_gru_node.py
- 节点名称: GRU模型
- 分组: 03-机器学习
功能: 训练GRU时间序列模型
输入:
| 参数名 | 类型 | 说明 |
|---|---|---|
| factor | DataFrame | 特征值(包含label列) |
| time_step | int | 时间步长 |
| units | int | GRU单元数 |
| batch_size | int | 批大小 |
| epochs | int | 训练轮数 |
| dropout_rate | float | Dropout比例 |
| learning_rate | float | 学习率 |
输出:
| 参数名 | 类型 | 说明 |
|---|---|---|
| model | MLModel | 训练好的GRU模型 |
多任务神经网络
- 文件: mtl_nn_node.py
- 节点名称: 多任务神经网络
- 分组: 03-机器学习
功能: 训练多任务神经网络(多标签回归)
输入:
| 参数名 | 类型 | 说明 |
|---|---|---|
| feature1-5 | FeatureModel | 特征工程(最多5个) |
| start_date | str | 训练开始时间 |
| end_date | str | 训练结束时间 |
| epochs | int | 训练轮数 |
| hidden_dim | int | 隐藏层维度 |
| lr | float | 学习率 |
输出:
| 参数名 | 类型 | 说明 |
|---|---|---|
| model | MLModel | 训练好的多任务神经网络模型 |
随机森林模型
- 文件: randomforest_node.py
- 节点名称: 随机森林模型
- 分组: 03-机器学习
功能: 训练随机森林回归模型
输入:
| 参数名 | 类型 | 说明 |
|---|---|---|
| feature | FeatureModel | 特征工程 |
| start_date | str | 训练开始时间 |
| end_date | str | 训练结束时间 |
| n_estimators | int | 决策树数量(越大越容易过拟合) |
| max_depth | int | 最大深度(越大越容易过拟合) |
| min_samples_split | int | 最小分裂样本数(越大越容易欠拟合) |
| min_samples_leaf | int | 叶节点最小样本数(越大越容易欠拟合) |
| max_features | str | 最大特征数(auto/sqrt/log2) |
| bootstrap | bool | 是否使用自助采样 |
| oob_score | bool | 是否计算袋外评分 |
| random_state | int | 随机种子 |
| n_jobs | int | 并行任务数(-1表示全部) |
输出:
| 参数名 | 类型 | 说明 |
|---|---|---|
| model | MLModel | 训练好的随机森林模型 |
SVM模型
- 文件: svm_node.py
- 节点名称: SVM模型
- 分组: 03-机器学习
功能: 训练支持向量回归模型
输入:
| 参数名 | 类型 | 说明 |
|---|---|---|
| feature | FeatureModel | 特征工程 |
| start_date | str | 训练开始时间 |
| end_date | str | 训练结束时间 |
| kernel | str | 核函数类型(linear/poly/rbf/sigmoid) |
| degree | int | 多项式核函数次数 |
| gamma | str | 核函数系数(scale/auto) |
| C | float | 正则化参数 |
| epsilon | float | SVR模型中的Epsilon值 |
| shrinking | bool | 是否使用收缩启发式 |
| max_iter | int | 最大迭代次数 |
输出:
| 参数名 | 类型 | 说明 |
|---|---|---|
| model | MLModel | 训练好的SVM模型 |
位置: svm_node.py:87
Xgboost模型
- 文件: ml_xgboost_node.py
- 节点名称: Xgboost模型
- 分组: 03-机器学习
功能: 训练XGBoost回归模型
输入:
| 参数名 | 类型 | 说明 |
|---|---|---|
| factor | DataFrame | 特征值(包含label列) |
| n_estimators | int | 决策树数量(越大越容易过拟合) |
| max_depth | int | 最大深度(越大越容易过拟合) |
| learning_rate | float | 学习率(越小越容易欠拟合) |
| min_child_weight | int | 最小子权重(越大越容易欠拟合) |
| gamma | float | Gamma(越大越容易欠拟合) |
| subsample | float | 子样本比例(越大越容易过拟合) |
| colsample_bytree | float | 列采样比例(越大越容易过拟合) |
| reg_alpha | int | L1正则化(越大越容易欠拟合) |
| reg_lambda | int | L2正则化(越大越容易欠拟合) |
输出:
| 参数名 | 类型 | 说明 |
|---|---|---|
| model | MLModel | 训练好的XGBoost模型 |
04-因子相关
因子分析
- 文件: factor_analysis_node.py
- 节点名称: 因子分析
- 分组: 04-因子相关
功能: 对因子进行分组分析,计算因子收益
输入:
| 参数名 | 类型 | 说明 |
|---|---|---|
| df_factor | DataFrame | 因子值 |
| adjustment_cycle | str | 调仓周期(1/3/5/10/20/30) |
| group_number | str | 分组数量(2-20) |
| factor_direction | str | 因子方向(0:正向,1:负向) |
输出:
| 参数名 | 类型 | 说明 |
|---|---|---|
| task_id | str | 分析结果任务ID |
位置: factor_analysis_node.py:58
因子分析结果
- 文件: factor_analysis_chart_node.py
- 节点名称: 因子分析结果
- 分组: 04-因子相关
功能: 显示因子分析结果的图表
输入:
| 参数名 | 类型 | 说明 |
|---|---|---|
| task_id | str | 分析结果任务ID |
输出:
| 参数名 | 类型 | 说明 |
|---|---|---|
| task_id | str | 图表绘制任务ID |
位置: factor_analysis_chart_node.py:38
因子构建节点
- 文件: factor_build_node.py
- 节点名称: 因子构建节点
- 分组: 04-因子相关
功能: 根据因子公式构建因子
输入:
| 参数名 | 类型 | 说明 |
|---|---|---|
| start_date | str | 因子开始时间 |
| end_date | str | 因子结束时间 |
| formulas | str | 因子公式 |
输出:
| 参数名 | 类型 | 说明 |
|---|---|---|
| factor | DataFrame | 因子值 |
综合因子构建节点
- 文件: factor_build_node_pro.py
- 节点名称: 综合因子构建节点
- 分组: 04-因子相关
功能: 根据Python代码或公式构建因子,支持股票/期货市场
输入:
| 参数名 | 类型 | 说明 |
|---|---|---|
| start_date | str | 开始时间 |
| end_date | str | 结束时间 |
| code | str | 因子代码(Python类或公式) |
| market | str | 因子类型(股票/期货) |
| type | str | 编码方式(Python/公式) |
| direction | str | 因子方向(正向/负向) |
输出:
| 参数名 | 类型 | 说明 |
|---|---|---|
| factor | DataFrame | 因子值(包含date、symbol、factor_value列) |
位置: factor_build_node_pro.py:34
因子相关性分析
- 文件: factor_correlation_calculation_node.py
- 节点名称: 因子相关性分析
- 分组: 04-因子相关
功能: 对多个因子进行两两相关性分析
输入:
| 参数名 | 类型 | 说明 |
|---|---|---|
| factor | DataFrame | 因子组(包含多个因子列) |
输出:
| 参数名 | 类型 | 说明 |
|---|---|---|
| task_id | str | 分析结果任务ID |
位置: factor_correlation_calculation_node.py:43
因子相关性分析结果
- 文件: factor_correlation_chart_node.py
- 节点名称: 因子相关性分析结果
- 分组: 04-因子相关
功能: 显示因子相关性分析的图表
输入:
| 参数名 | 类型 | 说明 |
|---|---|---|
| task_id | str | 分析结果任务ID |
输出:
| 参数名 | 类型 | 说明 |
|---|---|---|
| task_id | str | 图表绘制任务ID |
位置: factor_correlation_chart_node.py:27
因子IC计算
- 文件: factor_ic_calculation_node.py
- 节点名称: 因子IC计算
- 分组: 06-线下课专属
功能: 计算因子的IC(信息系数)值
输入:
| 参数名 | 类型 | 说明 |
|---|---|---|
| df_factor | DataFrame | 因子值 |
| adjustment_cycle | str | 调仓周期 |
| group_number | str | 分组数量 |
| factor_direction | str | 因子方向 |
输出:
| 参数名 | 类型 | 说明 |
|---|---|---|
| ic_value | str | 因子IC值列表(格式:"[0.1,0.2,0.3]") |
位置: factor_ic_calculation_node.py:57
因子集合器
- 文件: factor_to_group_node.py
- 节点名称: 因子集合器
- 分组: 04-因子相关
功能: 将多个因子DataFrame合并到一个DataFrame中
输入:
| 参数名 | 类型 | 说明 |
|---|---|---|
| factor1-5 | DataFrame | 因子/因子组DataFrame(最多5个) |
输出:
| 参数名 | 类型 | 说明 |
|---|---|---|
| merged_factors | DataFrame | 合并后的因子组(包含date、symbol和所有factor列) |
位置: factor_to_group_node.py:52
因子权重调整(归一化)
- 文件: factor_weight_adjust_node.py
- 节点名称: 因子权重调整(归一化)
- 分组: 04-因子相关
功能: 对因子进行Z-score标准化并应用权重调整
输入:
| 参数名 | 类型 | 说明 |
|---|---|---|
| df_factor | DataFrame | 因子值(需包含date、symbol和因子列) |
| weight | float | 权重值(范围-10到10) |
输出:
| 参数名 | 类型 | 说明 |
|---|---|---|
| df_factor | DataFrame | 权重调整后的因子DataFrame |
位置: factor_weight_adjust_node.py:62
因子权重组合
- 文件: factor_weight_calculation_node.py
- 节点名称: 因子权重组合
- 分组: 06-线下课专属
功能: 根据权重列表对多个因子进行加权组合
输入:
| 参数名 | 类型 | 说明 |
|---|---|---|
| df_factor | DataFrame | 因子值 |
| factor_weight | str | 因子权重列表(格式:"[0.22,0.32,0.35]") |
输出:
| 参数名 | 类型 | 说明 |
|---|---|---|
| df_factor | DataFrame | 加权组合后的因子DataFrame(只包含date、symbol和新生成的因子列) |
位置: factor_weight_calculation_node.py:59
因子构建(机器学习)
- 文件: ml_factor_build_node.py
- 节点名称: 因子构建(机器学习)
- 分组: 04-因子相关
功能: 使用机器学习模型构建预测因子
输入:
| 参数名 | 类型 | 说明 |
|---|---|---|
| model | MLModel | 机器学习模型 |
| feature | FeatureModel | 特征工程 |
| start_date | str | 开始时间 |
| end_date | str | 结束时间 |
输出:
| 参数名 | 类型 | 说明 |
|---|---|---|
| factor | DataFrame | 因子值(包含date、symbol、value列) |
位置: ml_factor_build_node.py:52
多因子合并(5-1)
- 文件: multi_factor_merge_node.py
- 节点名称: 多因子合并(5-1)
- 分组: 04-因子相关
功能: 将5个因子DataFrame根据date和symbol对齐合并,计算平均因子值
输入:
| 参数名 | 类型 | 说明 |
|---|---|---|
| factor1-5 | DataFrame | 因子DataFrame(最多5个) |
输出:
| 参数名 | 类型 | 说明 |
|---|---|---|
| merged_factors | DataFrame | 合并后的因子(包含date、symbol、factor_value列) |
位置: multi_factor_merge_node.py:71
05-回测相关
期货回测
- 文件: backtest_future_node.py
- 节点名称: 期货回测
- 分组: 05-回测相关
功能: 对期货策略进行回测
输入:
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | str | 策略代码 |
| factors | DataFrame | 因子值 |
| start_future_capital | int | 初始资金 |
| commission_rate | int | 佣金倍率 |
| margin_rate | int | 保证金倍率 |
| frequency | str | 回测频率(1d) |
| start_date | str | 开始日期 |
| end_date | str | 结束日期 |
输出:
| 参数名 | 类型 | 说明 |
|---|---|---|
| backtest_id | str | 回测任务ID |
位置: backtest_future_node.py:69
股票回测
- 文件: backtest_stock_node.py
- 节点名称: 股票回测
- 分组: 05-回测相关
功能: 对股票策略进行回测
输入:
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | str | 策略代码 |
| factors | DataFrame | 因子值 |
| start_capital | int | 初始资金 |
| standard_symbol | str | 基准指数(上证指数/沪深300/中证500/中证1000) |
| commission_rate | int | 佣金率 |
| frequency | str | 回测频率(1d) |
| start_date | str | 开始日期 |
| end_date | str | 结束日期 |
输出:
| 参数名 | 类型 | 说明 |
|---|---|---|
| backtest_id | str | 回测ID |
策略回测结果
- 文件: backtest_result_node.py
- 节点名称: 策略回测结果
- 分组: 05-回测相关
功能: 显示回测结果图表
输入:
| 参数名 | 类型 | 说明 |
|---|---|---|
| task_id | str | 回测任务ID |
输出:
| 参数名 | 类型 | 说明 |
|---|---|---|
| task_id | str | 图表绘制任务ID |
位置: backtest_result_node.py:38
06-线下课专属
多因子构建(机器学习)
- 文件: ml_multi_factor_build_node.py
- 节点名称: 多因子构建(机器学习)
- 分组: 06-线下课专属
功能: 使用多个机器学习模型和特征工程构建加权因子
输入:
| 参数名 | 类型 | 说明 |
|---|---|---|
| model1-5 | MLModel | 机器学习模型(最多5个) |
| features1-5 | FeatureModel | 特征工程(最多5个) |
| start_date | str | 开始时间 |
| end_date | str | 结束时间 |
输出:
| 参数名 | 类型 | 说明 |
|---|---|---|
| factor | DataFrame | 因子值(包含date、symbol、values列) |
位置: ml_multi_factor_build_node.py:58
因子构建(机器学习-单模型多特征)
- 文件: mtl_factor_build_node.py
- 节点名称: 因子构建(机器学习-单模型多特征)
- 分组: 06-线下课专属
功能: 使用单个机器学习模型处理多组特征工程构建因子
输入:
| 参数名 | 类型 | 说明 |
|---|---|---|
| model | MLModel | 机器学习模型 |
| feature1-5 | FeatureModel | 特征工程(最多5个) |
| start_date | str | 开始时间 |
| end_date | str | 结束时间 |
输出:
| 参数名 | 类型 | 说明 |
|---|---|---|
| factor | DataFrame | 因子值(包含date、symbol、value列) |
位置: mtl_factor_build_node.py:55
PCA因子构建
- 文件: pca_factor_build_node.py
- 节点名称: PCA因子构建
- 分组: 06-线下课专属
功能: 基于主成分分析(PCA)和机器学习模型重要性构建复合因子
输入:
| 参数名 | 类型 | 说明 |
|---|---|---|
| model | MLModel | 机器学习模型 |
| feature | FeatureModel | 特征工程 |
| test_start_date | str | 测试期间开始时间 |
| test_end_date | str | 测试期间结束时间 |
| predict_start_date | str | 预测期间开始时间 |
| predict_end_date | str | 预测期间结束时间 |
输出:
| 参数名 | 类型 | 说明 |
|---|---|---|
| factor | DataFrame | 复合因子得分(包含date、symbol、values列) |
| weights | list | 因子权重列表 |
位置: pca_factor_build_node.py:82
Spearman因子构建
- 文件: spearman_factor_build_node.py
- 节点名称: Spearman因子构建
- 分组: 06-线下课专属
功能: 使用XGBoost模型构建Spearman相关因子
输入:
| 参数名 | 类型 | 说明 |
|---|---|---|
| model | MLModel | 机器学习模型(仅支持xgboost) |
| feature | FeatureModel | 特征工程 |
| start_date | str | 开始时间 |
| end_date | str | 结束时间 |
输出:
| 参数名 | 类型 | 说明 |
|---|---|---|
| factor | DataFrame | 因子值(包含date、symbol、value列) |
位置: spearman_factor_build_node.py:47
注释节点
以下节点已被注释,暂不可用:
| 节点名称 | 文件 | 说明 |
|---|---|---|
| read_csv | read_csv_node.py | 读取CSV文件 |
| save_csv | save_csv_node.py | 保存DataFrame为CSV文件 |
| load_model | load_model_node.py | 加载保存的模型 |
| save_model | save_model_node.py | 保存训练好的模型 |
| 多列表合并 | merge_lists.py | 合并多个列表 |
| 多元素合并列表 | merge_to_list.py | 将多个元素合并为列表 |
通用说明
MLModel
机器学习模型对象,包含以下字段:
model_path: 模型文件路径model_type: 模型类型(xgboost/lightgbm/randomforest/svm/lstm/gru/mtl_nn)
FeatureModel
特征工程模型对象,包含以下字段:
features: 特征公式(换行分隔)label: 标签公式
MLOutputModel
机器学习模型输出对象,包含以下字段:
model: MLModel对象(训练好的模型)
文档生成时间: 2026-02-12