博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
量化分析:把Tushare数据源,规整成PyalgoTrade所需格式
阅读量:7000 次
发布时间:2019-06-27

本文共 1530 字,大约阅读时间需要 5 分钟。

量化分析:把Tushare数据源,规整成PyalgoTrade所需格式

分析A股历史数据,首先需要确定数据来源。如果只想做日k线、周k线的技术分析,可以用PyalgoTrade直接从yahoo、google等下载数据,用不着Tushare。但是,如果想做分钟k线的技术分析,或者想了解基本面和消息面的数据,就用得着Tushare了。

PyalgoTrade使用的基本数据格式有两种,一是Yahoo格式,二是NinjaTrader格式。

Yahoo格式的数据分段为:

  • 日线数据:Date,Open,High,Low,Close,Volume,Adj Close
  • 分钟数据:Date Time,Open,High,Low,Close,Volume,Adj Close

Tushare提供的数据格式,日k线、分钟线均为:

  • date:日期
  • open:开盘价
  • high:最高价
  • close:收盘价
  • low:最低价
  • volume:成交量
  • price_change:价格变动
  • p_change:涨跌幅
  • ma5:5日均价
  • ma10:10日均价
  • ma20:20日均价
  • v_ma5:5日均量
  • v_ma10:10日均量
  • v_ma20:20日均量
  • turnover:换手率[注:指数无此项]

把Tushar数据转换成Yahoo格式,原本很简单。但我对Pandas不熟,只好找来相关pdf书,加上Baidu,在Jupyter Notebook中,边学边练,实验多次,最终搞定。

 

[python]   
 
  1. import tushare as ts  
  2. import pandas as pd  
  3.   
  4. # 得到15分钟数据(股票300336,始于2016-01-01,止于2016-05-24,15分钟数据)  
  5. data = ts.get_hist_data('300336','2016-01-01','2016-05-24','15')  
  6. # 数据存盘  
  7. data.to_csv('15-300336-2016.csv')  
  8. # 读出数据,DataFrame格式  
  9. df = pd.read_csv('15-300336-2016.csv')  
  10. # 从df中选取数据段,改变段名;新段'Adj Close'使用原有段'close'的数据  
  11. df2 = pd.DataFrame({
    'Date Time' : df['date'], 'Open' : df['open'],  
  12.                     'High' : df['high'],'Close' : df['close'],  
  13.                     'Low' : df['low'],'Volume' : df['volume'],  
  14.                     'Adj Close':df['close']})  
  15. # 按照Yahoo格式的要求,调整df2各段的顺序  
  16. dt = df2.pop('Date Time')  
  17. df2.insert(0,'Date Time',dt)  
  18. o = df2.pop('Open')  
  19. df2.insert(1,'Open',o)  
  20. h = df2.pop('High')  
  21. df2.insert(2,'High',h)  
  22. l = df2.pop('Low')  
  23. df2.insert(3,'Low',l)  
  24. c = df2.pop('Close')  
  25. df2.insert(4,'Close',c)  
  26. v = df2.pop('Volume')  
  27. df2.insert(5,'Volume',v)  
  28. # 新格式数据存盘,不保存索引编号  
  29. df2.to_csv("15-1.csv", index=False)  

转载于:https://www.cnblogs.com/zhanglong8681/p/7569165.html

你可能感兴趣的文章
Linux第三周作业
查看>>
Java邮箱验证
查看>>
@exceptionhandler 没有起作用,捕获不到异常
查看>>
初探SElinux
查看>>
elasticsearch之cluster模块
查看>>
dubbo源码分析系列(4)dubbo通信设计
查看>>
java报表中AIX字体丢失解决方案
查看>>
学习Perl 第2讲
查看>>
使用AJAX的最简单示例
查看>>
JAVA常用类
查看>>
Java SE 7新特性:创建泛型实例时自动类型推断
查看>>
面试问题之:JSON是什么?
查看>>
创建plist
查看>>
性能测试的几种类型
查看>>
重庆工业赋能创新中心项目签约并正式揭牌
查看>>
如何正确处理 InterruptedException
查看>>
程序员必备系列:开发工具的安装和使用
查看>>
G7在实时计算的探索与实践
查看>>
怎么在电脑上进行屏幕录像?电脑录屏的方法
查看>>
手机照片误删怎么恢复?别说,这招还真管用
查看>>