一个完整的投资模拟程序,支持股票+基金双模式,利用真实历史数据进行逐日/周人工模拟投资,帮助用户学习投资技巧,提升投资能力。
快速体验地址(暂时只支持模拟数据):http://47.109.150.58:3003

🎯 零风险学投资 - 虚拟资金交易,亏了不心疼
📊 真实市场数据 - Yahoo Finance历史行情,贴近实战
💹 双模式支持 - 股票短线 + 基金长投,一个工具全搞定
📈 专业技术指标 - RSI、MACD、成交量分析
💰 完整成本模拟 - 佣金、印花税、滑点真实计算
🎨 精美可视化 - K线图、收益曲线、持仓分布
⚙️ 灵活配置 - 功能自由开关,按需使用
🚀 快速启动 - 一键运行,30秒开始模拟
本项目提供两种界面:
- Web界面 (推荐): 基于Streamlit的精美图形界面
- 命令行界面: 简洁的终端交互界面
- ✅ 股票模式: 模拟股票买卖交易,支持美股、A股、港股
- ✅ 基金模式: 模拟ETF、指数基金申购赎回,学习长期投资
- ✅ 一键切换: 界面自动适配,参数智能调整
- ✅ 真实历史数据: 使用 yfinance 获取 Yahoo Finance 真实行情
- ✅ 演示数据模式: 无API限制,快速稳定,适合学习和测试 ⭐
- ✅ 全球市场支持: 美股、A股、港股、ETF基金
- ✅ 完整行情信息: 开盘价、收盘价、最高价、最低价、成交量
- ✅ 技术指标: RSI相对强弱、MACD趋势分析、成交量分析
- ✅ 交易成本模拟: 佣金、印花税、滑点(可配置开关)
- ✅ 仓位风险管理: 持仓占比分析、风险等级提示
- ✅ 市场对比: 与标普500等基准对比,计算Alpha和Beta
- ✅ 收益指标: 总收益、收益率、年化收益率
- ✅ 风险指标: 最大回撤、年化波动率、夏普比率
- ✅ 交易统计: 胜率、交易次数、成本分析
- ✅ K线图表: 专业蜡烛图展示价格走势
- ✅ 收益曲线: 投资组合价值和收益率变化
- ✅ 持仓分布: 资产配置结构图
- ✅ 交互式图表: 支持缩放、悬停查看详情
- ✅ 高级功能开关: 根据使用场景自由配置
- ✅ 时间模式: 支持按日/周/月进行模拟
- ✅ 响应式设计: 适配各种屏幕尺寸
pip install -r requirements.txtyfinance: 获取股票历史数据pandas: 数据处理和分析numpy: 数值计算matplotlib: 绘制图表streamlit: Web界面框架plotly: 交互式图表tabulate: 美化表格输出
Windows:
run.bat (streamlit.exe替换成自己的路径)Linux/Mac:
chmod +x run.sh
./run.sh或直接运行:
streamlit run app.py浏览器会自动打开 http://localhost:8501
python main.py为了避免 yfinance API 速率限制,可以使用演示数据模式:
优点:
- 🚀 无API速率限制
- ⚡ 加载速度快
- 📊 数据质量高,基于真实市场模式
- 🎯 功能完整,支持所有模拟功能
- 🔄 可重现,相同参数生成相同数据
使用方法:
- 启动程序后,在设置页面
- 勾选 "🎭 使用演示数据(推荐:避免API限制)"(默认已勾选)
- 点击"开始模拟"即可
如果遇到 "Too Many Requests" 错误:
- ✅ 使用演示数据模式(推荐)
- ⏰ 或等待5-10分钟后重试
- 📉 或减少时间范围和股票数量
-
选择交易模式
- 📈 股票模式: 适合短线交易、技术分析学习
- 💼 基金模式: 适合长期投资、资产配置学习
-
设置模拟参数
- 输入代码(多个用逗号分隔)
- 股票示例:
- 美股:
AAPL,MSFT,GOOGL - A股:
000001.SZ(深圳),600519.SS(上海)
- 美股:
- 基金示例:
- ETF:
SPY,QQQ,510300.SS(沪深300ETF)
- ETF:
- 股票示例:
- 选择时间范围(开始日期和结束日期)
- 选择模拟模式(按日或按周)
- 设置初始资金
- 输入代码(多个用逗号分隔)
-
配置高级功能(可选)
- 交易成本系统: 模拟真实佣金、印花税、滑点
- 技术指标: 显示RSI、MACD等分析工具
- 市场对比: 与基准指数对比表现
- 仓位风险: 显示持仓占比和风险提示
-
进行模拟交易
- 查看当前日期的市场数据(开盘价、收盘价、技术指标等)
- 查看当前持仓和资产状况
- 执行买入/卖出(股票)或申购/赎回(基金)操作
- 前进到下一个时间段
-
查看结果
- 查看交易记录和成本明细
- 生成专业绩效报告
- 查看收益曲线和K线图表
- 分析仓位分布和风险等级
交易模式: 股票
代码: AAPL,MSFT,GOOGL
时间范围: 2023-01-01 至 2023-12-31
模拟模式: 按日模拟
初始资金: $100,000
高级功能:
- 交易成本: ✅ 开启 (佣金0.025%, 印花税0.1%)
- 技术指标: ✅ 开启 (RSI, MACD)
- 市场对比: ✅ 开启 (基准: S&P 500)
- 仓位风险: ✅ 开启交易模式: 基金
代码: SPY,QQQ,IWM
时间范围: 2023-01-01 至 2023-12-31
模拟模式: 按周模拟
初始资金: $50,000
高级功能:
- 交易成本: ✅ 开启 (申购费0.15%, 无印花税)
- 技术指标: ❌ 关闭
- 市场对比: ✅ 开启 (基准: S&P 500)
- 仓位风险: ✅ 开启交易模式: 股票
代码: 000001.SZ,600519.SS,000858.SZ
时间范围: 2023-01-01 至 2023-12-31
模拟模式: 按日模拟
初始资金: ¥100,000
高级功能:
- 交易成本: ✅ 开启
- 技术指标: ✅ 开启
- 市场对比: ✅ 开启 (基准: 沪深300)
- 仓位风险: ✅ 开启交易模式: 基金
代码: 510300.SS
时间范围: 2023-01-01 至 2023-06-30
模拟模式: 按日模拟
初始资金: ¥50,000
数据源: 演示数据
高级功能:
- 交易成本: ❌ 关闭 (简化学习)
- 技术指标: ❌ 关闭
- 市场对比: ❌ 关闭
- 仓位风险: ✅ 开启程序会自动计算以下专业投资指标:
- 总收益: 最终价值 - 初始资金
- 总收益率: (最终价值 - 初始资金) / 初始资金 × 100%
- 年化收益率: 按实际天数年化计算
- 最大回撤: 投资组合从峰值到谷底的最大跌幅
- 年化波动率: 衡量投资组合的风险水平
- 夏普比率: (年化收益率 - 无风险利率) / 年化波动率,数值>1为良好
- Alpha: 相对基准的超额收益
- Beta: 相对基准的波动倍数
- 市场收益率: 基准指数的收益表现
- 胜率: 盈利交易占总交易的比例
- 交易次数: 总买入/卖出次数
- 累计成本: 佣金、印花税、滑点总和(如启用)
- RSI: 相对强弱指数,识别超买(>70)超卖(<30)
- MACD: 趋势指标,判断金叉死叉信号
- 成交量: 辅助判断市场活跃度
smulator/
├── app.py # Streamlit Web应用主程序
├── main.py # 命令行界面入口
├── simulator.py # 模拟器核心逻辑
├── stock_data.py # 市场数据获取模块
├── portfolio.py # 投资组合管理模块
├── metrics.py # 投资指标计算模块
├── proxy_config.py # 代理配置模块
├── requirements.txt # 依赖包列表
├── run.bat / run.sh # 快速启动脚本
├── .streamlit/
│ └── config.toml # Streamlit配置文件
├── 快速开始.md # 快速入门指南
├── 功能配置说明.md # 高级功能配置说明
├── 基金模式使用指南.md # 基金模式详细说明
├── 交易机制说明.md # 交易机制详解
└── README.md # 项目说明文档
| 项目 | 股票模式 | 基金模式 |
|---|---|---|
| 交易术语 | 买入/卖出 | 申购/赎回 |
| 成交价格 | 当日收盘价 | 当日收盘净值 |
| 交易成本 | 佣金+印花税+滑点 | 申购费/赎回费 |
| 技术指标 | RSI, MACD | 趋势分析 |
| 适用场景 | 短线交易 | 长期投资 |
-
股票代码格式:
- 美股: 直接使用代码,如
AAPL - A股深圳: 代码 +
.SZ,如000001.SZ - A股上海: 代码 +
.SS,如600519.SS - 港股: 代码 +
.HK,如0700.HK
- 美股: 直接使用代码,如
-
基金代码格式:
- 美股ETF: 如
SPY,QQQ,IWM - A股ETF: 如
510300.SS(沪深300ETF),159915.SZ(创业板ETF)
- 美股ETF: 如
- 网络连接: 真实数据模式需要联网下载数据
- 数据延迟: yfinance 提供的数据可能有1-2天延迟
- 交易限制: 模拟器会自动检查资金和持仓是否足够
- 数据缓存: 数据会被缓存以提高性能
- 面向对象设计: 清晰的模块划分和职责分离
- 数据持久化: 完整记录交易历史和组合变化
- 错误处理: 完善的异常处理机制
- 性能优化: 数据缓存和高效的数据处理
- 可扩展性: 易于添加新功能和指标
| 场景 | 推荐配置 | 说明 |
|---|---|---|
| 投资小白 | 基金模式 + 简化功能 | 从长期投资开始学习 |
| 技术分析学习 | 股票模式 + 技术指标 | 练习RSI、MACD等指标应用 |
| 策略回测 | 全功能开启 + 真实数据 | 验证投资策略有效性 |
| 教学演示 | 演示数据 + 简化功能 | 快速稳定,适合课堂 |
| 风险管理训练 | 多股票组合 + 仓位分析 | 学习资产配置和风险控制 |
- 支持股票+基金双模式
- 添加技术指标(RSI, MACD)
- 市场对比分析(Alpha, Beta)
- 交易成本模拟
- 仓位风险管理
- 支持更多交易策略(止损、止盈、定投)
- 支持导出报告为PDF/Excel
- 添加更多技术指标(布林带、KDJ等)
- 支持期货、期权等其他金融产品
- 移动端适配
欢迎提交 Issue 和 Pull Request!
本项目仅供学习和研究使用,不构成任何投资建议。
本程序仅用于教育和模拟目的,不构成任何投资建议。
- 历史数据不代表未来表现
- 模拟收益不等于实际收益
- 实际投资有风险,请谨慎决策
- 投资前请咨询专业理财顾问
本程序需要挂VPN使用,如果觉得有帮助,请给个 ⭐ Star!