一、行情数据模块设计
(一)数据接入层
-
实时行情数据源
- 国内 A 股:接入万得实时行情 API(延迟≤100ms),订阅 1000 + 核心股票 Tick 数据
- 港股 / 美股:通过富途证券 API 获取 Level-2 行情,支持 5 档买卖盘实时展示
- 指数数据:同步沪深 300、中证 500、恒生指数等 15 个核心指数的成分股权重及实时点位
-
数据采集服务
- 部署架构:采用 Kafka 集群构建消息队列,3 个数据采集节点分布式拉取数据
- 采集频率:
- 股票行情:5 秒 / 次(交易时段),1 分钟 / 次(非交易时段)
- 新闻资讯:实时推送(基于 WebSocket 协议)
- 财务数据:T+1 更新(上市公司财报发布后自动抓取)
(二)数据处理层
-
清洗与标准化
python
运行
# 股价异常值处理示例 def handle_outliers(df): z_scores = np.abs((df['price'] - df['price'].mean()) / df['price'].std()) df['price'] = np.where(z_scores > 3, np.nan, df['price']) # 超过3σ视为异常值 df['price'] = df['price'].interpolate(method='time') # 线性插值填充缺失值 return df
- 文本清洗:去除 HTML 标签、特殊符号,繁体转简体(使用 OpenCC 库)
-
特征工程
- 技术指标:计算 MA (5/10/20)、MACD、KDJ、RSI 等 20 项指标(基于 TA-Lib 库)
- 波动率特征:计算 5 分钟 / 日 / 周波动率,历史波动率与隐含波动率差值
- 量价关系:成交量加权平均价格 (VWAP)、量比 (OBV) 等
(三)数据存储方案
-
时序数据库
- 选型:InfluxDB 集群(3 节点)
- 存储策略:
- 实时行情:保留最近 1 个月的分钟级数据,历史数据按日聚合存储
- 指标计算结果:保留最近 3 年的日线级数据
-
文档数据库
- 选型:MongoDB 分片集群(3 分片 + 2 仲裁节点)
- 存储内容:
- 新闻资讯:结构化存储(标题、正文、发布时间、情感分数、关键词)
- 财务报表:按公司代码 + 报告期组织(资产负债表、利润表、现金流量表)
二、量化策略模块设计
(一)信号生成引擎
-
多因子模型
- 因子库:包含技术因子(60%)、基本面因子(25%)、舆情因子(15%)三大类
- 因子权重:动态调整(每周基于 IC_IR 值重新优化)
- 信号生成逻辑:
python
运行
def generate_signal(stock_data, factor_weights): # 计算各因子得分 tech_score = calculate_technical_factor(stock_data) fund_score = calculate_fundamental_factor(stock_data) sentiment_score = calculate_sentiment_factor(stock_data) # 加权汇总 total_score = (tech_score * factor_weights['tech'] + fund_score * factor_weights['fund'] + sentiment_score * factor_weights['sentiment']) # 生成信号(-1=卖出,0=持有,1=买入) if total_score > upper_threshold: return 1 elif total_score < lower_threshold: return -1 else: return 0
-
事件驱动策略
- 事件类型:政策发布、财报披露、高管增持 / 减持、重大合同签订等 12 类
- 影响评估:基于 Ollama 知识图谱计算事件对个股的影响分值(0-10 分)
- 响应机制:
- 一级事件(影响分值≥8):立即生成交易信号(优先级高于因子模型)
- 二级事件(5≤分值 < 8):调整因子模型权重(相关因子权重提升 30%)
(二)策略回测系统
-
回测引擎
- 时间粒度:支持分钟级、日级回测
- 交易成本模型:考虑佣金(0.03%)、印花税(0.1%)、滑点(0.2%)
- 风险指标计算:
python
运行
def calculate_risk_metrics(returns): # 计算年化收益率 annual_return = np.mean(returns) * 252 # 计算最大回撤 cumulative = (1 + returns).cumprod() peak = cumulative.cummax() drawdown = (cumulative - peak) / peak max_drawdown = np.min(drawdown) # 计算夏普比率 sharpe_ratio = annual_return / (np.std(returns) * np.sqrt(252)) return { 'annual_return': annual_return, 'max_drawdown': max_drawdown, 'sharpe_ratio': sharpe_ratio }
-
结果可视化
- 收益曲线:对比策略收益与基准收益(如沪深 300)
- 月度收益热力图:直观展示策略在不同市场环境下的表现
- 风险指标仪表盘:包含胜率、盈亏比、换手率等 15 项指标
三、AI 模型模块设计
(一)LSTM 预测模型
-
网络架构
- 输入层:14 个特征(包含 5 个技术指标、3 个量价关系指标、6 个基本面指标)
- 隐藏层:3 层 LSTM(每层 128 个神经元)+ 2 层 Dropout(比率 0.3)
- 输出层:全连接层(预测未来 1/3/5 个交易日收盘价)
-
训练流程
- 数据预处理:
python
运行
def create_sequences(data, seq_length): X, y = [], [] for i in range(len(data) - seq_length): X.append(data[i:i+seq_length]) y.append(data[i+seq_length, 0]) # 预测收盘价 return np.array(X), np.array(y)
- 优化器:Adam(学习率 0.001,衰减率 0.9)
- 损失函数:均方误差(MSE)+ 方向准确率(Directional Accuracy)
- 数据预处理:
(二)Ollama 知识图谱
-
实体关系
- 实体类型:
- 公司实体:全部 A 股上市公司(约 5000 家)
- 行业实体:申万一级行业(31 个)
- 概念实体:如 "新能源汽车"" 芯片 ""人工智能" 等 200 + 概念
- 政策实体:国家及各部委发布的政策文件(已收录 2000 + 条)
- 关系类型:
-
图片
- 实体类型:
-
推理机制
- 事件传导路径:政策发布→行业影响评估→公司业务关联度分析→财务指标预测
- 影响评分算法:
python
运行
def calculate_event_impact(event, company): # 获取事件与行业的关联度 industry_impact = knowledge_graph.query( f"MATCH (e:Event)-[r:AFFECTS]->(i:Industry) WHERE e.id={event.id} RETURN r.score" ) # 获取公司在行业中的权重 company_weight = knowledge_graph.query( f"MATCH (i:Industry)-[r:CONTAINS]->(c:Company) WHERE c.code={company.code} RETURN r.weight" ) # 计算事件对公司的直接影响 direct_impact = industry_impact * company_weight * event.severity # 考虑间接影响(如供应链关系) indirect_impact = calculate_indirect_impact(event, company) return direct_impact + indirect_impact
四、交易执行模块设计
(一)券商接口层
-
API 适配器
- 支持券商:华泰证券、东方财富、中信证券、富途证券(覆盖 90% 市场份额)
- 接口统一化:
python
运行
class BrokerAdapter: def __init__(self, broker_type): if broker_type == 'huatai': self.adapter = HuataiAPI() elif broker_type == 'eastmoney': self.adapter = EastMoneyAPI() # 其他券商实现... def place_order(self, symbol, direction, amount, price=None): return self.adapter.place_order(symbol, direction, amount, price) def get_balance(self): return self.adapter.get_balance() def get_positions(self): return self.adapter.get_positions()
-
交易协议
- 下单接口:支持市价单、限价单、止损单、止盈单
- 订单状态:返回订单生命周期(提交中→已报→已成→已撤)
- 错误处理:定义 20 种交易错误码(如资金不足、股票停牌、超出涨跌停限制)
(二)智能交易引擎
-
订单执行策略
- 时间加权平均价格(TWAP):将大单拆分为小单,按时间均匀分布成交
- 成交量加权平均价格(VWAP):根据市场成交量动态调整下单速度
- 冰山订单:隐藏真实订单规模,每次只显示部分数量
-
交易风控
- 单笔交易限制:最大下单金额≤账户总资产的 5%
- 单日交易限制:累计交易金额≤账户总资产的 30%
- 交易频率限制:同一股票 10 分钟内最多交易 1 次
五、风险控制模块设计
(一)实时监控系统
-
监控指标
类别 指标名称 预警阈值 处理措施 市场风险 沪深 300 波动率 >30% 降低整体仓位至 50% 持仓风险 单一股票集中度 >30% 自动减仓至 20% 策略风险 连续亏损次数 ≥5 次 暂停策略执行,触发人工复核 系统风险 API 响应超时率 >15% 切换至备用服务器 -
监控频率
- 实时指标:每秒更新(如 API 响应时间)
- 策略指标:每分钟计算(如组合收益、风险敞口)
- 市场指标:每 5 分钟采集(如行业波动率、北向资金流向)
(二)风险应对机制
-
自动化处理
python
运行
def risk_response_engine(monitor_data): # 市场风险应对 if monitor_data['market_volatility'] > 30%: reduce_position(target_ratio=0.5) # 持仓风险应对 for stock, concentration in monitor_data['position_concentration'].items(): if concentration > 0.3: adjust_position(stock, target_ratio=0.2) # 系统风险应对 if monitor_data['api_timeout_rate'] > 0.15: switch_to_backup_server()
-
人工干预流程
- 预警升级:当同一风险指标连续 3 次触发阈值时,自动升级为橙色预警
- 决策流程:
流程
风险预警 → 系统自动处理 → 人工复核(15分钟内) → 确认处理结果 → 记录风险事件
六、用户界面设计
(一)移动端 UI 设计
-
首页看板
- 布局结构:
plaintext
+-------------------+ | 搜索栏 | +-------------------+ | 市场概览 | | 指数行情 | +-------------------+ | 我的持仓 | | 收益曲线 | +-------------------+ | AI推荐股票 | | 买入信号列表 | +-------------------+ | 财经要闻 | | 重要公告 | +-------------------+
- 交互设计:
- 下拉刷新:更新实时行情数据
- 左右滑动:切换不同市场(A 股 / 港股 / 美股)
- 点击股票:进入详情页
- 布局结构:
-
交易详情页
- 信息展示:
plaintext
+-------------------+ | 股票名称/代码 | | 当前价格/涨跌幅 | +-------------------+ | K线图(可切换周期)| +-------------------+ | 技术指标 | | 买卖五档 | +-------------------+ | AI信号分析 | | 看多/看空理由 | +-------------------+ | 交易操作区 | | 买入/卖出按钮 | +-------------------+
- 特色功能:
- 智能下单:根据账户余额自动计算可买数量
- 条件单:设置价格触发条件(如跌到 XX 元自动买入)
- 信息展示:
(二)Web 管理后台设计
-
策略管理页面
- 功能区域:
plaintext
+-------------------+ | 策略列表 | | 筛选/排序 | +-------------------+ | 策略详情 | | 参数配置 | +-------------------+ | 回测结果 | | 收益曲线 | +-------------------+ | 实盘表现 | | 风险指标 | +-------------------+
- 高级功能:
- 策略回测:支持多周期回测(如 2015-2016 股灾、2020 疫情期间)
- 参数优化:自动搜索最优参数组合(如 MA 均线的最佳周期)
- 功能区域:
-
用户分析页面
- 数据可视化:
plaintext
+-------------------+ | 用户增长趋势 | | 注册渠道分布 | +-------------------+ | 活跃用户分析 | | 留存率曲线 | +-------------------+ | 用户画像 | | 资产规模分布 | +-------------------+ | 交易行为分析 | | 策略使用偏好 | +-------------------+
- 导出功能:支持导出 CSV 格式用户分析报告
- 数据可视化:
七、系统部署设计
(一)云服务架构
-
基础设施
- 云服务商:阿里云(主)+ 腾讯云(备)
- 计算资源:
- 应用服务器:8 核 16G×10 台(3 台 Web 服务,4 台 API 服务,3 台 AI 推理服务)
- 数据服务器:16 核 32G×5 台(2 台 MongoDB,3 台 InfluxDB)
- 缓存服务器:Redis 集群(3 主 3 从)
- 存储资源:
- 对象存储:OSS(存储模型文件、历史数据备份)
- 块存储:ESSD 云盘(高性能读写)
-
网络架构
图片
代码
收集日志
用户
负载均衡SLB
Web服务器集群
API网关
应用服务集群
数据服务集群
AI推理服务
监控系统
日志系统
收集日志
用户
负载均衡SLB
Web服务器集群
API网关
应用服务集群
数据服务集群
AI推理服务
监控系统
日志系统
(二)容器化部署
-
技术栈
- 容器引擎:Docker CE 24.0
- 容器编排:Kubernetes 1.26(3 个 master 节点 + 10 个 worker 节点)
- CI/CD:Jenkins + GitLab
-
部署流程
流程
代码提交 → 自动化测试 → 构建Docker镜像 → 推送至镜像仓库 → K8s部署 → 灰度发布 → 全量上线
- 发布策略:蓝绿部署(关键服务)、金丝雀发布(新功能)
操
编辑
分享