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

使用pytdx获取股票行情数据

使用pytdx获取股票行情数据

  • 先展示效果
    • 股票清单
    • 股票行情
  • 下载通达信金融终端
  • 安装插件pytdx
  • python代码实现
  • 同步股票列表
  • 同步股票行情

先展示效果

股票清单

总共统计深市与沪市总计5397只股票信息。
在这里插入图片描述

股票行情

你好! 这是你第一次使用 **Markdown编辑器** 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
以下是详细的实现步骤

下载通达信金融终端

此步骤的目的是要获取pytdx插件中需要使用的服务器地址及端口
在这里插入图片描述
在这里插入图片描述
在通讯设置中可以查看当前信号较好的服务器地址,最终在安装目录下找到服务器地址。
在这里插入图片描述

安装插件pytdx

pip install pytdx

我使用的python版本为3.10

python代码实现

# -*- coding: utf-8 -*-
import logging
from pytdx.hq import TdxHq_APIclass Tdx_Client():def __init__(self, ip='111.229.247.189', port='7709'):self.ip = ipself.port = portself.api = TdxHq_API(auto_retry=True, raise_exception=False)self.api.connect(self.ip, int(self.port))def get_security_list(self, mkt_id, start):logging.info("获取股票列表")if self.api.connect(self.ip, int(self.port)):data = self.api.get_security_list(mkt_id, start)return datareturn Nonedef get_security_quotes(self, all_stock, code=None):logging.info("获取股票行情")if self.api.connect(self.ip, int(self.port)):data = self.api.get_security_quotes(all_stock, code)return data or []return []if __name__ == '__main__':tdx = Tdx_Client()tdx.get_security_quotes([(1, "600028")])

上面的代码展示的是如何调试接口,最后我们需要使用odoo开源平台将数据存入数据库,这里只提供关键代码;

同步股票列表

    def create_task_job(self, market_id, security_start, page):""""""start = timeit.default_timer()tdx_client = self.env['tdx.service'].get_tdx_client()data_list = tdx_client.get_security_list(market_id, security_start)if not data_list:returnstock_vals = []for data_item in data_list:if self.get_stock_sector(data_item['code']) == '其它':continuestock_id = self.env['stock.info'].search([('code', '=', data_item['code']), ('active', 'in', [True, False])], limit=1)if stock_id:continuestock_vals.append({'code': data_item['code'],'name': data_item['name'],'market_id': '沪市' if market_id == 1 else '深市','active': True})self.env['stock.info'].create(stock_vals)end = timeit.default_timer()logging.info('创建股票清单数据, 第%s页,总计条数:%s, 总计用时:%s', page, len(data_list),end - start)

同步股票行情

    def create_individual_stock(self, stock_ids_chunk, page):""""""start = timeit.default_timer()tdx_client = self.env['tdx.service'].get_tdx_client()stock_ids = self.env['stock.info'].browse(stock_ids_chunk)all_stock = []for stock_id in stock_ids:market_id = 1 if stock_id.market_id == '沪市' else 0all_stock.append((market_id, stock_id.code))security_quotes = tdx_client.get_security_quotes(all_stock)date_today = date.today()individual_stock_data = []for security_data in security_quotes:if security_data is None:continuestock_id = self.env['stock.info'].search([('code', '=', security_data['code']), ('active', 'in', [True, False])], limit=1)if not stock_id:continuestock_vals = self.prepare_individual_stock_vals(security_data)stock_vals.update({'stock_id': stock_id.id,'stock_date': date_today,})individual_stock_data.append(stock_vals)self.env['individual.stock'].create(individual_stock_data)end = timeit.default_timer()logging.info('获取股票行情, 第%s页,总计条数:%s, 总计用时:%s', page, len(individual_stock_data),end - start)

http://www.mrgr.cn/news/41567.html

相关文章:

  • NASA:ATLAS/ICESat-2 L3B 平均内陆地表水数据 V002
  • 关于深度学习torch的环境配置问题
  • C#中的事件、代理与任务:深入剖析发布者 - 订阅者模式中的关键元素
  • Elasticsearch基础_5.ES聚合功能
  • Pycharm关于Interpreter问题:ModuleNotFoundError: No module named
  • 深度学习:cGAN和pix2pix图像转换
  • Pikachu-xss实验案例-键盘记录
  • 提升效率的秘密武器选择与使用指南
  • 《MoCo:Momentum Contrast for Unsupervised Visual Representation Learning》中文校对版
  • 常见的性能问题(如内存泄漏、Full GC频繁)的排查与解决。TCP的三次握手与四次挥手过程。
  • 业务封装与映射 -- 业务映射路径
  • 「C++系列」预处理器
  • 毕业设计选题:基于ssm+vue+uniapp的教学辅助小程序
  • ros2 自定义工作空间添加source
  • 【嵌入式裸机开发】智能家居入门3(MQTT服务器、MQTT协议、微信小程序、STM32)
  • 【超详细】Python、JDK、vscode安装
  • CSS盒子模型基础知识(23个案例+代码+效果图)
  • 【EXCEL数据处理】000013 案例 EXCEL筛选与高级筛选。
  • Visual Studio2017编译GDAL3.0.2源码过程
  • PHP反射机制