zoukankan      html  css  js  c++  java
  • baostock

    一个免费、开源的证券数据服务平台

    官网 http://baostock.com

    安装

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

    获取A股K线数据

    import baostock as bs
    import pandas as pd
    
    #### 登陆系统 ####
    lg = bs.login()
    # 显示登陆返回信息
    print('login respond error_code:'+lg.error_code)
    print('login respond  error_msg:'+lg.error_msg)
    
    #### 获取沪深A股历史K线数据 ####
    # 详细指标参数,参见“历史行情指标参数”章节;“分钟线”参数与“日线”参数不同。
    # 分钟线指标:date,time,code,open,high,low,close,volume,amount,adjustflag
    # 周月线指标:date,code,open,high,low,close,volume,amount,adjustflag,turn,pctChg
    rs = bs.query_history_k_data_plus("sz.000001",
        "date,code,open,high,low,close,preclose,volume,amount,adjustflag,turn,tradestatus,pctChg,isST",
        start_date='2020-10-10', end_date='2020-10-20',
        frequency="d", adjustflag="3")
    print('query_history_k_data_plus respond error_code:'+rs.error_code)
    print('query_history_k_data_plus respond  error_msg:'+rs.error_msg)
    
    #### 打印结果集 ####
    data_list = []
    while (rs.error_code == '0') & rs.next():
        # 获取一条记录,将记录合并在一起
        data_list.append(rs.get_row_data())
    result = pd.DataFrame(data_list, columns=rs.fields)
    
    #### 结果集输出到csv文件 ####   
    result.to_csv("k_data.csv", index=False)
    print(result)
    
    #### 登出系统 ####
    bs.logout()

    结果

    >python test.py
    login success!
    login respond error_code:0
    login respond error_msg:success
    query_history_k_data_plus respond error_code:0
    query_history_k_data_plus respond error_msg:success
    date code open high low ... adjustflag turn tradestatus pctChg isST
    0 2020-10-12 sz.000001 15.2200 16.0500 15.2100 ... 3 0.820000 1 4.743100 0
    1 2020-10-13 sz.000001 15.9000 16.1100 15.7700 ... 3 0.468300 1 1.006300 0
    2 2020-10-14 sz.000001 16.0400 16.1200 15.8000 ... 3 0.341400 1 -0.186800 0
    3 2020-10-15 sz.000001 16.2000 16.9200 16.1500 ... 3 0.824500 1 3.306300 0
    4 2020-10-16 sz.000001 16.5600 17.3700 16.5400 ... 3 1.079900 1 3.260900 0
    5 2020-10-19 sz.000001 17.3000 18.1000 17.3000 ... 3 1.038900 1 2.222200 0
    6 2020-10-20 sz.000001 17.4800 17.6000 17.2500 ... 3 0.494700 1 0.343200 0

    [7 rows x 14 columns]
    logout success!

    使用mpl_finance画K线图

    import baostock as bs
    import pandas as pd
    import mplfinance as mpf
    #### 登陆系统 ####
    lg = bs.login()
    # 显示登陆返回信息
    print('login respond error_code:'+lg.error_code)
    print('login respond  error_msg:'+lg.error_msg)
    
    #### 获取沪深A股历史K线数据 ####
    # 详细指标参数,参见“历史行情指标参数”章节;“分钟线”参数与“日线”参数不同。
    # 分钟线指标:date,time,code,open,high,low,close,volume,amount,adjustflag
    # 周月线指标:date,code,open,high,low,close,volume,amount,adjustflag,turn,pctChg
    rs = bs.query_history_k_data_plus("sz.000001",
        "date,code,open,high,low,close",
        start_date='2020-05-10', end_date='2020-10-20',
        frequency="d", adjustflag="3")
    print('query_history_k_data_plus respond error_code:'+rs.error_code)
    print('query_history_k_data_plus respond  error_msg:'+rs.error_msg)
    
    #### 打印结果集 ####
    data_list = []
    while (rs.error_code == '0') & rs.next():
        # 获取一条记录,将记录合并在一起
        data_list.append(rs.get_row_data())
    result = pd.DataFrame(data_list, columns=rs.fields)
    
    #### 结果集输出到csv文件 ####   
    result.to_csv("k_data.csv", index=False)
    #### 登出系统 ####
    bs.logout()
    data = result.loc[:, ['date','open', 'high', 'low', 'close']]
    data=data.apply(pd.to_numeric, errors='ignore')
    data.set_index('date', inplace=True)
    data.index = pd.DatetimeIndex(data.index)
    mpf.plot(data, type='candle', style='charles')

  • 相关阅读:
    js es6遍历对象的6种方法
    MySQL、Redis、MongoDB网络抓包工具
    SSE图像算法优化系列三十一:Base64编码和解码算法的指令集优化(C#自带函数的3到4倍速度)。
    设置EntityFramework中decimal类型数据精度问题(EF默认将只会保留到2为精度)
    IIS资料
    RabbitMQ
    微信公众平台生成带场景参数二维码
    .net Core资料
    微信字体放大影响布局的处理
    VirtualBox虚拟机下安装Win10性能优化
  • 原文地址:https://www.cnblogs.com/baby123/p/13846161.html
Copyright © 2011-2022 走看看