tushare 1.4.5__tar.gz → 1.4.6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- tushare-1.4.6/PKG-INFO +94 -0
- tushare-1.4.6/baks/demo.py +184 -0
- tushare-1.4.6/baks/rtqc.py +612 -0
- tushare-1.4.6/baks/setup.py +15 -0
- tushare-1.4.6/baks/sss.py +56 -0
- {tushare-1.4.5 → tushare-1.4.6}/setup.py +15 -9
- {tushare-1.4.5 → tushare-1.4.6}/tushare/__init__.py +1 -1
- {tushare-1.4.5 → tushare-1.4.6}/tushare/stock/rtq.py +6 -4
- tushare-1.4.6/tushare/stock/rtqc.pyd +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/subs/model/tick.py +128 -128
- {tushare-1.4.5 → tushare-1.4.6}/tushare/subs/tgw_subs/convert.py +20 -20
- tushare-1.4.6/tushare/util/protobuf/__init__.py +0 -0
- tushare-1.4.6/tushare.egg-info/PKG-INFO +94 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare.egg-info/SOURCES.txt +6 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare.egg-info/requires.txt +1 -6
- {tushare-1.4.5 → tushare-1.4.6}/tushare.egg-info/top_level.txt +1 -0
- tushare-1.4.5/PKG-INFO +0 -87
- tushare-1.4.5/tushare.egg-info/PKG-INFO +0 -87
- {tushare-1.4.5 → tushare-1.4.6}/LICENSE +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/README.md +0 -0
- {tushare-1.4.5/tushare/bond → tushare-1.4.6/baks}/__init__.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/setup.cfg +0 -0
- {tushare-1.4.5/tushare/coins → tushare-1.4.6/tushare/bond}/__init__.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/bond/bonds.py +0 -0
- {tushare-1.4.5/tushare/fund → tushare-1.4.6/tushare/coins}/__init__.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/coins/market.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/data/__init__.py +0 -0
- {tushare-1.4.5/tushare/futures → tushare-1.4.6/tushare/fund}/__init__.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/fund/cons.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/fund/nav.py +0 -0
- {tushare-1.4.5/tushare/internet → tushare-1.4.6/tushare/futures}/__init__.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/futures/cons.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/futures/domestic.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/futures/domestic_cons.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/futures/intlfutures.py +0 -0
- {tushare-1.4.5/tushare/pro → tushare-1.4.6/tushare/internet}/__init__.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/internet/boxoffice.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/internet/caixinnews.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/internet/indexes.py +0 -0
- {tushare-1.4.5/tushare/stock → tushare-1.4.6/tushare/pro}/__init__.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/pro/client.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/pro/data_pro.py +0 -0
- {tushare-1.4.5/tushare/subs → tushare-1.4.6/tushare/stock}/__init__.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/stock/billboard.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/stock/classifying.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/stock/cons.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/stock/fundamental.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/stock/globals.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/stock/histroy_divide.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/stock/indictor.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/stock/macro.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/stock/macro_vars.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/stock/minsdata.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/stock/news_vars.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/stock/newsevent.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/stock/ref_vars.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/stock/reference.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/stock/rtq_vars.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/stock/shibor.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/stock/trading.py +0 -0
- {tushare-1.4.5/tushare/subs/model → tushare-1.4.6/tushare/subs}/__init__.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/subs/ht_subs/__init__.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/subs/ht_subs/covert.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/subs/ht_subs/subscribe.py +0 -0
- {tushare-1.4.5/tushare/trader → tushare-1.4.6/tushare/subs/model}/__init__.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/subs/model/min.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/subs/tgw_subs/__init__.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/subs/tgw_subs/login.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/subs/tgw_subs/subscribe.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/subs/ts_subs/__init__.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/subs/ts_subs/subscribe.py +0 -0
- {tushare-1.4.5/tushare/util → tushare-1.4.6/tushare/trader}/__init__.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/trader/trader.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/trader/utils.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/trader/vars.py +0 -0
- {tushare-1.4.5/tushare/util/protobuf → tushare-1.4.6/tushare/util}/__init__.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/util/common.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/util/conns.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/util/dateu.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/util/form_date.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/util/format_stock_code.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/util/formula.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/util/mailmerge.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/util/netbase.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/util/protobuf/funcs.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/util/protobuf/response_pb2.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/util/store.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/util/upass.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/util/vars.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare/util/verify_token.py +0 -0
- {tushare-1.4.5 → tushare-1.4.6}/tushare.egg-info/dependency_links.txt +0 -0
tushare-1.4.6/PKG-INFO
ADDED
@@ -0,0 +1,94 @@
|
|
1
|
+
Metadata-Version: 2.1
|
2
|
+
Name: tushare
|
3
|
+
Version: 1.4.6
|
4
|
+
Summary: A utility for crawling historical and Real-time Quotes data of China stocks
|
5
|
+
Home-page: https://tushare.pro
|
6
|
+
Author: Jimmy Liu
|
7
|
+
Author-email: waditu@163.com
|
8
|
+
License: BSD
|
9
|
+
Keywords: Global Financial Data
|
10
|
+
Platform: UNKNOWN
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
12
|
+
Classifier: Programming Language :: Python :: 3.6
|
13
|
+
Classifier: Programming Language :: Python :: 3.7
|
14
|
+
Classifier: Programming Language :: Python :: 3.8
|
15
|
+
Classifier: Programming Language :: Python :: 3.9
|
16
|
+
Classifier: Programming Language :: Python :: 3.10
|
17
|
+
Classifier: License :: OSI Approved :: BSD License
|
18
|
+
Description-Content-Type: text/plain
|
19
|
+
License-File: LICENSE
|
20
|
+
|
21
|
+
|
22
|
+
TuShare
|
23
|
+
===============
|
24
|
+
|
25
|
+
.. image:: https://api.travis-ci.org/waditu/tushare.png?branch=master
|
26
|
+
:target: https://travis-ci.org/waditu/tushare
|
27
|
+
|
28
|
+
.. image:: https://badge.fury.io/py/tushare.png
|
29
|
+
:target: http://badge.fury.io/py/tushare
|
30
|
+
|
31
|
+
* easy to use as most of the data returned are pandas DataFrame objects
|
32
|
+
* can be easily saved as csv, excel or json files
|
33
|
+
* can be inserted into MySQL or Mongodb
|
34
|
+
|
35
|
+
Target Users
|
36
|
+
--------------
|
37
|
+
|
38
|
+
* financial market analyst of China
|
39
|
+
* learners of financial data analysis with pandas/NumPy
|
40
|
+
* people who are interested in China financial data
|
41
|
+
|
42
|
+
Installation
|
43
|
+
--------------
|
44
|
+
|
45
|
+
pip install tushare
|
46
|
+
|
47
|
+
Upgrade
|
48
|
+
---------------
|
49
|
+
|
50
|
+
pip install tushare --upgrade
|
51
|
+
|
52
|
+
Quick Start
|
53
|
+
--------------
|
54
|
+
|
55
|
+
::
|
56
|
+
|
57
|
+
import tushare as ts
|
58
|
+
|
59
|
+
ts.get_hist_data('600848')
|
60
|
+
|
61
|
+
return::
|
62
|
+
|
63
|
+
open high close low volume p_change ma5
|
64
|
+
date
|
65
|
+
2012-01-11 6.880 7.380 7.060 6.880 14129.96 2.62 7.060
|
66
|
+
2012-01-12 7.050 7.100 6.980 6.900 7895.19 -1.13 7.020
|
67
|
+
2012-01-13 6.950 7.000 6.700 6.690 6611.87 -4.01 6.913
|
68
|
+
2012-01-16 6.680 6.750 6.510 6.480 2941.63 -2.84 6.813
|
69
|
+
2012-01-17 6.660 6.880 6.860 6.460 8642.57 5.38 6.822
|
70
|
+
2012-01-18 7.000 7.300 6.890 6.880 13075.40 0.44 6.788
|
71
|
+
2012-01-19 6.690 6.950 6.890 6.680 6117.32 0.00 6.770
|
72
|
+
2012-01-20 6.870 7.080 7.010 6.870 6813.09 1.74 6.832
|
73
|
+
|
74
|
+
|
75
|
+
Log
|
76
|
+
--------------
|
77
|
+
1.4.6
|
78
|
+
-------
|
79
|
+
- 修复 realtime_quote 实时盘口TICK快照(爬虫版)
|
80
|
+
- 修复dc OPEN和LOW 值相反问题
|
81
|
+
1.4.0
|
82
|
+
-------
|
83
|
+
- 增加 银河证券实时行情数据入口
|
84
|
+
1.3.9
|
85
|
+
-------
|
86
|
+
- realtime_quote 实时盘口TICK快照(爬虫版)
|
87
|
+
- 修复dc 指数和股票数据抓取问题
|
88
|
+
- 将数字类型统一转换成 float类型
|
89
|
+
1.2.73
|
90
|
+
-------
|
91
|
+
- 支持华泰实时数据15SECOND
|
92
|
+
|
93
|
+
|
94
|
+
|
@@ -0,0 +1,184 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
"""
|
3
|
+
Created on 2021-12-31 09:32:16
|
4
|
+
---------
|
5
|
+
@summary:
|
6
|
+
---------
|
7
|
+
@author: yangyx01
|
8
|
+
"""
|
9
|
+
import pandas as pd
|
10
|
+
import requests
|
11
|
+
from typing import Optional
|
12
|
+
from tushare.util.format_stock_code import format_stock_code
|
13
|
+
|
14
|
+
|
15
|
+
def get_stock_all_a_dc(page_count: Optional[int] = None,
|
16
|
+
proxies: Optional[dict] = {}) -> pd.DataFrame:
|
17
|
+
"""
|
18
|
+
东方财富网-沪深京 A 股-实时行情
|
19
|
+
https://quote.eastmoney.com/center/gridlist.html#hs_a_board
|
20
|
+
:return: 实时行情
|
21
|
+
:rtype: pandas.DataFrame
|
22
|
+
1、序号:RANK
|
23
|
+
2、代码:TS_CODE
|
24
|
+
3、名称:NAME
|
25
|
+
4、最新价:PRICE
|
26
|
+
5、涨跌幅:PCT_CHANGE
|
27
|
+
6、涨跌额:CHANGE
|
28
|
+
7、成交量:VOLUME
|
29
|
+
8、成交额:AMOUNT
|
30
|
+
9、振幅:SWING
|
31
|
+
10、最高:HIGH
|
32
|
+
11、最低:LOW
|
33
|
+
12、今开:OPEN
|
34
|
+
13、昨收:CLOSE
|
35
|
+
14、量比:VOL_RATIO
|
36
|
+
15、换手率:TURNOVER_RATE
|
37
|
+
16、市盈率-动态:PE
|
38
|
+
17、市净率:PB
|
39
|
+
18、总市值:TOTAL_MV
|
40
|
+
19、流通市值:FLOAT_MV
|
41
|
+
20、涨速:RISE
|
42
|
+
21、5分钟涨跌:5MIN
|
43
|
+
22、60日涨跌幅:60DAY
|
44
|
+
23、年初至今涨跌幅:1YEAR
|
45
|
+
"""
|
46
|
+
url = "http://82.push2.eastmoney.com/api/qt/clist/get"
|
47
|
+
params = {
|
48
|
+
"pn": "1",
|
49
|
+
"pz": "50000",
|
50
|
+
"po": "1",
|
51
|
+
"np": "1",
|
52
|
+
"ut": "bd1d9ddb04089700cf9c27f6f7426281",
|
53
|
+
"fltt": "2",
|
54
|
+
"invt": "2",
|
55
|
+
"fid": "f3",
|
56
|
+
"fs": "m:0 t:6,m:0 t:80,m:1 t:2,m:1 t:23,m:0 t:81 s:2048",
|
57
|
+
"fields": "f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,f23,f24,f25,f22,f11,f62,f128,f136,f115,f152",
|
58
|
+
"_": "1623833739532",
|
59
|
+
}
|
60
|
+
if page_count:
|
61
|
+
params["pz"] = 20
|
62
|
+
r = requests.get(url, params=params, proxies=proxies)
|
63
|
+
data_json = r.json()
|
64
|
+
if not data_json["data"]["diff"]:
|
65
|
+
return pd.DataFrame()
|
66
|
+
temp_df = pd.DataFrame(data_json["data"]["diff"])
|
67
|
+
temp_df.columns = [
|
68
|
+
"_",
|
69
|
+
"最新价",
|
70
|
+
"涨跌幅",
|
71
|
+
"涨跌额",
|
72
|
+
"成交量",
|
73
|
+
"成交额",
|
74
|
+
"振幅",
|
75
|
+
"换手率",
|
76
|
+
"市盈率-动态",
|
77
|
+
"量比",
|
78
|
+
"5分钟涨跌",
|
79
|
+
"代码",
|
80
|
+
"_",
|
81
|
+
"名称",
|
82
|
+
"最高",
|
83
|
+
"最低",
|
84
|
+
"今开",
|
85
|
+
"昨收",
|
86
|
+
"总市值",
|
87
|
+
"流通市值",
|
88
|
+
"涨速",
|
89
|
+
"市净率",
|
90
|
+
"60日涨跌幅",
|
91
|
+
"年初至今涨跌幅",
|
92
|
+
"-",
|
93
|
+
"-",
|
94
|
+
"-",
|
95
|
+
"-",
|
96
|
+
"-",
|
97
|
+
"-",
|
98
|
+
"-",
|
99
|
+
]
|
100
|
+
temp_df.reset_index(inplace=True)
|
101
|
+
# temp_df["index"] = temp_df.index + 1
|
102
|
+
# temp_df.rename(columns={"index": "序号"}, inplace=True)
|
103
|
+
temp_df = temp_df[
|
104
|
+
[
|
105
|
+
# "序号",
|
106
|
+
"代码",
|
107
|
+
"名称",
|
108
|
+
"最新价",
|
109
|
+
"涨跌幅",
|
110
|
+
"涨跌额",
|
111
|
+
"成交量",
|
112
|
+
"成交额",
|
113
|
+
"振幅",
|
114
|
+
"最高",
|
115
|
+
"最低",
|
116
|
+
"今开",
|
117
|
+
"昨收",
|
118
|
+
"量比",
|
119
|
+
"换手率",
|
120
|
+
"市盈率-动态",
|
121
|
+
"市净率",
|
122
|
+
"总市值",
|
123
|
+
"流通市值",
|
124
|
+
"涨速",
|
125
|
+
"5分钟涨跌",
|
126
|
+
"60日涨跌幅",
|
127
|
+
"年初至今涨跌幅",
|
128
|
+
]
|
129
|
+
]
|
130
|
+
|
131
|
+
temp_df["代码"] = temp_df["代码"].apply(format_stock_code)
|
132
|
+
temp_df["最新价"] = pd.to_numeric(temp_df["最新价"], errors="coerce")
|
133
|
+
temp_df["涨跌幅"] = pd.to_numeric(temp_df["涨跌幅"], errors="coerce")
|
134
|
+
temp_df["涨跌额"] = pd.to_numeric(temp_df["涨跌额"], errors="coerce")
|
135
|
+
temp_df["成交量"] = pd.to_numeric(temp_df["成交量"], errors="coerce")
|
136
|
+
temp_df["成交额"] = pd.to_numeric(temp_df["成交额"], errors="coerce")
|
137
|
+
temp_df["振幅"] = pd.to_numeric(temp_df["振幅"], errors="coerce")
|
138
|
+
temp_df["最高"] = pd.to_numeric(temp_df["最高"], errors="coerce")
|
139
|
+
temp_df["最低"] = pd.to_numeric(temp_df["最低"], errors="coerce")
|
140
|
+
temp_df["今开"] = pd.to_numeric(temp_df["今开"], errors="coerce")
|
141
|
+
temp_df["昨收"] = pd.to_numeric(temp_df["昨收"], errors="coerce")
|
142
|
+
temp_df["量比"] = pd.to_numeric(temp_df["量比"], errors="coerce")
|
143
|
+
temp_df["换手率"] = pd.to_numeric(temp_df["换手率"], errors="coerce")
|
144
|
+
temp_df["市盈率-动态"] = pd.to_numeric(temp_df["市盈率-动态"], errors="coerce")
|
145
|
+
temp_df["市净率"] = pd.to_numeric(temp_df["市净率"], errors="coerce")
|
146
|
+
temp_df["总市值"] = pd.to_numeric(temp_df["总市值"], errors="coerce")
|
147
|
+
temp_df["流通市值"] = pd.to_numeric(temp_df["流通市值"], errors="coerce")
|
148
|
+
temp_df["涨速"] = pd.to_numeric(temp_df["涨速"], errors="coerce")
|
149
|
+
temp_df["5分钟涨跌"] = pd.to_numeric(temp_df["5分钟涨跌"], errors="coerce")
|
150
|
+
temp_df["60日涨跌幅"] = pd.to_numeric(temp_df["60日涨跌幅"], errors="coerce")
|
151
|
+
temp_df["年初至今涨跌幅"] = pd.to_numeric(temp_df["年初至今涨跌幅"], errors="coerce")
|
152
|
+
temp_df.columns = [
|
153
|
+
# "RANK",
|
154
|
+
"TS_CODE",
|
155
|
+
"NAME",
|
156
|
+
"PRICE",
|
157
|
+
"PCT_CHANGE",
|
158
|
+
"CHANGE",
|
159
|
+
"VOLUME",
|
160
|
+
"AMOUNT",
|
161
|
+
"SWING",
|
162
|
+
"HIGH",
|
163
|
+
"LOW",
|
164
|
+
"OPEN",
|
165
|
+
"CLOSE",
|
166
|
+
"VOL_RATIO",
|
167
|
+
"TURNOVER_RATE",
|
168
|
+
"PE",
|
169
|
+
"PB",
|
170
|
+
"TOTAL_MV",
|
171
|
+
"FLOAT_MV",
|
172
|
+
"RISE",
|
173
|
+
"5MIN",
|
174
|
+
"60DAY",
|
175
|
+
"1YEAR",
|
176
|
+
]
|
177
|
+
temp_df = temp_df.iloc[:, [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12]]
|
178
|
+
df_sorted = temp_df.sort_values(by='PCT_CHANGE', ascending=False).reset_index(drop=True)
|
179
|
+
return df_sorted
|
180
|
+
|
181
|
+
|
182
|
+
if __name__ == '__main__':
|
183
|
+
df = get_stock_all_a_dc(page_count=1)
|
184
|
+
print(df)
|