Skip to content

About

finance test

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

金牛量化先锋 · Golden Bull Quant Pioneer

一个使用免费网络数据源(AKShare、Yahoo Finance、Binance/CCXT)来研究股票/加密货币价格历史趋势、风险与收益特征的可视化应用。基于 Streamlit + Plotly 构建,适合快速探索与分享。

English: A Streamlit + Plotly app using free data sources (AKShare, Yahoo Finance via yfinance, Binance via CCXT) to analyze historical price trends, risk and return characteristics.

功能特性

  • 市场选择:A股、美股/港股/全球、加密货币
  • 长期对数回归通道与当前位置百分比(估算估值区间)
  • 波动率历史分位(ATR%)与风险提示
  • 历史最大回撤与年化收益率
  • 扩展指标:夏普比率、VaR(95%)、下行波动率、趋势强度 R²
  • 市场状态识别:上升趋势 / 震荡区间 / 下行风险
  • 辅助图表:63日滚动收益、收益分布直方图
  • 数据缓存:减少重复网络请求与等待时间
  • 加密货币榜单:新增 过去7天涨跌图 内嵌折线列(CoinGecko)
  • 资料/AI资讯:先显示本地缓存,后台刷新最新内容后即时替换
  • 资料与AI资讯:DeepSeek 生成内容分类缓存,支持细粒度展示

数据来源(全部免费数据)

  • A股:AKShare 的 stock_zh_a_hist(前复权,日频)
  • 美股/港股/全球:Yahoo Finance 通过 yfinance(自动复权,日频)
  • 加密货币:
    • Binance 通过 CCXT(日频 OHLCV)
    • CoinGecko 用于加密货币榜单与 7天涨跌图

以上数据均为公开免费数据接口,存在延迟、口径差异或历史修订的可能,仅供研究与学习使用,不构成投资建议。

快速开始

  1. 安装依赖
pip install -r requirements.txt
  1. 启动应用(Windows)
.venv\Scripts\python.exe -m streamlit run Homepage.py

或直接双击 activate_python.bat 3. 使用方式

  • 左侧侧边栏选择市场与输入代码,然后点击“开始分析”
  • 代码示例:
    • A股:600519.SH、000001.SZ、430047.BJ
    • 美股:AAPL、TSLA、NVDA
    • 加密货币:BTCUSDT、ETHUSDT

指标说明

  • 通道位置:基于对数价格的线性趋势与上下轨(±2.5×滚动标准差,约等于长期估值区间)
  • ATR分位:真实波动范围占价格的百分比的历史分位(高分位提示短期风险)
  • 历史最大回撤:相对历史滚动最高价的最大跌幅
  • 年化收益率:(终值/初值)^(1/年数)-1
  • 夏普比率:日收益均值/日收益标准差 × √252
  • VaR(95%):日收益的第5百分位(表示可能的单日极端损失区间)
  • 下行波动率:仅对负收益部分的波动年化
  • 趋势强度 R²:近 1 年/3 年对数线性回归的拟合优度

代码结构

  • 主入口:Homepage.py
  • 重要函数:
    • 数据获取与缓存:fetch_data(market, code)(data_sources.py)
    • 指标计算:compute_indicators(df)(analysis.py)
  • 页面交互与图表绘制:Homepage.py
    • AI资料生成与缓存:get_profile_cached、generate_profile_via_deepseek(analysis.py)
    • 资讯获取与AI补充:get_news_cached、generate_news_via_deepseek(data_sources.py)

注意事项

  • 交易日计数假设为 252(约等于美股/A股每年交易日),不同市场可能略有差异
  • A股代码需带市场后缀(如 600519.SH、000001.SZ)
  • 接口偶尔会限流或不可用,重试或更换网络即可
  • 若缺少依赖,请先安装;国内环境可考虑使用镜像源加速

DeepSeek 配置(可选)

  • 在项目根目录创建 .env 文件,写入:
    • DEEPSEEK_API_BASE=https://api.deepseek.com/v1
    • DEEPSEEK_API_KEY=你的密钥
    • DEEPSEEK_MODEL=deepseek-chat(可选)
  • 应用会自动读取 .env,用于生成“资料”和补充“资讯”。

缓存目录结构(部分)

  • 原始数据:data_cache/raw/<市场>/<代码>.csv
  • 分析结果:data_cache/analysis/*.csv|*.json
  • 基础信息:data_cache/ui/basic/<市场>/<代码>.json
  • 资讯:data_cache/ui/news/<市场>/<代码>.json
  • 资料(整段):data_cache/ui/profile/<市场>/<代码>.json
  • AI分类缓存:data_cache/ui/ai/<市场>/<代码>.json(包含 profile.segments 与 news_summary)

测试方法

  • 运行主界面验证:
    • 启动:.venv\Scripts\python.exe -m streamlit run Homepage.py 或双击 activate_python.bat
    • 切换市场为“加密货币”,确认榜单中出现“7天涨跌图”折线列。
  • 验证 AI 资料生成与缓存:
    • .venv\Scripts\python.exe test\test_ai_profile.py --market "A股" --code 600519.SH --force_refresh
    • 完成后,检查:data_cache/ui/profile/ 与 data_cache/ui/ai/ 下对应文件是否生成。
  • 验证 AI 资讯补充与缓存:
    • .venv\Scripts\python.exe -c "import sys,os; sys.path.insert(0, os.getcwd()); from data_sources import get_news_cached; print(len(get_news_cached('A股','600519.SH', True)))"
    • 完成后,检查:data_cache/ui/news/ 与 data_cache/ui/ai/ 是否有更新。
  • 测试 read_ai_cache:
    • .venv\Scripts\python.exe test\test_ai_profile.py --market "A股" --code 600519.SH --test_ai_cache
    • 该测试会写入示例 AI 分类缓存并读取,打印缓存路径、键列表、最新要点数与历史条目数。
    • 示例输出:
      === Test read_ai_cache ===
      Path: D:\AB\finance_app\data_cache\ui\ai\A股\600519.SH.json
      Keys: ['news_history', 'news_summary', 'profile']
      Latest items: 2
      History entries: 1
      

近期更新

  • 加密货币榜单集成 CoinGecko 并新增 7天涨跌图 折线列(Homepage.py)
  • “资料”“资讯”改为先显示本地缓存,再后台拉取最新并即时替换(Homepage.py)
  • DeepSeek 生成的“资料”“资讯”按段落/要点分类保存至 data_cache/ui/ai(analysis.py、data_sources.py、cache_utils.py)
  • 依赖更新:新增 pycoingecko>=3.2.0

免责声明

本项目仅用于数据可视化与教育研究目的,不构成任何投资建议。请自行对数据的完整性与准确性进行核验。

About

finance test

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages