/GuGu

GuGu是适用于量化工程及金融/投资领域数据分析的开源项目,通过对互联网上的公开数据进行采集、清洗和存储,完成了对股票/债券/基金等金融数据的统一调用和分析。其优点是速度快、可定制及高度的可复用性。您不仅可以将其作为单独的数据接口使用,还可以将其集成在您的项目中作为数据获取api进行调用。

Primary LanguagePythonApache License 2.0Apache-2.0

gugu(股估)

gugu是适用于量化工程及金融/投资领域数据分析的开源项目,通过对互联网上的公开数据进行采集、清洗和存储,完成了对股票/债券/基金等金融数据的统一调用和分析。其优点是速度快、可定制及高度的可复用性。您不仅可以将其作为单独的数据接口使用,还可以将其集成在您的项目中作为数据获取api进行调用。

大家可能之前用过类似的开源项目,本人之前在进行金融数据分析时也是使用其他开源项目获取数据的。然而现在很多开源项目变成了半开源甚至闭源,您需要获取许可才能使用或者需要积累积分才能获得更多的权限,这对于喜欢自己动手并自由定制的朋友会有很多的不便。为了充分发扬开源精神倡导自由软件理念同时为了自身项目需要本人开发了gugu,作为开源社区版的金融数据api,我们承诺gugu将永远开源并不做任何限制以提供给广大金融数据分析及量化爱好者免费使用!

Dependencies:

python 2.x/3.x

pandas

Installation

方式1: pip install gugu

方式2: python setup.py install

方式3:访问 https://pypi.python.org/pypi/gugu/ 下载安装

Upgrade

pip install gugu --upgrade

Quick Start Example 1: 获取大盘指数行情 import gugu as gg

obj = gg.MarketData()       # 创建市场数据类对象
obj.index()                 # 获取大盘指数行情

获取结果:
obj.output()                # 打印结果

          
      code       name    change       open   preclose      close       high  \
0   sh000001    上证指数    1.30  2597.7777  2584.5724  2618.2323  2618.4765   
1   sh000002    A股指数    1.30  2720.4606  2706.5853  2741.8442  2742.1007   
2   sh000003    B股指数    1.18   271.9034   272.1140   275.3162   275.3162   
3   sh000008    综合指数    0.61  2557.2054  2543.6348  2559.2362  2561.5066   
4   sh000009   上证380    2.47  3892.8231  3880.0032  3975.8523  3976.0933   
5   sh000010   上证180    1.07  7293.4790  7241.9589  7319.4839  7320.2873   
6   sh000011    基金指数    0.90  5642.7602  5629.3801  5679.8086  5679.8339   
7   sh000012    国债指数    0.01   170.9805   170.9642   170.9819   170.9892   
8   sh000016    上证50    0.65  2502.1044  2483.4709  2499.6442  2503.5526   
9   sh000017     新综指    1.30  2193.5148  2182.3286  2210.7524  2210.9592   
10  sh000300   沪深300    1.43  3225.7335  3201.6331  3247.3971  3247.4956   
11  sh000905   中证500    2.82  4189.1098  4176.4739  4294.2696  4295.0379   
12  sz399001    深证成指    2.74  7524.6650  7479.2150  7683.9970  7684.1120   
13  sz399002    深成指R    2.74  9097.7900  9042.8390  9290.4330  9290.5710   
14  sz399003    成份B指    1.99  4442.0740  4445.4680  4534.0600  4534.0600   
15  sz399004  深证100R    2.49  4063.9900  4029.3260  4129.5800  4130.6630   
16  sz399005    中小板指    3.47  4866.8680  4836.6130  5004.4890  5004.4890   
17  sz399006    创业板指    3.53  1233.3840  1227.9880  1271.2750  1272.1930   
18  sz399008   中小300    3.27   947.0020   942.1740   973.0090   973.0090   
19  sz399100   新 指 数    2.69  5850.7930  5819.9190  5976.5880  5976.5880   
20  sz399101    中小板综    3.03  7393.8140  7358.2710  7581.1830  7581.1830   
21  sz399106    深证综指    2.77  1281.1620  1274.7440  1309.9910  1309.9910   
22  sz399107    深证A指    2.77  1339.4990  1332.7690  1369.6510  1369.6510   
23  sz399108    深证B指    2.09   857.4780   856.8890   874.7950   874.7950   
24  sz399333    中小板R    3.47  5412.0040  5378.3600  5565.0400  5565.0400   
25  sz399606    创业板R    3.53  1292.0270  1286.3740  1331.7190  1332.6810   

        low       volume     amount  
