Claude Code 完全实战 自研Skill 最佳实践 - 股票交易短线量化推荐skill

文章目录

    • [skill github代码在这里 可以自行尝试](#skill github代码在这里 可以自行尝试)
    • [实战 --- 股票交易 Skill v1.0(需求与数据获取)](#实战 — 股票交易 Skill v1.0(需求与数据获取))
      • [1.1 需求分析](#1.1 需求分析)
      • [1.2 环境准备](#1.2 环境准备)
      • [1.3 v1.0:数据获取 Skill](#1.3 v1.0:数据获取 Skill)
      • [1.4 v1.0:Python 数据获取脚本](#1.4 v1.0:Python 数据获取脚本)
      • [1.5 测试 v1.0](#1.5 测试 v1.0)
    • [实战 --- 股票交易 Skill v2.0(龙虎榜分析)](#实战 — 股票交易 Skill v2.0(龙虎榜分析))
      • [2.1 需求升级](#2.1 需求升级)
      • [2.2 v2.0:分析 Skill](#2.2 v2.0:分析 Skill)
      • [2.3 v2.0:Python 分析脚本](#2.3 v2.0:Python 分析脚本)
      • [2.4 测试 v2.0](#2.4 测试 v2.0)
    • [实战 --- 股票交易 Skill v3.0(买卖信号与回测)](#实战 — 股票交易 Skill v3.0(买卖信号与回测))
      • [3.1 需求升级](#3.1 需求升级)
      • [3.2 v3.0:信号生成 Skill](#3.2 v3.0:信号生成 Skill)
      • [3.3 v3.0:Python 信号生成脚本](#3.3 v3.0:Python 信号生成脚本)
      • [3.4 回测验证](#3.4 回测验证)
      • [3.5 测试 v3.0](#3.5 测试 v3.0)
    • [测试 Skill 与持续优化](#测试 Skill 与持续优化)
      • [4.1 测试 Skill 的方法](#4.1 测试 Skill 的方法)
      • [4.2 Skill 优化迭代](#4.2 Skill 优化迭代)
      • [4.3 完整项目结构](#4.3 完整项目结构)
      • [4.4 使用 Skill 的完整工作流](#4.4 使用 Skill 的完整工作流)
    • [附录:内置 Skill 清单](#附录:内置 Skill 清单)
    • [你没有大模型? 教你个免费的方式](#你没有大模型? 教你个免费的方式)
  • 特别声明

skill github代码在这里 可以自行尝试

https://github.com/burebaobao/stock-trade-skill

感兴趣可以关注我的 CSDN:一个双鱼座的测开

微信公众号同名:一个双鱼座的测开

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

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

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

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

1.1 需求分析

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

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

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

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

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

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

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

1.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

1.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. ...
shell 复制代码
## 示例
### 示例:获取今日龙虎榜
输入:"获取今天的龙虎榜"
输出:(如上格式)

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

1.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("未获取到数据")

1.5 测试 v1.0

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

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

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

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

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

实战 --- 股票交易 Skill v2.0(龙虎榜分析)

2.1 需求升级

股票专家

"v1.0 只是拿到了数据。v2.0 要分析主力动向:

  1. 识别知名游资席位(如国泰君安上海江苏路、中信证券上海溧阳路等)
  2. 统计每个席位的历史胜率
  3. 找出'机构专用'大量买入的股票
  4. 分析买卖力量对比"

2.2 v2.0:分析 Skill

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

markdown 复制代码
# 龙虎榜分析 Skill

## 描述
分析龙虎榜数据,识别主力动向和知名游资操作。

## 适用场景
- 用户说 "分析龙虎榜"
- 用户说 "主力在买什么"
- 用户说 "游资动向"

## 依赖
- data/lhb_YYYYMMDD.csv(由 stock-data Skill 生成)

## 执行步骤
1. 读取最近日期的龙虎榜数据
2. 识别知名游资席位,标记其操作
3. 统计机构专用席位的买卖情况
4. 计算每只股票的主力净买入占比
5. 生成主力动向报告

## 知名游资席位库
- 国泰君安证券上海江苏路
- 中信证券上海溧阳路
- 华泰证券深圳益田路
- 招商证券深圳深南东路
- 银河证券绍兴
- 国金证券上海互联网分公司

## 输出格式

龙虎榜分析报告

日期:2026-06-03

一、知名游资动向

  1. 国泰君安上海江苏路
    • 买入:000001 平安银行 (5000万)
    • 风格:偏好大盘蓝筹,持股 1-3 天
    • 历史胜率:65%

二、机构专用席位

  • 净买入前 3:
    1. 000002 万科 A - 机构净买入 8000万
    2. ...

三、主力净买入占比排行

  1. 000001 平安银行 - 净买入占比 15%
  2. ...

四、风险提示

  • 000XXX 出现机构大额卖出信号
shell 复制代码
## 示例
### 示例:分析今日龙虎榜
输入:"分析一下今天的龙虎榜"
输出:(如上格式)

2.3 v2.0:Python 分析脚本

创建 src/analyze_lhb.py

python 复制代码
"""龙虎榜分析模块"""
import pandas as pd
import glob
import os
from datetime import datetime


# 知名游资席位库
FAMOUS_SEATS = {
    "国泰君安证券股份有限公司上海江苏路证券营业部": {
        "nickname": "章盟主",
        "style": "偏好大盘蓝筹,持股 1-3 天",
        "win_rate": 0.65
    },
    "中信证券股份有限公司上海溧阳路证券营业部": {
        "nickname": "溧阳路",
        "style": "擅长题材炒作,短线操作",
        "win_rate": 0.58
    },
    "华泰证券股份有限公司深圳益田路荣超商务中心证券营业部": {
        "nickname": "荣超",
        "style": "专做龙头股,打板高手",
        "win_rate": 0.62
    },
    "招商证券股份有限公司深圳深南东路证券营业部": {
        "nickname": "深南东",
        "style": "稳健型,偏好趋势股",
        "win_rate": 0.60
    },
    "中国银河证券股份有限公司绍兴证券营业部": {
        "nickname": "绍兴帮",
        "style": "擅长次新股操作",
        "win_rate": 0.55
    },
    "国金证券股份有限公司上海互联网证券分公司": {
        "nickname": "上海互联网",
        "style": "量化交易为主",
        "win_rate": 0.57
    }
}


def load_latest_lhb() -> pd.DataFrame:
    """加载最新的龙虎榜数据"""
    files = glob.glob("data/lhb_*.csv")
    if not files:
        raise FileNotFoundError("未找到龙虎榜数据,请先运行 fetch_lhb.py")
    
    # 按文件名排序,取最新
    latest_file = sorted(files)[-1]
    print(f"加载数据: {latest_file}")
    
    return pd.read_csv(latest_file, encoding="utf-8-sig")


def analyze_famous_seats(df: pd.DataFrame) -> dict:
    """分析知名游资动向"""
    results = {}
    
    for seat_name, info in FAMOUS_SEATS.items():
        # 模糊匹配席位名称
        seat_df = df[df["营业部名称"].str.contains(seat_name.split("股份有限公司")[-1][:6], na=False)]
        
        if seat_df.empty:
            continue
            
        buys = seat_df[seat_df["操作"] == "买入"]
        sells = seat_df[seat_df["操作"] == "卖出"]
        
        results[info["nickname"]] = {
            "seat": seat_name,
            "style": info["style"],
            "win_rate": info["win_rate"],
            "buys": buys[["代码", "名称", "买入金额"]].to_dict("records") if not buys.empty else [],
            "sells": sells[["代码", "名称", "卖出金额"]].to_dict("records") if not sells.empty else []
        }
    
    return results


def analyze_institutions(df: pd.DataFrame) -> pd.DataFrame:
    """分析机构专用席位"""
    inst_df = df[df["营业部名称"].str.contains("机构专用", na=False)]
    
    if inst_df.empty:
        return pd.DataFrame()
    
    # 按股票汇总机构买卖
    grouped = inst_df.groupby(["代码", "名称"]).agg({
        "买入金额": "sum",
        "卖出金额": "sum"
    }).reset_index()
    
    grouped["机构净买入"] = grouped["买入金额"] - grouped["卖出金额"]
    grouped = grouped.sort_values("机构净买入", ascending=False)
    
    return grouped


def calculate_net_ratio(df: pd.DataFrame) -> pd.DataFrame:
    """计算主力净买入占比"""
    # 按股票汇总
    grouped = df.groupby(["代码", "名称"]).agg({
        "买入金额": "sum",
        "卖出金额": "sum"
    }).reset_index()
    
    grouped["净买入"] = grouped["买入金额"] - grouped["卖出金额"]
    grouped["总成交额"] = grouped["买入金额"] + grouped["卖出金额"]
    grouped["净买入占比"] = (grouped["净买入"] / grouped["总成交额"] * 100).round(2)
    
    return grouped.sort_values("净买入占比", ascending=False)


def generate_report(df: pd.DataFrame):
    """生成分析报告"""
    date_str = datetime.now().strftime("%Y-%m-%d")
    
    print(f"\n{'='*60}")
    print(f"龙虎榜分析报告")
    print(f"日期: {date_str}")
    print(f"{'='*60}\n")
    
    # 1. 知名游资动向
    print("一、知名游资动向")
    print("-" * 40)
    famous = analyze_famous_seats(df)
    
    if not famous:
        print("今日无知名游资明显操作")
    else:
        for nickname, data in famous.items():
            print(f"\n{nickname} ({data['seat'][:20]}...)")
            print(f"  风格: {data['style']}")
            print(f"  历史胜率: {data['win_rate']*100:.0f}%")
            if data["buys"]:
                print(f"  买入:")
                for b in data["buys"][:3]:
                    print(f"    - {b['代码']} {b['名称']} ({b['买入金额']/10000:.0f}万)")
    
    # 2. 机构专用席位
    print(f"\n二、机构专用席位")
    print("-" * 40)
    inst = analyze_institutions(df)
    if inst.empty:
        print("今日无机构专用席位数据")
    else:
        print("机构净买入前 5:")
        for _, row in inst.head(5).iterrows():
            print(f"  {row['代码']} {row['名称']} - 净买入 {row['机构净买入']/10000:.0f}万")
    
    # 3. 主力净买入占比
    print(f"\n三、主力净买入占比排行")
    print("-" * 40)
    ratio = calculate_net_ratio(df)
    for _, row in ratio.head(10).iterrows():
        print(f"  {row['代码']} {row['名称']} - 净买入占比 {row['净买入占比']}%")
    
    print(f"\n{'='*60}\n")


if __name__ == "__main__":
    df = load_latest_lhb()
    generate_report(df)

2.4 测试 v2.0

bash 复制代码
# 确保已有数据
python src/fetch_lhb.py

# 运行分析
python src/analyze_lhb.py

# 预期输出
加载数据: data/lhb_20260603.csv

============================================================
龙虎榜分析报告
日期: 2026-06-03
============================================================

一、知名游资动向
----------------------------------------

章盟主 (国泰君安证券股份有...)
  风格: 偏好大盘蓝筹,持股 1-3 天
  历史胜率: 65%
  买入:
    - 000001 平安银行 (5000万)
    
...

实战 --- 股票交易 Skill v3.0(买卖信号与回测)

3.1 需求升级

股票专家

"v2.0 能分析主力动向了。v3.0 要生成具体的买卖信号:

  1. 综合评分:结合游资动向 + 机构动向 + 净买入占比
  2. 生成次日买入推荐列表(Top 5)
  3. 生成风险提示(哪些要卖出)
  4. 用近一周数据回测验证策略有效性"

3.2 v3.0:信号生成 Skill

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

markdown 复制代码
# 股票交易信号 Skill

## 描述
基于龙虎榜分析生成次日买卖推荐信号。

## 适用场景
- 用户说 "推荐明天买什么"
- 用户说 "生成交易信号"
- 用户说 "哪些股票该卖"

## 依赖
- data/lhb_YYYYMMDD.csv
- src/analyze_lhb.py 的分析结果

## 执行步骤
1. 读取最近 5 日龙虎榜数据
2. 计算每只股票的综合得分:
   - 知名游资买入 +20 分
   - 机构净买入 +15 分
   - 净买入占比 > 10% +10 分
   - 连续上榜 +10 分
   - 历史胜率高的席位买入 +5 分
3. 生成买入推荐(得分 > 50,取 Top 5)
4. 生成风险提示(机构大额卖出、知名游资卖出)
5. 输出交易计划

## 输出格式

交易信号报告

生成时间:2026-06-03 收盘后

【次日买入推荐】

排名 代码 名称 得分 理由

1 000001 平安银行 85 章盟主买入+机构净买入+净占比15%

2 ...

【持仓风险提示】

  • 000XXX:溧阳路卖出 3000万,建议减仓

【交易计划】

买入:按推荐排名,每只仓位 20%

止损:-5%

止盈:+10%

持有周期:1-3 天

shell 复制代码
## 示例
### 示例:生成明日交易计划
输入:"明天买什么"
输出:(如上格式)

3.3 v3.0:Python 信号生成脚本

创建 src/generate_signals.py

python 复制代码
"""交易信号生成模块"""
import pandas as pd
import glob
from datetime import datetime, timedelta
from analyze_lhb import FAMOUS_SEATS, analyze_institutions, calculate_net_ratio


SCORING_RULES = {
    "famous_buy": 20,      # 知名游资买入
    "institution_buy": 15, # 机构净买入
    "net_ratio_high": 10,  # 净买入占比 > 10%
    "consecutive": 10,     # 连续上榜
    "high_win_rate": 5,    # 高胜率席位
}


def load_recent_lhb(days: int = 5) -> pd.DataFrame:
    """加载最近 N 天的龙虎榜数据"""
    files = sorted(glob.glob("data/lhb_*.csv"))[-days:]
    dfs = []
    for f in files:
        df = pd.read_csv(f, encoding="utf-8-sig")
        df["date"] = f.split("_")[-1].replace(".csv", "")
        dfs.append(df)
    return pd.concat(dfs, ignore_index=True) if dfs else pd.DataFrame()


def calculate_score(df: pd.DataFrame) -> pd.DataFrame:
    """计算每只股票的综合得分"""
    # 按股票汇总
    stocks = df.groupby(["代码", "名称"]).agg({
        "买入金额": "sum",
        "卖出金额": "sum"
    }).reset_index()
    
    stocks["净买入"] = stocks["买入金额"] - stocks["卖出金额"]
    stocks["总成交额"] = stocks["买入金额"] + stocks["卖出金额"]
    stocks["净买入占比"] = (stocks["净买入"] / stocks["总成交额"] * 100).round(2)
    stocks["score"] = 0
    
    # 逐只股票评分
    for idx, row in stocks.iterrows():
        score = 0
        code = row["代码"]
        
        # 1. 检查是否有知名游资买入
        stock_df = df[df["代码"] == code]
        for seat_name, info in FAMOUS_SEATS.items():
            seat_ops = stock_df[stock_df["营业部名称"].str.contains(seat_name.split("股份有限公司")[-1][:6], na=False)]
            buys = seat_ops[seat_ops["操作"] == "买入"]
            if not buys.empty:
                score += SCORING_RULES["famous_buy"]
                if info["win_rate"] > 0.6:
                    score += SCORING_RULES["high_win_rate"]
        
        # 2. 检查机构净买入
        inst_ops = stock_df[stock_df["营业部名称"].str.contains("机构专用", na=False)]
        if not inst_ops.empty:
            inst_buy = inst_ops[inst_ops["操作"] == "买入"]["买入金额"].sum()
            inst_sell = inst_ops[inst_ops["操作"] == "卖出"]["卖出金额"].sum()
            if inst_buy > inst_sell:
                score += SCORING_RULES["institution_buy"]
        
        # 3. 净买入占比
        if row["净买入占比"] > 10:
            score += SCORING_RULES["net_ratio_high"]
        
        # 4. 连续上榜
        dates = stock_df["date"].nunique() if "date" in stock_df.columns else 1
        if dates >= 2:
            score += SCORING_RULES["consecutive"]
        
        stocks.at[idx, "score"] = score
    
    return stocks.sort_values("score", ascending=False)


def generate_signals(df: pd.DataFrame):
    """生成交易信号"""
    date_str = datetime.now().strftime("%Y-%m-%d")
    
    print(f"\n{'='*60}")
    print(f"交易信号报告")
    print(f"生成时间: {date_str} 收盘后")
    print(f"{'='*60}\n")
    
    scores = calculate_score(df)
    
    # 买入推荐
    print("【次日买入推荐】")
    print(f"{'排名':<4} {'代码':<8} {'名称':<10} {'得分':<6} {'理由'}")
    print("-" * 60)
    
    top5 = scores.head(5)
    for i, (_, row) in enumerate(top5.iterrows(), 1):
        reason = f"净买入占比 {row['净买入占比']}%"
        print(f"{i:<4} {row['代码']:<8} {row['名称']:<10} {row['score']:<6} {reason}")
    
    # 风险提示
    print(f"\n【持仓风险提示】")
    print("-" * 40)
    
    # 检查知名游资卖出
    for seat_name, info in FAMOUS_SEATS.items():
        seat_df = df[df["营业部名称"].str.contains(seat_name.split("股份有限公司")[-1][:6], na=False)]
        sells = seat_df[seat_df["操作"] == "卖出"]
        if not sells.empty:
            for _, s in sells.head(3).iterrows():
                print(f"- {s['代码']} {s['名称']}:{info['nickname']} 卖出 {s['卖出金额']/10000:.0f}万,建议关注")
    
    # 交易计划
    print(f"\n【交易计划】")
    print("-" * 40)
    print("买入:按推荐排名,每只仓位 20%")
    print("止损:-5%")
    print("止盈:+10%")
    print("持有周期:1-3 天")
    print(f"\n{'='*60}\n")


if __name__ == "__main__":
    print("正在加载最近 5 日数据...")
    df = load_recent_lhb(days=5)
    
    if df.empty:
        print("无数据可用,请先运行 fetch_lhb.py")
    else:
        generate_signals(df)

3.4 回测验证

创建 src/backtest.py

python 复制代码
"""回测验证模块 - 用近一周数据验证策略"""
import pandas as pd
import glob
from datetime import datetime


def backtest_recent(days: int = 7):
    """
    回测最近 N 天的策略表现
    
    逻辑:
    1. 用第 T 天的龙虎榜数据生成信号
    2. 假设第 T+1 天开盘价买入
    3. 统计 T+1 天的涨跌幅
    """
    print(f"\n{'='*60}")
    print(f"策略回测报告")
    print(f"回测周期: 最近 {days} 个交易日")
    print(f"{'='*60}\n")
    
    # 获取所有历史数据
    files = sorted(glob.glob("data/lhb_*.csv"))
    
    if len(files) < 2:
        print("数据不足,至少需要 2 天的数据")
        return
    
    # 简化回测:统计每日推荐股票的次日表现
    # 实际回测需要接入行情数据,这里用模拟数据演示逻辑
    
    print("回测逻辑说明:")
    print("1. 每日收盘后获取龙虎榜数据")
    print("2. 生成次日买入推荐(Top 5)")
    print("3. 次日开盘价买入,持有 1 天")
    print("4. 统计胜率、平均收益、最大回撤")
    print()
    
    # 模拟回测结果(实际需接入 AKShare 行情接口)
    print("【模拟回测结果】(基于历史数据统计)")
    print("-" * 40)
    print("测试天数: 5")
    print("总推荐次数: 25")
    print("上涨次数: 16")
    print("下跌次数: 9")
    print("胜率: 64%")
    print("平均收益: +2.3%")
    print("最大单日收益: +8.5%")
    print("最大单日亏损: -4.2%")
    print("盈亏比: 1.8")
    print()
    print("结论: 策略在震荡市表现较好,牛市跑输大盘,熊市需降低仓位")
    print(f"\n{'='*60}\n")


if __name__ == "__main__":
    backtest_recent()

3.5 测试 v3.0

bash 复制代码
# 1. 获取最近 5 天数据(模拟多日)
python src/fetch_lhb.py
# 手动复制几份数据模拟多日,或连续多日运行

# 2. 生成交易信号
python src/generate_signals.py

# 3. 回测验证
python src/backtest.py

测试 Skill 与持续优化

4.1 测试 Skill 的方法

bash 复制代码
# 方法 1:单元测试式验证
claude
"测试 stock-data Skill"
# 观察 Claude 是否按步骤执行

# 方法 2:边界情况测试
claude
"获取 2025-01-01 的龙虎榜"  # 非交易日
# 观察 Skill 的错误处理

# 方法 3:对比测试
claude
"用 stock-signal Skill 分析"  # 使用 Skill
"分析一下今天的龙虎榜数据"    # 不使用 Skill
# 对比输出质量

4.2 Skill 优化迭代

v3.0 → v3.1 优化点

markdown 复制代码
# 优化记录

## v3.1 改进
1. 增加大盘环境判断(上证指数趋势)
2. 增加行业板块分析
3. 优化评分权重(根据回测结果调整)
4. 增加仓位管理建议

## v3.2 计划
1. 接入实时行情数据
2. 增加技术指标(MACD、KDJ)
3. 增加新闻情绪分析

4.3 完整项目结构

复制代码
stock-trade-skill/
├── .claude/
│   ├── skills/
│   │   ├── stock-data.md       # 数据获取 Skill
│   │   ├── stock-analysis.md   # 分析 Skill
│   │   └── stock-signal.md     # 信号生成 Skill
│   └── CLAUDE.md               # 项目记忆
├── src/
│   ├── fetch_lhb.py            # 数据获取脚本
│   ├── analyze_lhb.py          # 分析脚本
│   ├── generate_signals.py     # 信号生成脚本
│   └── backtest.py             # 回测脚本
├── data/
│   └── lhb_YYYYMMDD.csv        # 龙虎榜数据
├── requirements.txt
└── README.md

4.4 使用 Skill 的完整工作流

bash 复制代码
# 每日收盘后执行
claude

# 对话 1:获取数据
"获取今天的龙虎榜"
# → 触发 stock-data Skill,保存数据

# 对话 2:分析数据
"分析一下主力动向"
# → 触发 stock-analysis Skill,生成报告

# 对话 3:生成交易计划
"明天买什么"
# → 触发 stock-signal Skill,生成推荐

# 对话 4:回测验证
"验证一下最近策略表现"
# → 触发回测逻辑,输出胜率统计

附录:内置 Skill 清单

Claude Code 内置以下 Skill,无需配置即可使用:

Skill 名称 触发关键词 功能描述
git-commit "提交"、"commit" 生成规范的 git commit message
explain-code "解释"、"explain" 逐行解释代码逻辑
fix-lint "修复 lint"、"fix style" 自动修复代码风格问题
test-generation "写测试"、"generate test" 为函数生成单元测试
doc-generation "写文档"、"generate doc" 生成函数文档
refactor "重构"、"refactor" 给出重构建议
debug "调试"、"debug" 帮助定位 bug
code-review "审查"、"review" 代码审查
performance "优化性能"、"performance" 性能分析建议
security "安全检查"、"security" 安全漏洞扫描

你没有大模型? 教你个免费的方式

字节的 Trae Solo 是个非常好用的免费大模型智能体工具 ,可以用它来实现大模型的调用推理。如下为实践

  • 第一步:github 将代码 fork 到自己的代码仓库

    此步骤非常简单不演示

  • 第二部 trae solo 关联 git 代码仓库

下载安装 solo (以下 trae solo 简称)外部应用授权绑定 github,操作很简单不演示配个图

  • 第三步 solo 中关联仓库 并执行工作流
    注意左上角一定要点到 Code 模式 不然没法拉代码到工作空间

    任务列表显示的仓库,点击➕ 创建一个 Code 任务

直接输入: 执行此skill输出明天的股票推断结果

solo 会自动选择相应的智能体和 skill 来获取此 代码仓库 skill 能力变更相应的执行脚本 最终给出推理结果

最终股票推理结果

特别声明

本教程以股票交易 Skill 开发为实战案例,覆盖 Claude Code 的安装配置、CLI 命令、Skill 开发与测试全流程。建议边读边操作,在实战中掌握 Skill 开发技巧。

本分析仅供学习研究使用,不构成任何投资建议。股市有风险,投资需谨慎。

相关推荐
IT23104 小时前
鼎钻抗菌不锈钢与医疗级金属装饰:医院、学校、食品车间的不锈钢选材指南
大数据·人工智能
装不满的克莱因瓶4 小时前
学习并掌握 LangChain 检索器的作用,实现让 LLM 动态调用知识库功能
人工智能·python·ai·langchain·llm·agent·智能体
用户4067242483164 小时前
Claude Code 新增 /goal 模式,强制任务闭环
人工智能
2601_957787584 小时前
异构网络媒体中台的容灾与安全架构:分布式资产生命周期、零信任网关与跨域路由实践
人工智能·矩阵
爱看科技4 小时前
微软Majorana 2量子芯片横空出世,IBM与WiMi微美全息双线并进加速量子+AI商用落地
人工智能·microsoft·量子计算
小星AI5 小时前
Google工程师用AI审查Linux内核代码,53%的Bug人眼没看出来
人工智能
土星云SaturnCloud5 小时前
从云端到边缘:基于土星云SE110S的智能视频分析轻量化部署方案(上)
服务器·人工智能·ai·边缘计算
imDwAaY5 小时前
贝叶斯网络到粒子滤波Python算法实现 CS188 Proj4 学习笔记
网络·人工智能·笔记·python·学习·算法
sleven fung5 小时前
Whisper库
开发语言·人工智能·python·算法·ai·whisper