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

相关推荐
码哥字节6 小时前
Claude Code 准确率从 41% 升到 89%,这个 CLAUDE.md 只做了一件事
agent·ai编程·claude
302wanger6 小时前
AI 写的 commit message 为什么比你写的好?/commit 源码揭秘
claude
关山6 小时前
ClaudeCode 使用指北
claude
凌奕1 天前
让你的 AI 编程助手「偷懒」:50k Star 的 Ponytail,让 Agent 少写一半代码
chatgpt·agent·claude
码哥字节1 天前
Skill 仓库本周炸榜,但 90% 工程师没分清这三个体系的本质区别
agent·claude
冬奇Lab2 天前
每日一个开源项目(第138篇):OpenMontage - 把 AI 编程助手变成完整的视频制作团队
人工智能·开源·claude
程序员辉哥2 天前
Skill精通系列之GStack-最会做决策的虚拟团队
openai·ai编程·claude
浩风祭月2 天前
Cursor + Claude Code实战:从需求分析到测试提交的完整流程
ai编程·claude·cursor
乘风gg2 天前
还在养虾吗?虾王已诞生:微信龙虾 ClawBot
前端·ai编程·claude