0   2590.5543    131986850  1115.2263  
1   2712.8352    131757820  1114.1248  
2    271.9034       229031     1.1015  
3   2538.8951     35179591   275.8689  
4   3892.8231     33132080   260.5541  
5   7247.4721     45958066   529.0995  
6   5637.2069     41987625   243.7168  
7    170.9733       135921     1.3286  
8   2479.3375     21950054   293.6402  
9   2187.3669    130134579  1096.8641  
10  3207.7168     82019641   947.6641  
11  4189.1098     66099677   476.9347  
12  7517.8340  18099026538  1502.2290  
13  9089.5310   8948052337   883.8526  
14  4442.0740      6063605     0.4918  
15  4045.8820   3531953166   453.0613  
16  4866.4270   2440239019   270.5996  
17  1233.3840   1566379186   196.9856  
18   947.0020   4974249025   426.8148  
19  5850.7930  17446832212  1472.6754  
20  7393.8140   8257066751   651.9033  
21  1281.1620  18099026538  1502.2290  
22  1339.4990  18082520936  1501.3883  
23   857.4780     16505602     0.8408  
24  5411.5130   2440239019   270.5996  
25  1292.0270   1566379186   196.9856

Example 2: 获取指数ETF及其相关数据
obj = gg.MarketData()       # 创建市场数据类对象
obj.indexETF()              # 获取指数ETF及其相关数据

获取结果:
obj.output()                # 打印结果


    fund_id  fund_nm index_id  creation_unit     amount  unit_total  \
0    159901  深100ETF   399330           20.0   101937.0       36.95   
1    159902    中 小 板   399005           50.0    74693.0       18.28   
2    159903    深成ETF   399001          300.0    44815.0        3.74   
3    159905      深红利   399324           50.0    52744.0        7.64   
4    159906      深成长   399346          100.0    14364.0        0.95   
5    159907    中小300   399008          150.0    17660.0        1.79   
6    159908     博时创业   399006          150.0     3623.0        0.40   
7    159909     深TMT   399610           25.0     1552.0        0.52   
8    159910    深F120   399702          100.0    48091.0        7.10   
9    159911    民营ETF   399337           50.0     1307.0        0.39   
..      ...      ...      ...            ...        ...         ...    
110  512660    军工ETF   399967          100.0   111508.0        7.25   
111  512680     军工基金   399967           60.0    35932.0        2.29   
112  512700     银行基金   399986           20.0    11058.0        1.11   
113  512800    银行ETF   399986           30.0    57254.0        5.55   
114  512810     军工行业   399967          100.0     8353.0        0.51   
115  512880    证券ETF   399975          100.0   389729.0       30.94   
116  512900     证券基金   399975           30.0    60671.0        4.64   
117  512980    传媒ETF   399971          100.0   110272.0        7.29   
118  513600    恒指ETF      NaN          100.0     2883.0        0.72   
119  513660      恒生通      NaN          100.0    33500.0        8.40   

    unit_incr  price     volume  increase_rt  estimate_value  discount_rt  \
0         0.33  3.625   18697.36         2.57          3.6215         0.10   
1        -0.05  2.448    6731.85         3.51          2.4471         0.04   
2         0.00  0.835      77.66         1.83          0.8382        -0.37   
3         0.09  1.448     594.53         1.69          1.4477         0.03   
4         0.00  0.663       9.30         2.31          0.6582         0.30   
5         0.00  1.012      55.09         2.43          1.0128        -0.05   
6        -0.01  1.097      28.92         3.49          1.0976         0.02   
7         0.00  3.375       3.50         1.75          3.4384        -1.79   
8         0.19  1.476     128.26         1.72          1.4767        -0.04   
9         0.00  2.970       4.67         2.73          2.9834        -0.42   
..         ...    ...        ...          ...             ...          ...   
110       0.08  0.650    2920.85         2.20          0.6495         0.08   
111       0.01  0.637      20.94         2.25          0.6388        -0.25   
112       0.00  1.000      69.16         0.10          1.0029        -0.29   
113      -0.10  0.969    2861.82         0.21          0.9688         0.02   
114       0.00  0.614      34.02         2.16          0.6154        -0.18   
115       0.54  0.794   21511.10         2.72          0.7940         0.00   
116       0.00  0.765     391.30         2.82          0.7654        -0.07   
117       0.06  0.661    1043.38         2.64          0.6591         0.20   
118       0.00  2.507      49.85        -0.36          2.5237        -0.81   
119       0.00  2.507      99.09         0.68          2.4765         1.23   

     fund_nav      nav_dt index_nm  index_increase_rt      pe     pb  
0      3.6212  2019-02-01    深证100                0.0  16.665  2.368  
1      2.4470  2019-02-01     中小板指                0.0  20.140  2.814  
2      0.8381  2019-02-01     深证成指                0.0  17.235  2.121  
3      1.4475  2019-02-01     深证红利                0.0  13.370  2.079  
4      0.6610  2019-02-01     深证成长                0.0  18.516  2.893  
5      1.0125  2019-02-01    中小300                0.0  21.089  2.451  
6      1.0968  2019-02-01     创业板指                0.0  28.853  3.598  
7      3.4364  2019-02-01    TMT50                0.0  27.880  2.940  
8      1.4766  2019-02-01   深证F120                0.0  13.895  1.844  
9      2.9825  2019-02-01     深证民营                0.0  21.518  2.945  
..        ...         ...      ...                ...     ...    ...  
110    0.6495  2019-02-01     中证军工                0.0  47.329  2.166  
111    0.6386  2019-02-01     中证军工                0.0  47.329  2.166  
112    1.0029  2019-02-01     中证银行                0.0   6.588  0.873  
113    0.9688  2019-02-01     中证银行                0.0   6.588  0.873  
114    0.6151  2019-02-01     中证军工                0.0  47.329  2.166  
115    0.7940  2019-02-01     证券公司                0.0  25.216  1.341  
116    0.7655  2019-02-01     证券公司                0.0  25.216  1.341  
117    0.6597  2019-02-01     中证传媒                0.0  19.697  2.362  
118    2.5274  2019-02-01     恒生指数                0.0     NaN    NaN  
119    2.4907  2019-01-30     恒生指数                0.0     NaN    NaN  

Example 3: 获取股票交易历史数据
obj = gg.StockData('600000')                           # 创建股票交易类对象
obj.history(start='2019-01-02', end='2019-01-31')      # 获取浦发银行2019年1月份的历史数据

获取结果:
obj.output()                                           # 打印结果


         date   open  close   high    low    volume    code
0   2019-01-02   9.74   9.70   9.79   9.58  237628.0  600000
1   2019-01-03   9.70   9.81   9.82   9.66  186542.0  600000
2   2019-01-04   9.73   9.96  10.00   9.70  271728.0  600000
3   2019-01-07  10.09   9.98  10.09   9.92  235973.0  600000
4   2019-01-08  10.03   9.96  10.03   9.91  151049.0  600000
5   2019-01-09  10.06   9.99  10.16   9.98  231637.0  600000
6   2019-01-10   9.94   9.96  10.02   9.92  159235.0  600000
7   2019-01-11  10.03  10.05  10.15   9.96  190690.0  600000
8   2019-01-14  10.03  10.06  10.10  10.01  203528.0  600000
9   2019-01-15  10.10  10.11  10.15  10.05  156321.0  600000
10  2019-01-16  10.10  10.13  10.15  10.07  129883.0  600000
11  2019-01-17  10.17  10.17  10.28  10.07  227660.0  600000
12  2019-01-18  10.29  10.43  10.44  10.22  290871.0  600000
13  2019-01-21  10.36  10.35  10.46  10.30  189477.0  600000
14  2019-01-22  10.38  10.25  10.38  10.23  162505.0  600000
15  2019-01-23  10.29  10.27  10.34  10.25  165203.0  600000
16  2019-01-24  10.34  10.38  10.39  10.27  150066.0  600000
17  2019-01-25  10.45  10.50  10.56  10.38  196965.0  600000
18  2019-01-28  10.53  10.42  10.66  10.39  217690.0  600000
19  2019-01-29  10.39  10.58  10.63  10.38  237680.0  600000
20  2019-01-30  10.59  10.50  10.64  10.47  160542.0  600000
21  2019-01-31  10.59  10.73  10.73  10.51  251310.0  600000


