网络日志

 

娱乐

 

第一页

上一页

下一页

最后一页

 

Switch to English

   

华宝油气净值估算的PHP程序

2015年8月18日
眼看Qualcomm收购CSR股票的现金快要到账,最近我在琢磨在A股中国特色的QDII基金华宝油气和美股XOP之间套利。每天看Yahoo新浪等网站的股票行情,时不时还要用鼠标点开计算器算算转换价格,时间长了后有点烦。
后来我想起来5年前学习的PHP,于是打算写我的第二个PHP程序,统一把套利需要常看的行情显示在一起。 同时根据SPDR标普油气开采指数ETF(XOP)、标普油气开采指数(^SPSIOP)、以及美元对人民币的汇率计算SZ162411净值。今天出了第一版,记录下相关开发过程以备日后查阅。A股的QDII基金缺乏及时的信息更新,希望这里能够补上这个生态位空缺。
谢谢abkoooo帮助提供了新浪实时美股数据接口的格式。 美股、A股、期货和汇率都用新浪实时的数据接口:http://hq.sinajs.cn/list=gb_xop,sz162411,hf_CL,USDCNY
一开始发现无论怎么弄fopen打开这些链接都会失败,估计是我用的Yahoo网站服务不支持allow_url_fopen。 在网上找解决方法,发现应该用早就有的curl。抄了2段curl代码,仿照file_get_contents函数的名字加了个url_get_contents函数。
为提高页面反应速度,使用2个文件gb_xop.txtsz162411.txt分别保存最后更新的股票数据,同时实施以下优化:

  1. 跟文件时间在同一分钟内的页面请求直接使用原来文件内的数据。
  2. 美股盘后交易结束后的页面请求直接使用gb_xop.txt内的美股数据。
  3. A股闭市后的页面请求直接使用sz162411.txt内的A股数据。

类似的,原油期货数据缓存在文件hf_cl.txt,美元人民币汇率数据在usdcny.txt。
所有的代码最终都会烂到无法维护,成功的项目就是在烂掉之前发布出去的。

SMA

2015年8月20日
为严格交易规则, 套利过程中我打算简单的在均线上下单买卖XOP. 这个版本加入下一个交易日XOP预计的常用SMA均线值, 以及当前成交价格相对于华宝油气对应净值的溢价.
作为一个懒人, 我给自己预定的交易模式是盘前下单, 交易时间不盯盘. 关注过新浪等网站提供的均线指标的都知道, 这些值是随着当天的交易一直在变动的. 因此我需要在盘前下单时先算出一个不动点用于买卖.
从最简单的5日线说起:
A5 = (X0 + X1 + X2 + X3 + X4) / 5;
其中X0是当天交易价, X1-X4是前4个交易日的收盘价. 为方便起见, 可以把 (X1 + X2 + X3 + X4) 写成 ∑X4. 按这个模式, 任意日的简单均线SMA可以表示成:
An = (X0 + ∑Xm) / n; 其中m = n - 1;
在什么时候会有一个不动点可以用于买卖呢? 显然是An = X0的时候, 这样An = (An + ∑Xm) / n, 从这个简单的一元一次方程可以解出An不依赖于X0的表达式:
An = ∑Xm / (n - 1); 或者 An = ∑Xm / m;
这样就很清楚了, 当我说5日线的时候, 我实际算的是前4个交易日收盘价的平均值. 当我说20周线的时候, 我实际算的是前19周每周最后一个交易日收盘价的平均值. 这样算出来的不动点是极限值, 所以我整天装神弄鬼说XOP过了什么什么均线算强势, 没过什么什么均线算弱势. 而这些装神弄鬼的背后, 其实用到的都是小学数学.
XOP历史数据每天只需要更新一次, 采用Yahoo股票历史数据: https://finance.yahoo.com/quote/XOP/history,
同样每天只需要更新一次的还有华宝油气基金官方净值, 来自于http://hq.sinajs.cn/list=f_162411, 使用文件f_162411.txt缓存, 因为不知道什么时候更新当日数据, 只好采用一个小时更新一次的笨办法.
增加调试文件debug.txt用于临时查看数据.

检测手机

2015年8月21日
发了这个工具小软件链接后, 昨天翻墙出去看了一下Google Analytics的统计. 上线3天, 总共289个IP访问了584次. 跟Palmmicro通常的客户访问网站极大不同的是, 访问这个工具的有1/3用的是手机. 于是匆忙加上为手机用户优化显示界面的代码.
使用http://mobiledetect.net/判断是否手机用户访问, 代码从github复制下来按照原开发者的建议单独放在/php/class/Mobile_Detect.php中.

增加历史价格页面

2015年8月24日
每次进https://palmmicro.com/apps/phpMyAdmin/去看历史数据虽然不算麻烦, 但是毕竟还是用自己写的网页看更有成就感!

历史价格
日期开盘最高最低价格成交量复权价格
2022-05-18 141.5 141.5 133.46 136.03 6547854 136.03
2022-05-17 139.1 141.52 137.47 140.66 6306100 140.66
2022-05-16 134.51 138.67 134.08 136.68 8527000 136.68
2022-05-13 130.75 134.97 130.75 133.63 6142400 133.63
2022-05-12 127.52 130.16 124.51 128.19 7486500 128.19
2022-05-11 131.21 135.2 128.22 128.47 7574000 128.47
2022-05-10 129.02 132.18 123.47 127.86 8649200 127.86
2022-05-09 138.23 138.33 126.53 127.24 12550500 127.24
2022-05-06 141.82 142.51 137.48 141.88 6445400 141.88
2022-05-05 144.9 145.33 135.93 140.05 8953500 140.05

扩大规模到香港QDII

2015年8月27日
整理代码最好的方式是多开发几个类似QDII工具. 伴随最近抄底港股加入恒生ETFH股ETF净值计算工具. 观摩美股崩盘期间顺手加入了标普500净值计算工具, 也许日后会用上.

股票交易记录

2015年9月13日
跟我的第一个PHP程序结合起来, 用户登录后可以输入相关股票交易记录. 根据交易记录计算华宝油气和XOP对冲交易策略和数据.
交易记录的输入和处理分别在文件/woody/res/php/_edittransactionform.php和/woody/res/php/_submittransaction.php. 同时修改Visual C++的Woody的网站工具对_editXXXform.php名字格式的自动生成对应的_submitXXX.php文件.

ADR工具

