diff --git a/3rd_ref/DeepseekAIQuan.md b/3rd_ref/DeepseekAIQuan.md new file mode 100644 index 0000000..793f3c0 --- /dev/null +++ b/3rd_ref/DeepseekAIQuan.md @@ -0,0 +1,723 @@ +第1章 DeepSeek、Python与量化交易概述 + +1.1 DeepSeek介绍 + +1.1.1 DeepSeek模型家族 + +1.1.2 DeepSeek的优势 + +1.1.3 DeepSeek的应用领域 + +1.2 如何使用DeepSeek + +1.2.1 使用网页版DeepSeek + +1.2.2 下载DeepSeek手机App + +1.3 Python编程在量化交易中的重要性和优势 + +1.4 DeepSeek+Python赋能量化交易 + +1.5 本章总结 + +第2章 量化交易Python语言基础 + +2.1 Python解释器 + +2.2 IDE + +2.2.1 安装PyCharm + +2.2.2 安装Jupyter Notebook + +2.2.3 启动Jupyter Notebook + +2.3 第一个Python程序 + +2.3.1 编写脚本文件运行第一个Python程序 + +2.3.2 使用PyCharm编写和运行Python程序 + +2.3.3 使用Jupyter Notebook编写和运行Python程序 + +2.4 Python语法基础 + +2.4.1 标识符 + +2.4.2 关键字 + +2.4.3 变量 + +2.4.4 语句 + +2.4.5 代码块 + +2.4.6 模块 + +2.5 运算符 + +2.5.1 算术运算符 + +2.5.2 关系运算符 + +2.5.3 逻辑运算符 + +2.5.4 赋值运算符 + +2.6 数据类型 + +2.6.1 数字类型 + +2.6.2 列表 + +2.6.3 元组 + +2.6.4 集合 + +2.6.5 字典 + +2.7 字符串 + +2.7.1 字符串的创建 + +2.7.2 字符转义 + +2.7.3 字符串格式化 + +2.7.4 数字格式化 + +2.8 控制语句 + +2.8.1 分支语句 + +2.8.2 循环语句 + +2.8.3 跳转语句 + +2.9 函数 + +2.9.1 定义函数 + +2.9.2 调用函数 + +2.9.3 带参数的函数 + +2.9.4 带返回值的函数 + +2.9.5 默认参数 + +2.9.6 可变参数 + +2.9.7 lambda函数 + +2.9.8 使用filter()和map()函数进行数据处理 + +2.10 类 + +2.10.1 实例变量和构造函数 + +2.10.2 实例方法 + +2.11 文件操作 + +2.12 异常处理 + +2.12.1 捕获异常 + +2.12.2 释放资源 + +2.13 多线程 + +2.13.1 创建线程 + +2.13.2 等待线程结束 + +2.14 本章总结 + +第3章 Python量化基础工具库 + +3.1 NumPy + +3.1.1 为什么选择NumPy + +3.1.2 安装NumPy + +3.2 创建数组 + +3.2.1 从Python列表创建一维数组 + +3.2.2 指定数组的数据类型 + +3.2.3 更多创建一维数组的方式 + +3.2.4 arange()函数 + +3.2.5 等差数列与linspace()函数 + +3.2.6 等比数列与logspace()函数 + +3.3 二维数组 + +3.4 更多创建二维数组的方式 + +3.4.1 使用ones()函数 + +3.4.2 使用zeros()函数 + +3.4.3 使用empty()函数 + +3.4.4 使用full()函数 + +3.4.5 使用identity()函数 + +3.5 数组的属性 + +3.6 数组的轴 + +3.6.1 轴的概念 + +3.6.2 轴的应用 + +3.6.3 轴的应用示例 + +3.7 三维数组 + +3.7.1 三维数组的结构 + +3.7.2 创建三维数组 + +3.8 访问数组 + +3.8.1 索引访问 + +3.8.2 切片访问 + +3.8.3 布尔索引 + +3.8.4 花式索引 + +3.9 Pandas + +3.9.1 为什么选择Pandas + +3.9.2 安装Pandas + +3.10 Series数据结构 + +3.10.1 理解Series数据结构 + +3.10.2 创建Series对象 + +3.10.3 访问Series数据 + +3.10.4 通过切片访问Series数据 + +3.11 DataFrame数据结构 + +3.12 访问DataFrame数据 + +3.12.1 列访问 + +3.12.2 行访问 + +3.12.3 切片访问 + +3.13 读写数据 + +3.13.1 读取CSV文件数据 + +3.13.2 实战案例1:从CSV文件读取货币供应量数据 + +3.13.3 写入数据到CSV文件 + +3.13.4 实战案例2:将银行账户交易记录写入CSV文件 + +3.13.5 读取Excel文件数据 + +3.13.6 实战案例3:从Excel文件中读取货币供应量月度数据 + +3.13.7 读取数据库 + +3.13.8 实战案例4:从数据库中读取银行账户交易记录数据 + +3.14 本章总结 + +第4章 量化交易Python语言基础 + +4.1 量化交易可视化库 + +4.2 使用Matplotlib绘制图表 + +4.2.1 安装Matplotlib + +4.2.2 图表基本构成要素 + +4.2.3 绘制折线图 + +4.2.4 绘制柱状图 + +4.2.5 绘制饼图 + +4.2.6 绘制散点图 + +4.3 使用Seaborn绘制图表 + +4.3.1 Seaborn内置数据集 + +4.3.2 Seaborn图表主题 + +4.3.3 柱状图 + +4.3.4 直方图 + +4.3.5 箱线图 + +4.3.6 小提琴图 + +4.3.7 热力图 + +4.4 时间序列可视化 + +4.4.1 实战案例5:使用Matplotlib绘制英伟达股票历史成交量折线图 + +4.4.2 实战案例6:绘制英伟达股票OHLC折线图 + +4.4.3 K线图 + +4.4.4 绘制K线图 + +4.4.5 实战案例7:绘制英伟达股票K线图 + +4.4.6 实战案例8:使用Seaborn绘制英伟达股票历史成交量折线图 + +4.5 本章总结 + +第5章 数据采集与分析 + +5.1 数据采集概述 + +5.1.1 数据采集的基本步骤 + +5.1.2 数据采集技术和工具 + +5.2 网页数据采集 + +5.2.1 使用urllib爬取网页数据 + +5.2.2 实战案例9:爬取苹果股票数据 + +5.2.3 解析数据 + +5.2.4 使用BeautifulSoup + +5.2.5 实战案例10:解析苹果股票数据 + +5.2.6 使用Selenium爬取网页数据 + +5.2.7 实战案例11:使用Selenium爬取中国石油股票数据 + +5.2.8 实战案例12:使用Selenium解析HTML数据 + +5.2.9 借助DeepSeek爬取网页数据 + +5.3 API调用采集数据 + +5.3.1 常见的金融数据API + +5.3.2 使用Tushare API采集数据 + +5.3.3 实战案例13:使用Tushare API获取中国石油股票数据 + +5.4 数据清洗 + +5.4.1 实战案例14:ABC股票数据清洗 + +5.4.2 处理股票数据类型不一致问题 + +5.4.3 处理股票数据异常值 + +5.4.4 DeepSeek助力数据清洗 + +5.4.5 实战案例15:使用DeepSeek清洗特斯拉股票数据 + +5.5 统计分析 + +5.5.1 DeepSeek辅助统计分析 + +5.5.2 相关性分析 + +5.5.3 实战案例16:股票行业相关性分析 + +5.5.4 统计描述和摘要 + +5.5.5 实战案例17:苹果股票数据统计描述和摘要分析 + +5.6 本章总结 + +第6章 量化交易基础 + +6.1 量化交易概述 + +6.2 金融市场和交易品种概述 + +6.3 技术分析和基本面分析基础 + +6.3.1 技术分析 + +6.3.2 基本面分析 + +6.4 量化交易策略概述 + +6.5 本章总结 + +第7章 DeepSeek与量化交易结合 + +7.1 DeepSeek辅助技术分析 + +7.1.1 DeepSeek 在技术分析中的主要应用 + +7.1.2 实战案例18:利用DeepSeek对000001.SZ股票进行技术分析 + +7.2 DeepSeek辅助基本面分析 + +7.2.1 DeepSeek在基本面分析中的应用 + +7.2.2 实战案例19:利用DeepSeek对某上市公司公告进行解析 + +7.3 DeepSeek在市场情报分析中的应用 + +7.3.1 实战案例20:利用DeepSeek对“央行发布降息25个基点”消息进行分析 + +7.3.2 实战案例21:利用DeepSeek对“重大项目获得批复,股价大涨20%”消息进行分析 + +7.4 DeepSeek在交易决策支持中的应用 + +7.4.1 实战案例22:某科技型上市公司获大单,DeepSeek提出交易决策建议 + +7.4.2 实战案例23:某新能源概念股获多项利好,DeepSeek交易建议 + +7.5 使用DeepSeek进行市场预测和趋势识别 + +7.5.1 实战案例24:DeepSeek预测某城市商业地产市场面临调整 + +7.5.2 实战案例25:DeepSeek用于预测“新能源汽车补贴退坡”的影响 + +7.6 本章总结 + +第8章 趋势跟踪策略与DeepSeek智能增强 + +8.1 趋势跟踪策略概述 + +8.1.1 趋势跟踪和交易决策中一些主要概念 + +8.1.2 使用移动平均线进行分析 + +8.2 使用DeepSeek辅助趋势跟踪策略决策过程 + +8.3 实战案例26:使用DeepSeek辅助移动平均线策略分析微软股票 + +8.3.1 步骤1:数据采集和加载数据 + +8.3.2 步骤2:计算移动平均线 + +8.3.3 步骤3:初始策略规则的制定 + +8.3.4 步骤4:生成买入和卖出信号 + +8.3.5 步骤5:DeepSeek赋能模拟回测验证策略 + +8.3.6 步骤6:绘制K线图和信号 + +8.3.7 步骤7:DeepSeek辅助优化策略 + +8.4 本章总结 + +第9章 动量策略与DeepSeek智能辅助决策 + +9.1 动量策略概述 + +9.1.1 动量策略中的一些主要概念 + +9.1.2 动量策略的优缺点 + +9.2 相对强弱指标 + +9.3 使用DeepSeek辅助动量策略决策 + +9.4 实战案例27:使用DeepSeek辅助中国铝业股票价格和RSI交易信号分析 + +9.4.1 步骤1:数据采集与预处理 + +9.4.2 步骤2:计算RSI + +9.4.3 步骤3:初始策略规则的制定 + +9.4.4 步骤4:生成买入和卖出信号 + +9.4.5 步骤5:绘制RSI曲线与交易信号 + +9.4.6 步骤6:DeepSeek赋能模拟回测验证策略 + +9.4.7 步骤7:DeepSeek辅助优化策略 + +9.5 本章总结 + +第10章 海龟交易策略 + +10.1 海龟交易策略的诞生与基础概念 + +10.1.1 海龟交易策略的起源故事 + +10.1.2 海龟交易策略的核心原则 + +10.1.3 海龟交易策略的一些主要概念 + +10.1.4 海龟交易策略的实施过程 + +10.2 使用DeepSeek辅助实施海龟交易策略 + +10.3 实战案例28:借助DeepSeek推进海龟交易策略落地——以中国石油股票交易为例 + +10.3.1 步骤1:数据获取和准备 + +10.3.2 步骤2:封装海龟交易策略函数 + +10.3.3 步骤3:回测策略 + +10.3.4 步骤4:回测的可视化分析 + +10.3.5 步骤5:DeepSeek辅助优化策略 + +10.4 本章总结 + +第11章 借助DeepSeek构建与优化高频交易策略 + +11.1 高频交易策略概述 + +11.1.1 高频交易的特点 + +11.1.2 高频交易策略中的一些主要概念 + +11.1.3 实施高频交易策略 + +11.1.4 高频交易策略中常见的策略 + +11.1.5 高频交易策略的技术和设施层面问题 + +11.2 使用DeepSeek辅助实施高频交易策略 + +11.3 实战案例29:利用DeepSeek辅助实施高频交易策略并优化股票投资回报——以比亚 + +迪股票为例 + +11.3.1 步骤1:DeepSeek辅助制定策略 + +11.3.2 步骤2:DeepSeek辅助选择交易平台和技术手段 + +11.3.3 步骤3:DeepSeek辅助撰写交易算法 + +11.4 构建高频交易框架 + +11.4.1 高频交易框架的核心组件 + +11.4.2 高频交易框架的实现步骤 + +11.4.3 实战案例30:基本高频交易框架实现 + +11.5 实战案例31:基于配对交易策略的高频交易实施过程 + +11.6 实战案例32:DeepSeek辅助HTF框架下的动量策略——以苹果股票为例 + +11.7 DeepSeek辅助实现其他编程语言的BHTF策略 + +11.8 本章总结 + +第12章 利用DeepSeek实施套利交易策略 + +12.1 套利策略概述 + +12.1.1 套利策略的基本定义 + +12.1.2 套利策略的类型 + +12.1.3 套利策略中的一些主要概念 + +12.2 实施套利交易策略 + +12.3 使用DeepSeek辅助实施套利交易策略 + +12.4 套利交易策略案例分析 + +12.4.1 实战案例33:股票A跨市场套利 + +12.4.2 实战案例34:利用美元与欧元汇率差异套利 + +12.4.3 实战案例35:同行业相对值套利策略 + +12.5 实战案例36:中国石化股票和中国石油股票配对交易套利 + +12.5.1 步骤1:清洗数据 + +12.5.2 步骤2:读取股票数据 + +12.5.3 步骤3:两只股票的相关性分析 + +12.5.4 步骤4:使用DeepSeek对相关性进行分析 + +12.5.5 步骤5:回测股票历史数据 + +12.5.6 步骤6:使用DeepSeek对回测结果进行分析 + +12.5.7 步骤7:使用DeepSeek优化策略 + +12.6 本章总结 + +第13章 基于机器学习与DeepSeek优化的量化交易策略 + +13.1 机器学习策略中的一些主要概念 + +13.2 机器学习策略分类 + +13.3 分类策略 + +13.3.1 Python机器学习库 + +13.3.2 机器学习策略实施过程 + +13.4 实战案例37:使用分类策略预测英伟达股票走势 + +13.4.1 步骤1:数据准备和处理 + +13.4.2 步骤2:模型训练 + +13.4.3 步骤3:使用DeepSeek进行模型评估 + +13.4.4 步骤4:使用DeepSeek进行模型优化 + +13.4.5 步骤5:预测股票走势 + +13.5 实战案例38:使用回归策略预测英伟达股票走势 + +13.5.1 步骤1:数据准备和处理 + +13.5.2 步骤2:模型训练 + +13.5.3 步骤3:预测股票走势 + +13.5.4 步骤4:使用DeepSeek进行模型评估 + +13.5.5 步骤5:使用DeepSeek进行模型优化 + +13.5.6 步骤6:使用优化后的模型再次预测股票走势 + +13.6 实战案例39:LSTM预测比特币价格趋势 + +13.6.1 步骤1:加载和清洗数据 + +13.6.2 步骤2:模型训练 + +13.6.3 步骤3:可视化结果 + +13.6.4 步骤4:使用DeepSeek进行模型评估 + +13.6.5 步骤5:使用DeepSeek优化模型 + +13.6.6 步骤6:比特币价格预测 + +13.7 本章总结 + +第14章 量化交易回测框架与DeepSeek优化 + +14.1 再谈回测 + +14.1.1 回测的基本流程 + +14.1.2 常见回测框架 + +14.2 Backtrader框架 + +14.2.1 Backtrader使用流程 + +14.2.2 实战案例40:使用Backtrader回测苹果股票的双均线策略 + +14.2.3 DeepSeek辅助优化Backtrader参数双均线策略 + +14.3 本章总结 + +第15章 利用DeepSeek提高量化交易的风险管理效能 + +15.1 风险管理工具和方法 + +15.1.1 止损与止盈策略 + +15.1.2 实战案例41:基于移动平均线的固定止损+固定止盈策略 + +15.1.3 实战案例42:移动止损和移动止盈策略 + +15.1.4 头寸管理 + +15.1.5 实战案例43:基于波动率的动态头寸管理策略——以特斯拉股票为例 + +15.1.6 投资组合分散 + +15.1.7 实战案例44:股票与黄金的风险分散投资策略 + +15.1.8 对冲策略 + +15.1.9 实战案例45:对冲策略——股票与债券的对冲组合 + +15.2 使用DeepSeek辅助量化交易风险管理 + +15.2.1 风险识别 + +15.2.2 实战案例46:DeepSeek智能监控应对市场动荡 + +15.2.3 风险评估 + +15.2.4 实战案例47:基于DeepSeek的科技股投资组合的风险评估 + +15.2.5 风险控制 + +15.2.6 实战案例48:应对银行业危机的风险控制 + +15.3 本章总结 + +第16章 AI+量化交易的未来:DeepSeek API调用与AI智能体赋能 + +16.1 DeepSeek API调用 + +16.1.1 DeepSeek RESTful API接口 + +16.1.2 调用DeepSeek API接口的基本流程 + +16.1.3 实战案例49:调用DeepSeek API获取财经新闻简报 + +16.1.4 实战案例50:使用Tushare API+DeepSeek API分析股票数据简报 + +16.2 智能体在量化交易中的应用 + +16.2.1 智能体介绍简报 + +16.2.2 扣子智能体平台 + +16.3 实战案例51:实现“财经新闻快报”智能体 + +16.3.1 步骤1:创建智能体 + +16.3.2 步骤2:创建工作流 + +16.3.3 步骤3:添加节点 + +16.3.4 步骤4:试运行 + +16.3.5 步骤5:发布 + +16.3.6 步骤6:实时测试 + +16.4 智能体与量化交易现状和未来发展 + +16.4.1 当前状况 + +16.4.2 未来展望 + +16.5 本章总结 \ No newline at end of file diff --git a/doc_08_personal_investor_guide.md b/doc_08_personal_investor_guide.md index 6b19041..8ece1c4 100644 --- a/doc_08_personal_investor_guide.md +++ b/doc_08_personal_investor_guide.md @@ -3,7 +3,8 @@ > **定位**:本文档基于对整个 Demo 系列的代码审计和策略评估,为个人投资者回答三个核心问题——做什么策略、怎么做策略、用什么平台做。 > **前置阅读**:建议已通读完 7 篇 Demo 后阅读本文。 -> **目标读者**:有 Python 基础的量化入门者,关注 A 股实操。 +> **目标读者**:有 Python 基础的量化入门者,关注 A 股实操。 +> **附注**:文末附录 B 对比了市面上典型量化入门书(如《DeepSeek+Python 量化交易》)与本 Demo 系列的差异,帮读者理解"为什么有些书看起来厚但学不到东西"。 --- @@ -14,8 +15,13 @@ 3. [个人投资者的现实策略频谱](#3-个人投资者的现实策略频谱) 4. [中低频策略的核心范式](#4-中低频策略的核心范式) 5. [情绪因子与突发事件量化](#5-情绪因子与突发事件量化) + - 5.3 [LLM 辅助量化分析:两个务实场景](#53-llm-辅助量化分析两个务实场景) 6. [从 Demo 到实盘:平台与工具链](#6-从-demo-到实盘平台与工具链) + - 6.3 [真实数据接入](#63-真实数据接入合成数据的第一个暴击) + - 6.4 [风控层详解:Demo 系列最大的盲区](#64-风控层详解demo-系列最大的盲区) 7. [推荐学习与实践路径](#7-推荐学习与实践路径) +附录 A:[关键术语速查](#附录-a关键术语速查) +附录 B:[市面入门书 vs 本 Demo 系列](#附录-b市面入门书-vs-本-demo-系列以deepseekpython-量化交易为例) --- @@ -174,6 +180,64 @@ Demo 中用的价格/成交量/波动率都是"硬数据",但"软数据"在很 3. **文本情绪监控**:用大模型对财经新闻标题做情感分析,构建日频情绪指数。当前有大模型后门槛大幅降低——可以用本地模型批量打分。属于"另类数据因子"的范畴,初期可选。 +### 5.3 LLM 辅助量化分析:两个务实场景 + +现有 Demo 系列完全没有触及 LLM(大语言模型)在量化中的应用。这不是让你用 ChatGPT 预测股价——那是玄学。以下两个场景是 LLM 在量化中真正有实用价值的方向,也是市面 AI 量化书籍(如《DeepSeek+Python 量化交易》)中为数不多的值得关注的内容。 + +**场景一:非结构化信息 → 结构化情绪因子** + +传统量价因子(动量、波动率、流动性)是 Demo 4 的核心,但市场情绪信息大多藏在文本里——财经新闻、公告、研报、社交媒体。LLM 让个人投资者也能批量处理这类非结构化数据: + +``` +工作流: + 每日收盘后 + → 用 AKShare/Tushare 获取当日财经新闻标题列表 + → 批量送 LLM + prompt: "以下是一条财经新闻,请判断它对A股市场 + 的情绪影响:看多/中性/看空。只回复一个词。" + → 汇总当日 "看多率 − 看空率" 作为情绪因子原始值 + → 做滚动标准化(Z-score),得到日频情绪因子 +``` + +注意事项: +- 用本地模型(Ollama + Qwen/Llama 等 7B 级模型)可以零成本跑,速度足够覆盖日频 +- 情感分类只用标题即可(延迟低、成本低),全文分析留到需要深度解读的场景 +- 情绪因子的 IC 通常较低(0.02-0.04),但与传统量价因子相关性低,合成后能提升 ICIR +- 需要小心 Look-Ahead:如果你用 LLM 解读盘后新闻,信号只能在次日使用 + +**场景二:回测报告的自动解读** + +你跑完回测得到一串绩效数字(Sharpe 1.2, MaxDD -18%, Calmar 0.8...),这些数字真正意味着什么?LLM 可以做有价值的"翻译": + +``` +Prompt 示例: +"以下是一个ETF轮动策略的回测绩效: +- 夏普比率:1.15 +- 最大回撤:-22.3%,发生在 2022年3月 +- 月度胜率:58% +- 年化收益率:13.2% +- 换手率:月均 35% + +请分析: +1. 这些指标的整体评价 +2. 最大回撤发生在什么市场环境下(提示:2022年3月 A股处于什么阶段) +3. 这个策略最可能在什么市场环境下失效 +4. 实盘中需要额外关注的风险点" +``` + +这比你自己盯着一串数字琢磨半小时有效得多。关键是——LLM 不是替你决策,而是帮你更全面地**理解**你的策略在历史上的行为特征。 + +**LLM 在量化中的定位边界** + +| 能用 LLM 做的 | 不该用 LLM 做的 | +|--------------|----------------| +| 文本情感 → 因子值 | "帮我写一个稳赚的策略" | +| 回测报告解读 | 直接预测股价涨跌方向 | +| 代码辅助与调试 | 替代回测(LLM 不知道数据里的陷阱) | +| 参数优化建议(需结合回测验证) | 直接给调仓决策(你才是最终负责人) | + +> **一句话**:LLM 是研究助理,不是交易员。它可以帮你从文本中提取信号、帮你理解回测结果、帮你写代码——但最终的策略逻辑、风险控制和执行纪律,必须是你自己理解并负责的。 + --- ## 6. 从 Demo 到实盘:平台与工具链 @@ -242,6 +306,94 @@ Demo 代码在本地跑跑看图表是"研究阶段"。实盘涉及三个层次 | 8. 参数稳健性检验 | 对 top_k、回望期、再平衡频率做敏感性分析 | 建议 | | 9. 绩效归因 | Brinson 归因 / 因子归因,确认收益来源 | 进阶 | +以下对其中两项(数据接入 + 风控层)展开详细说明,因为它们是 Demo 到实盘跨度最大的两步,也是市面量化入门书(如《DeepSeek+Python 量化交易》)几乎不涉及的内容。 + +### 6.3 真实数据接入:合成数据的第一个"暴击" + +现有 Demo 全部使用合成数据(GBM / 因子模型生成),好处是零门槛运行,但切换到真实数据时会遇到以下几类合成数据没有的问题: + +**问题 1:停牌导致的日期错位** + +真实 A 股数据中,不同标的停牌日期不同。直接 `pd.concat` 多个标的的收盘价会得到参差不齐的日期索引。关键是只做 ffill(向前填充),**禁止 bfill**——bfill 会用"复牌后的未来价格"填补停牌前的 NaN,这是典型的 Look-Ahead Bias。 + +``` +正确做法: + price_panel = price_panel.ffill() # 只看向历史 + price_panel = price_panel.dropna(how='any') # 仍有 NaN 的行丢弃 +``` + +**问题 2:ETF 净值 vs 市价的差异** + +ETF 有两个价格——IOPV(实时估算净值)和市价。Demo 7 的轮动策略用收盘价回测是合理的,但实盘中 ETF 可能出现折溢价(市价显著偏离净值),这在极端行情下会影响实际成交价格。实盘代码应该用市价做信号计算和回测,但需要理解 ETF 的折溢价风险。 + +**问题 3:数据源的选择** + +| 数据源 | 优势 | 劣势 | +|--------|------|------| +| AKShare | 免费、覆盖面广、更新及时 | API 偶尔不稳定,部分接口可能变更 | +| Tushare Pro | 稳定、文档全、数据质量高 | 需要积分(部分接口收费) | +| Baostock | 免费、无需注册 | 更新慢、覆盖面有限 | +| 聚宽/米筐数据 | 清洗过、质量最高 | 绑定平台,本地使用受限 | + +推荐初次尝试用 AKShare(零成本),策略验证通过后切到 Tushare Pro(稳定性更好)。 + +### 6.4 风控层详解:Demo 系列最大的盲区 + +现有 7 篇 Demo 的风险管理几乎只有"最大回撤"这个**事后统计指标**。实盘中,风控必须是一个**事前和事中的执行层**——在亏损发生之前或初期就介入。以下三种风控手段是个人投资者最容易落地且效果最显著的。 + +**手段一:波动率缩放仓位(Volatility Targeting)** + +这是最简单、最有效、但对策略绩效改善最大的手段。核心思想:当市场最近很"颠簸"(波动率放大),自动减小仓位;当市场平稳,正常仓位。 + +``` +核心公式: + 目标仓位 = 基础仓位 × (目标波动率 / 近期已实现波动率) + +示例: + 基础仓位 = 100%(满仓) + 目标波动率 = 15%(年化,你愿意承受的风险水平) + 近期已实现波动率 = 30%(过去 20 日年化) → 仓位 = 100% × 15/30 = 50% + 近期已实现波动率 = 10% → 仓位 = 100% × 15/10 = 150%(需设上限) + +实现要点: + - 波动率窗口:20-60 个交易日,太短不稳定,太长反应慢 + - 仓位上下限:通常设 [30%, 150%] 或 [50%, 100%](不做杠杆) + - 更新频率:每日计算但每周调一次即可(避免过度交易) + - A 股限制:融资账户最高杠杆 1:1,普通账户无法做空 +``` + +这个手段的妙处在于:它不预测市场方向,只根据"当前有多危险"来调整暴露——是纯粹的防守动作,不会引入新的预测误差。 + +**手段二:硬止损(Hard Stop-Loss)** + +现有 Demo 的策略出场完全依赖信号(金叉进/死叉出),这在实盘中是不够的。信号可能迟迟不来,而你的亏损已经超出了可承受范围。 + +``` +简单止损规则: + - 单笔交易止损:持仓亏损超过 -X%(如 -8%或 -15%)→ 无条件平仓 + - 月度最大亏损:当月累计亏损超过 -Y% → 暂停交易,下月再评估 + - 连续亏损暂停:连续 Z 笔交易亏损 → 暂停,人工审查策略是否失效 + +参数建议(个人投资者): + - 趋势策略(如动量轮动): X=12-15%,Y=8-10%,Z=4 + - 均值回归策略(如 RSI): X=5-8%, Y=5-8%, Z=5 +``` + +**手段三:最大回撤熔断** + +这是一个组合层面的保护:如果账户从历史最高点回撤超过一定幅度,自动进入"防御模式"。 + +``` +实现逻辑: + if 当前回撤(从历史最高净值算起) < -25%: + 强制减仓至 30% + 暂停新开仓 + 发送告警 → "策略触发最大回撤熔断,净值从峰值回撤 xx%,已自动减仓" + # 回撤恢复到 -15% 以内再恢复交易 +``` + +这三种手段的组合使用,能把你从"策略失效了才发现"的被动状态,变成"有明确规则控制损失"的主动状态。Demo 系列没有覆盖这些,但它们在实盘中比多找到 0.1 的夏普更重要。 + --- ## 7. 推荐学习与实践路径 @@ -282,7 +434,7 @@ Demo 给你的是知识地图,不是提款机密码。实盘中最重要的是 --- -## 附录:关键术语速查 +## 附录 A:关键术语速查 | 术语 | 英文 | 含义 | |------|------|------| @@ -294,3 +446,58 @@ Demo 给你的是知识地图,不是提款机密码。实盘中最重要的是 | 前视偏差 | Look-Ahead Bias | 用"未来数据"做回测决策导致的虚假高收益 | | 幸存者偏差 | Survivorship Bias | 只用当前存活的股票回测,忽略了已退市的股票 | | 风格漂移 | Style Drift | 策略实际持仓偏离了其宣称的投资风格 | + +--- + +## 附录 B:市面入门书 vs 本 Demo 系列——以《DeepSeek+Python 量化交易》为例 + +市面上很多量化交易入门书看起来很厚(三四百页、几十个案例),但读完往往发现"好像学了很多,又好像什么都没学到"。这里以《DeepSeek+Python 量化交易》(16 章、51 个实战案例)作为典型标本,拆解为什么会有这种感觉,以及它和本 Demo 系列的真实差距。 + +### 全书结构 + +| 板块 | 章节 | 内容 | +|------|------|------| +| Python 基础 | 第 1-5 章 | Python 语法、NumPy/Pandas/Matplotlib、网页爬虫 + Tushare API | +| 策略入门 | 第 6-10 章 | 量化概念、DeepSeek 辅助分析(技术/基本面/消息)、双均线/RSI/海龟策略 | +| 进阶策略 | 第 11-13 章 | 高频交易(概念层)、套利策略、机器学习预测(分类/回归/LSTM) | +| 工程与风控 | 第 14-16 章 | Backtrader 回测、止损止盈/头寸管理/对冲、DeepSeek API + 智能体 | + +### 它的定位 + +一本**面向绝对零基础读者的量化交易科普 + DeepSeek 使用指南**。目标读者是"刚学会 Python 甚至还没学 Python 的人"。全书 51 个案例覆盖面极广,但每个案例的深度有限——典型模式是:"拉数据 → 套一个经典公式 → 画图 → 把结果扔给 DeepSeek 解读 → DeepSeek 给优化建议"。 + +### 它有价值的部分 + +书中真正值得关注的内容集中在三个 Demo 系列没有覆盖的方向: + +1. **真实数据接入(第 5 章)**:用 Tushare API 拉取 A 股真实数据的流程,虽然讲得浅,但方向对——这是 Demo 到实盘的第一道坎 +2. **风险管理工具(第 15 章)**:止损止盈、波动率头寸管理、对冲组合——这些是 Demo 系列最大盲区,详见本文 §6.4 +3. **LLM 辅助分析(第 7、16 章)**:用 LLM 处理非结构化信息(公告解读、新闻情绪、策略回测解读)——这是这本书唯一真正的差异化内容,详见本文 §5.3 + +### 它的问题 + +| 问题 | 说明 | +|------|------| +| 策略覆盖面过时 | 双均线 + RSI + 海龟是 1980-1990 年代的经典。现代量化核心——因子模型、截面选股、组合优化——完全没有涉及 | +| 高频章节名不副实 | 第 11 章名为"高频交易",实际是概念科普 + 一个比亚迪案例。真正的高频涉及 colocation/FPGA/市场微观结构,书中完全无法覆盖——这会误导读者以为"写个 Python 脚本就是高频交易" | +| 深度学习案例浮于表面 | LSTM 预测股价只用一个案例,无时间序列交叉验证、无样本外泛化讨论——容易让初学者产生"跑个模型就能预测股价"的危险错觉 | +| DeepSeek 角色被过度包装 | 书中几乎每个案例都以"DeepSeek 辅助优化"结尾。但 LLM 对量化策略的优化能力完全取决于 prompt 质量和用户自身的判断力——书中没有讨论这个根本局限 | +| 回测严谨性近乎为零 | 不涉及过拟合检测、前视偏差、幸存者偏差、参数敏感性——而本 Demo 系列的事件驱动回测和滚动前向验证专门解决了这些问题 | +| 无 A 股特有规则的系统讨论 | 涨跌停、T+1、融券限制、印花税——这些在本 Demo 系列的 `doc_06` 和 `doc_07` 中有专门覆盖,书中几乎没有 | + +### 两种学习路径的对比 + +| 维度 | 《DeepSeek+Python量化交易》 | 本 Demo 系列 | +|------|---------------------------|-------------| +| 目标读者 | 零基础(从 Python 安装开始) | 有 Python 基础,缺少量化方法论 | +| 学习方式 | 广度优先 — 51 个案例快速扫一遍 | 深度优先 — 5-7 个主题层层递进 | +| 策略类型 | 经典技术指标策略(均线/RSI/海龟) | 因子模型 + 截面选股 + 组合优化 | +| 回测方法论 | 仅 Backtrader 基本使用 | 向量化 → 事件驱动 → 前向验证,完整链条 | +| 学术严谨性 | 较低 — 不涉及 IC/ICIR/因子预处理 | 较高 — IC 分析、去极值/Z-score/中性化、Ledoit-Wolf | +| A 股实操 | 无系统讨论 | 实盘指南(doc_06)+ ETF 轮动策略(doc_07) | +| AI 角色 | DeepSeek 贯穿全书,定位为"策略顾问" | 无 AI 依赖,本文 §5.3 补充了 LLM 的务实用法 | +| 代码复杂度 | 简单脚本级别 | 类 + 函数封装,模拟生产级结构 | + +### 一句话总结 + +这本书能让你从"完全不会 Python"跑到"能跑通第一个策略脚本",但从"跑通脚本"到"独立做量化交易"所需的系统知识——因子研究、稳健回测、组合构建、风险控制、A 股实盘陷阱——它几乎没有涉及。而这些东西恰好是本 Demo 系列所覆盖的。两套内容存在一定的互补性:**用那本书学会 Python 基础,用这套 Demo 学会量化方法论。**