30天学会量化交易模型 Day02

李魔佛 发表了文章 • 0 个评论 • 11255 次浏览 • 2016-05-17 16:30 • 来自相关话题

github同步代码: https://github.com/Rockyzsu/stock
 30天学会量化交易模型 Day01
 
接着上一篇,如果已经掌握了pandas数据类型的各种使用,就可以进入tushare数据的抓取环节。
 
tushare安装教程:
pip install tushare #最傻瓜且最快的安装方式
 
使用方法:





说明:
获取个股历史交易数据(包括均线数据),可以通过参数设置获取日k线、周k线、月k线,以及5分钟、15分钟、30分钟和60分钟k线数据。本接口只能获取近3年的日线数据,适合搭配均线数据进行选股和分析,如果需要全部历史数据,请调用下一个接口get_h_data()。

参数说明:

code:股票代码,即6位数字代码,或者指数代码(sh=上证指数 sz=深圳成指 hs300=沪深300指数 sz50=上证50 zxb=中小板 cyb=创业板)
start:开始日期,格式YYYY-MM-DD
end:结束日期,格式YYYY-MM-DD
ktype:数据类型,D=日k线 W=周 M=月 5=5分钟 15=15分钟 30=30分钟 60=60分钟,默认为D
retry_count:当网络异常后重试次数,默认为3
pause:重试时停顿秒数,默认为0

返回值说明:

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:换手率[注:指数无此项]
 
如果要获取所有的历史数据,可以使用 ts.get_h_data(股票代码,开始日期,结束日期) 即可。
 

ts.get_hist_data('600848',start='2015-01-05',end='2015-01-09')
 







 其它的一些参数:






 
接着学习数据的存储:
 
首先来扫一下盲: csv和excel的区别:

excel中后缀为csv和xls,二者区别如下:
1、xls 文件就是Microsoft excel电子表格的文件格式。
2、csv是最通用的一种文件格式,它可以非常容易地被导入各种PC表格及数据库中。 此文件,一行即为数据表的一行。生成数据表字段用半角逗号隔开。
csv是文本文件,用记事本就能打开,XLS是二进制的文件只有用EXCEL才能打
csv文件是以逗号为分隔符号,将各字段列分离出的一种ASCII文件。
csv(*.csv) 文件格式只能保存活动工作表中的单元格所显示的文本和数值。工作表中所有的数据行和字符都将保存。
数据列以逗号分隔,每一行数据都以回车符结束。如果单元格中包含逗号,则该单元格中的内容以双引号引起。

 

保存为csv格式







############################
获取股市市场的基本信息:
 
stock_info=ts.get_stock_basics()
 
包含了
"""
        获取沪深上市公司基本情况
    Return
    --------
    DataFrame
               code,代码
               name,名称
               industry,细分行业
               area,地区
               pe,市盈率
               outstanding,流通股本
               totals,总股本(万)
               totalAssets,总资产(万)
               liquidAssets,流动资产
               fixedAssets,固定资产
               reserved,公积金
               reservedPerShare,每股公积金
               eps,每股收益
               bvps,每股净资
               pb,市净率
               timeToMarket,上市日期
    """
 
获取所有股市的代码:
stock_info=ts.get_stock_basics()
def get_all_stock_id():
#获取所有股票代码
for i in stock_info.index:
print i
 


下一篇:30天学会量化交易模型 Day03
链接:http://30daydo.com/article/15 

 

  查看全部
github同步代码: https://github.com/Rockyzsu/stock
 30天学会量化交易模型 Day01
 
接着上一篇,如果已经掌握了pandas数据类型的各种使用,就可以进入tushare数据的抓取环节。
 
tushare安装教程:
pip install tushare #最傻瓜且最快的安装方式
 
使用方法:
TuShare_-财经数据接口包.jpg


说明:
获取个股历史交易数据(包括均线数据),可以通过参数设置获取日k线、周k线、月k线,以及5分钟、15分钟、30分钟和60分钟k线数据。本接口只能获取近3年的日线数据,适合搭配均线数据进行选股和分析,如果需要全部历史数据,请调用下一个接口get_h_data()。

参数说明:

code:股票代码,即6位数字代码,或者指数代码(sh=上证指数 sz=深圳成指 hs300=沪深300指数 sz50=上证50 zxb=中小板 cyb=创业板)
start:开始日期,格式YYYY-MM-DD
end:结束日期,格式YYYY-MM-DD
ktype:数据类型,D=日k线 W=周 M=月 5=5分钟 15=15分钟 30=30分钟 60=60分钟,默认为D
retry_count:当网络异常后重试次数,默认为3
pause:重试时停顿秒数,默认为0

