Skip to content
ainuo-AIPublic

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

13 Commits

Folders and files

Repository files navigation

基金信息站

一个用 Python + Flask 写的基金信息查询网站:搜索基金、查看基本信息、区间涨跌幅、净值走势图和历史净值,还可以把基金加入"自选"、查看最近搜索记录、多只基金同图对比。

项目结构

jijin/
├── app.py            # 网站入口:定义路由(网址 -> 页面)
├── fund_api.py       # 数据层:封装第三方接口,获取基金数据、财经快讯
├── ai_api.py         # AI 层:调用大模型分析新闻的行业影响(可选,需 .env 配 key)
├── templates/        # HTML 模板(Jinja2)
│   ├── base.html     #   公共骨架:琥珀色命令栏(含实时时钟)+ 页脚
│   ├── index.html    #   首页:搜索框 + 热门基金卡片
│   ├── search.html   #   搜索结果页
│   ├── fund.html     #   基金详情页:信息 + 走势图 + 历史净值表
│   ├── compare.html  #   基金对比页:多只基金涨跌幅同图对比
│   ├── hot.html      #   热门推荐页:按区间涨幅排序的基金榜单
│   ├── news.html     #   财经要闻页:7x24 快讯列表,股市相关高亮
│   ├── sip.html      #   定投模拟页:参数表单 + 收益汇总 + 投入/市值走势图
│   └── 404.html
├── static/
│   ├── style.css       # 全站样式(终端风:纯黑底、琥珀强调色、直角硬边、红涨绿跌)
│   ├── echarts-theme.js# ECharts 暗色主题(配合 style.css,图表用 'terminal' 主题初始化)
│   ├── fonts/          # IBM Plex Mono 等宽字体(woff2,本地加载无需联网)
│   └── echarts.min.js  # 图表库(已下载到本地,无需联网加载)
└── venv/             # Python 虚拟环境(依赖都装在这里)

界面是「市场终端」风格:纯黑底 + 琥珀色命令栏(右侧有实时时钟)、全站等宽字体、 直角硬边框、红涨绿跌;小节标题带 01/02/03 编号,图表统一用 ECharts 暗色主题。

如何启动

cd ~/Desktop/jijin
venv/Scripts/python app.py

然后浏览器打开 http://127.0.0.1:5000

停止服务:在运行窗口按 Ctrl + C。

页面与路由

网址 页面 对应函数
/ 首页(我的自选 + 热门基金 + 最近搜索) index()
/search?q=关键词 搜索结果 search()
/fund/161725 基金详情(可加自选、去对比) fund_detail()
/compare?codes=161725,005827 基金对比(最多 5 只) compare()
/hot?sort=1yzf&type=gp 热门推荐榜(按区间涨幅排序) hot()
/news 财经要闻(7x24 快讯,股市相关高亮) news()
/api/news_analysis 新闻 AI 分析(JSON 接口,需配 key) api_news_analysis()
/sip/161725?amount=1000&freq=month&start=2024-01-01 定投收益模拟 sip()
/api/funds?codes=161725,... 批量查最新净值(JSON 接口) api_funds()
/api/estimate/161725 实时估值(JSON 接口) api_estimate()
/api/search?q=关键词 按名称搜索基金(JSON 接口) api_search()

自选基金

在基金详情页点"☆ 加入自选",首页顶部就会出现"我的自选"卡片。 自选列表保存在浏览器的 localStorage 里(键名 myFunds),不需要数据库、不需要登录, 关掉浏览器也不会丢;但换浏览器或清浏览器数据后会消失。

搜索历史

首页搜索框下方会显示"最近搜索"标签(最多 8 条,最新在前),点击标签直接再搜,可一键清空。 历史记录在打开搜索结果页时自动写入 localStorage(键名 searchHistory),规则和自选一样: 只存在本浏览器,不需要服务器参与。

区间涨跌幅

基金详情页在基本信息下方显示「近1月 / 近3月 / 近6月 / 近1年」的区间涨跌幅(红涨绿跌)。 由 fund_api.calc_interval_returns 根据已获取的历史净值计算:以最新净值为终点, 找 N 个月前当天或之前最近交易日的净值做起点;历史数据不足的区间显示 --。

定投收益模拟

在基金详情页点"定投模拟 →",设置每期金额(默认 1000 元)、频率(每周/每两周/每月)和开始日期(默认两年前), 即可看到累计投入、当前市值、收益和收益率,以及"累计投入 vs 当前市值"走势图。 开始日期可选范围:最早为基金成立日与近 5 年(接口最多取近 5 年数据)的较晚者,最晚为今天; 超出范围的日期会被自动钳制到边界。由 fund_api.calc_sip 用历史净值计算:每次按扣款日之后第一个交易日的净值买入, 扣款日遇休市/节假日自动顺延(图上用 ◆ 标出并在图下列明),未考虑申购赎回费用和分红, 结果仅供学习参考。参数在网址里(start=YYYY-MM-DD,旧链接的 years=N 也兼容),可以收藏和分享。

