获取数据
- load_dataview(读取本地数据)
- get_snapshot(读取索引为股票代号的数据)
- get_ts(读取时间序列数据)
- add_formula(添加自定义算法数据)
- add_field(从数据服务添加新数据至本地)
- remove_field(删除原有的数据)
- dv.save_dataview('保存至相应地址')
1_读取本地数据
import jaqs_fxdayu
jaqs_fxdayu.patch_all()
from jaqs.data import DataView
from jaqs.data import RemoteDataService
import os
import numpy as np
import warnings
warnings.filterwarnings("ignore")
D:\Anaconda3\lib\importlib\__init__.py:126: FutureWarning: The pandas.core.datetools module is deprecated and will be removed in a future version. Please use the pandas.tseries module instead.
return _bootstrap._gcd_import(name[level:], package, level)
D:\Anaconda3\lib\site-packages\matplotlib\__init__.py:1405: UserWarning:
This call to matplotlib.use() has no effect because the backend has already
been chosen; matplotlib.use() must be called *before* pylab, matplotlib.pyplot,
or matplotlib.backends is imported for the first time.
warnings.warn(_use_error_msg)
dv = DataView()
dataview_folder = './JAQS_Data/hs300'
dv.load_dataview(dataview_folder)
Dataview loaded successfully.
2_读取索引为股票代号的数据
print(dv.get_snapshot(20170504, symbol='600036.SH,600050.SH', fields=''))
field _daily_adjust_factor _limit adjust_factor ann_date \
symbol
600036.SH 1.0 0.001057 4.47681 20170428.0
600050.SH 1.0 1.000000 1.55687 20170422.0
field can_enter can_exit close close_adj down_limit ebit ... \
symbol ...
600036.SH True True 18.75 83.940188 0.0 0.0 ...
600050.SH False False 7.47 11.629819 0.0 0.0 ...
field roa roe roe_pb roe_pb_Q5 total_mv trade_status \
symbol
600036.SH 0.3365 4.8548 4.318449 1.0 4.728721e+07 交易
600050.SH 0.1357 0.3526 0.173806 NaN 1.583386e+07 停牌
field up_limit volume vwap vwap_adj
symbol
600036.SH 0.0 39673390.0 18.75 83.93
600050.SH 0.0 0.0 0.00 0.00
[2 rows x 37 columns]
3_读取时间序列数据
print(dv.get_ts('pb').head())
symbol 000001.SZ 000002.SZ 000008.SZ 000009.SZ 000012.SZ 000021.SZ \
trade_date
20120105 1.1311 1.6998 6.3395 3.9615 2.5092 1.6159
20120106 1.1282 1.6787 6.3795 4.1982 2.5306 1.6455
20120109 1.1598 1.7374 6.6989 4.6177 2.6622 1.7146
20120110 1.1598 1.7655 7.0384 4.8128 2.9284 1.7870
20120111 1.1598 1.7491 7.0284 5.2945 2.9896 1.8068
symbol 000024.SZ 000027.SZ 000031.SZ 000039.SZ ... 601998.SH \
trade_date ...
20120105 1.5287 1.0983 1.5278 1.7439 ... 1.1508
20120106 1.5057 1.1131 1.5405 1.7669 ... 1.1648
20120109 1.5508 1.1537 1.5825 1.8775 ... 1.1816
20120110 1.5696 1.1795 1.6457 1.9810 ... 1.1985
20120111 1.5619 1.1684 1.6246 1.9594 ... 1.1844
symbol 603000.SH 603160.SH 603288.SH 603699.SH 603799.SH 603833.SH \
trade_date
20120105 NaN NaN NaN NaN NaN NaN
20120106 NaN NaN NaN NaN NaN NaN
20120109 NaN NaN NaN NaN NaN NaN
20120110 NaN NaN NaN NaN NaN NaN
20120111 NaN NaN NaN NaN NaN NaN
symbol 603858.SH 603885.SH 603993.SH
trade_date
20120105 NaN NaN NaN
20120106 NaN NaN NaN
20120109 NaN NaN NaN
20120110 NaN NaN NaN
20120111 NaN NaN NaN
[5 rows x 539 columns]
4_添加自定义算法数据
roe_pb = dv.add_formula('roe_pb', 'roe/pb', is_quarterly=False, add_data=True)
Field [roe_pb] is overwritten.
print(dv.get_ts('roe_pb').head())
symbol 000001.SZ 000002.SZ 000008.SZ 000009.SZ 000012.SZ 000021.SZ \
trade_date
20120105 13.168243 4.627368 -0.093746 2.272372 6.719114 2.788044
20120106 13.202092 4.685530 -0.093158 2.144252 6.662294 2.737891
20120109 12.842387 4.527225 -0.088716 1.949455 6.332958 2.627552
20120110 12.842387 4.455169 -0.084437 1.870429 5.757274 2.521097
20120111 12.842387 4.496941 -0.084557 1.700255 5.639417 2.493469
symbol 000024.SZ 000027.SZ 000031.SZ 000039.SZ ... 601998.SH \
trade_date ...
20120105 7.107215 6.380861 1.804294 10.959516 ... 14.546055
20120106 7.215780 6.296020 1.789419 10.816854 ... 14.371223
20120109 7.005932 6.074456 1.741927 10.179654 ... 14.166892
20120110 6.922018 5.941585 1.675032 9.647804 ... 13.967126
20120111 6.956143 5.998031 1.696787 9.754159 ... 14.133401
symbol 603000.SH 603160.SH 603288.SH 603699.SH 603799.SH 603833.SH \
trade_date
20120105 NaN NaN NaN NaN NaN NaN
20120106 NaN NaN NaN NaN NaN NaN
20120109 NaN NaN NaN NaN NaN NaN
20120110 NaN NaN NaN NaN NaN NaN
20120111 NaN NaN NaN NaN NaN NaN
symbol 603858.SH 603885.SH 603993.SH
trade_date
20120105 NaN NaN NaN
20120106 NaN NaN NaN
20120109 NaN NaN NaN
20120110 NaN NaN NaN
20120111 NaN NaN NaN
[5 rows x 539 columns]
5_从数据服务添加新数据至本地
data_config = {
"remote.data.address": "tcp://data.tushare.org:8910",
"remote.data.username": "13662241013",
"remote.data.password": "eyJhbGciOiJIUzI1NiJ9.eyJjcmVhdGVfdGltZSI6IjE1MTc2NDQzMzg5MTIiLCJpc3MiOiJhdXRoMCIsImlkIjoiMTM2NjIyNDEwMTMifQ.sVIzI5VLqq8fbZCW6yZZW0ClaCkcZpFqpiK944AHEow"
}
ds = RemoteDataService()
ds.init_from_config(data_config)
Begin: DataApi login 13662241013@tcp://data.tushare.org:8910
login success
'0,'
dv.add_field('eps_basic', ds)
Query data - query...
Query data - quarterly fields prepared.
True
print(dv.get_ts('eps_basic').head())
symbol 000001.SZ 000002.SZ 000008.SZ 000009.SZ 000012.SZ 000021.SZ \
trade_date
20120105 2.01 0.326 -0.006 0.21 0.53 0.1399
20120106 2.01 0.326 -0.006 0.21 0.53 0.1399
20120109 2.01 0.326 -0.006 0.21 0.53 0.1399
20120110 2.01 0.326 -0.006 0.21 0.53 0.1399
20120111 2.01 0.326 -0.006 0.21 0.53 0.1399
symbol 000024.SZ 000027.SZ 000031.SZ 000039.SZ ... 601998.SH \
trade_date ...
20120105 1.2138 0.37 0.07 1.2475 ... 0.57
20120106 1.2138 0.37 0.07 1.2475 ... 0.57
20120109 1.2138 0.37 0.07 1.2475 ... 0.57
20120110 1.2138 0.37 0.07 1.2475 ... 0.57
20120111 1.2138 0.37 0.07 1.2475 ... 0.57
symbol 603000.SH 603160.SH 603288.SH 603699.SH 603799.SH 603833.SH \
trade_date
20120105 NaN NaN NaN NaN NaN NaN
20120106 NaN NaN NaN NaN NaN NaN
20120109 0.16 NaN NaN NaN NaN NaN
20120110 0.16 NaN NaN NaN NaN NaN
20120111 0.16 NaN NaN NaN NaN NaN
symbol 603858.SH 603885.SH 603993.SH
trade_date
20120105 NaN NaN 0.18
20120106 NaN NaN 0.18
20120109 NaN NaN 0.18
20120110 NaN NaN 0.18
20120111 NaN NaN 0.18
[5 rows x 539 columns]
dv.remove_field('eps_basic')
dv.add_field('volume', ds)
Field name [volume] already exists.
False
dv.save_dataview('./JAQS_Data/hs300')
Store data...
Dataview has been successfully saved to:
E:\QTC\PythonQTC\course\3_JAQS\JAQS_Data\hs300
You can load it with load_dataview('E:\QTC\PythonQTC\course\3_JAQS\JAQS_Data\hs300')