cover_image

温故而知新--KWEB净值计算

静听烟雨任平生 静听烟雨任平生


导语

上午发了篇爬取历史期货数据的文章,群里小陈总提醒我,IB可以直接获取啊,那我明天去试一试。其实,这两天我是在做归档工作,把这两个月摸索实践的都整理一下,归档后该开启新的征途了。首当其冲的,就是读取各种数据源,爬期货的用Selenium技术,我之前也完全不懂,就像上次Ellis说的 APIfox,学一点算一点,估计不用就忘了,发个文章以后想用的时候可以查一查。

根据woody在2025年8月20日的文章如何自己计算KWEB调试和平仓群中的折价数据,今天下午我靠着AI编程也做了个自动化Python脚本,实现了无敌这篇文章中KWEB的净值计算。同时还翻到了8月24日的文章下面我的留言,此时距我和woody直接微信联系,开始给他做托还有48天


那时候,我真的看不懂这些文章,也搞不明白无敌的算法,天天用Excel来测算,就是从那一天无敌回复我的留言起,我就默默埋下了一颗种子,要学习用AI的Python编程实现invincible、unbeatable、invulnerable 无敌的算法


核心功能

  • 数据自动获取:从Kraneshares官网获取溢价率数据,从新浪财经获取历史收盘价
  • 智能净值计算:根据公式自动计算KWEB的净值(净值 = 收盘价 / (1 + 溢价率))
  • 数据规范化存储:生成带日期戳的CSV文件,按日期降序排序
  • 增量更新机制:首次运行获取2026年所有数据,后续运行只获取缺失的最新数据

技术原理

数据来源

  1. Kraneshares官网:提供权威的KWEB溢价率数据

    • API地址:https://kraneshares.com/product-json/?pid=7615&type=premium-discount&start={start_date}&end={end_date}
    • 返回格式:二维数组 [timestamp, premium_rate]
  1. 新浪财经:提供KWEB的历史收盘价

    • API地址:https://stock.finance.sina.com.cn/usstock/api/jsonp.php/var/US_MinKService.getDailyK?symbol=kweb
    • 返回格式:JSONP格式的历史K线数据

计算方法

# 净值计算公式
净值 = 收盘价 / (1 + 溢价率)

# 示例
收盘价 = 28.70
溢价率 = -0.002536841
净值 = 28.70 / (1 - 0.002536841) = 28.7730

安装与使用

环境准备

  1. 安装Python:确保电脑已安装Python 3.6+
  2. 安装依赖
    • 全局安装:pip install requests
    • 虚拟环境安装:.venv\Scripts\pip install requests

运行方法

  1. 首次运行

    • 虚拟环境:.venv\Scripts\python.exe test_kweb_nav.py
    • 首次运行会从2026-01-01开始获取所有数据
  2. 后续运行

    • 程序会智能检测CSV中最新日期,只获取缺失的最新数据
    • 避免重复爬取,减少被封风险

生成文件

  • 文件名格式KWEB_nav_data_YYYYMMDD.csv
  • 文件内容
日期
净值
价格
溢价率
2026-04-10
28.7730
28.70
-0.002536841
2026-04-09
28.7286
28.79
0.002137127
2026-04-08
29.2218
29.10
-0.004169643

功能特点

1. 一次性获取完整数据

工具采用一次性获取方式,不再分批请求,提高数据获取效率。Kraneshares API支持返回大量历史数据,确保数据的完整性。

2. 智能增量更新

  • 首次运行:从2026-01-01开始获取所有数据
  • 后续运行:只获取CSV文件中缺失的最新数据
  • 避免重复爬取,减少网络请求,降低被封风险

3. 数据质量保障

  • 日期格式统一:自动处理不同格式的日期(如2026-04-10和2026/4/10)
  • 数据匹配准确:确保每个日期的溢价率和收盘价对应正确
  • 按日期排序:数据按日期降序排列,最新数据在最前面

4. 详细的日志输出

运行过程中会输出详细的日志信息,方便用户了解数据获取和处理情况:

[INFO] 开始更新KWEB数据...
[INFO] 检测到CSV中最新日期: 2026/4/8,将从 2026-04-09 开始爬取新数据
[OK] 成功获取KWEB的Kraneshares数据,共 2 条记录
[OK] 成功获取KWEB历史收盘价: 500条记录
[OK] 添加新数据: 2026-04-09 - 净值: 28.7286, 价格: 28.79, 溢价率: 0.002137127
[OK] 数据已保存到 KWEB_nav_data_20260412.csv

注意事项

  1. 数据范围:Kraneshares API数据从2022-02-10开始,本工具只获取2026年数据
  2. 新浪数据限制:新浪历史数据最多返回500条记录,足够覆盖2026年数据
  3. 网络环境:需要稳定的网络连接,确保能访问Kraneshares官网和新浪财经
  4. 更新频率:建议每周运行一次,获取最新数据
  5. 文件管理:每天生成的新文件会覆盖旧文件,保持数据的时效性


注:本文仅供参考,不构成投资建议。投资有风险,入市需谨慎。


继续滑动看下一个
静听烟雨任平生
向上滑动看下一个