返回值说明:

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:换手率[注:指数无此项]
 
如果要获取所有的历史数据,可以使用 ts.get_h_data(股票代码,开始日期,结束日期) 即可。
 

ts.get_hist_data('600848',start='2015-01-05',end='2015-01-09')
 

所有数据.jpg



 其它的一些参数:

TuShare_-财经数据接口包1.jpg


 
接着学习数据的存储:
 
首先来扫一下盲: csv和excel的区别:


excel中后缀为csv和xls,二者区别如下:
1、xls 文件就是Microsoft excel电子表格的文件格式。
2、csv是最通用的一种文件格式,它可以非常容易地被导入各种PC表格及数据库中。 此文件,一行即为数据表的一行。生成数据表字段用半角逗号隔开。
csv是文本文件,用记事本就能打开,XLS是二进制的文件只有用EXCEL才能打
csv文件是以逗号为分隔符号,将各字段列分离出的一种ASCII文件。
csv(*.csv) 文件格式只能保存活动工作表中的单元格所显示的文本和数值。工作表中所有的数据行和字符都将保存。
数据列以逗号分隔,每一行数据都以回车符结束。如果单元格中包含逗号,则该单元格中的内容以双引号引起。


 

保存为csv格式

cvs.jpg



############################
获取股市市场的基本信息:
 
stock_info=ts.get_stock_basics()
 
包含了
"""
        获取沪深上市公司基本情况
    Return
    --------
    DataFrame
               code,代码
               name,名称
               industry,细分行业
               area,地区
               pe,市盈率
               outstanding,流通股本
               totals,总股本(万)
               totalAssets,总资产(万)
               liquidAssets,流动资产
               fixedAssets,固定资产
               reserved,公积金
               reservedPerShare,每股公积金
               eps,每股收益
               bvps,每股净资
               pb,市净率
               timeToMarket,上市日期
    """
 
获取所有股市的代码:
stock_info=ts.get_stock_basics()
def get_all_stock_id():
#获取所有股票代码
for i in stock_info.index:
print i

 


下一篇:30天学会量化交易模型 Day03
链接:http://30daydo.com/article/15 

 

 

30天学会量化交易模型 Day01

李魔佛 发表了文章 • 3 个评论 • 43033 次浏览 • 2016-05-16 16:14 • 来自相关话题

Day 01 ---- Pandas
github同步代码: https://github.com/Rockyzsu/stock

 本人是一个会一点pyhton语言的菜鸟,对量化交易很好奇,准备在30天内学会量化交易。每天更新一篇文章,视乎个人每天宽裕的时间有多少,时间多就多写点,如果时间仓促就可能写的粗略一些,但每天都会坚持去写。
 
第一天
首先要找到获取股票市场的数据来源,python支持几个股票接口。 个人采用tushare。
 
对于tushare,使用最多的数据类型就是pandas中的DataFrame了。
 
先导入包:





创建对象 Series
1、可以通过传递一个list对象来创建一个Series,pandas会默认创建整型索引:




(np.nan是一个空值)

通过传递一个numpy array,时间索引以及列标签来创建一个DataFrame:





通过传递一个能够被转换成类似序列结构的字典对象来创建一个DataFrame:




 
查看不同列的数据类型:




 
查看数据
 
查看frame中头部和尾部的行:





显示索引、列和底层的numpy数据:





describe()函数对于数据的快速统计汇总:





 对数据的转置:




 
数据选择
虽然标准的Python/Numpy的选择和设置表达式都能够直接派上用场,但是作为工程使用的代码,我们推荐使用经过优化的pandas数据访问方式: .at, .iat, .loc, .iloc 和 .ix
选择一个单独的列,这将会返回一个Series,等同于df.A:
 




通过进行选择,这将会对行进行切片




 
通过标签选择
使用标签来获取一个交叉的区域
 




通过标签来在多个轴上进行选择





标签切片





 

通过位置选择
 
通过传递数值进行位置选择(选择的是行)
 

 
通过数值进行切片,与numpy/python中的情况类似
 

 
通过指定一个位置的列表,与numpy/python中的情况类似
 

 
获取特定的值
 

 
布尔索引
 
使用一个单独列的值来选择数据:

 
相关操作
 
  统计(相关操作通常情况下不包括缺失值)
 
执行描述性统计:
 

 
 
Pandas读取excel数据:#-*-coding=utf-8-*-
__author__ = 'rocky'
import pandas as pd
import numpy as np
def excel_op():
df=pd.read_excel("mystock.xls")
print df.head()