2015年11月7日
继续用网页工具代替手工按计算器的工作, 为港股在美股的ADR加入中国铝业, 中国人寿, 中国石油, 中国石化, 上海石化, 东方航空南方航空等价格比较工具.
加入ADR后, 把ADR和QDII用到的共同股票数据部分放到StockReference类中, 用在_QdiiAccount类和_AdrAccount类中.
继续整理代码, 为热心吃螃蟹的用户们增加纳指ETF, 恒生H股, 国泰商品, 石油基金, 诺安油气信诚四国等页面.

增加基金溢价记录页面

2016年1月8日
塔夫男等人的建议下, 加入华宝油气基金历史表格记录每天的折价溢价情况. 最近几天的直接显示在当前页面, 同时增加单独显示全部历史数据的页面.

SZ162411的历史价格相对于净值溢价 基金溢价记录
日期价格净值溢价官方估值时间误差XOP净值
2022-05-190.6870.68440.38%0.68505:000.13%135.86
2022-05-180.7050.7129-1.11%0.71305:450140.73
2022-05-170.6910.6938-0.4%0.69405:570136.73
2022-05-160.6680.6795-1.69%0.67905:14-0.09%133.69
2022-05-130.6560.64671.44%0.64705:070128.18
2022-05-120.6470.6488-0.28%0.64805:200128.58
2022-05-110.6560.64461.77%0.64409:190128.1
2022-05-100.6460.63781.29%0.63805:050.08%127.15
2022-05-090.7020.70200.70105:13-0.08%141.93
2022-05-060.6960.68631.41%0.68705:410.1%140.07

统一数据显示格式

2016年1月26日
oldwain的建议下,在相关价格记录的时间中加入日期显示。原来版本中没有它是因为自己觉得交易日期很明显,完全没有必要出来占地方。不过既然有人觉得有问题,我就效仿白居易写诗先读给妇孺听的优良传统改了。 估计跟我从2000年开始就在美股赔钱不同,很多人还是不熟悉美国股市交易时间。而在这里,美股数据后面跟的是美东日期和时间。
虽说是个小的分离数据和显示改动,但是忍不住哗啦哗啦又整理优化了一大片代码。 把原来的StockReference类作为基础类,原来期货和汇率数据读取分别改为继承自它的FutureReference类和ForexReference类,达到统一数据显示格式的目的。

参考数据
代码价格涨幅日期时间名称
SZ1624110.688-2.41%2022-05-1915:00华宝油气-华宝标普油气上游股票(QDII-LOF)A

华宝油气这个名称里的中文基本上大家都认识,而括号内的那些英文字母,绝大多数的美国人都不会认识。
把Google设置成显示英文结果,然后查QDII,百度百科的中文页面显示在搜索结果的第2位,第3位是Wiki。听过一个笑话,一个腹黑的HR问程序员求职者碰到问题怎么办,回答去查百度的都会被默默的拒掉,因此我就不去看它了。 Wiki的QDII词条下显示了它是Qualified Domestic Institutional Investor的简称,同时用简体和繁体标注了合格境内机构投资者。
跟QDII一样,LOF也是一个出生和仅用于中国的英文简写。它更惨,英文的Google完全没有收录它的中国用途:Listed Open-Ended Fund的简写,意思是上市型开放式基金。
跟QDII和LOF不同,ETF是个货真价实的英文简写。常出现的XOP就是美股的ETF。对我来说,A股的ETF和LOF的区别按重要性排列如下:

  1. ETF通常都是100%仓位,而LOF一般不会超过95%的仓位。仓位上的细节会决定估值的准确度。
  2. A股ETF和LOF可以从6位数字代码上区分。深市ETF代码从150000到159999,深市LOF代码从160000到169999。沪市ETF代码从510000到518999,沪市LOF代码从500000到509999。SH510900就是一个沪市ETF。
  3. A股ETF的申购门槛通常至少都是50万份或者100万份,我这种穷套利者玩不起,所以其实我到现在也没搞清楚具体到底是50万还是100万。在美股市场,ETF的申赎基本上都是由做市商完成的。可以看出,A股从制度上来说其实有利于套利群体。
  4. ETF的申赎会比同类型LOF早一个交易日确认。对有钱的套利者来说,就可以少担一个交易日的风险。

夜深忽梦少年事 梦啼妆泪红阑干

增加净值记录页面

2016年2月22日
有人跟我指出基金溢价记录中净值的日期显示早了一天,我差点一口鲜血吐在了键盘上。用脚趾头想想,要计算华宝油气当天的交易溢价,肯定是要跟前一天的净值比较啊。当天的净值要等当晚美股收盘后才出来,否则的话我写这个净值估算有什么意义呢。
把当天的交易价格跟前一天的净值放在一起比较,其实也正是我平时最为推崇的不同数据显示方式引导不同思维模式的举措。 不过为了避免以后还有人搞混淆,我干脆另外加了一个单独的净值记录显示页面,算上最开始的历史价格,现在总共有3个历史数据页面了。

周期3意味着混沌

2016年2月26日
华宝油气持续溢价10%已经成了常态, 最近最高甚至到了17%, 华宝油气和XOP套利没法做了.
继续整理同类代码, 这次下手目标是MySQL相关部分. 加入MysqlReference类继承自StockReference类. 集中代码处理历史记录和净值校准等数据库内容. 再加入MyStockReference类继承自MysqlReference, 从此代替StockReference类作为股票数据实例. FundReference, FutureReferenceForexReference同时也改为继承自MysqlReference. 从MysqlReference开始调用了数据库相关函数.

美国夏令时开始

2016年3月14日
美国进入夏令时, 发现一个bug: date_default_timezone_set('EST')是没有夏令时的, 要用date_default_timezone_set('America/New_York')或者date_default_timezone_set('EDT').

黄金白银

