纸上得来终觉浅:粗略计算一下HIVE上股份的年化收益率

in HIVE CN 中文社区3 months ago

在之前的一篇文章(HP(HIVE POWER)与HIVE的关系)中,O哥抛出一个问题,那就是计算HIVE上股份(vesting shares)的年化收益率

image.png
(图源 :pixabay)

文章中,O哥给出了一个简单的计算思路:

股份年化收益率 = 当前总供应量 x 通胀率 x 15% / total_vesting_fund_hive

本以为会有小伙伴尝试提交试卷答案,结果等了快一周了,一个交卷的同学都没有。怎么的,不会是都学废了吧?不想毕业了嘛?😡

不过转念一想,自己当时为啥没直接在帖子中给出答案呢?不就是这个计算看起来简单,实则挺麻烦的,自己也很难一下子搞定嘛?哎,让我自己答卷都不一定及格呢,还有啥脸苛求小伙伴呢?

于是O哥断然决定,去计算一下VEST的年化收益率,动动手而不是总在嘴上叭叭叭,毕竟有句诗咋说来着:纸上得来终觉浅,绝知此事要躬行呀!

不扯了,开始计算VEST的年化收益率,思路依然沿袭上文中给出的思路。

获取总供应量

按照上述公式,我们首先要获取系统的总供应量,也就是也就是HIVE+HP+HBD等(就是总的资产啦)。

根据HIVE文档,我们可以使用get_dynamic_global_properties来获取current_supply(HIVE+HP总量)以及current_hbd_supply(HBD总量),可以用get_current_median_history_price来获取median_price(HBD->HIVE的转换比例),这样就可以计算出总资产了。

实际操作一下,我们得到这几组数据:

供应量:

'current_hbd_supply': '34340828.208 HBD',
'current_supply': '424082630.009 HIVE',

系统喂价:

{'base': '0.409 HBD', 'quote': '1.000 HIVE'}

对上述两组数据进行计算,得到如下数据:
image.png

这就是我们要的总供应量,其实这个总供应量可以直接通过get_dynamic_global_properties获得,那就是其中的virtual_supply,感兴趣的小伙伴们自己去校验一下,看看是不是这么回事。

计算通胀率

在O哥的计算公式中,O哥直接用通胀率,作为公式的参数之一才参与运算,而实际上呢,通胀率是需要计算得到的。

为了计算通胀率,我们需要以下几个数据:

  • 当前区块(head_block_num)
  • HIVE_INFLATION_RATE_START_PERCENT (初始通胀率)
  • HIVE_INFLATION_RATE_STOP_PERCENT(终止通胀率)
  • HIVE_INFLATION_NARROWING_PERIOD (通胀率缩窄周期)

其中前者可以通过get_dynamic_global_properties来获取,其它三个关于通胀率的参数可以使用get_config获取。

image.png

image.png

也就是说,HIVE区块链初始年通胀率为9.75%,每250000个区块调整一个数值(亦即万分之一),最终稳定在0.95%。

根据上述数据,我们计算出当前通胀率为:

start_inflation_rate = HIVE_INFLATION_RATE_START_PERCENT
inflation_rate_adjustment = head_block_num // HIVE_INFLATION_NARROWING_PERIOD
inflation_rate_stop_percent = HIVE_INFLATION_RATE_STOP_PERCENT
current_inflation_rate = max(start_inflation_rate - inflation_rate_adjustment, inflation_rate_stop_percent)

最终,我们计算出当前通胀率为:current_inflation_rate 645,亦即6.45%

获取通胀分配比例

在O哥的计算公式中,O哥直接用15%,作为通胀中分配给股权持有者的奖励,实际上这个数值也不是恒定不便的,见证人们可以通过硬分叉来调整这个比例。

所以,正确的方法是用程序获取相应数值,而不是直接使用15%这个硬编码。

通胀奖励被分成几个部分,分别是作者/策展人奖励、见证人出块奖励、股权持有者奖励以及DHF(去中心化HIVE基金)。

其中作者/策展人奖励、股权持有者奖励、DHF可以通过get_config获取,见证人奖励可以用100%减去其它部分:
1709787553370.png
image.png
image.png