Example 4: 获取三大需求对GDP贡献数据
obj = gg.Macro()           # 创建宏观经济数据类对象
obj.demandsToGdp()      # 获取获取三大需求对GDP贡献数据

获取结果:
obj.output()            # 打印结果


    year  cons_to  cons_rate  asset_to  asset_rate  goods_to  goods_rate
0   2017     58.8        4.1      32.1         2.2       9.1         0.6
1   2016     66.5        4.5      43.1         2.9      -9.6        -0.7
2   2015     59.7        4.1      41.6         2.9      -1.3        -0.1
3   2014     48.8        3.6      46.9         3.4       4.3         0.3
4   2013     48.2        3.6      54.2         4.3      -2.3        -0.1
5   2012     56.7        4.3      42.0         3.4       1.7         0.2
6   2011     61.9        5.9      46.2         4.4      -8.1        -0.8
7   2010     46.9        4.8      66.0         7.1     -11.2        -1.3
8   2009     56.1        5.3      86.5         8.1     -42.6        -4.0
9   2008     44.2        4.3      53.2         5.1       2.6         0.3
10  2007     45.3        6.4      44.1         6.3      10.6         1.5
11  2006     42.0        5.3      42.9         5.5      15.1         1.9
12  2005     54.4        6.2      33.1         3.8      12.5         1.4
13  2004     42.6        4.3      61.6         6.2      -4.2        -0.4
14  2003     35.4        3.6      70.0         7.0      -5.4        -0.6
15  2002     43.9        5.1      48.5         3.6       4.6         0.4
16  2001     49.0        4.1      64.0         5.3     -13.0        -1.1
17  2000     78.1        6.6      22.4         1.9      -0.5         NaN
18  1999     74.7        5.7      23.7         1.8       1.6         0.1
19  1998     57.1        4.4      26.4         2.1      16.5         1.3
20  1997     37.0        3.4      18.6         1.7      44.4         4.2
21  1996     60.1        6.0      34.3         3.4       5.6         0.6
22  1995     44.7        4.9      55.0         6.0       0.3         NaN
23  1994     30.2        4.0      43.8         5.7      26.0         3.4
24  1993     59.5        8.3      78.6        11.0     -38.1        -5.3
25  1992     72.5       10.3      34.2         4.9      -6.8        -1.0
26  1991     65.1        6.0      24.3         2.2      10.6         1.0
27  1990     47.8        1.8       1.8         0.1      50.4         1.9
28  1989     39.6        1.6      16.4         0.7      44.0         1.8
29  1988     49.6        5.6      39.4         4.5      11.0         1.2
30  1987     50.3        5.8      23.5         2.7      26.2         3.1
31  1986     45.0        4.0      23.2         2.0      31.8         2.8
32  1985     85.5       11.5      80.9        10.9     -66.4        -8.9
33  1984     69.3       10.5      40.5         6.2      -9.8        -1.5
34  1983     74.1        8.1      40.4         4.4     -14.5        -1.6
35  1982     64.7        5.9      23.8         2.2      11.5         1.0
36  1981     93.4        4.9      -4.3        -0.2      10.9         0.5
37  1980     71.8        5.6      26.4         2.1       1.8         0.1
38  1979     87.3        6.6      15.4         1.2      -2.7        -0.2
39  1978     39.4        4.6      66.0         7.7      -5.4        -0.6

Example 5: 获取可转债及其相关数据
obj = gg.LowRiskIntArb()       # 创建低风险及套利类对象
obj.conBonds()              # 获取可转债及其相关数据

获取结果:
obj.output()                # 打印结果


    bond_id bond_nm  stock_id stock_nm market  convert_price  convert_dt  \
