2021-09-25 03:00 | 出处: 先圣
第一,本文不作为投资指南,币圈有风险,投资需要谨慎。
第二,本文无版权诉求,欢迎转载。
标题:
作者:先圣
我们之前都听说过,买大饼,囤BTC,定投实现财富自由等话术,我在寻找一个简单,便捷,有效的方式,用来投资或者理财。美股里面有标普500指数,他甚至被投资者称为“美国国运指数”,一般都是长牛。
我想找到一种类似于这种指数的东西,所以才有了本文。
我的一个想法是,首先投资的标,一定要多,这样就可以享受到整体上涨的红利。但是,不能什么乱七八糟的空气币都投资,我们需要一个类似于纳斯达克的强大中介,我想到了币安。
本期牛市中,BNB(币安平台通证)作为最亮眼的崽,已经向人们证明了币安的强大实力。所以,这也是为什么我不一开始就选择火币或者OK的原因,因为市场已经给出了答案。
这样我们找到了一个研究的方向,至于该怎么样做,我貌似已经有了一点眉目:收集统计币安的所有代币(包括名称,价格,市值,板块,上架时间,初始价格,首日收盘价,首日高点)来进行相关的分析,并且得出一份相对来说还算可靠的“结论”。
难点在于:
1:币安最少已经有200种以上的代币,如果要手动收集数据,不说价格会变化,而且消耗的时间会太长,得不偿失。
2:用什么样的价格来测试会显得比较真实可靠?
对于第一个问题,我想应该是没有人会去用手复制,粘贴的,毕竟至少200个项目,这么多的数据用手,不仅仅是累,而且还容易出错。
是时候拿出半瓢水的技术了,出来吧,我的宝贝——python。
至少为什么是python,因为他最简单(网上的教程大把大把的有)。
由于有一段时间没有用了,又去找点资料重新温习了一下,B站的视频貌似挺多的。
如果本文无图,请前往网站查看正版(大概是我懒得上传图片了):https://btcjjj.com/
如果你只想看结论,你可以跳过这一部分,点击目录即可。
首先我们要知道币安的官网,我记得是:https://www.binancezh.com/
但是,考虑到墙的问题,我们换一个网址:https://www.binancezh.top/
后面的网址在国内也可以访问,所以本文就用后应该来做测试。
我们点击市场趋势,选择查看更多,这样就可以进入到币安的代币页面。
https://www.binancezh.top/zh-CN/markets
这样我们就获取到了全部的代币信息,该怎么做呢?
有人说,全部复制不就可以了,这貌似是一个方法。
以360浏览器为例,右键,审查元素。
我们选择网络,刷新网页,点击红色的圆圈,停止获取网络日志。(如上图所示)
然后我们在下面找到一个名字叫list的包。(先圣小课堂:list一般翻译为列表,目录)
1:我们可以选择XHR缩小范围,更有利于寻找。
2:找到我们需要的包list,点击打开(右侧展开)。
3:查看我们需要的信息:
我们得到了一个请求地址url,请求方式为get。后面编写的时候需要用到。
我们再查一下,响应的数据。
我们可以看到,有代币名称,因为1INCH是一个DEFI的代币。
而且还有389项数据,应该是390项,因为列表是从0开始计数的。
我们也可以直接用浏览器访问这个地址,他也会返回对应的数据,只是我们用肉眼不怎么好识别。
https://www.binancezh.top/bapi/composite/v1/public/marketing/symbol/list
我们用眼睛可以看到一些数据,如我上图用红圈圈框出来的,name:名称,price:价格,tag:标签等信息。
剩下的就是怎么样把他们提取出来了,找网上找了一些资料后,我们for遍历就可以了。
我们需要获取代币的上架初始价格,首日收盘价,首日高点,上架时间,这些方便我们后续的研究。
这里我们有3个价格的数据:
初始价格:币安定义的上架最初价格。
首日收盘价:代币上架交易日的收盘价。
首日高点:代币上架交易日的最高点。
首先,初始价格是不具备可靠性的,简单来说就是你不可能再初始价格的时候买到代币。
其次,首日高点是反理性的,既然你买不到最低点(一般是初始价格),也不应该买在最高点(相对)。
最后,我觉得首日收盘价是一个很有价值的参考:
1,这是一个你可以购买到代币的价格,不像初始价格,一般人根本抢不到,又何从谈起涨幅呢。
2,他也不是首日高点(相对较轻松一些),如果他是的话,那么代表一整天都是上涨的,这样的币买起来也放心。
所以,我接下来回用首日收盘价作为买入价格来进行分析,因为我觉得他很可靠。
那么,如何获取首日收盘价呢?
我们找到一个代币作为演示,就1INCH好了。
https://www.binancezh.top/zh-CN/trade/1INCH_USDT?layout=pro
我们可以看到,他是在2020年12月25日上线的。
初始价格:0.200
首日高点:3.089
首日收盘价:2.295
这些是我们可以用鼠标截图出来的,但是每一个都这样找未免也太难了。
老办法,还是右键,审查元素。
一样的刷新网页,抓包来查看。(参考正文1的步骤)
我们找到这个url:
https://api.yshyqxx.com/api/v3/klines?symbol=1INCHUSDT&interval=1d
为什么我会去看这个包呢?
因为他里面有交易对1INCHUSDT还有日期1d的相关字符。
结果也是显而易见的,在他里面有很多条数据,第一条数据就是记录首日的信息。
(我盲猜后面的数据都是日期的信息)
然后里面的1就是初始价格0.2,2就是首日高点3.89,4就是首日收盘价2.295,我们要的数据已经来了。
是不是还差一个什么,对,还少了一个上架日期(或者说首日交易日期)。
其实也有的,就是0,上图对应的1608854400000,这是一个毫秒级的时间戳,把他换成时间就是:
也就是2020年12月25日,和上面我们用手一个个翻到最前面的数据是一致的。
最后我们再看一下刚才的地址,你明白了吗?
https://api.yshyqxx.com/api/v3/klines?symbol=1INCHUSDT&interval=1d
把上面的1INCHUSDT换成任何一个交易对都是可以的,交易对是从步骤1里面提取的。
这一步貌似我们也完成了。
为了简化内容,我把代码上传到了github,非常简单的一个小爬虫。
python环境3.9.1
建议先安装模块requests,datetime,openpyxl
运行完成后会在python的目录生成一个名叫“币安.xlsx"的文件。
感兴趣的小伙伴可以自己去验证测试一下,这里就不过多的描述了。
https://github.com/tsl1997/Cryptocurrency/blob/main/binancezh.py
如果你访问不了上面的地址,可以尝试下这个由JSDelivr加速后的地址:
https://cdn.jsdelivr.net/gh/tsl1997/Cryptocurrency@main/binancezh.py
运行完成后,会得到一个这样的文件,由于我不知道该怎么样把tag取出来,因为有的币有多个标签,所以就单独取出来复制过去了,最后得到的文件是这样的。
文件已经打包上传到了GitHub:
https://github.com/tsl1997/Cryptocurrency/blob/main/%E5%B8%81%E5%AE%89.xlsx
或者下载在SC上面的备份文件:
https://siasky.net/DACvUmlNtKf9zrx2R0JM9WT-xXbr8GXEE26LPp5IFvBotQ
390个交易对。
38个ETF。(去掉ETF,原因是不做杠杆交易)
265个USDT交易对。(去掉非USDT交易对)
为什么要去掉非USDT交易对呢?
因为部分BTC交易对数据是异常的,造成数据异常的原因是,价格我是取用的price,单位是美元。
但是BTC交易对的出售价格单位是BTC,所以造成了不存在的巨大涨幅,要剔除掉。
下图就是由于参数错误导致的“巨大涨幅”:
所以,这些异常的数据当然是不能再用了。
所以,我们的可用数据就是那265个交易对的数据。
当然,这里面也存在几个数据异常的,比如没有获取到当前价格,导致最后计算涨幅的时候是-100%。
我就当他们真的归零了算了。
我用上面的265个交易对,每一个交易对买入定额的金钱。
假设每个交易对可以买入1块钱的份额。
那么,我们一共买入了265元,我们可以获得多少元呢?
答案是:4624元,金额是本金的17倍。
什么概念?
去年的最低点,2020年3月13日,BTC的最低价格是3782美元:
如果你在那个时候买入了BTC,肯定是在这两年的最低点。