实时估值

基金详情页顶部有"实时估值"卡片,交易时段(工作日 9:30~15:00)每 30 秒自动刷新。 注:2026 年起监管要求各平台下架官方"盘中估值"功能,公开估值接口已全部失效, 所以这里的估值是自己算的(fund_api.get_fund_estimate):取基金最新披露的前十大重仓股 (天天基金 F10 持仓页),乘以东财实时行情接口的个股涨跌幅,加权求和得到估算涨幅: 估算涨幅 = Σ(个股涨跌幅 × 占净值比例),估算净值 = 最新净值 × (1 + 估算涨幅/100)。 东财行情接口对部分环境的 HTTPS 请求会直接断连,代码会自动回退 HTTP 重试。 只算了前十大重仓股、其余持仓按不涨不跌处理,且持仓是季度披露数据,与实盘有偏差, 结果仅供参考。纯债基、货币基金等没有近期股票持仓的基金显示"不支持估算"。

基金对比

把 2~5 只基金的近一年累计涨跌幅画在同一张图上(以各自第一天为起点归一化成百分比,价位不同的基金才能公平比较)。 添加方式:在基金详情页点"和其他基金对比 →",或在对比页输入框直接搜索基金名称、点建议即可加入, 不用记代码。代码在网址里(/compare?codes=...),对比结果可以收藏和分享。

热门推荐

导航栏"热门推荐"进入榜单页(/hot):从天天基金排行接口取前 20 名,推荐依据可切换—— 日涨幅 / 近1周 / 近1月 / 近3月 / 近6月 / 近1年 / 今年来,并可按基金类型(股票型/混合型/指数型/债券型/QDII/FOF)筛选。 当前排序列高亮显示,点列头或标签都能切换;点基金名称进入详情页。 参数在网址里(sort、type),榜单可以收藏和分享。 注:免费公开接口没有"资金流动量"数据,所以推荐维度以各区间涨幅为主。

财经要闻

导航栏"财经要闻"进入 /news:展示新浪财经 7×24 快讯最新 30 条(最新在前), 正文或标签命中股市关键词(A股、涨停、沪指、创业板、港股、美股等,见 fund_api.STOCK_NEWS_KEYWORDS) 的条目会加红色"股市"徽章并淡红底高亮,方便快速找到可能影响股票涨跌的新闻。 点击条目可跳转新浪原文。关键词识别只是粗筛,仅供参考,不构成投资建议。

AI 新闻分析(可选)

配置大模型 API Key 后,每条新闻下方会显示 AI 的分析:影响哪些行业、利好(看涨)/ 利空(看跌)/中性、一句话理由。新闻本身全部来自新浪官方接口(带原文链接可核验), AI 只阅读已有新闻做点评,不生成新闻内容。

启用方法:把 .env.example 复制为 .env,填入 API Key(.env 已被 git 忽略,不会上传):

AI_API_KEY=sk-xxx
AI_BASE_URL=https://api.deepseek.com   # 默认 DeepSeek;Kimi 开放平台填 https://api.moonshot.cn/v1
AI_MODEL=deepseek-chat                 # Kimi 填 moonshot-v1-8k,OpenAI 填 gpt-4o-mini
                                       # Kimi Code 编程套餐(sk-kimi- 前缀):
                                       # AI_BASE_URL=https://api.kimi.com/coding/v1, AI_MODEL=kimi-k2

可选 AI_TEMPERATURE=0.2;不传时用模型默认值(kimi-k2 只允许默认温度,传了会报错)。

实现要点(ai_api.py):整页新闻一次性批量调用(30 条约 23k tokens,几分钱), 按快讯 id 做内存缓存,刷新页面不重复扣费;分析由前端异步加载(/api/news_analysis), 不阻塞页面打开;没配 key 或调用失败时页面照常工作。AI 判断只是文本解读的推测,不构成投资建议。 注意:kimi-k2 等思考型模型分析 30 条新闻约需 12 分钟(接口超时已放宽到 300 秒), 前端异步等待期间页面其他内容不受影响。

数据来源

均为公开免费接口,仅用于学习:

  • 天天基金移动端 API:最新净值、历史净值
  • 天天基金排行接口:按区间涨幅排序的基金榜单
  • 天天基金搜索建议:按名称/代码搜索
  • 天天基金 F10 持仓页:前十大重仓股(实时估值用)
  • 东方财富实时行情接口:个股涨跌幅(实时估值用)
  • 新浪财经:基金概况(类型、规模、公司、经理)
  • 新浪财经 7×24 快讯:财经要闻

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages