精华内容
下载资源
问答
  • 获取股票数据

    2015-08-18 22:11:06
    获取股票数据
  • getStock获取股票数据

    2013-04-28 10:33:37
    获取股票数据 从网上获取股票历史数据 并保存至数据库 附带一些股票数据处理方法
  • 基于tushare第三方库获取股票数据,并写入MySQL数据库库存储
  • 使用Baostock的API获取股票数据 1.导入必要的模块 关键模块是: ①numpy、pandas:用来处理数据 ②baostock:用来获取股票数据 # markdown模块 import handout # 生成的讲义目录 doc = handout.Handout("看完就...

    如何获取免费的股票行情数据?

    内容摘要:使用Baostock的API获取股票行情数据;格式化获得的股票行情数据。


    1.导入必要的模块

    关键模块是: ①numpy、pandas:用来处理数据 ②baostock:用来获取股票数据


    
    # 处理数据
    import numpy as np
    import pandas as pd
    
    # 获取股票数据
    import baostock as bs

    2.获取股票数据

    我们利用baostock获取股票数据。为什么用baostock,而不用tushare?


    因为baostock是一个免费、开源的证券数据平台(无需注册)。 提供大量准确、完整的证券历史行情数据、上市公司财务数据等。 通过python API获取证券数据信息,满足量化交易投资者、数量金融爱好者、计量经济从业者数据需求。

    • 返回的数据格式:
    • pandas DataFrame类型,以便于用pandas/NumPy/Matplotlib进行数据分析和可视化。
    • 同时支持通过BaoStock的数据存储功能,将数据全部保存到本地后进行分析。
    • 支持语言:目前版本BaoStock.com目前只支持Python3.5及以上(暂不支持python 2.x)。

    下载安装 方式1: pip install baostock 使用国内源安装:

    pip install baostock -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn

    方式2:访问 https://pypi.python.org/pypi/baostock 下载安装

    python setup.py install或pip install xxx.whl

    baostock的数据范围


    股票数据

    • 日、周、月K线数据,时间范围:1990-12-19至今。
    • 5、15、30、60分钟K线数据,时间范围:1999-07-26至今。

    指数数据

    • 日、周、月K线已经包含指数:综合指数,规模指数,一级行业指数,二级行业指数,策略指数,成长指数,价值指数,主题指数,基金指数,债券指数。
    • 时间范围:2006-01-01至今。

    季频财务数据

    • 已经包含的财务数据:部分上市公司资产负债信息、上市公司现金流量信息、上市公司利润信息、上市公司杜邦指标信息。
    • 时间范围:2007年至今。

    季频公司报告

    • 上市公司业绩预告信息,时间范围:2003年至今。
    • 上市公司业绩快报信息,时间范围:2006年至今。

    我们把获取数据的相关代码,封装成函数,以方便重复调用。


    函数的参数,分别为股票代码、数据开始时间、数据结束时间以及频率。 默认获取的数据项为:

    date,code,open,high,low,close,volume

    相关代码如下:

    # 获取股票数据,并将数据规范化
    
    def get_data(
            code="sh.600000", start_date="2020-06-01", end_date="2021-03-26", frequency="d"
    ):
        #### 登陆baostock系统 ####
        lg = bs.login()
        # 显示登陆返回信息
        print("登录响应代码:" + lg.error_code)
        print("登录响应信息:" + lg.error_msg)
    
        data = bs.query_history_k_data_plus(
            code,
            fields="date,code,open,high,low,close,volume",
            start_date=start_date,
            end_date=end_date,
            frequency="d",
            adjustflag="3",
        )
        data_list = []
        while (data.error_code == "0") & data.next():
            # 获取一条记录,将记录合并在一起
            data_list.append(data.get_row_data())
        # 转为dataframe
        result = pd.DataFrame(data_list, columns=data.fields)
    
        # 警惕:数据全是字符串:<class 'str'>
        # 把字符串转为数值
        result.open = result.open.astype("float64").round(2)
        result.close = result.close.astype("float64").round(2)
        result.high = result.high.astype("float64").round(2)
        result.low = result.low.astype("float64").round(2)
        result.volume = result.volume.astype("int")
        # date列转为时间类型
        result.date = pd.DatetimeIndex(result.date)
    
        # dataframe规范化
        data2 = pd.DataFrame(
            {
                "open": result["open"].values,
                "close": result["close"].values,
                "high": result["high"].values,
                "low": result["low"].values,
                "volume": result["volume"].values,
            },
            index=result["date"].values
        )
    
        #### 登出系统 ####
        bs.logout()
        return data2

    这里有几点,需要特别注意的。

    1. 使用baostock获取数据前,需要先登录。
    2. baostock不能直接返回dataframe类型的数据,需要进行相应处理,并转化。
    3. baostock获取的数据,都是字符串类型的。如:open 的值的类型是:<class 'str'>。因此需要将其转换为float64等类型。

    比如,我们要获取格力电器的日线数据: 格力电器的代码是:000651。属于深交所的股票,因此在其代码前加sz.,即sz.000651

    data1 = get_data(code="sz.000651", start_date="2020-06-01", end_date="2021-03-26", frequency="d")
                 open  close   high    low    volume
    2020-06-01  57.51  57.97  58.26  57.19  57925071
    2020-06-02  58.88  58.09  58.98  57.71  46837490
    2020-06-03  58.10  58.02  58.49  57.51  45819960
    2020-06-04  58.60  59.65  59.69  58.40  65622849
    2020-06-05  60.00  60.17  61.01  59.89  58536642
    ...           ...    ...    ...    ...       ...
    2021-03-22  60.05  60.94  61.19  59.60  39575697
    2021-03-23  60.85  61.41  62.00  60.28  38481259
    2021-03-24  61.40  61.35  62.00  61.07  32399326
    2021-03-25  60.86  61.38  61.63  60.70  25338726
    2021-03-26  62.60  61.62  62.93  61.18  37839591
    
    [201 rows x 5 columns]
    

    又如,我们要获取中国平安的1小时数据: 中国平安的代码是:601318。属于上交所的股票,因此在其代码前加sh.,即sh.601318

    data2 = get_data(code="sh.601318", start_date="2020-06-01", end_date="2021-03-26", frequency="60m")
                 open  close   high    low    volume
    2020-06-01  71.40  72.16  72.23  71.23  45767284
    2020-06-02  72.02  74.28  74.53  72.01  81052327
    2020-06-03  75.00  75.01  76.69  75.00  99148840
    2020-06-04  75.42  75.14  75.71  74.58  45388022
    2020-06-05  75.14  75.30  75.44  74.40  34980754
    ...           ...    ...    ...    ...       ...
    2021-03-22  79.99  79.82  80.27  79.53  54273091
    2021-03-23  79.89  80.05  80.60  79.12  51116947
    2021-03-24  79.99  79.01  80.30  78.71  63315814
    2021-03-25  79.23  79.20  79.66  78.99  43650615
    2021-03-26  79.58  80.01  80.30  79.56  45348477
    
    [201 rows x 5 columns]
    

    我们成功地获取了股票的数据,数据是量化交易的基础,有了数据,我们就可以愉快地进行数据分析了!

    3.全部代码如下:


    # 处理数据
    import numpy as np
    import pandas as pd
    # 获取股票数据
    import baostock as bs
    
    
    # 获取股票数据,并将数据规范化
    def get_data(
            code="sh.600000", start_date="2020-06-01", end_date="2021-03-26", frequency="d"
    ):
        #### 登陆baostock系统 ####
        lg = bs.login()
        # 显示登陆返回信息
        print("登录响应代码:" + lg.error_code)
        print("登录响应信息:" + lg.error_msg)
    
        data = bs.query_history_k_data_plus(
            code,
            fields="date,code,open,high,low,close,volume",
            start_date=start_date,
            end_date=end_date,
            frequency="d",
            adjustflag="3",
        )
        data_list = []
        while (data.error_code == "0") & data.next():
            # 获取一条记录,将记录合并在一起
            data_list.append(data.get_row_data())
        # 转为dataframe
        result = pd.DataFrame(data_list, columns=data.fields)
    
        # 警惕:数据全是字符串:<class 'str'>
        # 把字符串转为数值
        result.open = result.open.astype("float64").round(2)
        result.close = result.close.astype("float64").round(2)
        result.high = result.high.astype("float64").round(2)
        result.low = result.low.astype("float64").round(2)
        result.volume = result.volume.astype("int")
        # date列转为时间类型
        result.date = pd.DatetimeIndex(result.date)
    
        # dataframe规范化
        data2 = pd.DataFrame(
            {
                "open": result["open"].values,
                "close": result["close"].values,
                "high": result["high"].values,
                "low": result["low"].values,
                "volume": result["volume"].values,
            },
            index=result["date"].values
        )
    
        #### 登出系统 ####
        bs.logout()
        return data2
    
    
    # 获取格力电器的日线数据
    data1 = get_data(code="sz.000651", start_date="2020-06-01", end_date="2021-03-26", frequency="d")
    print(data1)
    # 获取中国平安的1小时数据
    data2 = get_data(code="sh.601318", start_date="2020-06-01", end_date="2021-03-26", frequency="60m")
    print(data2)
    
    print('执行完毕!')
    展开全文
  • 可以获取股票数据,并绘制相应曲线 蜡烛图用来描述特定时间内的价格波动状况,这种技术分析方法在上个世纪90年代流行开来,而我们如今经常用到的K线就是蜡烛图。
  • 使用Python获取股票数据

    千次阅读 2020-08-23 19:48:07
    下面是两种获取股票数据的方法,使用的编程语言是python。

    下面是两种获取股票数据的方法,使用的编程语言是python。

    1.  方法一

    从“yahoo”获取“海通证券”(600837)的股票数据,时间从2020.1.1到今天(2020.8.21),代码如下。

    import pandas as pd
    import pandas_datareader.data as web
    import datetime
    from matplotlib import pyplot as plt
    
    # 获取海通证券(600837)2020.1.1到今天(2020.8.21)的股票数据
    data_csvsave = web.DataReader('600837.ss', 'yahoo', datetime.datetime(2020,1,1), datetime.date.today())
    # 将数据保存到本地
    data_csvsave.to_csv(r'C:\Users\飘逸\Desktop\600837.csv', columns= data_csvsave.columns, index=True)
    # 打印数据
    print(data_csvsave)
    

    从下面的打印可以看出,使用这种方法获取的数据行索引是日期。一共有6列,包含了最基本的信息:最高价、最低价、开盘价、收盘价、成交量、调整后的价格。

                         High    Low   Open  Close     Volume     Adj Close
    Date                                                        
    2020-01-02  15.97  15.55  15.75  15.63  143434282      15.63
    2020-01-03  15.85  15.56  15.63  15.72   80840727      15.72
    2020-01-06  15.97  15.50  15.55  15.80  104710832      15.80
    2020-01-07  15.86  15.52  15.82  15.75   93989873      15.75
    2020-01-08  15.20  15.20  15.20  15.20  104484186      15.20
    ...           ...    ...    ...    ...        ...        ...
    2020-08-17  16.49  15.43  15.59  15.80  274110233      15.80
    2020-08-18  15.88  15.51  15.82  15.61  128322856      15.61
    2020-08-19  15.68  15.15  15.60  15.16  117824830      15.16
    2020-08-20  15.16  14.90  15.05  14.98   78215581      14.98
    2020-08-21  15.34  15.05  15.11  15.32   80749013      15.32

    [155 rows x 6 columns]

    2.  方法二

    使用tushare模块获取“海通证券”(600837)的股票数据,时间从2020.1.1到2020.8.21。

    import tushare as ts
    import pandas as pd
    # 设置最大列数,避免只显示部分列
    pd.set_option('display.max_columns', 1000)
    # 设置最大行数,避免只显示部分行数据
    # pd.set_option('display.max_rows', 1000)
    pd.set_option('display.width', 1000)
    # 设置每列最大宽度,避免属性值或列名显示不全
    pd.set_option('display.max_colwidth',1000)
    
    
    token = '' # 设置tocken
    pro = ts.pro_api(token) # 初始化pro接口
    # 获取数据
    df_gldq = pro.daily(ts_code='000651.sz', start_date='20190101', end_date='20200821')
    # 打印数据
    print(df_gldq)

    下面是打印的结果,与方法一相比,行索引是以0开始的序号。

           ts_code     trade_date   open   high     low    close  pre_close change pct_chg     vol           amount
    0    000651.SZ   20200821  54.95  54.96  54.01  54.22      54.13    0.09   0.1663  382465.03  2074844.917
    1    000651.SZ   20200820  54.96  54.96  54.02  54.13      55.19   -1.06  -1.9206  626313.31  3399987.120
    2    000651.SZ   20200819  55.85  55.85  55.18  55.19      56.02   -0.83  -1.4816  500984.71  2777352.512
    3    000651.SZ   20200818  56.59  56.77  55.90  56.02      56.80   -0.78  -1.3732  618494.50  3474057.691
    4    000651.SZ   20200817  56.25  57.18  56.00  56.80      56.25    0.55   0.9778  677724.12  3845816.957
    ..         ...        ...    ...    ...    ...    ...        ...     ...      ...        ...          ...
    150  000651.SZ   20200108  66.60  69.67  66.60  68.80      67.32    1.48   2.1985  487808.96  3335825.897
    151  000651.SZ   20200107  66.17  67.55  66.00  67.32      65.88    1.44   2.1858  410765.95  2759986.206
    152  000651.SZ   20200106  66.80  67.07  65.00  65.88      67.10   -1.22  -1.8182  467802.55  3092810.584
    153  000651.SZ   20200103  68.38  68.70  66.90  67.10      67.90   -0.80  -1.1782  368703.73  2494833.314
    154  000651.SZ   20200102  65.99  68.09  65.90  67.90      65.58    2.32   3.5377  463614.43  3119667.657

    [155 rows x 11 columns]

     

    展开全文
  • 整理了使用tuhsare获取股票数据的一些方便之处以及遇到的一些坑
  • 今天小编就为大家分享一篇python3使用pandas获取股票数据的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 更换一个股票接口获取股票数据 import datetime import pandas_datareader.data as web start = datetime.datetime(2019,11,1)#获取数据的时间段-起始时间 end = datetime.date.today()#获取数据的时间段-结束...

     

    更换一个股票接口获取股票数据

    import datetime
    import pandas_datareader.data as web
    
    start = datetime.datetime(2019,11,1)#获取数据的时间段-起始时间
    end = datetime.date.today()#获取数据的时间段-结束时间
    stock = web.DataReader("600797.SS", "yahoo", start, end)#获取浙大网新2019年11月1日至
    print(stock.head(5) )
    print(stock.tail(5) )
    
    print(stock.index)
    print(stock.columns)

    主要是仿照

    python积累--pandas---使用pandas-datareader获取股票信息进行分析

     

    原文链接:https://blog.csdn.net/q383965374/article/details/89336989

    展开全文
  • 一、利用tushare获取股票数据 上次利用tushare的API获取了一部分的数据,感觉不够齐全,所以现在更新程序 import tushare as ts import pandas as pd pro = ts.pro_api() data = pro.query('stock_basic', ...

    一、利用tushare获取股票数据

    上次利用tushare的API获取了一部分的数据,感觉不够齐全,所以现在更新程序
    import tushare as ts
    import pandas as pd
    
    pro = ts.pro_api()
    data = pro.query('stock_basic', exchange='', list_status='L', fields='ts_code')
    #实例化一个对象,获取所有的股票代码
    ls=list(data['ts_code'])
    #列表化所有的股票代码
    data=0
    for i in range(len(ls)):
        try:
            df = pro.query('daily', ts_code=ls[i])
            print(i)
            if i==0:
                com_df=pd.DataFrame(df)
            else:
                com_df=pd.concat([com_df,df])
        except:
            pass
           	#获取股票的所有历史数据
    com_df.reset_index(inplace=True)
    com_df.to_csv(r"newstock7-31.csv",index=False)
    #将数据导出csv,csv大小大约300MB,整个程序耗时2到3个小时
    

    二 、股票数据分析

    (1) 处理股票数据

    这次主要想分析股票的涨跌与星期一,二有没有什么关系
    import pandas as pd
    import numpy as np
    import datetime
    pd.set_option('display.max_columns', None)
    pd.set_option('display.max_rows', 100)
    pd.set_option('max_colwidth',100)
    
    pd.set_option("display.unicode.east_asian_width",True)
    #打印的行数,列数,列与列之间的宽度
    test=datetime.datetime.now()
    a=pd.read_csv(r'newstock7-31.csv')
    del a['index']
    a['date']=pd.to_datetime(a['trade_date'],format="%Y%m%d")
    #将八位数的日期转化为时间格式
    a['weekday']=np.asarray(list(map(pd.Timestamp.isoweekday,a['date'])))
    #增加一列,为星期数(星期一,星期二之类)
    a['year']=pd.DataFrame(list(map(pd.Timestamp.isocalendar,a['date'])))[0]
    #增加一列,为年份
    
    
    b=a.pivot_table(index["year","weekday"],values="pct_chg",aggfunc=np.mean,margins=True)
    #groupby年份,星期数,value为平均涨跌
    
    c=a.query("pct_chg>=0").pivot_table(index=["year","weekday"],values="pct_chg",aggfunc='count',margins=True)
    #groupby年份,星期数,value为涨的个数
    
    d=a.query("pct_chg<0").pivot_table(index["year","weekday"],values="pct_chg",aggfunc='count',margins=True)
    #groupby年份,星期数,value为涨的个数
    
    e=a.pivot_table(index=["year","weekday"],values="pct_chg",aggfunc='count',margins=True)
    #groupby年份,星期数,value为所有的股票数
    
    zong=pd.DataFrame({"平均涨跌幅度":b[b.columns[0]],
    "涨数":c[c.columns[0]]/e[e.columns[0]],
    "跌数":d[c.columns[0]]/e[e.columns[0]]})
    print(zong)
    #汇总几个表,处理数据
    
    print(datetime.datetime.now()-test)
    #测试时间,整个程序大约1分钟左右吧
    zong=zong.reset_index()
    zong.to_excel("zong.xlsx",index=False,merge_cells=False)
    

    (2) 股票分析

    这是2015年以来的星期数的涨跌情况

    图一、从2015年以来,星期数涨跌情况图

    从图一看,跌的最惨的是星期四,而星期四涨的的概率为47.9%,平均跌幅为0.18%;涨的最好的是周二,其次是周一,涨的概率为54.9%,57.7%。

    我猜想周四普遍下跌主要原因是市场的避险情绪,和个人投资者的取款消费。

    投资机构,普遍都不太愿意持股过周末,因为周末容易出一些黑天鹅,投资环境的改变之类的事。

    个人投资者也容易在周四这个时间节点取款消费。其实也很容易想,周末嘛,大家都有周末出去玩的习惯,而我国是T+1的取款,如果要周六消费,那么周四就要证转银取款。所以市场卖出意愿隐性的增大,买的意愿在减小。那么自然下跌大概率增大。

    那么,我们可以利用这种现象来指导我们的投资吗。我想是可以的,周四和周五反而是购买股票的一个很好的时机,因为受到一些环境因素的影响,股票的价值被过分的低估。周一,周二反而是卖出股票的好时机,因为周四,周五卖出的资金多了,市场的闲余资金增多,市场的购买股票意愿隐性增加,从而过分高估股票的价值。这一起一伏之间便是投机者的利润。

    展开全文
  • 获取股票数据 安装 $ npm install --save stock-fetcher 用法 var stockFetcher = require ( "stock-fetcher" ) ; stockFetcher . getPrice ( "AAPL" , function ( err , price ) { console . log ( price ) } ) ; ...
  • 获取股票数据接口 2

    千次阅读 2018-10-13 00:16:23
    之前使用了新浪的股票数据,由于新浪http/javascript缺少一些数据,用chrome自带的开发工具监视腾迅财经HTTP信息,得到以下获取股票数据的方法。 以五粮液为例,要获取最新行情,访问数据接口: ...
  • 本文我们分享一个实时获取股票数据的android app应用程序源码分享,可以作为学习使用,本文贴出部分重要代码,需要的朋友可以参考下本
  • python获取股票数据

    千次阅读 2019-04-14 18:15:14
    参考 获取股票交易数据的Tushare的使用方法 代码 使用Python来获取国内股票数据的方法:TuShare
  • python 获取股票数据 tushare使用

    千次阅读 2019-10-03 15:34:48
    # 本节 讲解 pandas_datareader和tushare包 common 和pro 获取股票数据 import pandas_datareader.data as web import datetime #获取上证指数的2017.1.1日至今的交易数据 df_stockload = web.DataReader("000001....
  • 实时获取股票数据 (1)实现步骤 1.通过网络爬虫–>爬取所需要的数据->股票实时价,最高价,最低价等等 2.通过python的->pandas库->进行数据整理清洗 (2)实现前的准备工作 神奇的网址 返回一个股票的数据:...
  • 主要介绍了python利用re,bs4,requests模块获取股票数据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • python利利用用re,bs4,requests模模块块获获取取股股票票数数据据 这篇文章主要介绍了python利用re,bs4,requests模块获取股票数据,文中通过示例代码介绍的非常详细对大家的 学习或者工作 有一定的参考学习价值,需要...
  • pandas获取股票数据并做均线图随便写的结果 随便写的 获取数据 数据rolling 数据作图 import pandas_datareader.data as web import datetime import pandas as pd import numpy as np import matplotlib.pyplot as ...
  • python数据获取 5
  • pandas库在金融量化分析中优势明显, 它提供了专门处理金融数据的模块,...具体获取股票数据的接口为web.DataReader()。下面分别介绍下接口的几个关键参数: 第一个参数:指定股票代码,如果是苹果公司这样的...
  • Maltab tushare API免费获取股票数据

    千次阅读 2018-11-01 21:03:06
    终于Matlab也可以调用tushare 免费获取股票数据了 先通过下列地址注册一下账户,然后获取token,既可以使用了 https://tushare.pro/register?reg=134512 获取 tushare_matlab_adk 地址  ...
  • C ++库可从Yahoo Finance获取股票数据。 支持Yahoo Finance Novembrer 2017 API更改。 依存关系 要使用该项目,您需要安装以下依赖项: 的c + + 11 cmake> = 3.6.3 卷曲 建造 通过依次运行以下命令,使用CMake...
  • 试试用python和nodejs爬虫获取股票数据并生成图表 获取所有股票的涨跌信息 1. 分析url接口 获取接口url http://quote.eastmoney.com/stocklist.html是东方财富展示股票信息的一个网址,可以展示所有股票的信息。 ...
  • 一、如何获取股票数据 爬虫:雅虎财经、东方财富等 数据服务商:Wind、彭博、炒股软件等 免费接口:量化交易平台、开源代码库 我们采用第三种方式: https://www.joinquant.com/view/community/list?listType=1 ...
  • 2、获取token 3、调取数据 如果您是初学者,在此之前,建议您先完成Python环境安装,并熟悉Python的基础用法。 1、学会Anaconda安装 2、学会下载和安装Tushare SDK 3、作为一名合格的量化工程师,或者数据分析...
  • #部分网站api数据有bug,这个bug问题不是自身程序的问题,而是第三方公司股票的问题 author = ‘nooper’ import re ...“处理腾讯股票数据接口信息” regex = re.compile(r’"(.*)"’) result = re

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,765
精华内容 1,106
关键字:

获取股票数据