python量化交易:quantOS_tushare安装及使用示例

本文介绍了TuShare工具,它可实现股票、期货等金融数据的采集、清洗加工与存储,满足金融量化分析师和数据分析学习者的数据获取需求。文中说明了其依赖项、安装和升级方式,并给出多个使用示例,如获取个股历史交易数据等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TuShare

TuShare是实现对股票/期货等金融数据从数据采集清洗加工数据存储过程的工具,满足金融量化分析师和学习数据分析的人在数据获取方面的需求,它的特点是数据覆盖范围广,接口调用简单,响应快速。

 

 

 

 

Dependencies

python 2.x/3.x

pandas

Installation

Upgrade

pip install tushare --upgrade

Quick Start

Example 1. 获取个股历史交易数据(包括均线数据):

import tushare as ts

ts.get_hist_data('600848') #一次性获取全部数据
另外,参考get_k_data函数

结果显示:

日期 ,开盘价, 最高价, 收盘价, 最低价, 成交量, 价格变动 ,涨跌幅,5日均价,10日均价,20日均价,5日均量,10日均量,20日均量,换手率

			 open    high   close     low     volume    p_change  ma5 \
date                                                                     
2012-01-11   6.880   7.380   7.060   6.880   14129.96     2.62   7.060   
2012-01-12   7.050   7.100   6.980   6.900    7895.19    -1.13   7.020   
2012-01-13   6.950   7.000   6.700   6.690    6611.87    -4.01   6.913   
2012-01-16   6.680   6.750   6.510   6.480    2941.63    -2.84   6.813   
2012-01-17   6.660   6.880   6.860   6.460    8642.57     5.38   6.822   
2012-01-18   7.000   7.300   6.890   6.880   13075.40     0.44   6.788   
2012-01-19   6.690   6.950   6.890   6.680    6117.32     0.00   6.770   
2012-01-20   6.870   7.080   7.010   6.870    6813.09     1.74   6.832 

			 ma10    ma20      v_ma5     v_ma10     v_ma20     turnover  
date                                                                  
2012-01-11   7.060   7.060   14129.96   14129.96   14129.96     0.48  
2012-01-12   7.020   7.020   11012.58   11012.58   11012.58     0.27  
2012-01-13   6.913   6.913    9545.67    9545.67    9545.67     0.23  
2012-01-16   6.813   6.813    7894.66    7894.66    7894.66     0.10  
2012-01-17   6.822   6.822    8044.24    8044.24    8044.24     0.30  
2012-01-18   6.833   6.833    7833.33    8882.77    8882.77     0.45  
2012-01-19   6.841   6.841    7477.76    8487.71    8487.71     0.21  
2012-01-20   6.863   6.863    7518.00    8278.38    8278.38     0.23  

设定历史数据的时间:

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

			open    high   close     low    volume   p_change     ma5    ma10 \  
date                                                                            
2015-01-05  11.160  11.390  11.260  10.890  46383.57     1.26  11.156  11.212   
2015-01-06  11.130  11.660  11.610  11.030  59199.93     3.11  11.182  11.155   
2015-01-07  11.580  11.990  11.920  11.480  86681.38     2.67  11.366  11.251   
2015-01-08  11.700  11.920  11.670  11.640  56845.71    -2.10  11.516  11.349   
2015-01-09  11.680  11.710  11.230  11.190  44851.56    -3.77  11.538  11.363   
 			ma20     v_ma5    v_ma10     v_ma20 	 turnover  
date                                                        
2015-01-05  11.198  58648.75  68429.87   97141.81     1.59  
2015-01-06  11.382  54854.38  63401.05   98686.98     2.03  
2015-01-07  11.543  55049.74  61628.07  103010.58     2.97  
2015-01-08  11.647  57268.99  61376.00  105823.50     1.95  
2015-01-09  11.682  58792.43  60665.93  107924.27     1.54  

复权历史数据 获取历史复权数据,分为前复权和后复权数据,接口提供股票上市以来所有历史数据,默认为前复权。如果不设定开始和结束日期,则返回近一年的复权数据,从性能上考虑,推荐设定开始日期和结束日期,而且最好不要超过一年以上,获取到数据后,请及时在本地存储。

ts.get_h_data('002337') #前复权
ts.get_h_data('002337',autype='hfq') #后复权
ts.get_h_data('002337',autype=None) #不复权
ts.get_h_data('002337',start='2015-01-01',end='2015-03-16') #两个日期之间的前复权数据

Example 2. 一次性获取最近一个日交易日所有股票的交易数据(结果显示速度取决于网速)

ts.get_today_all()

结果显示:

代码,名称,涨跌幅,现价,开盘价,最高价,最低价,最日收盘价,成交量,换手率

	  code    name     changepercent  trade   open   high    low  settlement \  
