在开始之前,请确保您的系统已安装以下软件:
- Python: 版本 3.10 或更高。
- Node.js: 版本 18.x 或 LTS 版本。
- npm: 通常随 Node.js 一同安装。npm 用于管理前端项目的依赖。
为了运行本项目,建议遵循以下步骤设置环境并安装依赖:
git clone https://github.com/keyboard3/trading.git
cd trading
虚拟环境有助于隔离项目依赖,避免与系统全局Python环境或其他项目冲突。
使用 Python 3 自带的 venv
模块:
# 在项目根目录运行
python3 -m venv venv
激活虚拟环境:
- macOS / Linux:
source venv/bin/activate
- Windows (Git Bash 或其他类似shell):
source venv/Scripts/activate
- Windows (Command Prompt):
venv\Scripts\activate.bat
激活后,你的终端提示符前通常会显示 (venv)
。
推荐使用 Makefile 安装后端依赖:
本项目提供了一个 Makefile
来简化常见操作。在激活虚拟环境后,请使用以下命令安装所有后端 Python 依赖:
make install-deps
或者,手动安装后端依赖 (Alternative, manual installation):
如果希望手动安装,项目所需的后端 Python 库记录在 requirements.txt
文件中。在激活虚拟环境后,运行:
pip install -r requirements.txt
本项目包含两种主要的运行模式:通过 main.py
直接执行批处理回测/参数优化,以及通过 FastAPI 后端 API 服务进行交互式回测。
使用 Makefile (推荐):
Makefile
提供了便捷的命令来启动服务和运行脚本。请确保您已按照上述步骤激活了虚拟环境。
- 查看所有可用命令:
make help
- 启动 FastAPI 后端 API 服务:
服务通常会运行在
make run-api
http://0.0.0.0:8089
。您可以通过浏览器访问http://localhost:8089/docs
来查看和交互API文档。 - 启动前端开发服务器:
前端 React 应用位于
frontend/
目录。Vite 开发服务器通常会运行在# 确保您在项目根目录 cd frontend npm install # 首次运行或依赖更新后执行 npm run dev cd .. # 返回项目根目录 (可选,根据您的操作习惯)
http://localhost:5173
(或自动选择的下一个可用端口) 并可能自动在浏览器中打开页面。 重要提示: 请确保在启动前端服务前,后端API服务 (例如通过make run-api
) 已经成功运行,否则前端将无法获取数据或执行回测。 - 运行
main.py
(批处理回测/参数优化):make run-backtest-main
- 获取最新市场数据:
make fetch-data
- 从CSV初始化/加载数据到数据库:
make init-db-load-csv
直接运行脚本 (传统方式):
- 运行主程序 (
main.py
):这将使用python3 main.py
main.py
中配置的参数执行回测或参数优化。 - 直接运行 FastAPI 服务 (不推荐用于日常开发,
make run-api
更好):# 确保在项目根目录执行 uvicorn backend.main_api:app --reload --host 0.0.0.0 --port 8089
当你完成工作后,可以停用虚拟环境:
deactivate
本项目旨在创建一个个性化的量化交易程序,方便验证各种交易策略并评估其收益。项目将通过网页UI的形式呈现策略回测效果和相关数据分析。
为了逐步熟悉量化交易领域并有序地构建系统,本项目将采用分阶段迭代的开发方式。
-
总目标: 初步建立对**量化回测(Quantitative Backtesting)**的核心认知。理解回测是在严格的历史市场数据上,对一个明确的、可程序化的交易思想(即"策略")进行模拟交易,并以客观数据评估其潜在表现的过程。本阶段旨在搭建一个最基础的沙盒环境,体验从数据准备、策略定义到结果解读的完整流程。
-
总体状态:
✅ 已完成
-
核心金融概念与能力构建:
✅
1. 理解金融市场数据:- 金融关注点: 学习识别和处理最基础的金融市场时间序列数据,特别是OHLCV数据(开盘价、最高价、最低价、收盘价、成交量),理解这些数据如何共同描绘了资产在特定时间段内的价格行为。
- 系统实现: 构建了能从简单数据源(如CSV文件)加载并初步处理这些结构化金融数据的基础模块。
✅
2. 将交易思想规则化与程序化:- 金融关注点: 体验如何将一个主观的或基于图表观察的简单交易想法(例如,"当短期均线上穿长期均线时买入")转化为一组精确的、无歧义的、可由计算机执行的交易规则。
- 系统实现: 实现了一个基础的交易策略逻辑(以双均线交叉策略为例),该逻辑能根据输入的市场数据自动生成买入、卖出或持有的交易信号。
✅
3. 模拟历史交易与资产演变:- 金融关注点: 理解回测引擎如何逐个历史时间点(如每日或每分钟)地"重演"市场,并根据策略信号模拟执行买卖操作。观察在这个过程中,虚拟的投资组合(包含现金和持有的资产)是如何变化的,特别是其**资产净值(Portfolio Value)**如何随模拟交易而波动。
- 系统实现: 搭建了核心的回测循环,能够处理交易信号,更新投资组合状态(如现金余额、持仓数量和成本),并计算每日的资产净值。
✅
4. 初步量化评估策略表现:- 金融关注点: 学习如何从一系列模拟交易中提炼出一些基础的**绩效指标(Performance Metrics)**来评价策略的好坏,例如总收益率、最大亏损幅度(最大回撤)。同时,学习使用可视化工具(如净值曲线图)来直观感受策略在整个回测期内的表现和风险特征。
- 系统实现: 开发了能够计算并输出基本回测报告(包含关键绩效指标)和绘制资产净值变化图表的功能。
✅
5. 端到端流程的建立:- 金融关注点: 体验并理解一个最简化的量化策略研究与验证流程:从获取历史数据,到定义交易规则,再到模拟执行并初步评估其历史表现。
- 系统实现: 将上述数据处理、策略逻辑、回测模拟和结果分析模块整合,形成一个可完整运行的初步回测程序。
-
学习重点:
- 回测的核心价值: 理解为什么历史回测是量化策略开发不可或缺的第一步,它是如何帮助我们以相对科学和系统的方式检验交易思想的。
- 金融数据的基本认知: 熟悉常见的金融市场数据类型(尤其是OHLCV)及其在策略分析中的作用。
- 策略的量化思维: 初步培养将定性的交易想法转化为精确的、可执行的规则的能力。
- 基础绩效度量: 了解并会解读一些最核心的策略表现评价指标,如总回报、最大回撤等。
- 可视化分析的初步应用: 学会利用图表(如净值曲线)来辅助判断策略的历史表现稳定性与风险。
-
成果示例: 运行
python3 main.py
后,程序将输出回测结果。核心成果包括:-
性能报告 (摘要): 程序会生成一份详细的性能报告并打印到控制台,同时保存在
docs/log/phase1_performance_report.txt
。以下是报告中指标部分的示例内容:--- 回测性能报告 --- 总收益率 (%): 1.00 年化收益率 (%): N/A (期限小于一年或未知) 最大回撤 (%): -0.49 夏普比率 (年化): N/A 总交易次数: 2 买入次数: 1 卖出次数: 1 胜率 (%): N/A (需交易配对) 平均盈利 ($): N/A (需交易配对) 平均亏损 ($): N/A (需交易配对)
(注:以上数值为基于
data/sample_stock_data.csv
和默认参数 (短期MA=2, 长期MA=3) 在特定执行下的一个示例,实际数值会根据数据和参数变化。完整的报告(包含交易日志)请查看docs/log/phase1_performance_report.txt
文件。)
-
-
总目标: 在初步回测的基础上,通过引入更系统化的数据管理方法、探索更多样化的交易策略逻辑,并开始考虑交易成本与参数敏感性等现实因素,从而提升量化策略研究的深度和结果的可靠性。
-
总体状态:
[✅ 已完成]
-
核心金融概念与能力构建:
✅
1. 建立结构化的金融历史数据库:- 金融关注点: 认识到对于持续的、可重复的量化研究而言,拥有一个本地的、结构良好、易于查询的历史金融数据库至关重要。这能确保数据的一致性、提高数据提取效率,并为更复杂的分析奠定基础。
- 系统实现: 集成了轻量级数据库(如SQLite),设计了用于存储OHLCV等市场数据的数据表结构,并实现了从数据库高效读取数据以及将外部数据(如CSV)批量导入数据库的功能。
✅
2. 主动获取与管理金融数据:- 金融关注点: 从依赖手动提供数据,转向能够主动从外部数据源(如公开财经API)获取所需的历史市场数据。理解数据获取的及时性、准确性和覆盖度对策略研究的影响。
- 系统实现: 开发了可以从指定数据源(如Yahoo Finance)下载特定金融产品(如股票)在特定时间范围内的历史行情数据,并将其自动化地存入本地数据库的模块。
✅
3. 扩展交易策略库并理解参数化:- 金融关注点: 探索超越简单趋势跟踪的、更多类型的交易思想,例如基于振荡器指标(如RSI相对强弱指数)的策略,这类策略通常用于识别市场的超买超卖状态或潜在的转折点。更重要的是,理解策略参数(如均线周期、RSI周期、超买超卖阈值)的金融意义——它们是策略逻辑中可调整的"旋钮",其取值直接决定了策略的敏感度和行为特征。
- 系统实现: 将已有的双均线策略改造为可接收参数输入的灵活形式,并新增了至少一种新的、同样支持参数配置的交易策略(如RSI策略)。
✅
4. 提升回测的真实性与深度:- 金融关注点:
- 交易成本考量: 认识到在真实交易中,手续费和滑点(Slippage,即期望成交价与实际成交价之间的差异)会侵蚀利润,是评估策略盈利能力时不可忽视的因素。
- 参数敏感性与优化初步探索: 系统性地测试策略在不同参数组合下的历史表现(参数遍历/参数扫描),旨在寻找可能更优的参数设定,并初步理解策略表现对参数变化的敏感程度。同时,需要警惕过度优化历史数据(过拟合风险),避免产生在历史数据上表现极佳但在未来实盘中失效的策略。
- 系统实现:
- 在回测引擎中加入了对交易手续费和滑点的模拟计算逻辑。
- 实现了对策略的一组或多组参数进行遍历回测的功能,并能系统地记录和比较不同参数下的绩效。
- 优化了结果的组织方式,使得每次参数优化或单次回测的输出(报告、图表)能被清晰地管理和区分。
- 金融关注点:
✅
5. 增强结果的比较与洞察:- 金融关注点: 利用更丰富的可视化手段,例如比较不同参数设置对关键绩效指标(如夏普比率、年化回报率)的影响图,从而更直观地理解参数选择与策略表现之间的关系。
- 系统实现: 增强了结果分析模块,能够生成参数影响图等对比性可视化图表,帮助从多组回测结果中提炼信息。
-
学习重点:
- 数据管理的重要性: 理解高质量、结构化的历史数据是严谨量化研究的基石。
- 策略逻辑的多样性: 探索和实现不同类型的交易规则,理解其背后的市场假设和适用场景。
- 交易环境的现实因素: 认识并学会在回测中模拟交易成本(手续费、滑点)对策略表现的实际影响。
- 参数选择的系统方法与风险: 初步掌握通过参数遍历来探索策略潜力的方法,并建立对"过拟合"风险的警惕意识,理解历史最优不代表未来最优。
- 数据驱动的决策辅助: 学习使用更丰富的可视化工具和汇总数据来辅助对策略表现和参数敏感性的判断。
-
成果示例: 当配置
main.py
执行参数优化后 (例如PERFORM_OPTIMIZATION = True
),程序运行后会在临时结果目录下创建一个由CURRENT_RUN_TAG
指定的子文件夹 (例如RSI_MSFT_ParamOpt_SmallSet/
),其中包含该次优化运行的所有产出。主要的存档成果示例包括:-
参数优化概要 (控制台输出): 程序会在控制台打印出基于主要评价指标(如夏普比率)排序的最佳参数组合:
====== Top Performing Parameter Sets (by Sharpe Ratio) ====== Top 2 results: (假设仅显示Top 2) 股票代码 策略 参数 总回报率(%) 年化回报率(%) 夏普比率 最大回撤(%) 买入次数 卖出次数 0 MSFT RSI {'period': 20, 'oversold_threshold': 30, 'o... 25.87 15.61 0.787808 -12.893035 7 7 1 MSFT RSI {'period': 14, 'oversold_threshold': 25, 'o... 18.33 10.77 0.585137 -10.228701 10 10
(注:以上数值及参数为示例,实际结果会随数据和参数配置而变化。)
-
参数优化详细汇总 (CSV文件): 所有参数组合的回测性能指标会保存在一个CSV文件中,示例路径为
docs/log/all_backtests_summary_RSI_OPTIMIZED.csv
。其内容结构大致如下:股票代码,策略,参数,总回报率(%),年化回报率(%),夏普比率,最大回撤(%),买入次数,卖出次数 MSFT,RSI,"{'period': 20, 'oversold_threshold': 30, 'overbought_threshold': 75}",25.87,15.61,0.787808,-12.893035,7,7 MSFT,RSI,"{'period': 14, 'oversold_threshold': 25, 'overbought_threshold': 70}",18.33,10.77,0.585137,-10.228701,10,10 MSFT,RSI,"{'period': 14, 'oversold_threshold': 30, 'overbought_threshold': 75}",-5.20,-3.15,-0.174022,-15.730011,8,8 ...
-
单次回测报告 (含交易成本): 对于参数优化过程中的每一次独立回测,都会生成详细的文本报告,例如
docs/log/report_RSI_MSFT_period20_oversold_threshold30_overbought_threshold75.txt
。报告中包含了手续费信息和带手续费的交易记录:--- RSI 策略在 MSFT上的回测报告 参数: {'period': 20, 'oversold_threshold': 30, 'overbought_threshold': 75} 初始资金: 100000.0 --- 手续费设置: 费率=0.0500%, 最低收费=5.00元/笔 --- 总收益率 (%): 25.87 年化收益率 (%): 15.61 最大回撤 (%): -12.89 夏普比率 (年化): 0.79 总交易次数: 14 买入次数: 7 卖出次数: 7 ... --- 交易记录 --- symbol action quantity price cost commission holding_quantity cash_after_trade position_value total_value timestamp 2023-02-15 MSFT BUY 200 260.11 52022.00 26.01 200 47951.99 52022.00 100000.00 2023-03-10 MSFT SELL 200 270.50 -54100.00 27.05 0 102024.94 0.00 102024.94 ...
-
参数影响可视化: 程序会为每个优化的参数生成其对关键指标影响的图表,例如
docs/images/param_impact_SharpeRatio_vs_period_for_MSFT_all_others_averaged.png
。(此图展示了当RSI策略的
period
参数变化时,在MSFT股票上,平均夏普比率如何随之变化,其他参数取平均效果。) -
投资组合价值图 (示例): 每次独立回测也会生成投资组合价值图,例如
docs/images/portfolio_RSI_MSFT_period20_oversold_threshold30_overbought_threshold75.png
。
-
-
总目标: 构建一个交互友好、信息展示清晰的 Web 界面,使其成为连接复杂量化分析与直观决策的桥梁。该界面旨在赋能用户深入理解策略的历史行为,便捷地验证交易假设,并高效迭代优化其交易方法,特别针对桌面端优化布局以提升分析效率。
-
总体状态:
[✅ 核心功能已完成并优化 - PC端双栏布局,图表内嵌]
-
核心金融概念与能力构建:
✅
1. 策略思想的交互式探索与验证:- 金融关注点: 用户能够通过界面直观选择不同的交易策略(如均线、RSI),并灵活调整其核心参数(如周期长度、阈值)。这使得用户可以直接观察不同交易逻辑和参数设置在历史数据上的表现差异,从而深化对策略背后金融假设的理解,并快速检验其市场适应性。
- 系统实现: 后端API提供可用策略及其参数配置,前端动态生成参数输入表单,用户提交配置后触发回测。
✅
2. 历史绩效与风险的直观评估:- 金融关注点: 回测结果不再仅仅是冰冷的数字,而是通过可视化的图表(如资产净值曲线、交易信号标记图)清晰呈现。用户可以直观地看到策略在历史上的盈利过程、遭遇的最大风险(回撤)、以及具体的买卖点决策,从而更全面地评估策略的有效性、风险收益特征和潜在缺陷。
- 系统实现: 后端API返回包含性能指标和图表链接的回测结果,前端负责解析数据并内嵌显示图表,提供详细报告的访问入口。
✅
3. 加速"想法-验证-调整"的策略研发循环:- 金融关注点: 一个高效的UI极大缩短了从产生一个交易想法到看到其历史模拟结果之间的时间。用户可以快速修改参数、更换股票、调整回测周期,即时获得反馈,这种快速迭代的能力是现代量化策略开发的核心优势之一,有助于更快地筛选和优化交易模型。
- 系统实现: 前后端紧密集成,用户在前端的交互能迅速转化为后端的计算任务,并快速将结果反馈至前端展示。
-
学习重点:
- 可视化分析在量化中的应用: 理解图表和结构化数据展示如何帮助解读复杂的回测结果,辅助识别策略模式和潜在问题。
- 参数敏感性与策略行为的直观联系: 通过交互式调参,直观感受策略参数如何影响其历史表现和风险特征。
- 提升策略迭代效率: 体验如何利用Web界面加速从策略构思、测试到优化的整个流程,理解"快速试错"在量化研究中的价值。
- (技术相关) Web后端开发 (FastAPI), API设计与实现, 异步编程, Pydantic数据校验, 前端框架基础 (React), CSS框架 (Tailwind CSS), 前后端数据交互, 响应式UI设计。
-
成果示例: Web界面现在提供了一个更适合桌面使用的布局:左侧为参数配置区域,右侧实时展示回测结果。
关键特性包括:
- 清晰的参数配置界面,支持中英文标签,并根据屏幕宽度动态调整参数表单列数。
- 即时的回测结果反馈,包含详细的性能指标。
- 投资组合净值曲线和策略信号图直接嵌入显示,方便快速分析。
-
总目标: 从静态的历史数据回测迈向动态的模拟实时交易。本阶段旨在构建一个能够模拟接收连续市场数据流的系统,允许策略在接近真实的市场节奏中进行交易决策和执行。这对于检验策略在真实市场不确定性下的表现、评估其动态适应能力,以及培养交易者的实时决策与风险控制能力至关重要。
-
总体状态:
[阶段性完成]
-
核心金融概念与能力构建:
✅
1. 体验连续市场数据流与策略的实时响应:- 金融关注点: 不同于历史回测中数据一次性加载,实时模拟中,市场价格(
Ticks
)是连续不断生成的。策略需要能够实时接收这些新信息,并即时更新其内部状态(如技术指标的计算),进而快速做出交易决策。这模拟了真实市场中信息流动的特性。 - 系统实现:
MockRealtimeDataProvider
模拟生成价格DataTick
,实时策略(如RealtimeSimpleMAStrategy
,RealtimeRSIStrategy
)通过回调机制订阅并处理这些数据。
- 金融关注点: 不同于历史回测中数据一次性加载,实时模拟中,市场价格(
✅
2. 模拟动态环境下的交易执行与组合管理:- 金融关注点: 在动态变化的市场中,交易信号的产生、订单的(模拟)执行、持仓的更新、资金的变动以及交易成本的计算,都更接近实盘操作的复杂性。用户可以观察到策略如何在连续的价格波动中管理其虚拟投资组合,并理解滑点、延迟(虽未精确模拟,但概念上可感知)等因素对交易结果的潜在影响。
- 系统实现:
MockTradingEngine
负责接收策略信号,通过MockPortfolio
更新持仓和现金,记录模拟交易。
✅
3. 实时监控策略行为与投资组合动态:- 金融关注点: 通过Web界面实时观察模拟交易过程中的关键绩效指标,如账户总览(总资产、现金、盈亏)、当前持仓详情(各品种数量、成本、浮动盈亏)、以及最近的交易记录。这种即时反馈有助于用户理解策略在特定市场行情下的具体行为模式和风险暴露。
- 系统实现: 后端API (
/api/simulation/*
) 提供模拟状态查询,前端组件 (SimulationDisplay
及其子组件) 定期拉取并动态展示这些信息。
✅
4. 策略切换与参数调整的模拟实战演练:- 金融关注点: 用户可以在模拟运行中(或停止后快速切换)不同的交易策略或调整其参数,并观察其在当前"市场环境"下的表现。这为比较不同策略的适应性、理解参数对动态行为的影响提供了实验平台,是实盘前重要的演练环节。
- 系统实现: 前端
StrategyControlPanel
允许选择策略、配置参数并启停模拟,后端支持动态加载和实例化不同策略。
-
学习重点:
- 从历史回测到实时模拟的思维转变: 理解两者在数据处理、策略响应和系统设计上的核心差异。
- 动态市场环境下的策略适应性: 观察和分析策略在连续价格变动和模拟交易执行过程中的行为表现。
- 模拟交易中的风险与机遇识别: 初步培养在动态信息流中识别交易机会和潜在风险的意识。
- 交易执行流程的初步认知: 通过模拟,了解从信号产生到持仓变化的简化流程。
- (技术相关) 实时系统设计、线程与并发基础(数据提供者)、回调机制、状态管理(前端与后端)、WebSocket或轮询API设计、Pydantic模型在FastAPI中的应用、React组件化与状态钩子 (useState, useEffect, useCallback)、TypeScript接口定义。
-
成果示例: 用户现在可以通过Web界面的"实时模拟交易"标签页,从下拉菜单中选择"实时简单移动平均线策略"或"实时RSI震荡策略",配置其参数如股票代码、均线窗口或RSI周期、超买超卖阈值等,设定初始资金(以万元为单位)后启动模拟。启动后,界面会动态更新当前的投资组合价值、现金、详细持仓、最近发生的模拟交易记录以及当前运行的策略详情。当模拟停止后,这些最终状态信息会被保留在界面上供用户查看。
下图展示了正在运行"实时RSI震荡策略"时的用户界面:
(注: 上图展示了选择RSI策略,并针对MSFT股票进行模拟交易的场景。左侧为策略选择和控制面板,右侧实时显示投资组合、持仓、交易日志和当前策略参数等动态信息。)
-
总目标: 深入实践投资组合管理的核心理念与基础的风险控制策略,增强模拟交易的金融专业性和决策支持能力,并通过实时图表可视化交易过程。本阶段旨在将关键的金融概念转化为可操作的系统功能,并提供直观的界面反馈。
-
总体状态:
[⏳ 进行中 (核心功能完成, UI增强开始)]
-
主要模块与金融能力建设:
- 1. 精细化投资组合表现度量与洞察:
✅
理解盈亏构成: 系统能够精确区分并跟踪已实现盈亏(平仓后锁定利润或损失)与未实现盈亏(持仓期间市值波动产生的浮动盈亏)。这对于准确评估策略在不同市场阶段的盈利能力、识别利润来源以及理解当前风险暴露至关重要。✅
审视资产配置结构: 实现对投资组合中各资产(如不同股票)市值的动态计算,并展示其占总资产净值的百分比。这有助于直观评估资产配置的集中度风险,判断是否存在对单一资产的过度依赖,是分散化投资管理的基础。✅
历史表现基准: 跟踪记录投资组合的历史峰值净值,为后续进行更准确的最大回撤评估(衡量策略可能遭遇的最大资金缩水幅度)提供关键数据基础。
- 2. 构建基础的金融风险管理框架:
✅
参数化的风险容忍度设定: 允许用户通过前端UI(在StrategyControlPanel
中)或API(启动模拟时传递参数,或使用后端预设默认值)定义关键的风险阈值,例如单笔交易或单个持仓允许的最大亏损比例(个股止损)、单个资产在投资组合中的最大市值占比(仓位规模控制)、以及整个账户能承受的最大资金回撤比例(账户最大回撤)。用户在UI上输入百分比数值,前端处理后发送给后端。这体现了风险管理中"事前规划,量化风险"的核心思想。✅
多层级的风险监控与预警:- 在模拟交易过程中,系统会基于上述用户定义的风险参数,在多个关键节点(如交易执行前、市场价格更新后)自动进行风险评估。
- 预交易检查: 例如,在尝试开新仓位前,检查是否会突破单资产的最大持仓限制,避免过度集中投资。
- 持续性监控: 对已持有的仓位,实时监控其亏损是否触及止损线;对整个账户,持续监控其净值是否从历史高点回撤过多。
- 当任何预设的风险阈值被触发时,系统会生成明确的风险告警信息。这些告警旨在及时提醒模拟交易者潜在的风险事件,辅助其做出更审慎的决策,或在真实交易场景中作为干预和调整的依据。
✅
直观的风险状态反馈: 通过用户界面将产生的风险告警清晰地展示给用户,确保风险信息传递的有效性。
- 3. (增强任务) 使用外部实时数据源驱动模拟交易:
✅
集成外部数据接口: 实现一个新的RealtimeDataProvider
(YahooFinanceDataProvider
),能够从外部服务(如 Yahoo Finance)获取(延迟的)实时市场报价。✅
驱动模拟引擎: 将获取到的外部数据流接入现有的MockTradingEngine
,替代原有的纯内部模拟数据生成器,以提高模拟交易的真实感。✅
选择数据源: 在用户界面 (StrategyControlPanel.tsx
) 或配置中提供选项,允许用户选择使用内部模拟数据源还是外部数据源。
- 4. (增强任务) 实时模拟交易可视化增强:
[✅]
研究与集成前端图表库: 调研并选用合适的前端图表库(推荐 TradingView Lightweight Charts™),能够绘制动态更新的金融图表(K线/分时)并支持标记叠加。[✅]
实现图表数据获取: 确保前端能够获取绘制图表所需的近期历史行情数据和实时价格更新 (可能需要调整后端API或前端数据处理逻辑)。[]
开发动态图表组件: 创建新的 React 组件 (RealtimeChartDisplay.tsx
或类似名称) 用于渲染图表,处理数据更新。[]
叠加交易标记: 在图表上根据模拟交易引擎产生的买入/卖出记录,动态添加标记。[]
整合图表到UI布局: 将新的图表组件合理地整合到"实时模拟交易"标签页的界面布局中。
- 进行中/未来探索的金融能力:
🔄
更高级的风险量化模型: 例如探索引入Value at Risk (VaR) 或 Conditional Value at Risk (CVaR) 等业界常用的风险度量指标,以更全面地评估潜在损失。🔄
动态风险调整与应对策略: 当前主要为风险告警,未来可研究基于风险事件的自动化或半自动化应对措施,如动态调整仓位、自动减仓等。🔄
更友好的风险参数配置界面: 允许用户在界面上更便捷地调整和管理自己的风险偏好设置。
- 1. 精细化投资组合表现度量与洞察:
-
学习重点:
- 深入理解并应用投资组合管理的核心原则:包括但不限于盈亏的精确度量与分析(已实现 vs. 未实现)、资产配置的意义与监控、投资组合表现评估的关键指标(如夏普比率、最大回撤)等。
- 掌握金融风险管理的基础理论与实践:识别不同类型的市场风险与操作风险,理解并运用常见的风险控制工具(如止损策略、仓位管理规则、资金管理原则),学习如何设定合理的风险容忍度。
- 探索如何将抽象的金融概念和风控逻辑,通过系统化的设计和技术实现(如清晰的API接口、直观的前端用户界面),转化为有效的交易决策支持工具。
- 理解状态持久化对于长时间模拟任务的重要性。
- 培养在模拟环境中持续审视和优化交易策略与风险控制措施的能力。
- 体会前端交互设计在简化复杂参数配置、提升用户体验方面的重要性。
- 处理外部数据流: 理解接入外部(可能是延迟的、不完美的)实时数据源所带来的挑战,如API调用限制、数据清洗、错误处理等。
-
- 上图展示了 Phase 5 中 UI 的核心增强:
- 策略控制面板: 现在允许用户直接在界面上配置关键风险参数(如个股止损百分比、单资产最大持仓百分比、账户最大回撤百分比),这些参数将用于模拟的风险控制逻辑。启动模拟时也会提示所应用的风险参数。
- 投资组合摘要: 清晰展示已实现/未实现盈亏、以及经过样式修正后清晰可见的资产分配百分比。
- 当前持仓: 表格中包含未实现盈亏的具体数值和百分比。
- (注: 此截图未显示风险告警板块,当风险事件触发时,相关告警会显示在界面上。)
- 上图展示了 Phase 5 中 UI 的核心增强:
- 总目标: 对接真实的券商交易API,为小规模、可控的实盘交易做准备。此阶段务必从券商提供的模拟/沙箱账户开始测试,确保万无一失。
- 主要模块与任务:
[ ]
1. 券商API研究与选型.[ ]
2. API核心功能封装 (认证、行情、交易、查询),并在沙箱环境充分测试.[ ]
3. 订单执行与状态同步模块设计.
- 学习重点: 券商API规范, API安全性, 交易指令精确执行, 错误处理, 实盘风险意识。
- 总目标: 在完成充分的模拟盘和API对接测试后,使用极小规模资金进行初步的实盘运行,并建立基础的监控和日志系统。
- 主要模块与任务:
[ ]
1. 实盘交易执行 (极小仓位、低杠杆、高流动性品种).[ ]
2. 核心交易流程日志记录.[ ]
3. 基础运行状态监控与告警机制.
- 学习重点: 实盘操作流程, 资金管理, 风险控制实际应用, 结构化日志, 系统监控与告警。
- 总目标: 研究并集成至少一种高级交易策略(例如基于机器学习的策略),并在模拟环境中对其进行评估。
- 主要模块与任务 (以机器学习策略为例):
[ ]
1. 特征工程与数据准备.[ ]
2. 模型选择、训练与离线评估 (结合现有回测框架).[ ]
3. 模型部署与实时信号生成 (接入模拟交易系统).[ ]
(可选) 其他高级策略研究 (如统计套利、事件驱动型策略等)。
- 学习重点: 机器学习(分类、回归等), 特征工程, 模型训练评估与部署, 特定高级策略理论与实现。
本项目包含针对特定股票的交易策略研究与分析。
- 比亚迪 (002594.SZ) 交易策略:
- 详细分析文档请参见:比亚迪交易策略分析