起因
因为最近在看比特币的行情,看到比特币波动幅度很大,于是想做短线交易。但做短线交易需要机器自动化策略,因为我不能一天到晚坐在电脑前看行情,需要电脑可以自动决策。我选择使用人工智能/机器学习来实现自动化交易策略,下面是我觉得可行的原因:
1.我不相信股票的行情可以预测,因为股票的种类太多了,不同的股票对应的公司业绩,大股东,人们对公司的看法波动太大了。而如果只对一只股票进行行情预测,明显风险太高,很可能发生黑天鹅事件。对比特币的预测则不同,因为比特币没有大股东,没有业绩,不会暴雷。比特币的涨跌就像虚拟的郁金香涨跌一样,只是单纯的炒作。
2.比特币发布至今已经很多年了,被炒起来也是最近3年的事情。因为比特币是24小时都可以交易,所以交易数据是足够充分的。
需求
因为我在交易所上进行币币交易,每次币币交易的手续费为0.15%。假设我在低价用USDT买入比特币,在高价把比特币抛出换成USDT。这样2次交易最多花费手续费为0.3%,因此我需要每次买卖之间至少要涨0.3%才能赚。
不知道USDT的可以看这篇文章:关于区块链的一些思考:稳定币USDT的价值和虚拟货币涨跌趋势
比特币历史价格数据
想要准确预测,精准的历史价格数据是必需的。
我在kaggle上找到了2012-2019的比特币价格数据,以分钟为间隔:Bitcoin Historical Data Kaggle
网上没找到最新以分钟为间隔的比特币价格数据,这里感谢群里的好心人@LAURENT提供了数据。
实现
此项目能否成功,最重要的因素是机器学习的模型的选择。
肯定要用到神经网络,关键是怎么用。
因为预测未来需要用到过去的数据,所以这个神经网络需要与时间有关。
最容易想到的是LSTM,我先尝试使用传统的神经网络进行价格的预测。
MLP
sklearn的MLP完全不能用:
Precision: 0.000000
Recall: 0.000000
LSTM/RNN
不尝试了,发现预测价格没有用。
后记
在项目做到一半的时候我发现,我需要实现的并不是对未来短期价格的预测的人工智能,因为这毫无意义。无论是期权合约还是杠杆交易,都无法通过对短期几分钟的比特币价格的预测来实现赚钱。
唯一能赚钱的方法是预测短期,比如说半小时内比特币的涨跌趋势。
因此我需要的不是根据过去29分钟的价格数据,预测未来1分钟的价格数据的人工智能,而是精通行情,看交易数据能看出未来走势的交易员。
上面提到的LSTM适合预测价格,并不适合预测涨幅。
最终我放弃使用人工智能,尝试使用量化交易。
文档信息
- 本文作者:last2win
- 本文链接:https://last2win.com/2020/04/16/btc-predict/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)