数据
BlissPoint 使用的价格从哪里来、有什么局限、在哪个时间段上进行估计,以及夏普比率里用的是哪个利率。
价格来自哪里
BlissPoint 使用的历史价格来自 Yahoo Finance,通过开源库 yfinance 获取。这些是经股息和拆股调整后的收盘价:不做这项调整的话,除息会被当成下跌,从而扭曲计算结果。BlissPoint 不拥有这些数据,与 Yahoo Finance 也没有任何商业关系或授权协议。
这意味着什么
数据的可用性、准确性、完整性和更新完全取决于数据源。某个标的可能无法获取、历史比预期更短,或存在缺失值;遇到这些情况,BlissPoint 会予以标注,必要时将其排除在计算之外。该服务也可能暂时无法访问:发生时分析不会启动,页面会显示错误,而不会给出部分结果。
我们如何使用这些数据
价格仅用于统计处理:日收益率、波动率、相关性,以及两个组合的权重。历史序列只在计算期间保存在内存中,另有一个短期缓存以避免连续多次请求相同数据;它们不会存入数据库,也不提供下载。BlissPoint 不再分发市场价格,也不把它们作为产品出售:你在屏幕上看到的是基于你的组合算出的百分比,而不是原始数据。
我们向数据源发出多少请求
只发出必需的最少请求。每次分析只下载一次所请求标的的序列;结果会在内存缓存中保留十五分钟,因此在同一个十五分钟内分析相同标的的两个人只算一次请求。示例页面每六小时计算一次,而不是每次访问都算。若下载失败,最多再重试两次,间隔逐次拉长,之后就停止。每个注册用户每小时可发起的分析次数有限。不存在任何在后台下载数据的进程,也没有随时间不断增长的历史数据库。
使用哪个时间段,以及新上市的标的
分析使用所有所选标的都有价格的那段时间:这就是共同窗口,预期收益、波动率和相关性都在这段时间上估计。日期不必逐日完全一致——米兰 12 月 26 日休市而纽约不休——因此只要组合所涉及的各家交易所当天开市,这一天就计入日历。某家交易所某天是否开市,由该交易所的官方日历决定,而不是由你选了哪些标的决定:只有这样,答案才不会因为组合变化而变化。在已经出现过的交易所上再加一只标的,不会让其他标的的数字变动哪怕一位小数——即使这只标的漏掉了一些交易日。少数缺失的价格会用几天内最后一个已知报价补上。但新上市的标的会缩短所有其他标的的窗口,这有代价,页面选择声明而不是隐藏:「数据与方法」面板会显示完整度,即可用历史中有多大比例真正进入了估计;数值偏低就意味着组合里有一个上市不久的标的。如果共同窗口短到无法估计任何东西,把它缩得最短的那个标的会被搁置,页面会写明是哪一个、为什么:没有标的会悄无声息地消失。曾经有一天存在过一个版本,用阶梯式面板来估计,让每个标的都带上自己的全部历史;理论上是正确的,但它与另外三处改动一起被撤回了,因为几项叠加之后,前沿和组合都变得面目全非。宁可用一个能看清其局限的简单方法,也不要用一个会让结果改变却说不清原因的复杂方法。年化数值的算法是:日均值乘以 252,标准差乘以 252 的平方根。这是马科维茨理论中通用的年化惯例,无论组合是什么都保持一致,这样两次分析才能互相比较。VaR 是唯一需要所有标的确实同时存在的那些交易日的数字,因为它是已观测组合收益率的一个分位数。
夏普比率用的是哪个无风险利率
夏普比率是超出无风险利率的收益除以波动率,因此那个利率不是细枝末节:它占了分子的一半。BlissPoint 使用相应货币的官方隔夜利率——欧元用欧洲央行公布的 €STR,美元用纽约联储公布的 SOFR——按需下载并在内存中保留数小时。这两个利率按 ACT/360 惯例公布,进入夏普比率前会乘以 365/360 换算为自然年:少了这一步,利率会被低估 1.4%。所用数值、来源和参考日期都写在每个组合的夏普比率旁边:比较两个数字的人,必须能看出它们是否用同一把尺子量出来的。当组合混合了不同货币时,收益率已经是在一个复合单位上度量的——以不同货币表示的价格变动的加权和——而该单位对应的无风险利率就是这些货币利率的平均值。正确的权重本应是组合权重,但那只有优化之后才知道,而优化本身又需要这个利率:于是改用所分析范围的占比,也就是每种货币下有多少个标的。这是一个近似,在此声明以保持透明。没有配置主要数据源的货币,会按已覆盖的货币重新加权:假定它们的利率为零,是一个更强、且几乎总是错误的断言。如果所有数据源都没有响应且内存中也没有数据,利率取零,夏普比率就退回为收益除以波动——页面会明说这一点,而不是隐瞒。
这些结果不是什么
BlissPoint 显示的所有数字都基于历史数据,描述的是那些标的在所分析期间的表现。它们不是预测,不是对未来收益的保证,也没有考虑成本、佣金、税费或你的个人情况。某个标的过去的表现未必会重演,任何投资都存在损失本金的风险。
把这些数据变成数字所用的公式,写在技术说明里。 方法论.
info@bpblisspoint.com