0    127008    特发转债  sz000070     特发信息     sz           6.78  2019-05-22   
1    113506    鼎信转债  sh603421     鼎信通讯     sh          21.65  2018-10-20   
2    113507    天马转债  sh603668     天马科技     sh           7.37  2018-10-23   
3    113520    百合转债  sh603313      梦百合     sh          19.03  2019-05-14   
4    128041    盛路转债  sz002446     盛路通信     sz           6.88  2019-01-23   
5    110032    三一转债  sh600031     三一重工     sh           7.25  2016-07-04   
6    127009    冰轮转债  sz000811     冰轮环境     sz           5.52  2019-07-18   
7    128052    凯龙转债  sz002783     凯龙股份     sz           6.97  2019-06-27   
8    123018    溢利转债  sz300381      溢多利     sz           8.41  2019-06-26   
9    123012    万顺转债  sz300057     万顺股份     sz           6.47  2019-01-26   
..      ...     ...       ...      ...    ...            ...         ...   
118  128018    时达转债  sz002527      新时达     sz          11.83  2018-05-10   
119  128028    赣锋转债  sz002460     赣锋锂业     sz          42.58  2018-06-27   
120  128023    亚太转债  sz002284     亚太股份     sz          10.34  2018-06-08   
121  132008  17山高EB  sh600350     山东高速     sh           9.62  2018-04-26   
122  127004    模塑转债  sz000700     模塑科技     sz           7.72  2017-12-08   
123  128010    顺昌转债  sz002245     澳洋顺昌     sz           9.28  2016-07-29   
124  123003    蓝思转债  sz300433     蓝思科技     sz          16.08  2018-06-14   
125  132011  17浙报EB  sh600633     浙数文化     sh          24.39  2018-08-17   
126  128012    辉丰转债  sz002496     ST辉丰     sz           7.71  2016-10-28   
127  128013    洪涛转债  sz002325     洪涛股份     sz           9.98  2017-02-06   

Example 6: 股票LOF基金及基相关数据
obj = gg.LowRiskIntArb()       # 创建低风险及套利类对象
obj.stockLof()              # 获取股票LOF基金及基相关数据

获取结果:
obj.output()                # 打印结果


    fund_id fund_nm  price  increase_rt  volume   amount  fund_nav      nav_dt  \
0   160105    南方积配  0.812         1.37    6.73   2175.0    0.8155  2019-02-01   
1   160106    南方高增  0.847         2.05   13.22   6851.0    0.8666  2019-02-01   
2   160133    南方天元  1.956         0.98   28.82  22162.0    1.9830  2019-02-01   
3   160211    国泰小盘  1.647         1.92   41.34   5115.0    1.6620  2019-02-01   
4   160212    国泰估值  1.658         2.35   64.51   8375.0    1.6750  2019-02-01   
5   160215    国泰价值  1.192         1.27   10.85   2205.0    1.1990  2019-02-01   
6   160220    国泰民益  1.132         1.71    3.83   3223.0    1.1382  2019-02-01   
7   160311    华夏蓝筹  1.297         0.93   27.65  10515.0    1.3040  2019-02-01   
8   160314    华夏行业  0.842         1.45   12.76  13094.0    0.8490  2019-02-01   
9   160323    华夏磐泰  1.009         0.00    0.00    145.0    0.9721  2019-02-01   
..     ...     ...    ...          ...     ...      ...       ...         ...     
68  168401    红土定增  0.966         0.00    1.04   1010.0    1.0139  2019-02-01   
69  169101    东证睿丰  1.252         1.54  356.30  39830.0    1.2600  2019-02-01   
70  169201    浙商鼎盈  0.971         0.00    0.00    771.0    0.9783  2019-02-01   
71  501000    国金鑫新  0.961         4.34    2.09     82.0    0.9460  2019-02-01   
72  501001    财通精选  0.953        -2.46   10.37   5423.0    0.9590  2019-02-01   
73  501015    财通升级  0.757         0.40   12.29  36579.0    0.7650  2019-02-01   
74  501017    国泰融丰  0.783         0.00    0.00   5178.0    0.7768  2019-02-01   
75  501022    银华鑫盛  0.779         0.39    3.33  12266.0    0.7980  2019-02-01   
76  501027    国泰融信  0.989         0.00    0.00    311.0    1.0055  2019-02-01   
77  501035    创金睿选  0.938         0.32    2.14    877.0    0.9627  2019-02-01   

更多文档:

请查阅文档

Change Log: 0.1.0 2019/02/03 创建第一个版本