2016年3月25日
趁复活节假日黄金期货GC停止交易, 校准A股黄金白银系列的净值计算工具. 目前包括国泰黄金ETF, 华安黄金ETF, 易方达黄金ETF, 博时黄金ETF, 添富贵金LOF, 嘉实黄金LOF易方达黄金LOF.
一直有用户建议我在华宝油气等QDII的基金溢价记录表格上加入预估净值比较栏目. 除了不愿意直接打自己嘴巴外的心理因素外, 我迟迟没有加上它的原因主要是估值是实时变化的. 我一直想不清楚是该加在美股收盘后的预估净值还是A股收盘后的.
在QDII的代码中, 单独的预估净值变量原本放在_QdiiAccount类中. 而在新的黄金白银_GoldSilverAccount类中又用到了FundReference类. 自然而然的, 我把预估净值的变量挪到了FundReference类中. 当预估净值和当日净值的变量排列在一起后, 突然之间数据结构引导思维方式的例子再次爆发, 没有比在记录当日净值的时候同时记录预估净值更合理的了!
由于在股票交易日的净值系列页面访问量已经稳定在了1000左右, 最高的一天有接近1700, 我一直在琢磨如何优化页面应对以后可能的更大的访问量高峰. 把只会每天变化一次的SMA计算结果保存下来是很容易想到的, 但是之前一直没有做. 在搞完7个黄金基金的校准后, 我意识到同一个GLD要在包括GC黄金期货的8个页面各算一遍, 觉得不能再忍下去了.
基于之前在网上找Mobile-Detect代码的经验, 我极大的低估了找一个现成的读写配置文件的php类的难度. 比较容易找到的是一个要收费5美元的, 号称同时支持文件和mysql读写配置. 而我就是不想多搞mysql的表才想用文件存的, 不免觉得这5美元有点浪费. 最后好不容易才翻到免费的INIFile. 这个类原本只支持在已经存在的配置文件上修改, 让我这个PHP新手折腾改了好几个小时才顺利用上.

新浪实时港股数据