excel_op()(前提是需要安装xlrd 一个python对excel操作的包)
 






pandas中有Nan的非法数据,需要怎样处理呢?
 
可以使用 
code=code.fillna(0)
这个fillna(0) 函数,用来填充NaN的部分。 
 
填充后是这样子的:






这样对数据进行遍历的时候就可以通过 if data !=0 来判断是非非法。 因为没有其他表达式可以判断NaN
 
 
对于一些超大的excel或者csv文件,怎样读才能提高效率呢 ?df = pd.read_csv('test.csv', chunksize=10000)
for chunk in df:
# TODO: process the chunk as a normal DataFrame上面的参数就把csv文件分割为10000份,然后每份进行处理。
 
 
对dataframe的每一行进行遍历: for index,row in df.iterrows():
print row[u'代码'],row[u'资金发生数']上面的代码会循环输出每一行的 “代码”列和“资金发生数”列。
 

 下一篇:30天学会量化交易模型 Day02
http://30daydo.com/article/13
 
转载请注明:http://30daydo.com/article/11
 
  查看全部
Day 01 ---- Pandas
github同步代码: https://github.com/Rockyzsu/stock

 本人是一个会一点pyhton语言的菜鸟,对量化交易很好奇,准备在30天内学会量化交易。每天更新一篇文章,视乎个人每天宽裕的时间有多少,时间多就多写点,如果时间仓促就可能写的粗略一些,但每天都会坚持去写。
 
第一天
首先要找到获取股票市场的数据来源,python支持几个股票接口。 个人采用tushare。
 
对于tushare,使用最多的数据类型就是pandas中的DataFrame了。
 
先导入包:
1.jpg


创建对象 Series
1、可以通过传递一个list对象来创建一个Series,pandas会默认创建整型索引:
2.jpg

(np.nan是一个空值)

通过传递一个numpy array,时间索引以及列标签来创建一个DataFrame:
3.jpg


通过传递一个能够被转换成类似序列结构的字典对象来创建一个DataFrame:
4.jpg

 
查看不同列的数据类型:
5.jpg

 
查看数据
 
查看frame中头部和尾部的行:
6.jpg


显示索引、列和底层的numpy数据:
a1.jpg


describe()函数对于数据的快速统计汇总:
a2.jpg


 对数据的转置:
a3.jpg

 
数据选择
虽然标准的Python/Numpy的选择和设置表达式都能够直接派上用场,但是作为工程使用的代码,我们推荐使用经过优化的pandas数据访问方式: .at, .iat, .loc, .iloc 和 .ix
选择一个单独的列,这将会返回一个Series,等同于df.A:
 
a4.jpg


通过进行选择,这将会对行进行切片
a5.jpg

 
通过标签选择
使用标签来获取一个交叉的区域
 
a6.jpg


通过标签来在多个轴上进行选择
a7.jpg


标签切片

a8.jpg

 

通过位置选择
 
通过传递数值进行位置选择(选择的是行)
 

 
通过数值进行切片,与numpy/python中的情况类似
 

 
通过指定一个位置的列表,与numpy/python中的情况类似
 

 
获取特定的值
 

 
布尔索引
 
使用一个单独列的值来选择数据:

 
相关操作
 
  统计(相关操作通常情况下不包括缺失值)
 
执行描述性统计:
 

 
 
Pandas读取excel数据:
#-*-coding=utf-8-*-
__author__ = 'rocky'
import pandas as pd
import numpy as np
def excel_op():
df=pd.read_excel("mystock.xls")
print df.head()

excel_op()
(前提是需要安装xlrd 一个python对excel操作的包)
 

pandas1.PNG


pandas中有Nan的非法数据,需要怎样处理呢?
 
可以使用 
code=code.fillna(0)
这个fillna(0) 函数,用来填充NaN的部分。 
 
填充后是这样子的:

pandas2.PNG


这样对数据进行遍历的时候就可以通过 if data !=0 来判断是非非法。 因为没有其他表达式可以判断NaN
 
 
对于一些超大的excel或者csv文件,怎样读才能提高效率呢 ?
df = pd.read_csv('test.csv', chunksize=10000)
for chunk in df:
# TODO: process the chunk as a normal DataFrame
上面的参数就把csv文件分割为10000份,然后每份进行处理。
 
 
对dataframe的每一行进行遍历:
    for index,row in df.iterrows():
print row[u'代码'],row[u'资金发生数']
上面的代码会循环输出每一行的 “代码”列和“资金发生数”列。
 

 下一篇:30天学会量化交易模型 Day02
http://30daydo.com/article/13
 
转载请注明:http://30daydo.com/article/11