可见,目前股权持有者的通胀奖励依旧是当前通胀的15%,当然,我们在代码中还是用以下代码来替换硬编码:

HIVE_VESTING_FUND_PERCENT = cfg['HIVE_VESTING_FUND_PERCENT_HF16']

计算年化收益率

好了,回顾一下我们的公式:

股份年化收益率 = 当前总供应量 x 通胀率 x 15% / total_vesting_fund_hive

现在似乎就差total_vesting_fund_hive这个数据了,而这个数据同样可以从get_dynamic_global_properties来获取。

调用一下,得到的数值如下:
image.png

至此,我们已经收集全了所有需要的数据,应该可以召唤神龙了。

apr_vest = total_supply * current_inflation_rate /HIVE_100_PERCENT * HIVE_VESTING_FUND_PERCENT/HIVE_100_PERCENT/ total_vesting_fund_hive

(其中HIVE_100_PERCENT可以通过get_config,亦即cfg['HIVE_100_PERCENT'],数值为10000)

将各阶段的计算整理到新的公式中,最终得到的结果如下:
image.png

也就是说,粗略的计算,当前HIVE上股份的年化收益率为2.826%,哈哈哈,比现在国内银行3年期存款要高一些呢。

补充说明

你可能是问了,这都已经计算出年化收益了,为啥还叫粗略估算呢?

这是因为HIVE上的各种数据不是一成不变的,而且通胀率也是在不断根据区块数调整变化的,若要计算更精确的数值,应该模拟一下今天起一年后区块、总量、通胀率等变化数据,进而做出计算。(由于市场、转换、各种销毁等因素,这样算出来的也是近似值)。

小伙伴可能又问了,股权收益才2.8x%,这明显不如存成HBD啦?

单纯看年化收益,锁仓HIVE成HP,是不如HBD存款,但是有HP了,还可以获取点赞收益等其它收益。而且还可以参与HIVE区块链的投票、治理等。

况且市场总是在变化当中,如果HIVE涨到10美元一枚,那么试问当初是存HBD合算还是POWER UP成VESTs更合算呢?(当然,也有下跌的可能,哈哈哈)。

image.png
(图源 :pixabay)

好了,今天就先学习到这里,O哥这份答卷,你可否满意?你学废了嘛?

相关链接

Sort:  

去年9月之前的幣圈冰河期, 當然是HBD saving比較好. 但最近的市況, 情可被套, 也不願踏空. 值搏率高一些, 回報也高一些. 這幾天Hive幣價都漲10%了, 年化20%的 HBD Saving 一下子變的好弱雞了

对啊,市场太难把握了
所以没有永远的最佳方案

把如果去掉,HIVE涨到10美元,大家一起起飞直飞太空上去啦哈哈哈

學"廢"了,超難懂......直接看結論,哈哈。

老哥早上我刚卖了一点hive 正想打算存进去 你这文章真是及时雨呀👍

!PGM

Sent 0.1 PGM - 0.1 LVL- 1 STARBITS - 0.05 DEC - 1 SBT - 0.1 THG - 0.000001 SQM - 0.1 BUDS - 0.01 WOO - 0.005 SCRAP - 0.001 INK tokens

remaining commands 12

BUY AND STAKE THE PGM TO SEND A LOT OF TOKENS!

The tokens that the command sends are: 0.1 PGM-0.1 LVL-0.1 THGAMING-0.05 DEC-15 SBT-1 STARBITS-[0.00000001 BTC (SWAP.BTC) only if you have 2500 PGM in stake or more ]

5000 PGM IN STAKE = 2x rewards!

image.png
Discord image.png

Support the curation account @ pgm-curator with a delegation 10 HP - 50 HP - 100 HP - 500 HP - 1000 HP

Get potential votes from @ pgm-curator by paying in PGM, here is a guide

I'm a bot, if you want a hand ask @ zottone444


坏了坏了
和上学时候,老师将大题一样,本来我知道答案结果的,老师讲中间步骤的时候,越听越糊涂了
最后感觉自己做错了
哈哈哈

@tipu curate
得用动态的眼光来看待这个问题 保守一点的话 我会选择一半流动一半存 (#^.^#)

O哥,新手感觉很迷茫,哈哈哈,中间过程好复杂!😃