Skip to content

Emanual20/StockSimulation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SimStock v3.1 — 全球市场模拟回测与操盘训练系统

License: BSL-1.0 Python 3.8+

基于 Flask 的全球多市场 K 线回测分析与双盲操盘训练平台,支持 A 股、港股、美股、日股、韩股及贵金属(沪金/沪银)。

快速启动

pip install -r requirements.txt
python app.py
# 访问 http://localhost:5555

开发模式(启用热重载和调试器):

FLASK_DEBUG=1 python app.py

自定义端口:

PORT=8080 python app.py

项目结构

sim_stock/
├── app.py                      # Flask 主入口 (port 5555)
├── requirements.txt            # Python 依赖
├── api/                        # API 蓝图
│   ├── stock_api.py            # 股票数据 API
│   ├── backtest_api.py         # 回测 API
│   └── training_api.py         # 双盲训练 API
├── services/                   # 业务逻辑
│   ├── data_service.py         # 多市场数据抓取(腾讯/新浪)
│   ├── backtest_service.py     # 回测引擎
│   ├── indicator_service.py    # 技术指标计算(14种)
│   └── training_service.py     # 双盲训练会话管理
├── static/                     # 前端页面
│   ├── index.html              # 首页导航
│   ├── backtest.html           # 回测分析(含多周期联动)
│   ├── training.html           # 双盲训练
│   └── dashboard.html          # 成绩面板 / 排行榜
├── cache/                      # K 线数据缓存(自动管理)
└── training_data/              # 训练会话持久化

功能模块

1. 多市场数据服务

市场 标识 数据源 支持周期
A 股 A 腾讯财经 + 新浪财经 1m/5m/15m/30m/60m/2H/4H/日/周/月
港股 HK 腾讯财经 日/周/月
美股 US 腾讯财经 日/周/月
日股 JP 腾讯财经 日/周/月
韩股 KR 腾讯财经 日/周/月
黄金 GOLD 新浪国内期货
白银 SILVER 新浪国内期货
  • 智能搜索:腾讯 SmartBox 搜索 + 贵金属关键词匹配 + 日韩股本地匹配
  • 缓存机制:日线 4h / 分钟线 30min / 贵金属 1h,文件级 JSON 缓存

2. 回测分析

  • ECharts K 线图:蜡烛图 + 成交量 + 多指标子图 + 买卖标记 + 数据缩放
  • 多时间周期联动:一键切换显示上级/下级周期 K 线,大周期定方向、小周期找买点
  • 操作类型:买入 / 卖出 / 加仓 / 减仓
  • 费用模型:万三佣金 + 千一印花税(卖出)
  • 统计指标:总收益率、年化收益、最大回撤、夏普比率、胜率、交易日志、净值曲线

3. 双盲操盘训练

四种训练模式:

模式 说明
裸 K 训练 仅 K 线 + 成交量,纯盘感训练
技术指标训练 可叠加 MA/BOLL/MACD/KDJ/RSI
自选股训练 指定股票,显示真实信息
做空训练 支持 short/cover 做空操作
  • 双盲设计:隐藏股票身份和真实日期,训练结束揭晓
  • 随机选股池:A 股 50 只蓝筹 + 美股 24 只 + 港股 9 只
  • 逐 K 推进:手动/自动(慢 500ms / 中 200ms / 快 50ms)
  • 交易费用:万三佣金 + 千一印花税
  • 复盘揭晓:完整 K 线走势 + 操作标记 + 统计回顾
  • 历史记录:所有训练会话持久化存储,可随时回顾

4. 成绩面板 / 排行榜

  • 综合统计:训练次数、总体胜率、平均收益率、最佳/最差战绩、连胜/连败
  • 收益趋势图:累计收益曲线 + 单次收益柱状图
  • 收益分布:按收益率区间分桶统计
  • 模式/市场对比:雷达图 + 表格展示各模式和市场的胜率、平均收益、回撤
  • 排行榜:最高收益/最大亏损/最近训练 Top 10
  • 成就徽章:初出茅庐、久经沙场、一飞冲天、神射手等,根据表现自动解锁

5. 技术指标(14种)

分类 指标
趋势 MA、EMA、布林带(BOLL)、SAR、VWAP、DMI
动量 MACD、KDJ、RSI、WR、CCI
波动率 ATR
量能 OBV、成交量均线(VOL_MA)

API 接口

股票数据

端点 方法 说明
/api/stock/search?keyword= GET 搜索股票
/api/stock/history?code=&market=&period=&start_date=&end_date= GET 获取 K 线
/api/stock/periods?market= GET 获取支持的周期
/api/stock/indicators POST 计算技术指标
/api/stock/indicator_list GET 可用指标列表
/api/stock/markets GET 支持的市场列表

回测

端点 方法 说明
/api/backtest/run POST 运行回测(传入操作列表)

训练

端点 方法 说明
/api/training/create POST 创建训练会话
/api/training/advance POST 推进 K 线
/api/training/trade POST 执行交易
/api/training/finish POST 结束训练并揭晓
/api/training/state?session_id= GET 获取会话状态
/api/training/history GET 所有训练记录
/api/training/stats GET 训练综合统计(Dashboard)

技术栈

  • 后端:Flask + pandas + numpy + requests
  • 前端:原生 HTML/CSS/JS + ECharts
  • 数据源:腾讯财经 API、新浪财经 API
  • 存储:文件系统(JSON 缓存 + 会话持久化),无需数据库

依赖

flask>=2.0.0
flask-cors>=4.0.0
pandas>=1.1.0
numpy>=1.19.0
requests>=2.25.0
pyarrow>=6.0.0
gunicorn>=20.0.0

免责声明

本项目仅供学习和研究用途,不构成任何投资建议。股市有风险,投资需谨慎。数据来源于腾讯财经和新浪财经的公开接口,数据准确性请以官方为准。

贡献

欢迎提交 Issue 和 Pull Request!

License

BSL-1.0

About

StockSimulation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors