标签 净值 下的文章

用jq程序提取中国理财网站上的产品历史净值数据

我的眼睛不好,看手机屏幕五分钟以上就会眼花,视力减退。平时我尽量少地使用手机,能在台式电脑上操作的,就不在手机里操作。奈何现在各部门、各公司都在想尽办法将用户引到手机上操作,如京东手机app上可以领到的优惠券,电脑版里没有。以前,我的手机每充一次电,能用2~3天,因为我很少用手机。但最近不行了,因为我在“微众银行”上买了银行的理财产品。买之前要看产品的介绍信息,买了之后时不时要看它的涨跌幅。随着买到的理财产品越多,我看手机的时间也越来越多。这时,我发现我的视力明显下降了,我认不出迎面走来的邻居了。

我曾咨询过微众银行的工作人员,他们说只有手机app,没有电脑版,所有的信息浏览、交易等等操作,都必须在手机app里完成。手机是一个很好的身份验证工具,这个我认同。但将产品信息仅限制在手机端操作,我就很不理解了。因为电脑的屏幕比手机的屏幕大几十倍,单单查看文字、图片等信息,看电脑屏幕远比手机屏幕舒服。能否让用户按需使用最顺手终端来浏览信息呢?微众银行当然说“不”。或许,从商家的角度来看,手机app能更稳更牢地“捆绑住”用户吧。

我只好自己想办法了,目标是能在电脑里查看银行理财产品的历史净值数据。经过约两周的实践,大概有这样的思路。举例,微众银行app上有卖“信银理财 安盈象强债稳健六个月持有期1号”的产品,那么我们先搜索到这个产品在“中国理财网”的产品编码(Z7002621000234),再以这个产品编码查询到它登记到“中国理财网”的ID(2165077),之后用产品的ID查询到产品的历史净值趋势数据,最后用jq的程序提取出日期和对应的净值数字,汇出到csv表中。

我们需要先验证脚本生成的csv表的净值是否正确。拿2022-08-24的净值1.025为例,对比信银理财官网发布的pdf文件,相符。有了正确的、完整的历史净值表,就可以用电脑的表格程序计算很多参考的指标数值了,如最近一个月、三个月的年化收益率、指定时间区间的年化收益率最大数、最小数和中位数等;也可以将这些参考的指标数值绘出折线趋势图等。在电脑上重新绘出的图,可以放得很大,方便查看,比在手机app上查看灵活得多。

缺点是:不是所有份额的理财产品都有在“中国理财网”上登记。以“信银理财 安盈象强债稳健六个月持有期1号”为例,它在微众银行代销的是B类份额,“中国理财网”就没有相应的历史净值记录。

图1:用脚本查询“中国理财网”的产品历史净值csv表

图2:计算净值的涨跌幅

图3:计算最近一个月、三个月、六个月的年化收益率

图4:计算一个月、三个月、六个月内年化收益率的中位数、最大数和最小数

图5:绘出“日期”和“净值”的折线图

m2.sh 内容:

#!/bin/bash

# 输入理财产品编码,获得产品的ID
wodebm=$1
echo $wodebm
wodecha=$(curl -d "cpdjbm=$wodebm" -X POST "https://www.chinawealth.com.cn/LcSolrSearch.go" | jq -r '.List[].id')
# wodecha=2165077
wodecha=$wodecha
echo "2 $wodecha"

# 以产品的ID查询理财产品的净值表
myfile=$(curl -d "method=cpjztrend&cpid=$wodecha" -X POST "https://www.chinawealth.com.cn/lccpJzcpServlet.go")

# echo $myfile | jq --raw-output '."'"$wodecha"'"[].zjkfzqjsr.time'

# 将获得的产品净值表,用jq程序处理:先转换时间,再提取出时间和与对应的净值数字,最后以csv文件格式保存
# echo $myfile | jq --raw-output '."'"$wodecha"'"[].zjkfzqjsr.time|= (tonumber|. / 1000 + 28800 |strftime("%Y-%m-%d"))'
echo $myfile | jq --raw-output '."'"$wodecha"'"[].zjkfzqjsr.time|= (tonumber|. / 1000 + 28800 |strftime("%Y-%m-%d")) | [."'"$wodecha"'"[] | {date: .zjkfzqjsr.time, nav: .cpjz}] | (map(keys) | add | unique) as $cols | $cols, map(. as $row | $cols | map($row[.]))[] | @csv' > $wodebm.csv

参考:

为何下载银行理财产品的历史净值表这么难

某天,吖江约上东山岭。碰头时,我看到吖江手里拎了个胶袋,有点好奇,不知道里边装了什么。上到顶,有个平台,平台立着一张石圆桌,圆桌四边还有石凳。

我在平台上大概走了一小圈,缓缓气后就话,“走”。
“慢”。吖江应声。
“做惹?”我瞄了一下他。
“算下‘二十四’来”。吖江的一只手,拢进胶袋,拿出一副牌。
“哈?”我懵了,以为上次吖江只系随便讲下。不曾想到,佢真有闲情在东山岭顶打牌,算二十四点。

“算二十四点”的玩法是,俩人各分一半的牌(数),然后随机各自出两张牌,看谁先将四张牌的点数用“加减乘除”法凑成二十四,如3乘8得24、12加12得24。输的一方要收回四张牌。最后看谁手上的牌少,谁就是最终赢家。

分牌时,我心里打起了小咚鼓,因为我看到吖光仅从牌盒中拿走两张鬼(牌)。“10是10点、J是11点,Q是12点,K是13点。”果然,吖江将这些人像牌也作为计算的底牌。我数学不好的,单张牌最大点数是9的话,还勉强可以应付。现在有K等,让我觉得心算的难度上了不止一个台阶。牌未开,我信心就削了半截。想到读小学时,我是被留过堂(课),罚背乘法表的。不出所料,强行上阵的我,几个回合后,连续收了好多张牌。我算不过吖江,难免吃败仗。

上山回来后,我还在想怎么能更快、更多则地算“二十四点”。突然联想到,我最近买“银行理财”产品,买到后它就跌,是不是也与我数学不好有关?我选择理财产品,是看它显示的年化收益率。如在“微众银行app”上的产品,“信银理财 安盈象强债稳健六个月持有期”,显示是“4.67%”的年化收益率,大大的红色字体,很能吸引人的眼球。收益率下边的,用小字写着“近六个月年化收益率”。我好奇,点了小字旁边的小箭头图标,切换显示到“近三个月年化收益率3.08%”、“成立以来年化收益率4.76%”。我想啊,如果它默认显示的是“近三个月年化收益率”,就是最低的那个3.08%,可能我就滑过,不对它有购买的兴趣了。顿时,我觉得我从“微众银行app”上读到的信息是被“筛选”、“美化”过的。在狭小的手机屏幕里,展示的信息有限,要是我有一份这个理财产品的历史净值表数据,那我不就可以计算出各个指定时间区间的年化收益率,以帮助我判断这个理财产品合不合适购买。当前,顺手的计算工具是电脑的表格程序,如excel表。要是他们能提供产品的历史净值excel表或csv文件,那该多好啊,我能直接复制到表格里套上公式计算了,省事省力。

我先在“微众银行app”查看某个理财产品的历史净值。产品的页面默认仅显示最近一个月的单位净值,要点“查看更多”,才能看全些。如果这个产品是每个工作日都会公布当日净值的,那么要滑手机屏五、六次才能看到近半年的净值数字。如果页面的数据多,“微众银行app”还会突然退出,要重新点开app。总之,我在“微众银行app”翻了好久,没有找到下载或导出产品历史净值文件的功能。

然后,我在网上搜索“理财产品历史净值”的关键词,发现产品的发行人,即银行理财子公司的网站有公布产品的净值,但那是当天或最近一个周期的净值,不包含之前日期的净值。我先后打“南银理财”和“华夏银行”的客服电话,她们都说目前没有在网上发布完整的历史净值文件。我又想到,“中国理财网”是官方的,这个监管银行理财产品的网站,会不会有产品的历史净值数据呢?我打开网站一看,真的有。我高兴了一下,但马上又失望了。因为“中国理财网”展示的是产品历史净值的折线图,不是原始的数据。并且难以理解的是,“中国理财网”对产品展示的页面做了限制:不允许用鼠标选中和复制内容。顿时,我由失望变成恼怒了:银行理财产品是你们要求改成净值化、不保本这样运营的,为什么现在连产品最重要的、最基本属性的“净值”数据都不对大众开放?如果我们要自己计算收益率,只能用纸和笔,一个数值一个数值地从手机app里抄下来吗?既然把银行理财产品放到市场里给大家买,为什么又要这么遮着掩着?

“算二十四点”,对于多数普通人来说,可能就系在四张牌中用不同的算法“组合”成二十四点。因为牌点总共才13张,常常练,每天算来算去,也会慢慢熟悉的,知得哪些牌组成二十四点的可能性较大。如此一来,就是数学不及格的我,凭着记忆力,也能对付对付。同理,银行的理财产品,如果每个用户在购买之前,能看到原始的历史净值,能根据自己的需求生成图表和算出参考指标,应该能做出符合自已实际情况的判断,最后决定买不买。便捷的、原始的、完整的历史净值数据,也能反映出理财产品发行人的管理能力,有利于市场的竞争。如果理财产品的代销机构、理财产品的发行机构、理财产品的监管机购没一个能提供可方便用户计算的历史净值数据表,那么就是在“二十四”的游戏中不给看底牌,不讲解怎么算得二十四点,没得玩。