Skip to content

1. 架构设计

系统架构:

  1. 前端:基于React框架,提供用户界面,负责风险评估问卷、投资建议展示等交互功能。
  2. 后端:采用Flask作为API服务框架,提供接口支持用户管理、投资建议和数据处理。
  3. 数据层:使用MySQL存储用户数据和市场数据

数据流:


2. 系统功能模块设计

核心功能模块:

模块交互矩阵

模块名称 依赖模块 数据接口 QPS(Queries Per Second)限制 接口功能说明
用户界面模块(UI) 用户管理模块(UM) /api/ui/dashboard 500 获取用户的投资组合与收益曲线等数据,支持响应式布局的动态渲染
数据处理模块(DT) /api/ui/recommendations 200 接收个性化投资策略报告或产品推送数据
用户管理模块(UM) 数据隐私处理模块(PR) /api/users 300 用户信息维护,包括用户的注册(POST)、登录(POST)、信息修改(PUT)、查询(GET)、注销(DELETE)等操作
路由系统 /api/auth 100 用户身份认证,依赖路由系统分配权限
数据隐私处理模块(PR) 用户管理模块 /api/privacy/risk-profile 150 设计用户风险承受能力测试,并存储用户风险承受能力测试结果,返回风险等级(POST/GET)
敏感数据加密 AES加密中间件 200 对用户的敏感信息加密,诸如密码、身份证号、手机号码等信息
权限控制服务 JWT令牌验证中间件 200 控制接口访问权限,例如尚未登录的用户不能访问投资组合、收益曲线等数据
数据处理模块(DT) 数据隐私处理模块(PR) /api/data/analysis 200 接收清洗后的多源异构数据,基于大语言模型生成投资建议(POST)
AI引擎 /api/data/LLM 50 调用大语言模型进行因子挖掘和金融风控算法训练(异步接口)
WebSocket /ws/updates 300 实时推送资产配置优化建议或分析进度(如文件分析中的Web Worker状态同步)

关键接口说明

  1. 用户界面模块 (UI)

  2. /api/ui/dashboard

依赖用户管理模块(UM)获取用户基础信息,依赖数据处理模块(DT)获取投资数据。

返回格式:JSON(包含收益曲线、持仓分布等图表数据)

  • /api/ui/recommendations

接收数据处理模块(DT)生成的策略报告,前端通过Web Worker解析后渲染为可读性内容

  1. 用户管理模块(UM):

  2. /api/users

实现RESTful风格接口,支持用户注册(POST)、登录(POST)、信息修改(PUT)、查询(GET)、注销 (DELETE)。

数据字段:username、password(通过AES加密中间件加密)、risk_level(来自PR模块)等

  1. 数据隐私处理模块(PR):

  2. /api/privacy/risk-profile

用户提交风险评估问卷后,调用此接口并划分风险等级(低low-中mid-高high)

数据字段:user_id、questionnaire_data、risk_level。

  1. 数据处理模块(DT):

  2. /api/data/LLM

异步接口,调用AI引擎进行模型训练,返回任务id供前端轮询进度

  • /ws/updates

通过WebSocket实时推送分析结果(如文件分析完成通知)或策略更新。

2.1 前端功能模块

  1. 用户界面模块 (UI)

    • 提供简洁的界面,展示核心功能入口。
    • 仪表盘设计,直观展示用户投资组合与收益曲线。

2.2 后端功能模块

2.2.1 后端功能模块细化表

主模块 子模块 接口示例 功能描述
用户管理 (UM) 用户信息维护 POST/api/auth/register

POST/api/auth/login
实现用户注册登录系统,即维护用户数据库的增、删、改、查。
数据隐私管理 (PR) 用户画像 POST/api/privacy/risk-profile 设计并引导用户填写风险承受能力测试(年龄/收入/投资目标),评估投资偏好,划分风险等级(低/中/高)。
敏感数据加密 AES加密中间件 对用户密码、身份证号、手机号等字段进行加密存储
权限控制服务 JWT令牌验证中间件 控制接口访问权限(如未登录用户禁止访问投资建议)
基金数据清洗 POST/api/data/funds 处理基金净值数据
一体化数据分析 POST/api/data/analysis 基于大语言模型提示学习和符号化因子挖掘的智能决策研究,生成投资建议
模型服务 POST/api/dataLLM 基于异构数据学习的金融风控算法,生成适合大模型训练的数据
个性化投资策略 POST/api/data/report 大模型返回资产的组合管理与优化配置建议数据,本模块将其生成可读性良好的报告或具体的产品推送信息
### 2.2.2 模块协作关系图

3. 界面设计

页面功能设计

  1. 主页

    • 提供各大功能入口
    • 投资组合推荐和动态优化展示
    • 提供「我的信息」页面入口
  2. 风险评估页面

    • 引导用户完成问卷,记录年龄、收入、投资目标和风险态度。
    • 输出用户风险等级。
  3. 投资建议页面

    • 基于数据分析生成投资建议
    • 借助LLM将投资建议转化为报告,呈现给用户
  4. 仪表盘

    • 以图表形式展示市场趋势
  5. 我的信息:

    • 显示用户信息
    • 支持修改用户昵称等信息

4. 数据库设计

MySQL 集合规范

用户表(user)

字段 类型 说明
user_id INT AUTO_INCREMENT PRIMARY KEY 用户ID [主键]
username VARCHAR(255) 用户名
email VARCHAR(255) 用户邮箱地址
password_hash VARCHAR(255) 加密存储的密码
risk_level INT 用户风险等级

