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

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语句时,涉及到参数是字符串的,要在字符串开头结尾增加\'


http://www.kler.cn/a/598237.html

相关文章:

  • C语言-访问者模式详解与实践
  • Enovia许可分析的自动化解决方案
  • 程序代码篇---Pyqt的密码界面
  • Agent TARS开源多模态 AI 代理的革命性突破
  • B树和 B+树
  • Security如何复制粘贴
  • Scikit-learn模型构建全流程解析:从数据预处理到超参数调优
  • 矩阵键盘原理与单片机驱动设计详解—端口反转法(下) | 零基础入门STM32第七十八步
  • 可视化操作界面,工程项目管理软件让复杂项目管理变简单
  • AWS SAP学习笔记-概念
  • 2025最新docker教程(四)
  • WPF 样式和模板的区别
  • 从零开始上手huggingface
  • 遇见东方微笑·畅游如意甘肃——“天水文化旅游嘉年华”2025年春季文旅宣传推广活动侧记
  • 利用 Agent TARS 技术实现互联网舆情监测与事件自动化创建的可行性与前景
  • 给语言模型增加知识逻辑校验智能,识别网络信息增量的垃圾模式
  • stm32-ADC
  • .gitignore使用指南
  • 管家婆工贸ERP PR004.委外完工验收明细表
  • 第十一章 | 智能合约主网部署与验证详解