mcpField
S
strategy-framework

strategy-framework

github.com/agiprolabs其他456507 次安装8 周前更新
代码仓库

关于 strategy-framework

strategy-framework 是用于定义、记录、测试和管理交易策略的标准化 Skill,面向需要将交易想法转化为可复现规则的交易者。它提供策略模板、生命周期流程和评估脚本,涵盖风险参数与绩效标准。

主要功能

  1. 01标准化策略定义模板
  2. 02可测试的进出场规则
  3. 03策略生命周期管理
  4. 04绩效评估计分卡
  5. 05交互式策略定义脚本

适用场景

  1. 01将市场假设写成可检验规则
  2. 02制定仓位规模与风险限制
  3. 03按流程回测和模拟交易
  4. 04评估策略是否继续或退役

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/agiprolabs/claude-trading-skills --skill strategy-framework

安装后在 Claude Code 中输入/strategy-framework确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
strategy_template.md
strategy_types.md
scripts/
define_strategy.py
strategy_scorecard.py

详细介绍

策略框架

用于定义、记录、测试和管理交易策略的标准化系统。此技能提供模板和工具,以规范交易纪律、确保可复现性,并使策略可供测试。

策略框架为何重要

没有书面的策略框架,交易会导致:

  • 缺乏一致性:由情绪而非规则驱动的临时决策
  • 无法测试:模糊的想法,无法回测或评估
  • 范围蔓延:策略在缺少版本控制定义的情况下不断偏移
  • 风险管理缺失:缺少止损、仓位限制或回撤暂停机制

策略框架要求你:

  1. 针对市场低效提出可证伪的假设
  2. 定义精确、可由机器测试的入场和出场规则
  3. 在交易前明确仓位规模和风险参数
  4. 设定继续执行或终止策略的最低绩效标准
  5. 通过带版本号的策略文档跟踪变更

策略定义模板

每项策略都必须使用标准模板记录。完整的可复制粘贴模板见 references/strategy_template.md。

核心部分

标识

Name: SOL-EMA-Cross v1.0
Asset class: Solana tokens (top 50 by 24h volume)
Timeframe: Primary 1H, confirmation 4H
Style: Trend following

优势假设:说明你利用的市场低效,以及这种低效存在的原因。

Hypothesis: Solana mid-cap tokens exhibit momentum persistence
on the 1H timeframe due to retail herding behavior and low
institutional participation. EMA crossovers capture the
initiation of these trends.

入场规则:使用 AND/OR 逻辑组合的具体、可测试条件。

def entry_signal(data: pd.DataFrame) -> bool:
    """All conditions must be True (AND logic)."""
    ema_cross = data["ema_12"] > data["ema_26"]  # EMA 12 crossed above 26
    ema_rising = data["ema_26"].diff(3) > 0       # 26 EMA trending up
    volume_ok = data["volume"] > data["vol_sma_20"] * 1.5  # Volume confirmation
    regime_ok = data["adx"] > 20                  # Trending regime
    return ema_cross & ema_rising & volume_ok & regime_ok

出场规则:每项策略都需要多种出场机制。

出场类型方法参数
止损基于 ATR入场价下方 2.0 × ATR(14)
止盈风险倍数3.0 × 风险(3:1 R:R)
移动止损Chandelier最高价下方 3.0 × ATR(14)
时间止损K 线数量20 根 K 线后仍持平则平仓
信号出场EMA 反转EMA 12 下穿 EMA 26

仓位规模:方法和参数。详情请参阅 position-sizing 技能。

risk_per_trade = 0.02        # 2% of portfolio
stop_distance_pct = 0.05     # 5% from entry (ATR-derived)
position_size = (portfolio * risk_per_trade) / stop_distance_pct

风险参数:投资组合层面的防护限制。请参阅 risk-management 技能。

Max concurrent positions: 5
Risk per trade: 2% of portfolio
Daily loss limit: 5% of portfolio
Max drawdown halt: 15% — stop trading, review strategy
Correlated exposure limit: 10% (e.g., meme tokens combined)

过滤条件:即使信号触发,也会阻止入场的条件。

def filters_pass(token: dict, market: dict) -> bool:
    """All filters must pass before entry is allowed."""
    volume_ok = token["volume_24h"] > 500_000      # Min $500K volume
    liquidity_ok = token["liquidity"] > 100_000    # Min $100K liquidity
    age_ok = token["age_days"] > 7                 # Not brand new
    holders_ok = token["holder_count"] > 500       # Sufficient distribution
    regime_ok = market["regime"] != "crisis"       # No crisis regime
    return all([volume_ok, liquidity_ok, age_ok, holders_ok, regime_ok])

绩效标准:何时继续执行、复核或终止策略。

Continue: Sharpe > 1.0, PF > 1.5, Win Rate > 40%, MDD < 20%
Review:   Any metric degrades 25% from baseline
Retire:   Rolling 30-day Sharpe < 0, or 3 consecutive losing months

策略生命周期

1. 假设

识别市场低效,并解释其存在的原因,以及它可能持续存在的原因。

好的假设:“在 10 分钟内于联合曲线上达到 80+ SOL 的新 PumpFun 代币,有 65% 的概率会在 Raydium 上完成毕业,从而在毕业时产生可预测的价格飙升。”

不好的假设:“SOL 会上涨。”(不具体、不可测试,也未指出优势。)

2. 定义

