用python做量化投资系列之比特币---双均线系统

来源:互联网 发布:nginx nagios搭建 编辑:程序博客网 时间:2024/04/29 00:26

转摘自      http://blog.csdn.net/qq_26948675/article/details/54783472

       原理:均线可能是趋势跟踪方法中最普通,也可能是稳定性最好的一种方法。有时候,越是简单的东西,往往越加有效,越加稳定。双均线系统:采用1分钟历史数据回测(2016年12月到2017年1月9号),用1万元,每次交易一个比特币,滑点算一个,不加杠杆,回测年华收益在10倍以上。

     使用方法:把上一篇的配置基础,写到一个python文件中,文件名保存为

[python] view plain copy
  1. OkcoinSpotAPI。然后把下面的代码,写到一个新的文件中,保存好,就可以直接运行了。  
[python] view plain copy
  1. 策略的原理:一分钟周期上,8日均线金叉34日均线,开仓买入;死叉,平仓卖出。  
[python] view plain copy
  1. 注:这个策略仅仅是最初始的调试版本,很不完善哦。更一步交流,请加qq:1733505732  
[python] view plain copy
  1. 注明:python 比特币  

      

[python] view plain copy
  1. # -*- coding: utf-8 -*-  
  2. """ 
  3. Created on Fri Jan 13 23:47:40 2017 
  4.  
  5. @author: yunjinqi 
  6.  
  7. E-mail:yunjinqi@qq.com 
  8.  
  9. Differentiate yourself in the world from anyone else. 
  10. """  
  11. ####################################引用模块  
  12.   
  13.   
  14. from OkcoinSpotAPI import *  
  15. import pandas as pd  
  16. import numpy as np  
  17. import datetime  
  18. import time  
  19.   
  20.   
  21. ###################################初始数据  
  22. okcoinRESTURL = 'www.okcoin.cn'    
  23. apikey='978e1f34-acf5-40d1-b49e-f8b80618fd35'  
  24. secretkey='79CCAADA3C40F24FB7B01E83763818E6'  
  25. okcoinSpot = OKCoinSpot(okcoinRESTURL,apikey,secretkey)  
  26. ##################################获取整理数据  
  27. okcoinSpot.userinfo()  
  28. ###okcoinSpot.getKline('1min','14','1'))#获取K线数据  
  29. #ma8=pd.DataFrame(okcoinSpot.getKline('1min','8','0')).ix[::,4].mean()  
  30. #ma34=pd.DataFrame(okcoinSpot.getKline('1min','34','0')).ix[::,4].mean()  
  31. try:  
  32.     ref_ma8=pd.DataFrame(okcoinSpot.getKline('1min','8','0')).ix[::,4].mean()  
  33.     ref_ma34=pd.DataFrame(okcoinSpot.getKline('1min','34','0')).ix[::,4].mean()  
  34.     print('ref_ma8:',ref_ma8,'  ref_ma34',ref_ma34)  
  35. except ValueError as e:  
  36.     print('json错误')  
  37. time.sleep(58)  
  38. i=0  
  39. while True:  
  40.        try:  
  41.            ma8=pd.DataFrame(okcoinSpot.getKline('1min','8','0')).ix[::,4].mean()  
  42.            ma34=pd.DataFrame(okcoinSpot.getKline('1min','34','0')).ix[::,4].mean()  
  43.            print('ma8:',ma8,'  ma34',ma34)  
  44.        except ValueError as e:  
  45.            print('json错误')  
  46.            continue  
  47.        if ma8>ma34 and ref_ma8<=ref_ma34:  
  48.            print('买入信号',okcoinSpot.trade('btc_cny','buy','7500','0.01'))  
  49.        if ma8<ma34 and ref_ma8>=ref_ma34:  
  50.            print('卖出信号',okcoinSpot.trade('btc_cny','sell','1','0.01'))  
  51.        time.sleep(58)  
  52.        try:  
  53.            ref_ma8=pd.DataFrame(okcoinSpot.getKline('1min','8','0')).ix[::,4].mean()  
  54.            ref_ma34=pd.DataFrame(okcoinSpot.getKline('1min','34','0')).ix[::,4].mean()  
  55.            print('ref_ma8:',ref_ma8,'  ref_ma34',ref_ma34)  
  56.        except ValueError as e:  
  57.            print('json错误')  
  58.              
  59.            continue  
  60.        now=datetime.datetime.now()  
  61.        now=now.strftime('%Y-%m-%d %H:%M:%S')   
  62.        i=i+1  
  63.        print(now,i)  

原创粉丝点击