用python进行比特币价格择时分析
比特币价格的历史数据可以直接在GitHub进行下载:https://github.com/yan-wong/BitcoinPriceHistoryInChina
或者按此文的代码获取:https://blog.csdn.net/weixin_37272286/article/details/78032131
本文的源码地址为:https://pan.baidu.com/s/1K_VVu8UwZ_tJPS5Wp--R2g
密码:cti9
BTC-CNY的csv文件(也包含在源码中),时间:2013-06-11到2017-09-18,价格预览:
大致趋势(图一为成交量,图二为价格):
1. 单因子分析
1.1 RSI (相对强弱指数):
(源代码见:1.py)
RSI 金叉以及RSI<30时,判断为买入点(后调整参数为40)
RSI 死叉以及RSI>70时,判断为卖出点
以红点为买入点,黑点为卖出点,得到交易图:
交易时间及买卖价格为:
分析:上涨时涨势很快,错过了几波大涨行情
平均年化收益率:20.0%
1.2 双均线
(源代码见:2.py)
分别以五日均线和十日均线的金叉和死叉判断入场点和出场点(后加入调整系数1.01和1.02控制买卖次数)
以红点为买入点,黑点为卖出点,得到交易图:
每次买入卖出的时间和价格也会进行输出:
分析:因为在两次大涨时都捕捉到了行情,结果较好,因为添加系数的原因,中间的震荡行情几乎没有交易
平均年化收益率:141.6%
1.3 交易量
(源代码见:3.py)
通过分析交易量和价格走势,在较为平稳的上涨趋势时,成交量会大幅上涨,当BTC价格大涨时,交易量会急剧减少,持有人会倾向于继续持有,因此当成交量持续上涨时,判断之后会有上涨行情
2. 多因子策略
2.1 拟合判断
2.2 综合判断
(源代码见:4.py)
结合前面的分析,做如下策略方案:
当成交量持续上升时,判断接下来的是上涨行情,持续持有,当成交量下降时,不做判断;
当双均线金叉时,判断接下的是上涨行情,持续持有;
当价格出现急剧下跌后,判断会有上涨行情
当双均线死叉时,判断为卖出点
调整参数扩大震荡期交易频率:
分析:BTC价格策略关键是捕捉上涨趋势并持续持有,在高区震荡时抛出,剧烈下跌后抢反弹行情,最大回撤太大
平均年化收益率:1726.8%,最大回测太大,达到了69.6%
在卖出点加入止损点后:
平均年化收益率:1487.8%,最大回撤37.5%
价格趋势和收益率走势图如图所示:
结论:BTC价格策略关键是捕捉上涨趋势并持续持有,在高区震荡时抛出,剧烈下跌后抢反弹行情
改进:每次剧跌后的反弹行情没有捕捉到,可增加关于这部分的判断,平缓区间内的交易方法需要优化