美文网首页
Python 中一个好用的股票开源库akshare

Python 中一个好用的股票开源库akshare

作者: 数据人阿多 | 来源:发表于2023-07-26 15:36 被阅读0次

背景

从小编真实接触股票已经有10年之久了,因为大学的专业就是数据与应用数据(金融学方向),大三、大四学期时学习了很多涉及金融相关的课程,特别是在大四时,老师还专门给每位同学开通了模拟炒股的账户,让全班同学一起模拟炒股,但小编用真金白银炒股的时间大概是2018年,居现在也有5年时间,一直是韭菜中

最近大家也看到了曾任《环球时报》总编辑的胡锡进,也开始入市炒股,并且每天都会发博文,分享当天的炒股感受

于是小编就试着获取股票的数据来研究一下,经过查找与对比,小编决定用akshare这个库,因为该库一直有更新,并且文档是中文,而且比较详细,


各种数据

akshare文档地址:https://www.akshare.xyz/

akshare

股票各种数据获取方法

导入akshare库

import akshare as ak
import pandas as pd

1、股票的基本信息数据

ak.stock_individual_info_em(symbol="000651")
基本信息

2、实时数据,当日的成交数据

单次返回所有沪深京 A 股上市公司的实时行情数据

ak.stock_zh_a_spot_em()   
实时数据

3、历史数据,历史的成交数据

ak.stock_zh_a_hist(symbol="000651", 
                   period="daily", 
                   start_date="20230701", 
                   end_date='20230725', 
                   adjust=""   #不复权
                  )  
历史数据

4、资金流向数据
限量: 单次获取指定市场和股票的近 100 个交易日的资金流数据

ak.stock_individual_fund_flow(stock="000651", market="sz")
资金流向数据

5、行情报价,买卖各5档

ak.stock_bid_ask_em(symbol="000651")
行情报价

每日特定股票数据汇总案例

下面展示每日获取特定股票数据,可以做成定时任务,在15:00闭市后获取

"""
===========================
@Time : 2023/7/26 20:13
@File : stock_day
@Software: PyCharm
@Platform: Win10
@Author : DataShare
===========================
"""
import akshare as ak
import pandas as pd
import datetime
import sys

def stock_to_excel(stock_code, stock_name):
    if stock_code[0] == '6':
        market = 'sh'
    elif stock_code[0] == '0':
        market = 'sz'

    df1 = ak.stock_zh_a_spot_em()
    df2 = df1[df1['代码'] == stock_code]

    dt = str(datetime.date.today())   #当日
    df3 = ak.stock_individual_fund_flow(stock=stock_code, market=market) #在15:00之后获取
    df4 = df3[df3['日期'] == dt]

    result = {
        "日期": dt,
        "股票代码": stock_code,
        "股票名称": stock_name,
        "前一日收盘价": df2['昨收'].to_list()[0],
        "开盘": df2['今开'].to_list()[0],
        "收盘": df2['最新价'].to_list()[0],
        "最高": df2['最高'].to_list()[0],
        "最低": df2['最低'].to_list()[0],
        "成交量": df2['成交量'].to_list()[0],
        "成交额": df2['成交额'].to_list()[0],
        "振幅": df2['振幅'].to_list()[0],
        "涨跌幅": df2['涨跌幅'].to_list()[0],
        "涨跌额": df2['涨跌额'].to_list()[0],
        "换手率": df2['换手率'].to_list()[0],
        "量比": df2['量比'].to_list()[0],
        "市盈率-动态": df2['市盈率-动态'].to_list()[0],
        "市净率": df2['市净率'].to_list()[0],
        "60日涨跌幅": df2['60日涨跌幅'].to_list()[0],
        "主力净流入-净额": df4['主力净流入-净额'].to_list()[0],
        "主力净流入-净占比": df4['主力净流入-净占比'].to_list()[0],
        "超大单净流入-净额": df4['超大单净流入-净额'].to_list()[0],
        "超大单净流入-净占比": df4['超大单净流入-净占比'].to_list()[0],
        "大单净流入-净额": df4['大单净流入-净额'].to_list()[0],
        "大单净流入-净占比": df4['大单净流入-净占比'].to_list()[0],
        "中单净流入-净额": df4['中单净流入-净额'].to_list()[0],
        "中单净流入-净占比": df4['中单净流入-净占比'].to_list()[0],
        "小单净流入-净额": df4['小单净流入-净额'].to_list()[0],
        "小单净流入-净占比": df4['小单净流入-净占比'].to_list()[0]
    }

    return result


if __name__ == '__main__':
    stocks_code = {'000651': '格力电器',
                   '002241': '歌尔股份',
                   '002739': '万达电影',
                   '600956': '新天绿能',
                   '600031': '三一重工',
                   '600703': '三安光电',
                   '002027': '分众传媒',
                   '600030': '中信证券',
                   '002939': '长城证券',
                   }   #小编买过的股票
    
    dt = str(datetime.date.today())
    results=[]
    for stock_code, stock_name in stocks_code.items():
        print(f'{stock_name}:{stock_code}')
        try:
            results.append(stock_to_excel(stock_code, stock_name))
        except Exception as e:
            print("运行中出错",e)
            sys.exit(-1)
    
    pd.DataFrame.from_dict(results).to_excel(f'./data/{dt}.xlsx', index=False)

历史相关文章


以上是自己实践中遇到的一些问题,分享出来供大家参考学习,欢迎关注微信公众号:DataShare ,不定期分享干货

相关文章

网友评论

      本文标题:Python 中一个好用的股票开源库akshare

      本文链接:https://www.haomeiwen.com/subject/wtykpdtx.html