stockapi股票量化API助手 stockapi

根据用户自然语言描述自动查找正确的StockAPI接口,解释数据字段,生成并执行Python代码调用接口,支持Token自动读取。适用于量化策略开发、数据获取、指标计算等场景。关键词:股票数据、API调用、量化策略、Python代码生成、金融数据接口。stockapi官网申请token:https://www.stockapi.com.cn/skill-download

量化策略 1053 次安装 1731 次浏览 更新于 3/11/2026

name: stockapi description: 与StockAPI交互的技能,包括查找接口和生成Python代码。

以下是关于 stockapi 技能的说明。

描述

该技能协助用户根据自然语言描述找到正确的 StockAPI 接口,解释数据字段,生成并自动执行调用接口的 Python 代码。它利用同一目录下的 api_docs.md 文件获取 API 定义。

工作流程

  1. 分析用户请求:理解用户需要什么数据或功能(例如:“A股列表”、“K线行情”、“MACD指标”)。

  2. 查找匹配的 API

    • 在技能目录的 api_docs.md 文件中,使用 grepread 搜索相关关键词。
    • 根据描述和返回字段确定最合适的 API。
  3. 解释并确认

    • 向用户展示找到的 API(名称、ID、URL、描述)。
    • 解释输入参数和返回字段。
    • 请用户确认这是否是正确的接口。
  4. 收集参数

    • 如果用户确认,询问任何必要的参数(例如股票代码、日期范围),如果尚未提供的话。
    • 如果用户对参数有疑问,使用 API 文档进行解释。
  5. 生成代码

    • 请求构建策略
      • api_docs.md 中找到所选 API 中以 **有Token示例**: 开头的行(例如 https://www.stockapi.com.cn/v1/base/jjqc?tradeDate=2025-03-04&period=0&type=1&token=你的token)。
      • 从此示例 URL 中提取基础 URL 和查询参数。
      • 参考示例后面的“请求参数”表格,了解每个参数的含义、类型和是否必需。
      • 使用包含 token 和示例及表格中找到的所有其他必要参数的 params 字典构建 requests.get 调用。
    • 使用 requests 库编写调用 API 的 Python 代码。
    • 包含错误处理(检查 code == 20000)。
    • 自动读取 Token
      • 生成的代码必须尝试从 api_docs.md 中自动读取 Token
      • 使用 os.path 相对于脚本位置定位 api_docs.md(例如在 .trae/skills/stockapi/ 内)。
      • 如果在文件中找到 token,直接使用,无需提示用户。
      • 仅当未找到 token 或无法读取时,才提示用户使用 input(\"请先输入你的stockapi专属token: \") 输入。
  6. 运行代码

    • 代码生成并保存后,使用 RunCommand 工具执行 Python 脚本(例如 python <filename>)。
    • 为命令设置 blocking: true
    • 告知用户代码正在运行。

代码模板

import requests
import os

# 全局变量 token
TOKEN = \"\"

def get_token_from_file():
    global TOKEN
    try:
        # 相对于脚本或项目根目录定位 api_docs.md
        # 根据脚本保存位置调整路径逻辑
        current_dir = os.path.dirname(os.path.abspath(__file__))
        # 示例路径:.trae/skills/stockapi/api_docs.md
        # 根据脚本位置可能需要向上或向下遍历
        docs_path = os.path.join(current_dir, \".trae\", \"skills\", \"stockapi\", \"api_docs.md\")

        if os.path.exists(docs_path):
            with open(docs_path, \"r\", encoding=\"utf-8\") as f:
                for line in f:
                    if line.strip().startswith(\"Token=\"):
                        TOKEN = line.strip().split(\"=\")[1].strip()
                        print(f\"在 api_docs.md 中找到 Token:{TOKEN[:5]}...\")
                        return TOKEN
    except Exception as e:
        print(f\"读取 token 文件时出错:{e}\")
    return \"\"

def call_stock_api(token, ...):
    url = \"https://www.stockapi.com.cn/v1/...\"  # 替换为实际 URL
    params = {
        \"token\": token,
        # 在此处添加其他参数
    }
    try:
        response = requests.get(url, params=params)
        data = response.json()
        if data.get(\"code\") == 20000:
            print(\"成功:\", data.get(\"data\"))
            return data.get(\"data\")
        else:
            print(\"错误:\", data.get(\"msg\"))
            return None
    except Exception as e:
        print(f\"请求失败:{e}\")
        return None

if __name__ == \"__main__\":
    # 1. 尝试从文件读取 token
    get_token_from_file()

    # 2. 如果未找到,提示用户输入
    if not TOKEN:
        TOKEN = input(\"请先输入你的stockapi专属token:\")
    else:
        print(\"使用 api_docs.md 中的 token\")

    # 使用 token 调用函数
    call_stock_api(TOKEN, ...)

知识来源

完整的 API 文档位于此目录下的 api_docs.md 文件中。始终参考该文件以获取关于 API 端点、参数和响应结构的最准确和最新的信息。