主页 > imtoken制作冷钱包 > maxdea如何计算指数_如何用Python自动获取Ahr999币指数

maxdea如何计算指数_如何用Python自动获取Ahr999币指数

imtoken制作冷钱包 2023-02-10 07:29:17

我正在善用这五个货币圈的主要指数来帮助您寻找底部并摆脱顶部。在本文中,我介绍了 Ahr999 索引。我想用一个程序来获取这个索引的数据。经过几个问题,我终于找到了解决方案。

首先,上一篇文章介绍了两个索引。实际上,Ahr999 将这两个指标相乘得到了一个,如下:

ahr999指数=(比特币价格/200天固定投资成本)*(比特币价格/指数增长估值)

该指数由微博用户ahr999创建,旨在协助比特币定投用户基于机会主义策略进行投资决策。该指数暗示了比特币短期固定投资的回报以及比特币价格与预期估值的偏差。长期来看,比特币价格与区块高度呈现一定的正相关关系。同时,利用定投方式的优势,用户可以控制短期定投成本,使其大部分低于比特币价格。

根据统计规律,ahr999指数

523ba3a025cac253a41d215cdd80ef1d.png

这个索引的详细介绍在这里

接下来,按照这里的公式一步步计算

一、查找指数货币价格

1. 获取每日比特币价格,使用dataframe,一栏是日期,一栏是当天比特币的价格;

2. 计算每一天对应的币龄,用pandas中的日期差,也就是比特币诞生的天数(比特币的生日是2009年1月3日),这个思路转化为整数;

3.根据公式,指数币价=10^[5.84log(币龄)-17.01]计算指数币价,

但是当我使用math.log计算log(币龄)时,一直报错:cannot convert the series to比特币定投指数,这是我遇到的第一个问题。

我测试过,直接用一个数字乘币龄是没有问题的。

终于找到原因了,因为math.log函数不能直接在pandas中使用。如果要使用不同的命令,请使用 numpy 库中的 log 函数,即 df['BTC_age']。 apply(np.log10), 这样就解决了日志功能的问题。

接下来计算公式中还有一个问题就是如何求10的幂比特币定投指数,因为pandas也是用计算的,后来找到了一个求幂的函数,用法是df1.pow(df< @2)代表df1的df2次方,我们需要的是10[5.84log(coin age)- 17.01]次方,所以需要添加一个df['a列']=10,每个值为10,所以可以使用df['a'].pow(5. 84* df['BTC_age'].apply(np.log10) -1< @7.01)指数货币价格计算完毕。

这两个问题一旦解决,就可以通过上述方法计算指数货币价格了。

二、计算200天的固定投资成本

ahr999这个值特别强调的是几何平均数,不是算术平均数,区别如下

算术平均值的含义如下:

c207db75df3b1a57a12a89e553b6fa65.png

几何平均的含义如下:

e29ad20f978cee2fad9b9318dc921afd.png

那么问题来了,pandas中如何求几何均值?

经过几个坑,发现这里需要调用另一个库scipy。里面有一个gmean,可以直接获取。另外,我们需要用到滚动功能,也就是取200行。程序如下:

从 scipy.stats.mstats 导入 gmean

df['200_cost'] = df['BTC_price'].rolling(200).apply(gmean,raw=True)#几何平均数

到此为止,所有的坑都被我遍历过了,过程中,我还是觉得自己的基础知识不够扎实,依赖谷歌,有时候有点浪费时间,不过不难使用一次。

另外,我想到了一个爬虫的想法。 ,直接爬取数据,但是调用后是字符串,不容易变成列表或者字典形式,又卡住了。

后来我想解决这个问题的方法是使用一个正则表达式找到与ahr999索引相关的值,然后将其转换成一个列表。这一步我已经解决了。

但是昨天和今天的数据对比发现地址里有This sj=?这个值每天都在变化,所以没有办法使用固定值,所以只能放弃这种方法。

获取ahr999索引后,可以用于提醒什么的。您也可以使用钉钉或微信。此处不再赘述。

想进一步交流,欢迎搜索我的微信ywx1221或扫码

6493edcc73cb16c9cfc94baac6013cd1.png