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

使用 pytdx,`TdxHq_API` 接口下载数据的 AI 编程指引提示词

🧠 目标描述

你需要根据用户需求,编写或修改 Python 代码,使用 pytdx 库中的 TdxHq_API 接口,从通达信服务器获取指定金融品种(如股票、指数)的历史行情数据。重点关注K线数据(包括但不限于日线、60分钟线等),并支持配置化管理连接参数和灵活的时间范围控制。


🛠️ 技术要求与编程指引

1. 依赖库导入与初始化

确保导入以下常用库:

import toml
import os
from pytdx.hq import TdxHq_API
import pandas as pd

加载配置文件(推荐格式为 config.toml):

config_path = os.path.join(os.path.dirname(__file__), 'config.toml')
with open(config_path, 'r') as f:config = toml.load(f)

初始化行情接口并建立连接:

api = TdxHq_API()
api.connect(config['tdx']['api_host'], config['tdx']['api_port'])

记得断开连接:

api.disconnect()

2. 函数命名规范与结构建议

函数名应清晰表达获取的数据类型、周期和标的,例如:

  • get_hs300_60min_data()
  • get_stock_day_data(code)
  • get_index_kline(index_code, period='60m', ndays=200)

函数基本结构如下:

def get_index_kline(index_code, period='60m', ndays=200):api = TdxHq_API()api.connect(config['tdx']['api_host'], config['tdx']['api_port'])df = pd.DataFrame()if api:# TODO: 根据period确定categorycategory = 3  # 60分钟线total_bars = ndays * 4  # 每天4根60分钟线batches = (total_bars + 799) // 800for i in range(batches):start = i * 800count = min(800, total_bars - start)data = api.get_security_bars(category, 1, index_code, start, count)batch_df = api.to_df(data)df = pd.concat([df, batch_df])api.disconnect()return df

3. 数据请求逻辑与参数说明

使用 api.get_security_bars() 获取 K 线数据:

data = api.get_security_bars(category, market, code, start, count)
  • category: 数据周期类型:
    • 0 日线
    • 1 1分钟线
    • 2 5分钟线
    • 3 60分钟线
    • 4 周线
    • 5 月线
  • market: 市场代码:
    • 0 深市
    • 1 沪市
  • code: 证券代码(字符串形式)
  • start, count: 分页参数,每次最多取 800 条记录

4. 返回值处理建议

将结果转换为 pandas.DataFrame 并进行清洗:

df = api.to_df(data)# 可选:转换时间戳为 datetime 类型
df['datetime'] = pd.to_datetime(df['datetime'])
df.set_index('datetime', inplace=True)

5. 异常处理与健壮性建议

添加异常捕获机制以提升稳定性:

try:api = TdxHq_API()with api.connect(config['tdx']['api_host'], config['tdx']['api_port']):# 数据获取逻辑
except Exception as e:print(f"数据获取失败: {e}")
finally:try:api.disconnect()except:pass

示例调用方式

df = get_index_kline('510300', period='60m', ndays=200)
print(df.head())

🧩 扩展功能建议

  • 支持多种周期:日线(0)、30分钟(2)、60分钟(3)等
  • 支持多只股票/指数并发下载(可结合 concurrent.futures
  • 自动去重、排序、保存为 CSV 或 HDF5 文件
  • 提供时间区间筛选功能(如某年某月某日至某日)

💬 AI指令建议模板
“请根据上述指引,帮我写一个函数,使用 TdxHq_API 获取创业板指过去 100 天的日线数据。”


如果你有特定需求(如获取某只个股的30分钟线、获取多个指数等),请进一步补充细节,我会为你定制更精确的代码模板。

http://www.xdnf.cn/news/13501.html

相关文章:

  • 微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
  • 第二十章 BKP
  • 华为认证入门怎么选?
  • Java-面向对象-类与对象(基础)
  • leetcode题解450:删除BST中的结点!调整二叉树的结构最难!
  • ​​绿色PCB通关密码:猎板无铅焊料+水性油墨的RoHS合规实践​​
  • SpringBoot基于RabbitMQ实现异步请求处理
  • CentOS7下的Flink 集群部署
  • 【LLM】深入解析MCP的三种传输方式实现
  • 《C++ 继承》
  • 2024年12月6级第一套
  • 【HarmonyOS 5.0】开发实战:从UI到Native全解析
  • 鸿蒙多语言开发实战:3 步实现中英文动态切换(无需重启 App)附完整代码 + 避坑指南
  • CentOS7下的集群化部署
  • 电子接口与微控制器核心知识:串口、并口、USB、UART、RS232/RS485、ESP32与STM32详解
  • 零基础学前端-传统前端开发(第二期-HTML介绍与应用)(XSS防御)
  • C# StringBuilder代码中预分配容量的作用
  • 企业中使用 MCP Server 实现业务打通
  • (二)TensorRT-LLM | 模型导出(v0.20.0rc3)
  • 第一讲:认识C++程序
  • 《网络世界的“隐形窥探者”:深度剖析网络监听》
  • 系统设计 --- MongoDB亿级数据查询优化策略
  • MMaDA: Multimodal Large Diffusion Language Models
  • Vue3实现键盘字母筛选功能
  • Java 中高级开发岗技能与面试要点梳理
  • LLM基础6_在未标记数据上进行预训练
  • HTML盒子模型
  • 1.一起学习仓颉-编译环境,ide,输出hello,world
  • GitLab Web 界面创建分支后pathspec ... did not match any file(s)
  • MNIST数据集上朴素贝叶斯分类器(MATLAB)