0     002738  中矿资源         10.023  19.32  19.32  19.32  19.32       17.56   
1     300410  正业科技         10.022  25.03  25.03  25.03  25.03       22.75   
2     002736  国信证券         10.013  16.37  16.37  16.37  16.37       14.88   
3     300412  迦南科技         10.010  31.54  31.54  31.54  31.54       28.67   
4     300411  金盾股份         10.007  29.68  29.68  29.68  29.68       26.98   
5     603636  南威软件         10.006  38.15  38.15  38.15  38.15       34.68   
6     002664  信质电机         10.004  30.68  29.00  30.68  28.30       27.89   
7     300367  东方网力         10.004  86.76  78.00  86.76  77.87       78.87   
8     601299  中国北车         10.000  11.44  11.44  11.44  11.29       10.40   
9     601880   大连港         10.000   5.72   5.34   5.72   5.22        5.20   
10    000856  冀东装备         10.000   8.91   8.18   8.91   8.18        8.10  
		volume  	 turnoverratio  
0        375100        1.25033  
1         85800        0.57200  
2       1058925        0.08824  
3         69400        0.51791  
4        252220        1.26110  
5       1374630        5.49852  
6       6448748        9.32700  
7       2025030        6.88669  
8     433453523        4.28056  
9     323469835        9.61735  
10     25768152       19.51090  

Example 3. 获取历史分笔数据

import tushare as ts

df = ts.get_tick_data('600848',date='2014-01-09')
df.head(10)

结果显示:

成交时间、成交价格、价格变动,成交手、成交金额(元),买卖类型

Out[3]: 
 	 time  		price change  volume  amount  type
0    15:00:00   6.05     --       8    4840   卖盘
1    14:59:55   6.05     --      50   30250   卖盘
2    14:59:35   6.05     --      20   12100   卖盘
3    14:59:30   6.05  -0.01     165   99825   卖盘
4    14:59:20   6.06   0.01       4    2424   买盘
5    14:59:05   6.05  -0.01       2    1210   卖盘
6    14:58:55   6.06     --       4    2424   买盘
7    14:58:45   6.06     --       2    1212   买盘
8    14:58:35   6.06   0.01       2    1212   买盘
9    14:58:25   6.05  -0.01      20   12100   卖盘
10   14:58:05   6.06     --       5    3030   买盘

Example 4. 获取实时交易数据(Realtime Quotes Data)

df = ts.get_realtime_quotes('000581') #Single stock symbol
df[['code','name','price','bid','ask','volume','amount','time']]

结果显示:

名称、开盘价、昨价、现价、最高、最低、买入价、卖出价、成交量、成交金额...more in docs

   code    name     price  bid    ask    volume   amount        time
0  000581  威孚高科  31.15  31.14  31.15  8183020  253494991.16  11:30:36 

请求多个股票方法(一次最好不要超过30个):

ts.get_realtime_quotes(['600848','000980','000981']) #symbols from a list
ts.get_realtime_quotes(df['code'].tail(10)) #from a Series
策略名称 低波动率逆向加权策略(Low Volatility Inverse-Weighting Strategy) 核心逻辑 选股标准:筛选历史波动率较低的股票(低波动率通常对应更稳定的标的)。 权重分配:波动率越低的股票配置权重越高(使用波动率倒数计算权重,实现“低波动高权重”)。 逆向思维:避免追涨高波动热门股,专注稳健标的,降低组合整体波动。 策略步骤 1. 数据准备 标的池:全市场股票(建议剔除ST股、上市<60日新股、流动性差的股票)。 关键数据: 历史波动率(Volatility):使用过去30个交易日的日收益率标准差(年化:日波动率 × √252)。 股票价格、市值、交易量等。 2. 股票筛选 python # 伪代码示例 def select_stocks(stock_pool): low_vol_stocks = [] for stock in stock_pool: # 计算30日年化波动率 vol = calculate_annualized_volatility(stock, window=30) # 筛选波动率最低的20%股票(或自定义阈值) if vol < np.percentile(all_volatilities, 20): low_vol_stocks.append(stock) return low_vol_stocks 3. 权重计算 权重公式: w i = 1 / σ i ∑ j = 1 n ( 1 / σ j ) w i ​ = ∑ j=1 n ​ (1/σ j ​ ) 1/σ i ​ ​ ( σ i σ i ​ = 股票 i i的年化波动率) 特点:波动率越低( σ i σ i ​ 越小),权重 w i w i ​ 越大。 python # 伪代码:计算组合权重 def calculate_weights(selected_stocks): volatilities = [get_volatility(stock) for stock in selected_stocks] inverse_vol = [1 / vol for vol in volatilities] # 波动率倒数 total_inverse_vol = sum(inverse_vol) weights = [inv_vol / total_inverse_vol for inv_vol in inverse_vol] return weights 4. 组合构建 定期调仓(如每月/季度初)。 按权重分配资金买入股票,支持多空或仅做多。 5. 再平衡机制 每月/季度重新计算波动率和权重,调整至目标仓位。 风险控制 单只股票风险上限: 设置单股权重上限(如10%),避免过度集中。 行业分散: 限制单一行业权重(如不超过20%)。 黑名单机制: 剔除基本面恶化(如财报暴雷)或流动性骤降的股票。 止损规则: 个股回撤>15%时触发止损(可选)。 用优矿量化平台代码呈现出来
06-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值