当前位置: 首页 > news >正文

PostgreSQL_数据使用与日数据分享

目录

前置:

1 使用

1.1 获取前复权因子

1.2 查询股票的纵向数据

1.3 查询股票的横向数据

2 日数据分享(截止至:2025-03-21)

总结

视频


前置:

本博文是一个系列。在本人“数据库专栏”-》“PostgreSQL_”开头的博文。

本文为该系列最后一篇。

1 使用

1.1 获取前复权因子

访问优矿官网

 ticker_list = []
field_list = ['secID','tradeDate','accumAdjFactor']
df = DataAPI.MktEqudGet(secID=u"",ticker=ticker_list,tradeDate=u"",beginDate=u"1990-01-01",endDate=u"2025-03-21",isOpen="",field=field_list,pandas="1")
df.to_csv('adj000.csv',encoding='utf-8')

 将要操作的股票的前复权因子获取,存入 t_ticker_adj_factor 表格,不存入也行,直接访问文件。

1.2 查询股票的纵向数据

select tradeDate,openPrice,highestPrice,lowestPrice,closePrice,turnoverVol,turnoverValue,dealAmount,turnoverRate,negMarketValue,marketValue,chgPct,PE,PE1,PB,isOpen,vwap from t_stock_daily where ticker='000001';

代码:

def query_vertical(ticker:str):
    sql_str = f"select tradeDate,openPrice,highestPrice,lowestPrice,closePrice,turnoverVol,turnoverValue,dealAmount,turnoverRate,negMarketValue,marketValue,chgPct,PE,PE1,PB,isOpen,vwap from t_stock_daily where ticker=\'{ticker}\';"
    conn = connect_db()
    cur = conn.cursor()
    cur.execute(sql_str)
    res = cur.fetchone()
    df = pd.DataFrame(data={
        'tradeDate': res[0],
        'openPrice': res[1],
        'highestPrice': res[2],
        'lowestPrice': res[3],
        'closePrice': res[4],
        'turnoverVol': res[5],
        'turnoverValue': res[6],
        'dealAmount': res[7],
        'turnoverRate': res[8],
        'negMarketValue': res[9],
        'marketValue': res[10],
        'chgPct': res[11],
        'PE': res[12],
        'PE1': res[13],
        'PB': res[14],
        'isOpen': res[15],
        'vwap': res[16]
    })
    df.to_excel(r'E:/temp002/'+ticker+'.xlsx',engine='openpyxl')
    cur.close()
    conn.close()
    pass

实现前复权数据方法:

将未复权数据的日期与复权因子的日期对其,然后收开高低都和复权因子相乘,所得就是前复权数据。

1.3 查询股票的横向数据

select ticker,openPrice,highestPrice,lowestPrice,closePrice,turnoverVol,turnoverValue,dealAmount,turnoverRate,negMarketValue,marketValue,chgPct,PE,PE1,PB,isOpen,vwap from t_daily where tradeDate='2025-03-19';

代码:

def query_horizontal(date_str:str):
    sql_str = f"select ticker,openPrice,highestPrice,lowestPrice,closePrice,turnoverVol,turnoverValue,dealAmount,turnoverRate,negMarketValue,marketValue,chgPct,PE,PE1,PB,isOpen,vwap from t_daily where tradeDate=\'{date_str}\';"
    conn = connect_db()
    cur = conn.cursor()
    cur.execute(sql_str)
    res = cur.fetchone()
    df = pd.DataFrame(data={
        'ticker': res[0],
        'openPrice': res[1],
        'highestPrice': res[2],
        'lowestPrice': res[3],
        'closePrice': res[4],
        'turnoverVol': res[5],
        'turnoverValue': res[6],
        'dealAmount': res[7],
        'turnoverRate': res[8],
        'negMarketValue': res[9],
        'marketValue': res[10],
        'chgPct': res[11],
        'PE': res[12],
        'PE1': res[13],
        'PB': res[14],
        'isOpen': res[15],
        'vwap': res[16]
    })
    df.to_excel(r'E:/temp002/' + date_str + '.xlsx', engine='openpyxl')
    cur.close()
    conn.close()
    pass

2 日数据分享(截止至:2025-03-21)

链接: https://pan.baidu.com/s/1Ng-0InEHtEhZcUZWLdjqcQ?pwd=krb3 提取码: krb3

文件名:db_stock.dump,1.5G左右

下载完后通过 pg_restore 命令导入。

总结

1 postgreSQL功能强大,如果有其他数据库经验的,上手很容易

2 postgreSQL的性能挺好的,通过python批量操作能传入的sql语句可以很大,而且执行效率很高

3 postgreSQL功能全面,提供了命令行,界面操作,一个软件包啥都包,安装十分方便

4 postgreSQL包含的数组、json等数据对象对处理复杂数据十分方便,总之就很棒^_^

注意:

1 数组的索引是从1开始

2 python操作上传sql语句时,涉及到参数是字符串的,要在字符串开头结尾增加\'

视频

这一系列内容本人在B站发了几个视频,v1 通过实例学习PostgreSQL_项目描述_哔哩哔哩_bilibili如果通过博文学习有疑问可以看视频。

相关文章:

  • 如何修改SQL2008 账号SA的密码
  • 2025年- G26-Lc100-57.插入间隔(max、min)--java版
  • pyside6的QGraphicsView体系,当鼠标位于不同的物体,显示不同的右键菜单
  • 【自学笔记】Spark基础知识点总览-持续更新
  • 解决PowerShell下Git中文乱码问题
  • vmwaretools解压失败|vmware tools distrib cannot mkdir read only file system|bug汇总
  • OpenResty(Lua)+Redis实现动态封禁IP
  • 朴素贝叶斯:文本处理中的分类利器
  • 3. 轴指令(omron 机器自动化控制器)——>MC_ResetFollowingError
  • 计算机网络的分类——按照按拓扑结构分类
  • django定时任务方案比对
  • PCL—voxel点云网格化
  • 软件功能性测试工具有哪些?专业软件测试服务推荐
  • 深入解析嵌入式内核:从架构到实践
  • 2025红明谷writeup
  • 【零基础学python】python基础语法(二)
  • UE4学习笔记 FPS游戏制作15修正可以换枪中可以继续换枪和开火的Bug
  • 大数据Trino面试题及参考答案
  • SQL Server行转列操作及PIVOT运算符
  • react 大屏根据屏幕分辨率缩放
  • 最近这75年,谁建造了上海?
  • 非法收受财物逾1648万,湖南原副厅级干部康月林一审被判十年半
  • 日本大米价格连续16周上涨,再创最高纪录
  • 上海数学教育及数学科普专家陈永明去世,享年85岁
  • 香港警务处高级助理处长叶云龙升任警务处副处长(行动)
  • 商务部:4月份以来的出口总体延续平稳增长态势