2016年4月23日
均金无忌的帮助下使用新浪实时港股数据(http://hq.sinajs.cn/list=rt_hk02828), 替代原来延迟15分钟的新浪股票数据.
刚过去的周4净值页面系列的当日总访问量创纪录的超过了2200, 激励我继续优化页面反应速度.

近几年来最低级的bug

2016年5月15日
上周人民币又开始贬值, 让华宝油气估值暴露出一个新bug, 到了13号周5的时候, 我的估值居然比官方数据高了差不多一个百分点了. 周末开始查问题, 发现最后一次自动校准还是12号晚上拿到11号的官方净值后, 而本应该在13号晚上拿到12号官方净值后的自动校准居然没有做. 也就是说, 在过去的一段时间内, 自动校准都不知不觉的晚了一天, 只不过在汇率平稳的情况下这个问题暴露不出来而已.
找到问题并不难, 春节后为了用最简单的方法解决中美轮流休市导致的估值问题, 因为只有港股QDII会出现QDII净值数据比ETF新的情况, 我按照是否港股QDII重新整理了部分代码, 对美股QDII就不考虑根据今天的QDII净值和昨天ETF价格校准的情况了. 结果无意改了个其实无关的代码, 把$iHours = STOCK_HOUR_END + ($this->usdhkd_ref ? 0 : 24);写成了$iHours = STOCK_HOUR_END + ($this->usdhkd_ref) ? 0 : 24;
不过这个bug严重打击了我的自信心. 这一次我没法用自己是个6年的PHP新手来自嘲了, 在我自豪的写了25年的C语言中, 这同样是个超级低级的错误!

持仓盈利

2016年6月5日
王小波总是不忘记唠叨他写了自己用的编辑软件,在20年前我是暗自嘲笑的。没想到过了这么些年以后,我也开始写自己用的炒股软件了。不同的年龄段心态是完全不同的。
持仓盈利功能刚完成的时候页面出来得奇慢无比,而接下来刷新就会快很多。因为对自己的MySQL水平没有自信心,我一头扎进了优化数据库的工作中。 优化了一些明显的问题,例如扩展了stockgroupitem表的内容,把stocktransaction表中groupitem_id相同的交易预先统计好存在stockgroupitem表中,避免每次都重新查询stocktransaction表然后重新计算一次。 不过折腾了一大圈后并没有明显的改善,倒是在这个过程中理清了原来闭着眼睛写的代码的内在逻辑,看出来了问题的根源。
在按member_id查询stockgroup表找到这个人所有的股票分组后,我会对每个stockgroup直接构造MyStockGroup类, 在它原来的构造函数代码中,会马上对该stockgroup中的每个stock构建一个MyStockTransaction类, 而MyStockTransaction的构造函数又需要这个stock的MyStockReference类作为参数, 如果没有现成的实例可用,就会新构造一个。结果就是在首次统计持仓盈利的过程中,我会把几乎所有股票的数据都去新浪拿一遍,难怪那么慢。
找到问题就好办了,首先判断stockgroup中stock对应的groupitem_id到底有没有交易记录,没有的话就不去构造MyStockTransaction类。另外预先统计好有交易记录的stock,统一去预取一下新浪数据。
随后我把预取数据的思路用在了所有需要读取新浪数据的地方,包括华宝油气净值计算在内,所有的页面反应速度都有不同程度的提升。原来我说因为网站服务器在美国所以访问慢的理由看来并不是那么准确的!
一头特立独行的猪:趴在墙头看人杀猪。
一头特立独行的猪:趴在墙头看人杀猪。

QDII工具中考虑当日CL交易情况后的T+1估值

2016年8月18日
发现有人的Excel计算表格中有这一项,我也就顺应潮流把它加上了。大概是沿用集思录的叫法,把已经公布的净值称为T-1、把估算的官方将要公布的下一日净值称为T、而把考虑了当日美油期货CL变动的称为T+1估值,大致意思是用白天CL的变动预测晚上XOP的变动。 按我自己的看法,拉长到1年看CL和XOP对应关系可能是不错,但是具体到每一天就未必了,所以在我自己的套利交易中目前是不考虑这个T+1估值的。当然需要进行期货交易也是我不做它的一个重要因素,怕不小心杠杆赌大了把自己搞破产。一手CL是1000桶,目前每桶油价大约45美元,也就是说每次要交易45000美元的货值。
这个T+1估值假定SZ162411和CL关联程度是100%,XOP和USO关联程度也是按照100%估算。由于估值依赖CL和USO在美股交易时段的自动校准,每个月20日左右CL期货换月的当天估值是不准确的。 另外因为CL期货的每日结算价格通常跟收盘价不同,也不同于我在估值中实际用来参考的美股收盘时的CL价格,有可能出现CL参考价格的显示高于上一日,而T+1估值低于T估值的情况。
因为特立独行的原因,我不喜欢T-1/T/T+1这种叫法。于是我在网页中把T-1直接写成了净值,T日估值称为官方估值,而把T+1估值称为实时估值。另外还有一个参考估值,接下来解释一下这些看上去混乱的估值名称。
先说明一下如何把华宝油气估值精确到0.0001元。说实在话,一开始我也不可能想到花了整整1年时间才做到这一点。

  1. 要使用^SPSIOP或者XOP的净值,而不是XOP的交易价,2者通常收盘并不一致。
  2. 要使用美元人民币中间价,而不是新浪的美元汇率实时交易价格。
  3. LOF基金要按95%仓位的处理,而不是ETF基金的100%。

代码净值官方估值溢价参考估值溢价实时估值溢价
SZ1624110.68440.6840.53%0.6850.38%0.6633.85%

估值因素官方估值参考估值实时估值
T日美股交易XOP净值XOP净值XOP净值
CL期货
美元人民币中间价T日T/T+1日T/T+1日

从上表可以看出,参考估值和实时估值的区别仅仅是用不用CL的实时交易数据。相对于官方估值,当美元人民币中间价波动比较大的时候参考估值就值得关注了,此外在A股或者美股休市的日子里, 它也比官方估值更能反映实际的净值。 至于为什么叫它参考估值,那是因为我也不知道给它取什么名字好。事实上,在英文版本和软件代码中我给它取名为FairEst,意思是一个公平的估值。
在A股开市日期的美股交易时段,这3个估值通常都是完全一致的,参考估值因此不会显示出来。如果偶尔出现官方估值和实时估值不同,那是因为CL和USO的数据没能在同一分钟内自动校准或者软件出了未知BUG。显然在美股交易时段是没有T+1的美元人民币中间价的,此时的实时估值用的只能是T日的美元人民币中间价。 此时所有的估值和校准都是为美股结束后的参考估值和实时估值做准备,用户只需要看官方估值即可。
在美股交易结束后,这3个估值就开始分道扬镳了。T日官方估值不会再变化。CL通常会在美股收盘后继续多交易一个小时,此时实时估值也就会随之变化。等到第2天,软件会去自动拿通常在9点15分发布的T+1日美元人民币中间价,参考估值会因此改变固定在新值上,实时估值也会在这时候开始用T+1日美元人民币中间价。
赢了会所嫩模输了下海挖沙的老头
赢了会所嫩模输了下海挖沙的老头
写了这么多细节,最后着重列一下大家最关心的:

  1. 验证估值准确程度和测算申购赎回的成本,看官方估值。
  2. 按溢价折价决定当日是否套利和做跟XOP配对交易的,看参考估值。折价不申购,溢价不赎回。
  3. 做跟美油期货CL配对交易的,看实时估值。

小心愿佯谬

2016年9月18日
不知不觉中宣传和实践华宝油气和XOP跨市场套利已经快2年了. 期间碰到过LIFEFORCE这种自己动手回测验证一下能赚钱就果断开干的, 也有老孙这种数学爱好者回测验证一下能赚个年化10%后就袖手旁观的, 还有常胜将军Billyye这种觉得华宝油气可以看成无非是XOP延长了的盘前盘后交易没有多少套利意义的. 最气人的是thanous这种, 总是喜欢说大资金如何牛, 如果白天华宝油气在大交易量下溢价, 晚上XOP必然是要涨的, 彻底否定套利的根基.
最近几个月华宝油气折价多溢价少, 经历了几次溢价的情况后, 发现thanous的说法基本靠谱, 我于是开始按他的名字命名为小心愿定律. 中秋节前最后一个交易日华宝油气又溢价了, 大熊宝宝--林某人建议我实际测算一下, 正好放假闲着也是闲着, 就削尖铅笔搞了个新页面测试小心愿佯谬. 我网站记录了从去年底以来所有的华宝油气数据, 跑了下从去年底到现在的统计结果没有觉得小心愿定律能成立, 于是改名为小心愿佯谬. 但是去掉春节前后华宝油气因为停止申购导致的长期溢价的影响, 只考虑最近100个交易日的情况后, 有趣的结果出现了:
Screen shot of test Thanous Law on Sep 18, 2016
这里只统计了94个数据, 因为美股休市没有交易的日子被忽略了. 在华宝油气折价交易的情况下, 当晚XOP依旧是涨跌互现没有什么规律. 但是在平价和溢价的时候, 小心愿定律的确是明显大概率成立的!
说白了, 如果你发现了什么交易上的规律, 只是因为交易得不够多而已.

增加校准记录页面

2016年10月6日
在华宝油气估值的时候,每次拿到官方发布的净值后都会根据净值当天的美股数据和美元人民币中间价做一次自动校准,从现在开始全部在SZ162411校准记录页面记录下来,方便观察长期趋势。校准时间就是拿到新的官方净值后第一次访问的时间。 类似的版面上还有CL和USO校准记录,用在QDII基金的实时估值上。
碰到XOP分红除权的日子,就需要进行手工校准。否则的话要等下一次自动校准后,估值结果才会再次正确。

增加A股和H股对比页面

2017年1月28日
为了有效配合今年的打新计划,我打算扩大中国石化外的门票范围。但是同时沿用AH股价格比较的思路,只选取A股价格低于H股的作为门票。
微信公众号搞了几个月,使用者寥寥。不过开发微信公众号的过程中有个意外收获,帮助我彻底区分了净值计算和用户显示界面的代码。为了充分利用这个好处,我马上把它也包括在了微信公众号的查询结果中:输入600028或者00386试试看。
数据来源:http://www.aastocks.com/tc/market/ah.aspx
同时增加个对比页面:

A股和H股对比 AH历史价格比较
代码H股代码A股价格H股人民币¥A/H比价H/A比价
SH600028003864.293.381.26880.7881

布林线

2017年4月2日
SMA均线交易XOP很有效, 但是有时候会在价格突破所有均线后失去用武之地, 因此我把布林线也加入进了交易系统, 跟SMA放同一个表格中显示.
同样为避免半夜盯盘, 我还是需要一个不动的布林线交易点. 这时候小学数学就不够了, 要用到一点初中数学知识. 沿用上面的SMA表达方式, 布林线的出发点依然是简单均线SMA, 可以换个符号写成:
B = An = (X0 + ∑Xm) / n; 其中m = n - 1;
在计算出B后, 继续计算标准差σ:
σ² = ((X0 - B)² + (X1 - B)² + (X2 - B)² + ... + (Xm - B)²) / n;
B和σ都计算出来后, 布林上轨是B + 2 * σ; 布林下轨是B - 2 * σ;
现在来计算用来交易的不动点, 为简化起见, 先只考虑布林下轨, 就是说当天交易价格X0刚好到布林下轨的情况, 用这个价格计算对应的布林值. 写成条件是:
X0 = B - 2 * σ;
带入到上面计算B的公式后得到:
B = (B - 2 * σ + ∑Xm) / n
从而解出σ = (∑Xm - (n - 1) * B) / 2; 或者 σ = (∑Xm - m * B) / 2;
再把条件 X0 = B - 2 * σ; 带入到计算σ的公式后得到:
σ² = (4 * σ² + (X1 - B)² + (X2 - B)² + ... + (Xm - B)²) / n;
定义∑Xm² = X1² + X2² + ... Xm²; 上面可以写成:
(n - 4) * σ² = ∑Xm² - 2 * ∑Xm * B + m * B²;
带入上面解出的σ = (∑Xm - m * B) / 2; 最后得到一个B的一元二次方程:
(n - 4) * (∑Xm - m * B)² = 4 * ∑Xm² - 8 * ∑Xm * B + 4 * m * B²;
令 k = n - 4; 写成标准的ax²+bx+c=0的格式:
a = k * m² - 4 * m;
b = (8 - 2 * k * m) * ∑Xm;
c = k * (∑Xm)² - 4 * ∑Xm²;
The roots of quadratic equation with one unknown
做计算机最擅长的事情, 解出这个方程的2个根得到2个不同B值. 然后数学的神奇魅力出现了, 虽然列方程的时候只考虑了布林下轨, 解出B的2个值以及对应的σ后, 却同时得到了不依赖于当天交易价X0的布林上轨和布林下轨值.
实际应用中我采用大家都用的20天布林线, 也就是说n = 20, 而我是用前19个交易日的收盘价算的当日不动点的布林上轨和布林下轨, 作为交易价格. 不像简单均线SMA的不动点, 可以从一元一次方程中解出一个很容易理解的表述: 20天的SMA不动点就是前19天收盘价的平均值. 解布林线一元二次方程得到的结果就没有一个类似的容易理解的表述了, 很难说它是什么, 但是可以很简单的说它不是什么, 它不是只算19天的布林上轨和布林下轨. 事实上, 因为考虑的都是极限因素, 20天布林上下轨不动点的开口要比只算前19天的布林上下轨大, 就是说, 下轨更低一点而上轨更高一点.
Script for bollinger quadratic equation with one unknown
感觉好久没做这么复杂的数学了, 把计算过程拍了个照片留念一下.
你永远比你想象中更勇敢 -- 相信梦想

200天和50天EMA均线

2017年10月1日
均线交易中加入美股最看重的牛熊分界线200天EMA均线和小牛熊分界线50天EMA均线.
用En表示今天的n天EMA值, 其它沿用前面的符号,
En = k * X0 + (1 - k) * Em; 其中m = n - 1; k = 2 / (n + 1)
不动点En = X0, 得到En = Em, 就是说今天的不动点就是昨天的值. 所以唯一要做的就是每天收盘后算一下当天的EMA.

走火入魔的T+1均线

2018年3月27日
从宇宙观上来说, 我是不相信历史能够预测未来的, 当然也就不相信技术分析能够预测市场. 但是交易XOP这4年多来, 我却在技术指标上一步一步加码. 从SMA均线, 布林线到美股牛熊分界线EMA均线, 我都觉得自己变成了一个神棍.
现在居然搞起了T+1均线, 原因是我发现XOP的SMA周线和月线经常能做出非常准的交易价格预测, 但是SMA日线和和布林线就不如前2者. 而另外一方面, XOP的收盘价却经常会刚好在第2天我计算出来的SMA日线或者布林线上. 这让我猜想每天交易结束前也许有人偷跑, 会提前估算在第二天的均线位置上交易. 偷跑也可以解释为什么我觉得周线和月线准确, 因为要在周5和月末最后一个交易日才会出现周线和月线上的偷跑, 总体概率就小了.
计算SMA的偷跑很简单, 沿用前面SMA的表述:
An = (X0 + ∑Xm) / n; 其中m = n - 1; 改写为
An = (X0 + X1 + ∑Xm) / n; 其中m = n - 2;
偷跑的情况下, 不动点是An = X0 = X1, 这样An = (An + An + ∑Xm) / n, 从这可以解出An不依赖于X0和X1的表达式:
An = ∑Xm / (n - 2); 或者 An = ∑Xm / m;
这个结果可以非常简单的理解成, 5日SMA偷跑的T+1结果, 就是算一下前3天的SMA均线而已.
再来依葫芦画瓢算布林线的偷跑:
B = An = (X0 + X1 + ∑Xm) / n; 其中m = n - 2;
还是先只考虑布林下轨, 偷跑交易的不动点写成条件是:
X0 = X1 = B - 2 * σ; 带入上面得到:
B = (B - 2 * σ + B - 2 * σ + ∑Xm) / n;
从而解出σ = (∑Xm - (n - 2) * B) / 4; 或者 σ = (∑Xm - m * B) / 4;
在把条件X0 = X1 = B - 2 * σ; 带入标准差σ计算公式: σ² = ((X0 - B)² + (X1 - B)² + (X2 - B)² + ... + (Xm - B)²) / n; 得到:
σ² = (4 * σ² + 4 * σ² + (X2 - B)² + ... + (Xm - B)²) / n;
定义∑Xm² = X2² + ... Xm²; 上面可以写成:
(n - 8) * σ² = ∑Xm² - 2 * ∑Xm * B + m * B²;
带入上面解出的σ = (∑Xm - m * B) / 4; 最后得到一个B的一元二次方程:
(n - 8) * (∑Xm - m * B)² = 16 * ∑Xm² - 32 * ∑Xm * B + 16 * m * B²;
令 k = n - 8; 写成标准的ax²+bx+c=0的格式:
a = k * m² - 16 * m;
b = (32 - 2 * k * m) * ∑Xm;
c = k * (∑Xm)² - 16 * ∑Xm²;
最后解出结果.
EMA设计精巧, 不存在偷跑的问题, 所以这里没有T+1估值.

XOP 2022-05-18数据 牛市 历史价格
均线估值溢价T+1估值溢价SZ162411估值T+1估值
5日136.75-0.53%137.79-1.28%0.690.695
10日133.41.97%132.352.78%0.6740.669
20日134.011.51%134.051.48%0.6770.677
布林上轨145.48-6.49%148.47-8.38%0.7310.746
布林下轨122.5411.01%119.6313.71%0.6220.608
5周135.150.65%135.770.19%0.6820.685
10周136.13-0.08%137.56-1.11%0.6870.694
20周123.1510.46%124.29.53%0.6240.63
周布林上轨155.63-12.59%162.97-16.53%0.780.815
周布林下轨90.6750.02%85.4259.24%0.4690.444
5月122.2511.27%127.616.6%0.620.646
10月107.0927.02%110.2823.35%0.5480.563
20月88.3553.96%91.0749.38%0.4580.471
月布林上轨144.56-5.9%153.38-11.31%0.7270.769
月布林下轨32.15323.15%28.75373.2%0.1880.172
小牛熊分界131.523.43%0.665
牛熊分界111.6421.84%0.569

增加ADR和H股对比页面

2018年4月4日
雪球创始人方三文,自称不明真相的群众。平时总是苦口婆心的把盈亏同源放在嘴边,鼓动大家通过雪球资管做资产配置。但是他却认为自己对互联网企业有深刻理解,在推销自己私募的时候总是鼓吹腾讯和FB,又把盈亏同源抛在脑后了。
最近2个月腾讯结束了屡创新高的行情,开始跟FB一起下跌,引发了大家抄底雪球方丈的热情。不仅港股腾讯00700每天巨量交易,就连它在美股粉单市场的ADR在雪球上都热闹非凡。 这吸引了我的注意力,然后发现除了在ADR工具中已经包括的外,港股还有其它不少股票也有美股市场的ADR。于是我按照原来A股和H股对比的套路增加了个页面蹭一下热度。同时也加入到了微信公众号的查询中:输入腾讯或者00700试试看。
数据来源:http://www.aastocks.com/tc/market/adr.aspx
两年半前刚接触ADR的时候,也正是我刚开始使用PHP类的时候。明知道三体会导致混沌,我还是咬着牙写了一个囊括了A/H/ADR三者关系复杂实现,然后至今没有敢再去读第2遍代码。在连续增加了更有普遍意义的A/H和ADR/H比较页面后,我看到了降维打击的可能性。
从数据库的表格开始,TableSql是所有表格的基类,它本身也可以用在只有一个整数id的表格。
ValSql基于TableSql,试图包括所有一个整数id和一个val的表格,它本身可以用于id+浮点数的表格,例如基金仓位fundposition表。
DateSqlIntSql都基于ValSql,分别对应id+YMD日期和id+整数的表格。
PairSql基于IntSql,额外为反向查询加上了索引,这样刚好用于A/H的情况:id是A股的stock_id,它对应的整数值是H股的stock_id。
StockPairSql基于PairSql,额外加上了从stock_id到symbol的来回转换,ahpair表就是直接来自它。
跟A股和H股总是1:1不同,每股ADR可以对应100、1或者0.5等各种不同数值的H股。因此一个自然的做法是继续从StockPairSql派生adrpair表,加上这个额外的对应数值。不过这样一来,A/H和ADR/H比较页面能共用的代码就不多了。 在QDII估值中原本就有基金仓位fundposition表,我脑洞一开,想到每股ADR对应多少股H股其实也是一种仓位上的体现,就把不是1:1的ADR/H对应数值也存到了这个表中。
更妙的是,想通了比例对应仓位后,A/H和ADR/H之间的价格转换跟QDII估值比较就只差一个校准记录的概念了。具体的看,在A/H情况下,其实相当于校准值永远是1。而在ADR/H的情况下,校准值其实就是固定的(1/仓位)。 这样一来,我不仅消除了三体问题、统一了A/H和ADR/H比较页面的代码,还顺便统一了目前用到的各种价格转换计算,顿时感觉打通了任督二脉!

ADR和H股对比
代码H股代码ADR价格H股美元$ADR/H比价H/ADR比价
TCEHY0070043.5143.550.99911.0009

Life is like a snowball. The important thing is finding wet snow and a really long hill. — Warren Buffett

净值价格比较

2018年5月3日
交易了几年XOP下来, 发现它的收盘价经常跟净值有个1分2分的偏差, 不知道这其中是否有套利机会.

净值价格比较
日期价格净值y溢价x涨幅份额(万)换手
2022-05-18136.03135.85880.13%-3.29%
2022-05-17140.66140.7289-0.05%2.91%
2022-05-16136.68136.7259-0.03%2.28%
2022-05-13133.63133.6913-0.05%4.24%
2022-05-12128.19128.18120.01%-0.22%
2022-05-11128.47128.5768-0.08%0.48%
2022-05-10127.86128.1001-0.19%0.49%
2022-05-09127.24127.1450.07%-10.32%
2022-05-06141.88141.9265-0.03%1.31%
2022-05-05140.05140.073-0.02%-2.6%

增加这个页面倒是让我突然下了决心删除英文版本. 压死骆驼的最后一根稻草是这行代码, 混在其中的中文冒号让我恶向胆边生, 彻底放弃了本来就几乎没有什么浏览量的英文版本股票软件.

echo UrlGetQueryDisplay('symbol').($bChinese ? '净值和收盘价比较' : ' NetValue Close History Compare');

从软件开发的角度来说, 遍布我PHP代码的1000多个$bChinese肯定意味着某种代码结构缺陷, 希望这次代码清理完成后能让我醒悟过来.
冷静下来后仔细想想, 发现自己早有停止英文版的意图背后其实有个更深层的原因. 三年来的各种跨市场套利经历, 让我深深体会到了对手盘的重要性和A股韭菜的可贵, 从而不愿意留个英文版让外面的世界进来抢着割这么嫩的韭菜.
If you've been playing poker for half an hour and you still don't know who the patsy is, you're the patsy. — Warren Buffett
巴菲特和盖茨一起打桥牌
巴菲特和盖茨一起打桥牌

A股指数

2018年6月20日
配合抄底A股指数加入300ETF页面, 根据沪深300指数SH000300估算SH510300和ASHR的净值, 看看有没有华宝油气和XOP这种跨市场套利的机会.
为了避免原有代码进一步走向混沌, 不想从原有的FundReference类扩展这种新估值模式, 从MysqlReference类继承了一个新的FundPairReference.

用线性回归的方法在华宝油气溢价套利时进行基金场内申购账户

2019年9月20日
在使用Cramer法则解二元一次方程组得到华宝油气场内和场外申购账户数后, 其实真正有帮助的结论只是场外申购账户比场内申购账户少一个数量级. 因为其中我只区分了折价和溢价2种情况进行数据分析, 但是实际上不同溢价时申购账户的区别其实是很大的.
因为场外账户远少于场内账户, 我可以放心的忽略2者在申购不同日期下不同净值等细节, 把所有申购都假设成为场内申购计算. 把限购1000人民币以来所有溢价申购日期数据统一做线性回归, 可以得到下面的结果:
基金场内申购账户
顺便做一个通用一元线性回归工具.
线性回归计算步骤
线性回归计算步骤

增加仓位估算页面

2019年10月25日
华宝油气在国庆假期后持续高溢价,到今天已经连续第13个交易日。吃瓜群众们充分利用华宝油气限购1000的机会,开始了新开1+6拖拉机账户溢价申购套利的狂欢之旅,从10月11号到现在测算的申购账户数一直在创历史新高。 不断新开的账户把我线性回归进行基金场内申购账户的结果活生生搞成了非线性。
10月22日那天场内新增了5766万股,对应限购1000人民币下场内满额申购了22127户,全部场内份额已经接近65亿股。好几个人看到迅速增加的份额后都问我华宝油气会不会继续把限额降到100块或者是彻底关门。 我暗自一笑,回答说你们想多了。华宝基金有对它来说更聪明应对方式,其实在8月份刚开始限额申购后的那一轮溢价申购时已经表现出来了。
这个聪明方法是主动降低股票持仓仓位比例,把大家新申购的人民币拿在手里除了收管理费以外什么都不做。 我修改了一下平时基本闲置的净值记录页面,统计了过去4年来的华宝油气仓位估算结果。 可以看出在今年8月份之前,基本上都是稳定维持在基金说明书中写的95%附近;8月份降到了85%-90%,9月份经过连续11个交易日折价大量赎回后,9月底时仓位又回到了95%。
为了避免一般的华宝油气官方估值的误差来源的影响,我在这里只选择了XOP当晚净值涨跌幅度大于4%的日子进行仓位估算,因为仓位回到95%以后没有这样的大波动,这样的话当前华宝油气具体仓位依然是个谜。 下一个XOP大涨或者大跌后不出意外的话,肯定是会再次看到华宝油气上涨跟不上涨幅,下跌也跟不上跌幅的。
显然华宝油气在雪球的工作人员对目前仓位降低的问题是了然于胸的。昨天我的估值软件给出10月23日的净值是0.387,而他在雪球狡猾的给出了0.386,结果公布后果然是他对了。
XOP净值在10月21到23日连续每天小涨,没有一天达到了我定的4%的标准,所以我一直没能有效的测算目前的实际仓位。 不过这3天累计的涨幅达到了5.14%,我于是灵机一动,想到了可以优化一下算法:不用拘泥于单日的涨跌,只要连续几天的累计涨幅或者跌幅超过了4%就计算一次仓位。
这样我又增加了一个专门估算仓位的新页面:仓位估算
加了新页面后继续脑洞大开,我又加了一行输入界面,从此可以自行设置4%的阈值。
既然现在有了实测的数据,当然要把它们派上用场。不过我暂时只把SZ162411和SZ160216仓位用在了估值上,而跟SZ160216类似的SH501018仓位就一直坚持使用LOF缺省的95%的不变。在估值页面上显示了实际使用的估值仓位。
国泰商品跟华宝油气是2011到2012年基本上同时代的第一批QDII基金,开始几年没啥人气。2015年传说中的著名网络写手烟雨江南邱晓华卸任基金经理前,把名字上依然保持着大宗商品的SZ160216改造成了一个纯油基金,净值几乎100%跟随USO和美油期货CL。 也就是说,我可以用USO准确的给这4年以来的国泰商品估值。
100%跟随CL就意味着可以套利。在CL砸向2016初的26美元那一轮中,可以抄底油价又可以套利的国泰商品跟华宝油气一样迅速成长起来,QDII场内流动性仅次于华宝油气。在华宝油气2016年1月21日因为外汇额度彻底关门后,国泰商品也在2016年2月24日彻底关门。
接下来神奇的事情发生了。随着油价迅速反弹,华宝油气很快就在2016年3月25日恢复了每日10万限额的申购,到了当年4月8日更是恢复到了50万。而国泰商品却一直到2017年的5月11日才恢复每日1000的限额申购,然后2018年8月21日至今一直是每日限额1万。 民间传说是国泰基金把外汇额度挪到其它产品上去了。可能是因为关门时间太长,之前累积起来的流动性一去不复返,以至于现在连南方原油都不如。
事实上,当SH501018计划在2016年中间上市的时候,我看到的套利群体是对它寄予厚望的,希望它能重复国泰商品100%跟CL的模式方便大家赚钱。可惜南方基金没采用现成的套利促进流动性的模式,所以它到现在的流动性也还是苦哈哈。
因为国内监管的要求,SZ160216和SH501018这种FOF的持仓不能过于集中。SZ160216费了不少力气让自己的持仓跟USO保持100%一致。因为美股市场上没有足够多的原油ETF品种选择,它同时持有了小部分2倍日内杠杆的原油ETF和看多美元的ETF,甚至还有一点点贵金属ETF,说白了就是为了满足监管的分散要求。 而SH501018更离谱,它持仓了很大一部分欧洲市场上的原油ETF,由于市场收盘时间不同,市场假期也有差异,我用USO给它估值就不准了,反向计算出来的仓位就更加不靠谱。
想给SH501018正确估值,使用SZ162411的这种单一品种参考模式是不行的。惊艳大师计算QDII净值的Excel虽然在我的网页工具出来后落寞了许多,不过他说了,用XOP估算华宝油气净值只是小学生水平,能够用实际的详细持仓明细估算南方原油净值才算初中生水平!
魏大户在雪球和微信公众号上写了一系列A股大时代的故事,一直用这个封面图片。因为我今天也忍不住开始讲原油基金历史的故事,就东施效颦也放个图。
郑少秋饰演丁蟹:不要怕,是技术性调整,不要怕。
郑少秋饰演丁蟹:不要怕,是技术性调整,不要怕。

美国夏令时结束带来的软件BUG

2019年11月7日
没想到9月份写的基金场内申购账户让我意外发现了一个跟夏令时开始配对的BUG。
我昨天看了一下11月4日轻微折价下的场内申购预估数量。 因为我平时做线性回归是不用折价日的申购数据的,所以特意留心了一下。结果今天发现基金溢价记录中11月4日的数据竟然没有显示出来。
查了半天终于找到了问题:我原来用11月1日周五的日期加上3天的秒数,期望得到11月4日的日期。却没料到赶上了11月3日结束夏令时,3天的秒数不够,结果得到的是11月3日的日期。这个问题隐藏了好几年,但是以前一直没有像现在这样每天盯着折价溢价数据看,所以一直没发现。

华宝油气的C类份额

2020年1月13日
流动性是个很神奇的东西,我一直喜欢用高速公路上的车流来比喻它。不知道什么时候原本高速行驶的车流会突然慢下来塞住,又不知道什么时候会逐步缓解直到重新一路畅通。
今天收盘后,华宝基金发布了一个给我当头一棒的公告,要开始销售C类华宝油气份额。0申购费、7日后0赎回费、同时还降低管理费率的场外C类份额无疑会严重打击场内SZ162411的流动性。我感觉华宝基金在犯一个明显的错误,一旦流动性开始下降,紧跟着会下降的就是市场规模了。

国泰商品已经只剩大半桶油

2020年3月26日
仓位估算可以看到,之前国泰商品仓位一直中规中矩的保持在LOF标准的95%附近。不过在3月6日开始的这一轮CL断崖式下跌后,它的仓位也随着断崖式下跌了。目前估算仓位59%,已经只有大半桶油。
国泰商品在3月13日停止了申购,紧接着的3月16日周一广发石油也停止了申购。因为海外账户保证金不够的原因,突然的大额申购可能会让SZ160216和SZ162719这种QDII基金在随后的大约一周内出现明显的仓位降低。 可以看到SZ162719仓位在3月20日就恢复到了正常的95%附近。那么,SZ160216一直没有恢复仓位,是不是它也采用了SZ162411类似的降仓位保申购的方式,尽可能吸引流动性?要知道,早已经在2月14日再次关门后的华宝油气因为美元资产净值的大幅降低,它如今的仓位已经由基金公司恪守的80%底线被动降低到了75%。
这个问题其实难于判断,因为在基金公司有意降低仓位保申购的可能性外,还有另外一个解释:在国泰商品的持仓中,能保持迅速跟上当月CL跌幅的USO只是其中之一,此外还有大量像USL这种持仓很多远期CL的,所以看上去表现就像SZ160216仓位不足了。
无论是什么原因,既然表现出来的仓位已经如此之低,用CL对冲的要小心,很容易一下子多空36%的仓位,一旦油价快速反弹就亏惨。
基于类似的逻辑,持有XLE、XOP和IXC等多只美股原油股票ETF的诺安油气也会显示出它相对于XLE波动的仓位区别,为避免莫名其妙的亏钱,用XLE对冲前一定要记得看一眼实际表现出来的SZ163208仓位!

增加基金持仓页面

2021年6月24日
虽然原则上来说XOP也可以使用这个页面,但是它其实是为同时有港股和美股的KWEB持仓准备的。
QDII基金总是越跌规模越大,流动性越好,前些年是华宝油气,而今年最热门的变成了中丐互怜。按SZ162411对应XOP的模式,中概互联的小弟SZ164906之前是用KWEB估值的。 不过因为中国互联有1/3的港股持仓,它的净值在港股交易时段会继续变化,所以原来的SZ164906页面其实没有什么实际用处。唯一的好处是在基金溢价记录中累积了几年的官方估值误差数据,帮我确认了用KWEB持仓估值中国互联的可行性。
跟A股LOF基金每个季度才公布一次前10大持仓不同,美股ETF每天都会公布自己的净值和详细持仓比例。因为KWEB和中国互联跟踪同一个中证海外中国互联网指数H11136,这样可以从KWEB官网下载持仓文件后,根据它的实际持仓估算出净值。然后SZ164906的参考估值也就可以跟随白天的港股交易变动了。
写了快6年的估值软件终于从小学生水平进化到了初中生水平,还是有些成就感的。暑假即将来到,了不起的狐狸爸爸要开始教已经读了一年小学的娃在Roblox上编程了。
了不起的狐狸爸爸会干很多事情,但是刺猬才会干大事。
了不起的狐狸爸爸会干很多事情,但是刺猬才会干大事。

增加基金场内份额页面

2021年7月14日
相对于净值记录等其它历史数据,这个页面来得实在是比较晚,主要是之前做华宝油气套利时不需要特别关注每天的场内新增份额,反正流动性足够好。不过随着XOP一路上涨,华宝油气的上百亿场内规模只剩下了零头,失去了流动性的华宝油气和XOP跨市场套利变成了屠龙之技。 我也被迫开始关注像中国互联这种流动性不是那么好的品种,为以后的套利早做打算。
历史数据页面汇总:历史价格 基金溢价记录 净值记录 净值价格比较 基金场内份额 校准记录 仓位估算 基金场内申购账户 小心愿佯谬

SZ162411成交量相对于场内份额(万)换手比例 基金场内份额
日期份额(万)场内新增(万)成交量换手新增换手
2022-05-19114965.79-993.21908758217.9%
2022-05-18115959-91.91906025577.81%
2022-05-17116050.911611.29764655276.59%474.56%
2022-05-16114439.6238.611002943628.76%25976.27%
2022-05-13114401.01799.88631071785.52%788.96%
2022-05-12113601.13-17.37812370787.15%
2022-05-11113618.5-21.16942487468.3%
2022-05-10113639.66-642.1917234135015.17%
2022-05-09114281.85-564.91705420806.17%
2022-05-06114846.761002.48644217195.61%642.62%

增加混合QDII工具系列

2021年7月28日
从QDII中分出来,采用跟踪成分股变化的方式对同时有美股和港股持仓的SH513050等进行净值估算。
A股大妈最喜欢干的事情就是抄底。随着过去半年来中概互联一路跌成了中丐互怜,中概互联网ETF的市场规模和流动性都在暴涨,就连原来叫中国互联的SZ164906都蹭热度借增加扩位简称的机会改名成了中概互联网LOF。看得我口水流一地,忍不住想做点什么蹭蹭热点。
跟SZ164906和KWEB跟踪同一个指数H11136不同,SH513050跟踪的是另外一个不同的中证海外中国互联网50指数H30533。H30533和H11136在成分股选择上基本一致,但是H30533对单一成分股最大仓位限制是30%,而H11136限制10%的最大仓位,这样导致它们俩在腾讯和阿里持仓比例上区别巨大。 在中间的是跟踪中证海外中国互联网30指数930604的SZ159605SZ159607,限制15%的最大仓位。另外,顾名思义930604的成分股数量要少50-30=20只。
SH513050的成分股和比例来自于上交所官网的ETF申购赎回清单,SZ159605和SZ159607来自深交所官网的ETF申购赎回清单,这样未来可以方便的继续扩大混合QDII的成员。SZ164906的成分股和比例依旧还是来自KWEB官网公布的每日持仓更新。
把SZ164906从老QDII挪到新的混合QDII其实是个相当痛苦的过程,原来以SZ162411为模板写的仓位估算等功能都要从QDII拓展出来,香港QDII在这个过程中也跟着沾了光。
官方估值跟原来QDII工具一样,不过混合QDII的参考估值有所不同。除了当日汇率的变化外,参考估值在港股开盘后还会反应当日港股成分股的变动对净值的影响。
83版射雕英雄传中翁美玲扮演的小乞丐黄蓉
83版射雕英雄传中翁美玲扮演的小乞丐黄蓉

本页面评论 1 全部评论

1803922796@qq.com 2020-02-28 15:25:43 117.136.66.240
你知不知道你很棒!!!

更多选项?请先登录或者注册