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 条数据:
   代码    名称    买入金额    卖出金额    净买入  ...

相关推荐
糖果店的幽灵3 小时前
Claude Code 完全实战指南 - 第一章:安装配置与本地大模型
人工智能·claude
Bigger3 小时前
mini-cc 的技能系统:给 AI 装上“专业外挂”
前端·ai编程·claude
七牛开发者3 小时前
从 Claude 案例看 Coding Agent 的计划层设计
人工智能·ai·agent·claude·claudecode
解决问题17 小时前
Claude Code 对话框/弹窗 UI 样式汇总
claude
解决问题18 小时前
Claude Code 生命周期 Hooks 使用指南
claude
JavaGuide18 小时前
Claude Code 怎么学?推荐 4 个高质量开源教程,从入门到实战
github·ai编程·claude
解决问题18 小时前
关闭聊天窗口时的处理机制
claude
Resistance丶未来1 天前
Pixelle-Video:AI全自动短视频引擎 接入API教程
人工智能·大模型·api·claude·deepseek·魔芋ai·pixelle-video
解决问题1 天前
query.ts 中 message的处理流程
claude