从零搭建一个可以炒股的自主 AI Agent Harness Engineering(含风险警示)
!!金融市场(尤其是股票、期货等高杠杆/高波动市场)存在极高的系统性风险、非系统性风险、操作风险、技术风险和政策风险。即使是华尔街顶级量化交易团队、拥有超算资源和千亿数据训练的AI模型,也,更。自主开发的“炒股AI Agent”在合规性、鲁棒性、风控能力、交易成本控制等方面与专业机构相比有本文将严格以“技术研究与教学演示”为唯一目的,所有内容、代码、模型、数据均为下的示例,!!!
从零搭建一个可以炒股的自主 AI Agent Harness Engineering(含风险警示)
🚨【开篇前置:最强风险警示,必读!!!】
各位读者朋友,在正式进入技术内容之前,请务必牢记:本文仅用于技术研究与教学演示,绝对不构成任何投资建议、交易指导或财务规划参考!!!
金融市场(尤其是股票、期货等高杠杆/高波动市场)存在极高的系统性风险、非系统性风险、操作风险、技术风险和政策风险。即使是华尔街顶级量化交易团队、拥有超算资源和千亿数据训练的AI模型,也无法保证稳定盈利,更无法规避黑天鹅事件导致的本金全部损失。
自主开发的“炒股AI Agent”在合规性、鲁棒性、风控能力、交易成本控制等方面与专业机构相比有天壤之别:
- 合规红线:在中国,未取得中国证监会、证券业协会等监管机构颁发的相关资质(如证券投资咨询业务资格、基金管理资格、量化交易系统接入许可等),以盈利为目的向他人提供投资建议、代理他人交易或利用自有/他人资金进行高频/程序化交易,均可能违反《证券法》《证券投资基金法》《刑法修正案(十一)》等法律法规,面临罚款、没收违法所得、市场禁入甚至刑事处罚!!!
- 技术风险:自主开发的系统可能存在代码漏洞、网络延迟、API限流、交易所API变更、数据错误、下单延迟/重复/撤销失败等问题,任何一个小故障都可能导致巨大亏损;
- 风控缺失:专业机构有严格的VaR(风险价值)、CVaR(条件风险价值)、最大回撤、头寸集中度、杠杆率、止损止盈、异常交易监控等多层级风控体系,自主开发的系统通常只能实现简单的止损止盈,无法应对复杂的市场波动;
- 过拟合陷阱:AI模型极易在历史数据上“过拟合”——看似回测结果惊人,但实盘表现往往一塌糊涂;
- 交易成本吞噬利润:自主交易通常无法享受专业机构的佣金优惠、融券费率优惠、手续费返还等政策,印花税、过户费、佣金、融资融券利息等交易成本可能完全吞噬甚至超过你的“预期利润”;
- 心理与情绪压力:即使你把交易交给AI,市场波动带来的账户资金变化也会给你带来巨大的心理压力,进而忍不住干预AI的决策,导致策略失效。
本文将严格以“技术研究与教学演示”为唯一目的,所有内容、代码、模型、数据均为模拟环境下的示例,绝对不能用于实盘交易!!!
0. 目标读者与前置知识
0.1 目标读者
- 具备3年以上Python全栈开发经验,熟悉Django/FastAPI等Web框架、SQLAlchemy/peewee等ORM框架、Redis/PostgreSQL等数据库;
- 对机器学习(ML)、深度学习(DL)、强化学习(RL)有基础了解,熟悉Pandas、NumPy、Scikit-learn、TensorFlow/PyTorch等库;
- 对金融市场有基本认知(知道什么是股票、K线、成交量、MACD、RSI等技术指标,了解什么是回测);
- 对Agent架构有基础了解(知道什么是Agent、LLM、工具调用、记忆、规划)。
0.2 前置知识(建议先补充)
- Python 3.10+语法与生态;
- FastAPI快速入门(本文后端将使用FastAPI);
- LangChain/LlamaIndex的基础使用(本文Agent框架将使用LangChain);
- Backtrader/VectorBT的基础使用(本文回测框架将使用VectorBT Pro的开源替代版VectorBT Lite?不,VectorBT Lite是免费的,但本文会自己写一个极简回测引擎,方便读者理解原理);
- 金融技术指标的计算原理(Pandas-TA库的基础使用);
- 证券API的基础使用(本文将使用模拟环境的API,不会对接真实券商)。
1. 核心概念与问题背景
1.1 核心概念
1.1.1 AI Agent(人工智能代理)
AI Agent是一种能够感知环境、做出决策、执行动作、根据反馈学习改进的自主实体。通俗来说,AI Agent就像一个“虚拟员工”,你给它一个目标(比如“在模拟A股市场中,以最小风险获得年化15%的收益率”),它会自己调用各种工具(比如获取实时行情、计算技术指标、查询新闻资讯、分析财报、生成交易信号、执行模拟交易)来完成目标。
根据Agent的决策逻辑,可以将其分为:
- 规则型Agent:完全基于人工编写的规则进行决策(比如“当MACD金叉且RSI<30时买入,当MACD死叉且RSI>70时卖出”);
- 机器学习型Agent:基于历史数据训练的ML/DL模型进行决策(比如训练一个LSTM模型预测未来5天的股价涨跌);
- 强化学习型Agent:通过与环境交互(试错)获得奖励(比如盈利、控制回撤),进而学习最优决策策略(比如DQN、PPO、SAC等算法);
- LLM增强型Agent:结合大语言模型(LLM)的推理能力、知识理解能力和自然语言交互能力,实现更复杂的决策(比如本文要搭建的Agent,就是LLM增强型Agent)。
1.1.2 Harness Engineering( harness 工程化)
Harness Engineering( harness 可译为“ harness 框架”“ harness 平台”或“ harness 工程化套件”)是近年来随着AI Agent的兴起而出现的一个新概念。通俗来说,Harness Engineering就是为AI Agent提供一套标准化的、可复用的、可扩展的工程化框架和工具链,帮助开发者快速搭建、测试、部署、监控、迭代AI Agent。
一个完整的AI Agent Harness Engineering框架通常包含以下核心组件:
- Agent Core(代理核心):负责Agent的感知、决策、规划、执行逻辑;
- Tool Registry(工具注册表):负责管理Agent可以调用的各种工具(比如金融数据工具、技术分析工具、新闻分析工具、交易执行工具等);
- Memory System(记忆系统):负责存储Agent的感知数据、决策历史、执行结果、学习经验等,分为短期记忆(Short-Term Memory,STM)和长期记忆(Long-Term Memory,LTM);
- Planning System(规划系统):负责将复杂的目标分解为可执行的子任务(比如“完成模拟A股2024年上半年的回测”可以分解为“获取2024年上半年的A股行情数据”“清洗数据”“计算技术指标”“训练/选择策略”“执行回测”“分析回测结果”“生成回测报告”等子任务);
- Evaluation System(评估系统):负责评估Agent的性能(比如年化收益率、最大回撤、夏普比率、卡尔马比率、胜率、盈亏比等);
- Monitoring System(监控系统):负责监控Agent的运行状态、决策过程、执行结果、风险指标等;
- Deployment System(部署系统):负责将Agent部署到生产环境(模拟环境或合规的实盘环境);
- Iteration System(迭代系统):负责根据评估结果和反馈数据迭代优化Agent的策略、模型、工具等。
1.1.3 模拟金融环境
模拟金融环境是指完全模拟真实金融市场的运行规则,但不使用真实资金的环境。模拟金融环境通常包含以下功能:
- 提供历史行情数据和实时(延迟)行情数据;
- 提供模拟账户和资金管理功能;
- 提供模拟下单、撤单、成交查询功能;
- 提供交易成本计算功能(印花税、过户费、佣金等);
- 提供回测功能。
本文将使用自己编写的一个极简模拟A股环境,方便读者理解原理。
1.1.4 量化交易与回测
量化交易是指使用数学模型、统计方法、计算机程序来制定和执行交易策略的交易方式。回测是指将量化交易策略应用到历史行情数据上,模拟策略的运行过程,评估策略的性能的过程。回测是量化交易中最重要的环节之一,它可以帮助开发者验证策略的有效性,避免实盘交易中的盲目性。
1.2 问题背景
1.2.1 传统量化交易的痛点
传统量化交易通常存在以下痛点:
- 策略开发门槛高:需要开发者具备深厚的金融知识、数学知识、统计学知识和编程知识;
- 策略迭代周期长:从策略构思到回测验证,再到实盘部署,通常需要数周甚至数月的时间;
- 策略适应性差:传统量化交易策略通常是基于历史数据训练的,很难适应市场的变化(比如黑天鹅事件、政策变化、市场风格切换等);
- 无法处理非结构化数据:传统量化交易策略通常只能处理结构化数据(比如K线数据、成交量数据、财务数据等),很难处理非结构化数据(比如新闻资讯、研报、社交媒体数据等);
- 缺乏自然语言交互能力:传统量化交易系统通常只能通过代码或API进行交互,很难通过自然语言进行交互(比如“帮我分析一下贵州茅台最近的走势”“帮我生成一个适合当前市场的低风险交易策略”)。
1.2.2 LLM增强型AI Agent的优势
LLM增强型AI Agent可以很好地解决传统量化交易的痛点:
- 降低策略开发门槛:开发者可以通过自然语言与Agent交互,快速构思、验证、迭代策略,不需要具备深厚的金融知识、数学知识和统计学知识(当然,具备这些知识会更好);
- 缩短策略迭代周期:Agent可以自动完成数据获取、数据清洗、技术指标计算、策略生成、回测验证、结果分析等任务,大大缩短了策略迭代周期;
- 提高策略适应性:LLM具备强大的推理能力和知识理解能力,可以实时分析市场的变化(比如新闻资讯、研报、政策变化等),并及时调整策略;
- 处理非结构化数据:LLM可以处理非结构化数据(比如新闻资讯、研报、社交媒体数据等),并从中提取有用的信息(比如利好/利空消息、市场情绪等);
- 自然语言交互能力:用户可以通过自然语言与Agent交互,比如“帮我分析一下贵州茅台最近的走势”“帮我生成一个适合当前市场的低风险交易策略”“帮我调整一下止损止盈点位”。
1.2.3 Harness Engineering的必要性
虽然LLM增强型AI Agent有很多优势,但要搭建一个可用的、可扩展的、可维护的AI Agent,仍然需要解决很多工程化问题:
- 如何标准化Agent的架构?
- 如何管理Agent可以调用的各种工具?
- 如何存储Agent的感知数据、决策历史、执行结果、学习经验等?
- 如何将复杂的目标分解为可执行的子任务?
- 如何评估Agent的性能?
- 如何监控Agent的运行状态、决策过程、执行结果、风险指标等?
- 如何部署Agent到生产环境?
- 如何迭代优化Agent的策略、模型、工具等?
Harness Engineering就是为了解决这些工程化问题而出现的。
1.3 问题描述
本文要解决的问题是:从零搭建一个LLM增强型的自主炒股AI Agent Harness Engineering框架,并在模拟A股环境中进行测试和演示。
具体来说,本文要实现以下功能:
- 极简模拟A股环境:提供历史行情数据(使用Yahoo Finance的免费历史数据)、实时(延迟)行情数据(使用Yahoo Finance的免费延迟数据)、模拟账户和资金管理功能、模拟下单/撤单/成交查询功能、交易成本计算功能、极简回测功能;
- Agent Core:基于LangChain的Agent框架,实现感知、决策、规划、执行逻辑;
- Tool Registry:管理Agent可以调用的各种工具,包括:
- 金融数据工具(获取股票列表、获取历史行情数据、获取实时(延迟)行情数据、获取财务数据(使用Yahoo Finance的免费财务数据));
- 技术分析工具(计算技术指标,使用Pandas-TA库);
- 新闻分析工具(获取股票相关新闻(使用NewsAPI的免费API,需要注册账号)、分析新闻情绪(使用Hugging Face的免费预训练模型));
- 交易执行工具(模拟下单、模拟撤单、查询模拟账户、查询模拟持仓、查询模拟成交记录);
- 回测工具(执行极简回测、分析回测结果、生成回测报告);
- Memory System:基于Redis实现短期记忆,基于PostgreSQL实现长期记忆;
- Planning System:基于LangChain的Plan-and-Execute Agent框架,实现目标分解;
- Evaluation System:实现常用的量化交易性能评估指标(年化收益率、最大回撤、夏普比率、卡尔马比率、胜率、盈亏比等);
- Monitoring System:基于Prometheus和Grafana实现Agent的运行状态、决策过程、执行结果、风险指标等的监控;
- Web UI:基于React和FastAPI实现一个简单的Web UI,方便用户与Agent交互、查看模拟账户、查看模拟持仓、查看模拟成交记录、查看回测报告、查看监控数据。
1.4 问题解决思路
本文的问题解决思路如下:
- 环境搭建:搭建开发环境,包括Python 3.10+、FastAPI、LangChain、Pandas、NumPy、Pandas-TA、Yahoo Finance API(yfinance库)、NewsAPI、Hugging Face Transformers、Redis、PostgreSQL、Prometheus、Grafana、React等;
- 极简模拟A股环境实现:实现历史行情数据获取、实时(延迟)行情数据获取、模拟账户和资金管理、模拟下单/撤单/成交查询、交易成本计算、极简回测等功能;
- Tool Registry实现:将各种工具封装成LangChain的Tool,并注册到Tool Registry中;
- Memory System实现:基于Redis实现短期记忆,基于PostgreSQL实现长期记忆;
- Planning System实现:基于LangChain的Plan-and-Execute Agent框架实现目标分解;
- Agent Core实现:基于LangChain的Agent框架实现感知、决策、规划、执行逻辑;
- Evaluation System实现:实现常用的量化交易性能评估指标;
- Monitoring System实现:基于Prometheus和Grafana实现监控;
- Web UI实现:基于React和FastAPI实现Web UI;
- 系统测试与演示:在模拟A股环境中测试和演示系统的功能;
- 最佳实践总结:总结搭建AI Agent Harness Engineering框架的最佳实践;
- 行业发展与未来趋势:分析AI Agent在金融领域的发展历史、现状和未来趋势;
- 风险警示再次强调:再次强调本文仅用于技术研究与教学演示,绝对不能用于实盘交易。
2. 概念结构与核心要素组成
2.1 整体概念结构
本文要搭建的AI Agent Harness Engineering框架的整体概念结构如下图所示:
2.2 核心要素组成
2.2.1 用户交互层核心要素
| 核心要素 | 功能描述 | 技术选型 |
|---|---|---|
| Web UI | 提供可视化的用户交互界面,方便用户与Agent交互、查看模拟账户、查看模拟持仓、查看模拟成交记录、查看回测报告、查看监控数据 | React 18 + TypeScript + Ant Design 5 |
| 命令行界面(CLI) | 提供命令行交互界面,方便开发者测试和调试系统 | Click 8 |
| RESTful API | 提供标准化的API接口,连接用户交互层和Agent Harness核心层 | FastAPI 0.110 + Pydantic 2 |
2.2.2 Agent Harness核心层核心要素
| 核心要素 | 功能描述 | 技术选型 |
|---|---|---|
| Agent Core | 负责Agent的感知、决策、规划、执行逻辑,是整个框架的核心 | LangChain 0.1 + LangChain OpenAI 0.1 + LangChain Community 0.1 |
| Tool Registry | 负责管理Agent可以调用的各种工具,支持工具的注册、注销、查询、调用 | 自定义实现(基于LangChain的BaseTool和Toolkit) |
| Memory System | 负责存储Agent的感知数据、决策历史、执行结果、学习经验等,分为短期记忆和长期记忆 | 短期记忆:Redis 7 + LangChain Redis Memory;长期记忆:PostgreSQL 16 + SQLAlchemy 2 + LangChain Postgres Chat Message History |
| Planning System | 负责将复杂的目标分解为可执行的子任务,并协调子任务的执行 | LangChain Plan-and-Execute Agent框架 |
| Evaluation System | 负责评估Agent的性能,实现常用的量化交易性能评估指标 | 自定义实现(基于Pandas和NumPy) |
2.2.3 工具与服务层核心要素
| 核心要素 | 功能描述 | 技术选型 |
|---|---|---|
| 金融数据工具 | 提供股票列表获取、历史行情数据获取、实时(延迟)行情数据获取、财务数据获取等功能 | yfinance 0.2 |
| 技术分析工具 | 提供常用技术指标的计算功能 | Pandas-TA 0.3 |
| 新闻分析工具 | 提供股票相关新闻获取、新闻情绪分析等功能 | NewsAPI Python Client 2.0 + Hugging Face Transformers 4.40 + PyTorch 2.2 |
| 交易执行工具 | 提供模拟下单、模拟撤单、查询模拟账户、查询模拟持仓、查询模拟成交记录等功能 | 自定义实现(模拟A股环境) |
| 回测工具 | 提供极简回测功能,包括策略执行、交易记录生成、性能评估、回测报告生成等功能 | 自定义实现(基于模拟A股环境) |
| 数据库服务 | 负责存储长期记忆数据、模拟账户数据、模拟持仓数据、模拟成交记录数据、回测报告数据等 | PostgreSQL 16 |
| 缓存服务 | 负责存储短期记忆数据、实时(延迟)行情数据、技术指标数据等,提高系统的响应速度 | Redis 7 |
| 监控服务 | 负责监控Agent的运行状态、决策过程、执行结果、风险指标等,并提供可视化的监控界面 | Prometheus 2.50 + Grafana 11 |
2.2.4 外部数据源层核心要素
| 核心要素 | 功能描述 | 访问限制 |
|---|---|---|
| Yahoo Finance | 提供免费的历史行情数据、实时(延迟)行情数据、财务数据等 | 有访问频率限制,建议使用缓存 |
| NewsAPI | 提供免费的新闻数据(需要注册账号) | 免费版每天最多获取100篇新闻,有访问频率限制 |
| Hugging Face | 提供免费的预训练模型(包括新闻情绪分析模型) | 部分模型有商业使用限制,建议使用开源协议宽松的模型(比如DistilBERT-base-uncased-finetuned-sst-2-english) |
3. 概念之间的关系
3.1 概念核心属性维度对比
为了更好地理解本文涉及的核心概念之间的差异,我们从决策逻辑、知识来源、适应性、可解释性、开发门槛、应用场景等维度进行对比:
| 概念 | 决策逻辑 | 知识来源 | 适应性 | 可解释性 | 开发门槛 | 应用场景 |
|---|---|---|---|---|---|---|
| 规则型Agent | 完全基于人工编写的规则 | 人工编写的规则 | 差(只能适应规则覆盖的场景) | 强(决策逻辑完全透明) | 中(需要具备金融知识和编程知识) | 简单的、规则明确的场景(比如固定收益类产品的交易) |
| 机器学习型Agent | 基于历史数据训练的ML/DL模型 | 历史数据 | 中(可以适应训练数据覆盖的场景,但很难适应训练数据未覆盖的场景) | 弱(尤其是深度学习模型,决策逻辑很难解释) | 高(需要具备金融知识、数学知识、统计学知识和编程知识) | 结构化数据处理场景(比如股价涨跌预测) |
| 强化学习型Agent | 通过与环境交互(试错)获得奖励,进而学习最优决策策略 | 历史数据 + 环境交互反馈 | 强(可以适应环境的变化) | 弱(决策逻辑很难解释) | 很高(需要具备金融知识、数学知识、统计学知识、强化学习知识和编程知识) | 复杂的、动态的场景(比如高频交易) |
| LLM增强型Agent | 结合LLM的推理能力、知识理解能力和自然语言交互能力,以及规则/ML/RL模型的决策能力 | 人工编写的规则 + 历史数据 + 环境交互反馈 + LLM的预训练知识 | 很强(可以适应各种复杂的场景,包括非结构化数据处理场景) | 中(LLM的推理过程可以通过Prompt Engineering和Chain-of-Thought(CoT)技术进行解释,但规则/ML/RL模型的决策逻辑仍然很难解释) | 低中(可以通过自然语言交互降低开发门槛,但要搭建一个可用的系统仍然需要具备编程知识) | 各种复杂的金融场景(比如投资顾问、策略生成、风险控制、回测分析等) |
| AI Agent Harness Engineering | 不是一种Agent类型,而是一套为AI Agent提供工程化支持的框架和工具链 | - | - | - | 中高(需要具备编程知识和Agent架构知识) | 各种AI Agent的开发、测试、部署、监控、迭代 |
3.2 概念联系的ER实体关系图
为了更好地理解本文涉及的核心概念之间的联系,我们使用ER实体关系图进行描述:
3.3 概念交互关系图
为了更好地理解本文涉及的核心概念之间的交互关系,我们使用交互关系图进行描述:
4. 数学模型和公式
4.1 量化交易性能评估指标
量化交易性能评估指标是评估量化交易策略(或AI Agent)性能的重要依据。本文将实现以下常用的量化交易性能评估指标:
4.1.1 总盈亏(Total Profit/Loss, TPL)
总盈亏是指策略在回测期间或实盘交易期间的总盈利或总亏损,计算公式如下:
TPL=Vfinal−Vinitial TPL = V_{final} - V_{initial} TPL=Vfinal−Vinitial
其中,VinitialV_{initial}Vinitial是初始资金,VfinalV_{final}Vfinal是期末资金(或当前总资产)。
4.1.2 总盈亏率(Total Profit/Loss Rate, TPLR)
总盈亏率是指策略在回测期间或实盘交易期间的总盈亏与初始资金的比值,计算公式如下:
TPLR=Vfinal−VinitialVinitial×100% TPLR = \frac{V_{final} - V_{initial}}{V_{initial}} \times 100\% TPLR=VinitialVfinal−Vinitial×100%
4.1.3 年化收益率(Annual Return, AR)
年化收益率是指策略在回测期间或实盘交易期间的收益率换算成年化后的收益率,计算公式如下:
假设回测期间或实盘交易期间的天数为TTT,则年化收益率的计算公式为:
AR=(VfinalVinitial)365T−1 AR = \left( \frac{V_{final}}{V_{initial}} \right)^{\frac{365}{T}} - 1 AR=(VinitialVfinal)T365−1
如果回测期间或实盘交易期间的交易日数为TtradeT_{trade}Ttrade(中国A股市场每年的交易日数约为250天),则年化收益率的计算公式也可以为:
AR=(VfinalVinitial)250Ttrade−1 AR = \left( \frac{V_{final}}{V_{initial}} \right)^{\frac{250}{T_{trade}}} - 1 AR=(VinitialVfinal)Ttrade250−1
本文将使用交易日数计算年化收益率。
4.1.4 日收益率(Daily Return, DR)
日收益率是指策略在每个交易日的收益率,计算公式如下:
假设第ttt个交易日的期末总资产为VtV_tVt,第t−1t-1t−1个交易日的期末总资产为Vt−1V_{t-1}Vt−1,则第ttt个交易日的日收益率为:
DRt=Vt−Vt−1Vt−1 DR_t = \frac{V_t - V_{t-1}}{V_{t-1}} DRt=Vt−1Vt−Vt−1
4.1.5 平均日收益率(Mean Daily Return, MDR)
平均日收益率是指策略在回测期间或实盘交易期间的所有日收益率的算术平均值,计算公式如下:
MDR=1Ttrade∑t=1TtradeDRt MDR = \frac{1}{T_{trade}} \sum_{t=1}^{T_{trade}} DR_t MDR=Ttrade1t=1∑TtradeDRt
4.1.6 日收益率标准差(Standard Deviation of Daily Return, SDR)
日收益率标准差是指策略在回测期间或实盘交易期间的所有日收益率的标准差,用于衡量策略的波动率(风险),计算公式如下:
SDR=1Ttrade−1∑t=1Ttrade(DRt−MDR)2 SDR = \sqrt{\frac{1}{T_{trade} - 1} \sum_{t=1}^{T_{trade}} (DR_t - MDR)^2} SDR=Ttrade−11t=1∑Ttrade(DRt−MDR)2
4.1.7 年化波动率(Annual Volatility, AV)
年化波动率是指策略在回测期间或实盘交易期间的日收益率标准差换算成年化后的波动率,计算公式如下:
AV=SDR×250 AV = SDR \times \sqrt{250} AV=SDR×250
4.1.8 最大回撤(Maximum Drawdown, MDD)
最大回撤是指策略在回测期间或实盘交易期间的最大资产净值跌幅,用于衡量策略的最大潜在亏损,计算公式如下:
首先,计算每个交易日的资产净值峰值PtP_tPt:
Pt=max0≤i≤tVi P_t = \max_{0 \leq i \leq t} V_i Pt=0≤i≤tmaxVi
然后,计算每个交易日的回撤DtD_tDt:
Dt=Pt−VtPt×100% D_t = \frac{P_t - V_t}{P_t} \times 100\% Dt=PtPt−Vt×100%
最后,最大回撤MDDMDDMDD就是所有回撤中的最大值:
MDD=max1≤t≤TtradeDt MDD = \max_{1 \leq t \leq T_{trade}} D_t MDD=1≤t≤TtrademaxDt
4.1.9 夏普比率(Sharpe Ratio, SR)
夏普比率是指策略在回测期间或实盘交易期间的超额收益率(年化收益率减去无风险利率)与年化波动率的比值,用于衡量策略的风险调整后收益,计算公式如下:
SR=AR−RfAV SR = \frac{AR - R_f}{AV} SR=AVAR−Rf
其中,RfR_fRf是无风险利率(本文将使用中国10年期国债收益率的平均值,约为3%)。
夏普比率越高,说明策略的风险调整后收益越好。一般来说,夏普比率大于1表示策略的风险调整后收益较好,大于2表示策略的风险调整后收益很好,大于3表示策略的风险调整后收益非常好。
4.1.10 索提诺比率(Sortino Ratio, SoR)
索提诺比率是夏普比率的改进版,它只考虑下行波动率(负日收益率的标准差),而不是全部波动率,计算公式如下:
首先,计算下行日收益率DRt−DR_t^-DRt−:
$$
DR_t^- = \begin{cases}
DR_t, & \text{if } DR_t < 0 \
更多推荐




所有评论(0)