市场数据表(market_data)

字段 类型 说明
data_id INT AUTO_INCREMENT PRIMARY KEY 主键
symbol VARCHAR(10) 证券代码
date DATE 日期
price DECIMAL(10,2) 价格

5. 核心算法设计

1. 因子挖掘(Factor Mining)

目标:从多源异构数据中提取对投资决策有影响的关键因子。

1.1. 任务拆解:

子问题 数据处理 说明
文本语义分析 LLM模型(如 GPT-4 / DeepSeek-V1) 强大的上下文理解能力,可从新闻/公告中抽取与投资相关的因子(如“市场波动性上升”、“监管收紧”等) 并将其表达为(+1,-1)类的符号化因子
Prompt设计 人工设计 / 自动生成prompt模板 模型需要精心设计prompt,引导其输出因子及影响方向(正/负)

1.2. Prompt设计:

作为金融分析师,请从以下文本中提取影响资产价格的三个因子:
文本:{input_text}
输出:因子名称及其影响方向(+1/-1)。
  • 输出:因子名称及其相关信息(如市盈率、市场情绪)。

1.3. 技术实现:

  • 提示学习:调用预训练的大语言模型(如deepseek)。

2. 符号化规则(Symbolized Rules)

目标: 将原本复杂的数值关系或模型决策过程,转化为简单、清晰、具有明确逻辑的if-then形式规则,增强系统的可解释性、可追溯性与合规性。

2.1. 任务拆解:

子问题 数据处理 说明
规则提取 基于GBDT或决策树模型提取决策路径 通过建模结构化历史数据,学习特征与投资收益之间的关联,提取出明确条件
规则转化 将决策路径标准化为if-then格式 将模型内部隐含的路径条件,转化为符号化表达,供后续使用和展示

2.2. 技术实现:

  • 基础模型选择

    • 使用GBDT(Gradient Boosting Decision Tree单棵决策树(CART对历史数据建模。
    • 输入特征包括财务指标与用户画像(风险偏好、年龄段等)。
    • 输出标签为投资结果,如“收益率高于平均水平”、“波动率低”等。

2.3. 规则提取过程

  • 训练完成后,从每棵决策树中遍历所有叶子节点,记录到达每个叶子的路径条件。
  • 每一条路径对应一个if-then规则,形式为:
IF (市盈率 < 12) AND (ROE > 15%) THEN 高收益
  • 路径中的每一个节点条件都被保留,用作规则前提。

2.4. 符号化标准输出

每条提取规则同一转化标准的JSON格式,示例如下:

{
  "rule_id": "RULE_001",
  "conditions": [
    {"feature": "市盈率", "operator": "<", "threshold": 12},
    {"feature": "ROE", "operator": ">", "threshold": 15}
  ],
  "prediction": "高收益",
  "confidence": 0.82
}

其中:

  • rule_id:规则唯一编号
  • conditions:满足该规则的条件集合
  • prediction:规则推断的投资结果
  • confidence:依据训练样本计算的规则置信度

3. 因子融合与决策生成(Factor Fusion and Decision Making)

目标:

不同来源挖掘得到的各类因子进行有效融合,建立统一的因子池,综合评估各资产,输出个性化投资建议和决策支持。

3.1. 任务拆解:

子问题 数据处理 说明
因子标准化 统一各因子的数据表示与方向性 将因子转化成统一格式,便于后续处理
因子重要性评估 计算每个因子的权重或得分 根据因子的历史表现、模型评估结果赋予不同权重
决策打分建模 综合各因子信息生成资产得分 使用简单模型或打分函数综合各因子得分,完成资产推荐排序

3.2. 技术实现:

3.2.1. 因子标准化处理

  • 将所有提取到的因子整理成统一格式:
因子名称 因子类型 来源 方向(+1/-1) 重要性得分(可选)
市盈率<12 符号化规则因子 结构化数据 +1 0.42
市场情绪上升 文本因子 LLM抽取 +1 0.35
行业监管趋严 文本因子 LLM抽取 -1 0.28
  • 统一因子描述方式,确保在后续建模中可以直接读取。

3.3. 因子重要性评估

  • 依据GBDT特征重要性(Feature Importance)或者因子出现时,模型得分上升程度打分
  • 最终得到每个因子的权重(importance score),用于决策时加权处理。

3.4. 决策打分建模方法

方法:简单线性加权打分(适合首版系统)

  • 定义每个资产的综合得分(Score):

$$ \text{Score(asset)}=\sum_{i=1}^{N}(w_{i}\times I_{i}) $$ 其中:

  • \(w_{i}\):第 \(w_{i}\) 个因子的权重(importance)
  • \(I_{i}\):资产是否符合第 个因子,符合为1,不符合为0。即一个指示变量
  • 按得分高低,对资产进行排序,推荐得分最高的资产组合给用户。

3.5. 结果解释与输出

  • 推荐列表中每个资产附带对应的推荐理由:

示例:

推荐资产A:因为符合"市盈率低于12"、"市场情绪指数上升"、"风险偏好匹配成长型"等因子,预计未来收益潜力较好。

  • 推荐理由可以直接来源于因子触发记录,也可以调用大语言模型(如DeepSeek)根据因子集合生成自然语言解释,提升用户体验。

小组成员

学号 姓名
231275036 朱晗
231275033 陈俊凯
231275019 欧阳慧婷
231275011 杨惠文