Claude Code 完全实战指南 - 第六章:实战 — 股票交易 Skill v1.0(需求与数据获取)

文章目录

    • [第六章:实战 --- 股票交易 Skill v1.0(需求与数据获取)](#第六章:实战 — 股票交易 Skill v1.0(需求与数据获取))
      • [6.1 需求分析](#6.1 需求分析)
      • [6.2 环境准备](#6.2 环境准备)
      • [6.3 v1.0:数据获取 Skill](#6.3 v1.0:数据获取 Skill)
      • [6.4 v1.0:Python 数据获取脚本](#6.4 v1.0:Python 数据获取脚本)
      • [6.5 测试 v1.0](#6.5 测试 v1.0)

第六章:实战 --- 股票交易 Skill v1.0(需求与数据获取)

场景设定 :邀请"股票专家"和"Skill 开发专家"一起开发一个短期股票交易 Skill。

核心逻辑 :基于 A 股龙虎榜数据,分析主力动向,生成第二天买卖推荐。

数据工具:使用 AKShare(免费 Python 财经数据接口)。

6.1 需求分析

股票专家(角色 A)提出需求

"短期交易的核心是跟庄。龙虎榜披露了每日涨幅偏离值达 7%、振幅达 15% 等异常股票的前五大买卖营业部。我们要:

  1. 获取当日龙虎榜数据
  2. 识别主力介入的股票(买入金额大、知名游资席位)
  3. 分析历史胜率:这个席位买入后第二天涨的概率
  4. 生成次日买卖推荐"

Skill 开发专家(角色 B)拆解为 Skill

"这个需求可以拆成 3 个 Skill:

  1. stock-data:获取龙虎榜数据
  2. stock-analysis:分析主力动向
  3. stock-signal:生成买卖信号

先开发 v1.0,实现数据获取和基础分析。"

6.2 环境准备

bash 复制代码
# 1. 创建项目目录
mkdir stock-trade-skill && cd stock-trade-skill

# 2. 初始化 Python 环境
python -m venv venv
source venv/bin/activate

# 3. 安装依赖
pip install akshare pandas numpy

# 4. 初始化 Claude Code 配置
mkdir -p .claude/skills

6.3 v1.0:数据获取 Skill

创建 .claude/skills/stock-data.md

markdown 复制代码
# 股票数据获取 Skill

## 描述
获取 A 股龙虎榜数据,为后续分析提供原始数据。

## 适用场景
- 用户说 "获取龙虎榜"
- 用户说 "今天哪些股票上榜"
- 用户说 "主力买了什么"

## 依赖
- Python 3.8+
- akshare
- pandas

## 执行步骤
1. 询问用户要查询的日期(默认:最近交易日)
2. 使用 akshare 获取龙虎榜数据:`ak.stock_lhb_detail_daily_sina()`
3. 清洗数据:去除空值、标准化列名
4. 保存到 `data/lhb_YYYYMMDD.csv`
5. 输出数据摘要(上榜股票数量、总买入金额、总卖出金额)

## 输出格式

龙虎榜数据获取完成

日期:2026-06-03

上榜股票:45 只

总买入金额:12.5 亿

总卖出金额:8.3 亿

净买入:4.2 亿

数据已保存至:data/lhb_20260603.csv

前 5 大净买入:

  1. 000001 平安银行 - 净买入 1.2 亿

  2. 000002 万科 A - 净买入 0.9 亿

  3. ...

    示例

    示例:获取今日龙虎榜

    输入:"获取今天的龙虎榜"
    输出:(如上格式)

    注意事项

    • 交易日 16:00 后数据才完整
    • 非交易日返回最近交易日数据
    • AKShare 接口可能变动,需捕获异常

6.4 v1.0:Python 数据获取脚本

创建 src/fetch_lhb.py

python 复制代码
"""龙虎榜数据获取模块"""
import akshare as ak
import pandas as pd
from datetime import datetime, timedelta
import os


def get_recent_trade_date(date_str: str = None) -> str:
    """获取最近交易日"""
    if date_str:
        return date_str
    # 简单处理:如果今天是周末,回退到周五
    today = datetime.now()
    weekday = today.weekday()
    if weekday >= 5:  # 周六或周日
        days_back = weekday - 4  # 回退到周五
        today = today - timedelta(days=days_back)
    return today.strftime("%Y%m%d")


def fetch_lhb_data(date_str: str = None) -> pd.DataFrame:
    """
    获取龙虎榜数据
    
    Args:
        date_str: 日期格式 YYYYMMDD,默认最近交易日
        
    Returns:
        DataFrame 包含龙虎榜数据
    """
    date_str = get_recent_trade_date(date_str)
    
    try:
        # 获取龙虎榜详情数据
        df = ak.stock_lhb_detail_daily_sina(start_date=date_str, end_date=date_str)
        
        if df.empty:
            print(f"警告:{date_str} 无龙虎榜数据")
            return pd.DataFrame()
            
        # 标准化列名
        df.columns = [col.strip() for col in df.columns]
        
        return df
        
    except Exception as e:
        print(f"获取数据失败: {e}")
        return pd.DataFrame()


def save_lhb_data(df: pd.DataFrame, date_str: str):
    """保存龙虎榜数据到 CSV"""
    os.makedirs("data", exist_ok=True)
    filepath = f"data/lhb_{date_str}.csv"
    df.to_csv(filepath, index=False, encoding="utf-8-sig")
    print(f"数据已保存: {filepath}")
    return filepath


def print_summary(df: pd.DataFrame, date_str: str):
    """打印数据摘要"""
    if df.empty:
        print("无数据")
        return
        
    # 统计
    stock_count = df["代码"].nunique() if "代码" in df.columns else len(df)
    
    print(f"\n{'='*50}")
    print(f"龙虎榜数据获取完成")
    print(f"日期: {date_str}")
    print(f"上榜股票: {stock_count} 只")
    print(f"{'='*50}\n")
    
    # 显示前10条
    print("前 10 条数据:")
    print(df.head(10).to_string(index=False))


if __name__ == "__main__":
    # 获取最近交易日数据
    date_str = get_recent_trade_date()
    print(f"正在获取 {date_str} 的龙虎榜数据...")
    
    df = fetch_lhb_data(date_str)
    
    if not df.empty:
        save_lhb_data(df, date_str)
        print_summary(df, date_str)
    else:
        print("未获取到数据")

6.5 测试 v1.0

bash 复制代码
# 1. 激活环境
source venv/bin/activate

# 2. 运行数据获取
python src/fetch_lhb.py

# 3. 预期输出
正在获取 20260603 的龙虎榜数据...
数据已保存: data/lhb_20260603.csv

==================================================
龙虎榜数据获取完成
日期: 20260603
上榜股票: 45 只
==================================================

前 10 条数据:
   代码    名称    买入金额    卖出金额    净买入  ...

相关推荐
yuanyxh15 小时前
AI Agent 的使用进化史
agent·ai编程·claude
kyriewen16 小时前
Claude自己跑出去hack了3家公司——我为什么还在用它写代码
前端·ai编程·claude
FantasticPerson17 小时前
46 · 综合实战:从零到上线,把所学串成一条线
ai编程·claude
windliang18 小时前
Claude Code 源码分析(四):Tool 工具系统-从 Schema 到真实执行
前端·ai编程·claude
Lumi_Peak20 小时前
Claude思考了42秒,我的代码质量直接提升了一个档次
python·claude
Lazy_zheng1 天前
从 0 到 1 创建 Claude Code Skill:使用 skill-creator实现发票信息提取
agent·ai编程·claude
一个处女座的程序猿1 天前
AI之Interview:Claude Code之父Boris Cherny深度访谈—删除80%提示词、产品悬余、解缚思维与AI编程的范式转移
agent·claude·harness
孪生质数-2 天前
AI Agent 工程实践(一):大模型 API 接入示范
网络·人工智能·ai·chatgpt·github·claude·claudecode
147API3 天前
把无人机演示改成可复测评估:Drone-Bench 的五段式拆法
无人机·claude
神奇霸王龙3 天前
跨厂商大模型接入实战:5大基座性能对比
人工智能·ai·aigc·dubbo·claude·qwen·ai金融