大家好,我是程序员大猩猩。
我一直在想,币圈这个行情时涨时跌,不断的割韭菜,不是由市场决定的!而是由交易所直接输入一个数值后点击确定按钮而变化的,那么是不是很恐怖的行为。
为了验证这么一个想法,我来实现下看行不行。。。。
之前好几篇文章我们对接了波场链 币安链 还有K线插件 KLineChat的这些组件文章的介绍。
Java WebSocket对接币安区块链K线行情API |
WEB区块链开发组件 - KLineChart |
Java实现Tron(波场)区块链的开发实践(二)交易监控与转账 |
Java实现Tron(波场)区块链的开发实践(三)波场链水龙头、web3、apikey如何获取 |
那么今天我们来上一个骚操作,如何自定义更改K线数据。警示一下B圈的达人们,请谨慎的思考这些套路。
好,我们进入正题!
首先,我们必须了解K线一根线的数据。由哪些字段组成:一条蜡烛线、K线,由开市(open)、关市(close)、最高(high)、最低(low)、还有时间点(timestamp)组成。
那么如何修改这些K线数据呢,即使要保存原来的K线数据,又要保证更改后,数据不再重新刷新,混淆视听,永远在什么时候打开,K线数据永远是修改后的数据呢?
即:保证历史K线数据修正,又保证我需要K线涨即涨、跌即跌。第一根K线的close必须是下一根K线数据open一致。
其实这个操作很复杂。我们先来对接一下币安K线,纯币安不更改。
Java WebSocket对接币安区块链K线行情API |
接入后假如没有发生错误,那么我们的K线数据将和币安网是一致的。那么怎么去修改呢,试想一下思路:
1、redis 保存修改点K线数据。
2、获取历史K线数据时,检索redis 保存的k线数据标记更新。
看似很简单,但是还有问题。
假如K线修改期是1分钟之内呢?我们上面说的一个线的K线就是一个时间点的标准,那么如何保证这个点也需要修改呢。
3、实时数据的open、close、high、low也需要标记修改
4、保证下一个分钟的open和上一个close是一个价格
5、修正更改即将恢复时,K线可以平滑过渡,判断high、low修正high、low
最后,我尽然实现了,你说可怕不可怕,想法被验证了,你还想着在币圈摸爬滚打吗?