使用 references/strategy_template.md 中的模板编写完整的策略文档。必须填写每个字段。如果某个字段无法填写,说明策略尚未准备就绪。

3. 回测

使用 vectorbt 或同等工具对历史数据进行测试。要求:

  • 测试期内至少有 100 笔交易
  • 使用滚动前向验证(70% 用于训练,30% 用于测试)
  • 将滑点和费用纳入考量(请参阅 slippage-modeling 技能)
  • 报告样本内和样本外的指标
4. 模拟交易

在模拟环境中运行策略至少 2 周(或 30 笔交易,以较长者为准)。

  • 将模拟交易结果与回测预期进行比较
  • 如果结果相差超过 25%,须在继续之前调查原因
5. 小规模实盘

以最小可行规模进行交易(足以覆盖费用,同时金额小到不会造成实质影响)。

  • 至少进行 30 笔交易
  • 将结果与模拟交易进行比较
6. 扩大规模

如果小规模实盘指标符合预期(与回测结果相差不超过 25%):

  • 逐步增加仓位规模(每周增加 25%)
  • 持续监控指标
7. 监控

持续跟踪绩效:

  • 每日:盈亏、交易笔数、胜率
  • 每周:夏普比率、盈利因子、回撤
  • 每月:根据绩效标准全面复核策略
8. 退役

出现以下情况时停止使用该策略:

  • 滚动 30 天夏普比率低于 0
  • 连续三个月亏损
  • 市场状态发生永久性变化(例如,监管变化)
  • 同一优势已有更好的策略取而代之

策略评估标准

策略投入实盘交易前的最低门槛:

指标趋势跟踪均值回归剥头皮
最少交易次数100100500
夏普比率(样本外)> 1.0> 1.0> 1.5
盈利因子> 1.5> 1.5> 1.3
最大回撤< 20%< 15%< 10%
胜率> 35%> 55%> 55%
平均盈利/平均亏损> 2.0> 1.0> 1.0

加密货币策略类型

每种策略类型的详细说明见 references/strategy_types.md。

动量 / 趋势跟踪
  • 优势:由于行为偏差和信息不对称,价格趋势会持续
  • 指标:EMA 交叉、SuperTrend、ADX、MACD
  • 胜率:35-45%,依赖大额盈利
  • 最佳市场状态:波动性适中的趋势市场
均值回归
  • 优势:由于过度反应,价格会围绕均衡水平波动
  • 指标:RSI、布林带、z-score、VWAP 偏差
  • 胜率:55-65%,依赖较高胜率和较小收益
  • 最佳市场状态:波动性低至中等的震荡市场
突破
  • 优势:波动率收窄会带来方向性扩张
  • 指标:布林带收缩、Donchian 通道、成交量突破
  • 胜率:30-40%,依赖捕捉大幅行情
  • 最佳市场状态:波动率从低位转向高位
跟单 / 钱包跟踪
  • 优势:优秀的钱包拥有信息或分析优势
  • 指标:钱包 PnL 历史、交易频率、代币选择
  • 胜率:取决于所跟踪钱包的质量
  • 最佳市场状态:任何状态(取决于所跟踪钱包的策略)
PumpFun 狙击
  • 优势:代币创建和毕业期间的价格动态具有可预测性
  • 策略:创建狙击、成交量确认、毕业操作
  • 胜率:变化很大(根据方法不同,为 20-60%)
  • 最佳市场状态:散户活跃度较高的时期
套利
  • 优势:利用不同 DEX 之间或现货与永续合约之间的价格差异
  • 指标:来自多个交易场所的价格数据、资金费率
  • 胜率:正确执行时 > 80%
  • 最佳市场状态:高波动、流动性分散的市场
做市
  • 优势:在管理库存风险的同时赚取买卖价差
  • 指标:订单簿深度、波动率、库存头寸
  • 胜率:> 60%,依赖成交量和价差收益
  • 最佳市场状态:成交量稳定的平稳市场

常见策略错误

  1. 没有书面规则:凭直觉交易,无法回测或复现
  2. 曲线拟合:不断优化参数,直到回测结果完美,但实盘表现不佳
  3. 缺少止损:“感觉合适时我就退出”会导致灾难性亏损
  4. 忽略市场状态:在震荡市场使用趋势策略(或反之)
  5. 幸存者偏差:只对仍然存在的代币进行回测
  6. 前视偏差:在回测信号中使用未来信息
  7. 忽略成本:未将滑点、手续费和市场冲击纳入考量
  8. 过度交易:为了“保持活跃”而根据边缘信号入场
  9. 频繁更换策略:在正常的连败后放弃策略
  10. 没有退役计划:因不舍而继续交易已经失效的策略

与其他技能的集成

技能集成方式
vectorbt以编程方式回测策略定义
pandas-ta计算用于入场/出场信号的技术指标
regime-detection用于激活策略的市场状态筛选条件
exit-strategies详细的出场规则实现
position-sizing仓位大小计算方法
risk-management执行投资组合级别的风险参数
slippage-modeling估算真实的执行成本
feature-engineering根据策略信号计算 ML 特征

文件

参考资料
  • references/strategy_template.md — 完整的策略定义模板,可直接复制粘贴
  • references/strategy_types.md — 各类策略的详细指南,包含参数和示例
脚本
  • scripts/define_strategy.py — 交互式策略定义工具,支持 --demo 模式
  • scripts/strategy_scorecard.py — 策略评估评分卡,可提供 GO/REVIEW/NO-GO 建议

评论

支持 Markdown