├─ all_factors.csv
├─ all_factors_selected.csv # 大模型提取的因子文件与筛选后文件
├─ backend_app.py # fastapi后端
├─ classes.py # 定义的大模型格式化输出类
├─ config.py # **涉及隐私,不公开**
├─ extract.py # 大模型提取文本内容
├─ filter.py # 根据置信度评分初步进行单因子筛选
├─ fronted_app.py # 前端
├─ optimization.py # 权重最优化
├─ prompt_1.py # 大模型提取的prompt
├─ prompt_2.py # 大模型筛选因子的prompt
├─ requirements.txt
├─ resource # **包括源数据等内容,这里不公开**
│ ├─ base_alpha_factors.xls
│ ├─ base_factor.xls
│ ├─ base_operator.xls
│ ├─ categories.xlsx
│ ├─ data/*
│ ├─ default.png
│ ├─ En/*
│ ├─ result.png
│ └─ Zh/*
├─ scores.csv
├─ vue_test/* # vue前端
该软件开发环境基于Ubuntu 20.04系统环境,cuda 12.2版本,使用Python 3.11版本开发,具体环境配置情况如下:
- 硬件要求:本实验在显卡A800上进行运行与实验;
- 软件与工具依赖:本实验除了提取因子任务中的调用智谱模型接口,其他开发全都基于开源工具;
- 网络环境:要求运行环境能正常联网即可。
本智能量化交易系统旨在通过应用先进的AI技术,显著提升交易决策的准确性和速度。系统集成了因子筛选、风险管理以及策略优化等多个模块,确保在多变的市场环境中高效运行。其具有以下关键功能:
- 因子筛选:利用AI强大的数据处理与挖掘能力,自动识别和评估与市场表现相关的因子,为决策提供数据支持。
- 风险管理:通过用户问卷以及因子组合,优化风险收益比,加强投资安全。
- 策略优化:基于历史数据和市场趋势,系统自动调整和优化交易策略,以适应不同的市场条件。 此外,系统具备商业可推广性,能够应用于不同的市场环境和金融资产类别,具有较强的市场潜力。
- 优化交易决策:通过人工智能和数据分析技术,优化因子筛选过程,优化因子与决策的相关性,进而提升交易决策质量。
- 加快会话执行速度:采用部分离线数据,结合高质量因子检验策略以及微调大模型,减少结果产出的延迟,提高执行效率。
- 增强风险管理能力:根据用户风险承受能力量表以及因子偏好量表,建立用户画像,结合金融原理与大模型技术,实现不同投资策略推荐。
- 优化策略调整:利用AI与最优化技术,自动调整交易策略,适应市场变化,实现持续收益最大化。
- 增强系统灵活性:设计可扩展架构,满足多样化投资需求,提升商业可推广性。
通过调研,在前端技术框架的选择上最终选择了Vue框架。Vue是一套渐进式轻量级框架,主要功能是用以构建用户界面。它具有数据双向绑定以及页面组件化的优势。此外它的数据与结构分离也很大程度上降低了耦合度,并且由于其是单页面应用,加载时页面局部刷新可以加快访问速度,提升用户体验。
Gradio用于创建和共享机器学习模型的用户界面,使得开发者能够通过简单的 Python 代码创建交互式界面,方便用户与模型进行交互,进行预测和可视化。开发人员只需要几行代码就可以创建一个交互式的预览界面。除此之外,Gradio还可以用于各种类型的模型以及在各种环境中运行。
XTuner 用于优化机器学习模型超参数,是一个高效、灵活且全能的大模型微调工具库。XTuner支持大语言模型 LLM、多模态图文模型 VLM 的预训练及轻量级微调,旨在提供一种高效、简单的方法来调整模型的超参数,从而提高模型性能。XTuner 支持多种优化算法,包括贝叶斯优化、网格搜索和随机搜索等,允许用户根据不同的需求选择最合适的优化策略。
本系统根据客户的具体需求,结合各模块的输入输出特性及其所采用的算法程序,精心设计并划分为以下七个功能模块。每个模块不仅承担特定的功能,还能够与其他模块高效协作,以满足客户在量化交易中的各种需求和期望:
- 记录咨询调查问卷:收集客户填写的风险承受量表和因子偏好量表数据,为后续的金融咨询提供基础信息;
- 金融咨询与会话:提供一个平台,让客户与金融LLM进行交流,除了正常对话之外,还可以通过意图识别,检测用户对绿色金融市场的选股类话题驱动,并进入相应的任务管道;
- 筛选有效因子:定期更新和筛选高质量的金融文献,确保咨询过程中使用的信息是最新和最相关的,再利用LLM筛选出有效因子;
- 最终因子生成:结合因子偏好量表与历史数据,使用LLM技术进行预测和因子筛选,以确定投资决策的关键因素;
- 股票推荐:根据最终确定的因子和客户的风险承受能力,通过最优化算法生成因子权重,并据此选出推荐股票;
- 错误处理:设计一套机制来识别和处理在咨询过程中可能出现的错误,确保流程的顺利进行;
- 数据处理:对收集到的数据进行整理和分析,以便在咨询过程中提供准确的信息和建议。
遗传算法是一种基于自然选择和遗传机制的优化算法,模拟生物进化过程,通过“选择”、“交叉”和“变异”等操作,在解决复杂优化问题时找到局部最优解,并试图探索全局最优解。 在使用遗传算法确定最终因子的权重时,我们核心目的是通过遗传算法优化权重组合,最大化组合的收益率。在此基础上,遗传算法通过模拟自然进化的过程,迭代寻找最优解。
在因子模型中,最终的目标是构建一个新的因子 ,这个因子是由最终因子的线性组合得到的:
其中
其中
-
初始化种群:初始化多个不同的权重组合,每个组合称为一个“个体”,表示为一个向量
$ \vec{\omega}=\left(\omega_1,\omega_2,\ldots,\omega_n\right)$ ,其中$ \omega_i$ 是因子的权重。最初的种群可以通过随机生成权重组合来创建,每个个体都表示一个可能的解。 -
适应度函数评估:适应度函数为目标函数
$R(F)$ ,即组合的收益率。适应度值越高,表示该个体的投资组合在历史数据中的表现越好,因此越可能在进化过程中被选择。 - 选择:基于适应度值,采用“轮盘赌”选择法或“锦标赛选择法”等方式,选择表现较好的个体进入下一代。这些个体有更大的概率遗传给后代。
-
交叉与变异:
- 交叉:选出的个体通过交叉操作,生成新的个体。交叉是模拟基因重组的过程,使得优秀的特性在后代中传递。
- 变异:为避免种群过早收敛到局部最优解,随机对部分个体进行变异,即改变某些权重。变异率通常较低,但有助于维护种群的多样性。
- 迭代与收敛:重复选择、交叉和变异的过程,通过若干代的迭代,种群中的个体逐渐进化,适应度逐步提升。最终收敛到一个最优解,找到收益率最大的因子组合权重。
在经过若干代的迭代后,遗传算法将逐渐收敛到一个较优解,即找到最优的因子权重组合,使得组合的收益率最大化。遗传算法具有较强的全局优化能力,可以避免局部最优问题。最终输出的权重组
现代投资组合理论(Modern Portfolio Theory, MPT)通过计算有效前沿,可以找到给定风险水平下的最佳组合。
假设投资者是风险厌恶的,通常希望在投资回报和风险之间进行权衡。效用函数可以表示成这样的形式:
其中
-
$\lambda$ 是投资者的风险厌恶系数,值越大表明对风险越敏感; -
$\mathbb{E}\left(R_p\right)$ 是投资组合的预期回报:
其中
-
$\sigma_P^2$ 是投资组合的方差:
其中
于是可以通过优化组合权重
用户首先进入问卷调查填写页面,需要知悉问卷调查第一部分——风险承受程度的内容。
点击“已知悉”后,跳转到“风险承受”问卷的填写页面。每个题目有5个程度,选择且确认无误之后,点击“下一步”。
弹出“问卷提交成功”提示框之后,跳转至问卷调查第二部分——因子偏好程度,需要知悉该部分的内容,进入下一页。
点击“已知悉”后,跳转到“因子偏好”问卷的填写页面。与第一部分一样,每个题目有5个程度。
选择且确认无误之后,点击“完成”。系统将会跳转至会话页面。
本团队开发了一款智能量化交易系统,旨在通过AI技术提升交易决策的准确性和速度。系统包括因子筛选、风险管理以及策略优化等模块,具备高效的性能和灵活的适用性,以满足不同市场环境和金融资产的需求。通过动态调整和优化策略,该系统能够持续适应市场变化。