智能体技能
PyBroker 内置了 智能体技能,为编程智能体提供编写策略、指标、模型和回测的工作流程。
安装
公开技能位于 PyBroker Git 仓库 中的 skills/ 目录下。每个技能都存放在各自的文件夹中,并由标准的 SKILL.md 文件定义。
推荐使用 Skills CLI 来安装它们,该工具支持 Claude Code、OpenAI Codex、Cursor 以及许多其他编程智能体:
# Inside your own working project directory:
npx skills add edtechre/pybroker
该命令会询问要安装哪些技能,以及为哪些智能体安装,然后将每个技能复制到相应智能体的技能文件夹中。添加 --all 即可为检测到的所有智能体安装全部技能,无需任何交互提示。
手动安装
你也可以克隆 PyBroker 仓库,自行将技能软链接过去:
git clone https://github.com/edtechre/pybroker.git
# Inside your own working project directory:
mkdir -p .claude/skills
# Symlink all PyBroker skills into your local Claude config
for skill in /path/to/pybroker/skills/*; do \
ln -s "$skill" .claude/skills/; \
done
请将 .claude/skills 替换为你自己的智能体所读取的文件夹。
Claude Code
Claude Code 会发现放置在项目根目录下 .claude/skills/ 文件夹中的技能。安装完成后,每个技能及其对应的命令都将在终端中可用。
OpenAI Codex
OpenAI Codex 会在 .agents/skills/ 中发现技能。
Cursor
Cursor 会在 .cursor/skills/ 中发现技能。
Claude Agent SDK
Claude Agent SDK 会从上面安装的 .claude/skills/ 文件夹中发现技能,因此它可以按需加载这些技能,并自动调用它们,无需任何提示词拼装:
pip install claude-agent-sdk
import asyncio
import os
from claude_agent_sdk import ClaudeAgentOptions, query
options = ClaudeAgentOptions(
cwd=os.getcwd(),
setting_sources=["user", "project"],
skills="all",
allowed_tools=["Read", "Write", "Bash"],
)
async def main():
async for message in query(
prompt="Create a mean-reversion PyBroker strategy on AAPL",
options=options,
):
print(message)
asyncio.run(main())
Pydantic-AI
Pydantic-AI 使用纯 Python 构建智能体。它不会自动搜索技能目录,因此你需要将其 Skills 能力指向上面安装的 .agents/skills 库:
pip install "pydantic-ai-harness[skills]"
from pydantic_ai import Agent
from pydantic_ai_harness.skills import Skills
agent = Agent(
'anthropic:claude-opus-5',
capabilities=[Skills('.agents/skills')],
)
result = agent.run_sync("Create a mean-reversion strategy on AAPL")
print(result.output)
可用技能
pybroker-strategy-creator
根据用户意图生成实用的 PyBroker 策略代码,同时保持良好的回测规范,包括无前视泄漏、明确的仓位规模、清晰的风险控制,以及符合规范的 PyBroker API 用法。
pybroker-indicator-creator
编写快速、正确的 PyBroker 指标,方法是使用 pybroker.indicator 注册向量化的 NumPy/Numba 函数,将其接入策略执行函数和模型,并确保每个值都不含前视偏差。涵盖内置指标工厂和向量辅助函数、自定义 Numba @njit 内核、封装 TA-Lib 和 pandas-ta 等第三方技术分析库、使用 IndicatorSet 进行独立计算、由超参数驱动的指标,以及多时间框架区间指标。
pybroker-model-trainer
将机器学习模型接入 PyBroker 回测,方法是使用 pybroker.model 注册训练和预测函数,为其提供指标特征,并通过向前分析对其进行评估,同时确保训练/测试流程不含前视泄漏。涵盖按品种独立训练、多品种联合训练、逐 K 线时间序列模型、滞后特征模型,以及基于 scikit-learn、XGBoost 和 arch 等常用库的预训练模型。
pybroker-optimize
使用 Strategy.optimize 调优 PyBroker 策略超参数,方法是使用 pybroker.hyperparam 声明可调值,将其接入指标和执行函数,并在训练窗口上为每个候选组合评分,然后将胜出的取值在留出的测试数据上重放。涵盖通过集成的 Optuna 后端进行网格、TPE 和随机采样,自定义 Optuna 采样器和 study,跨多个窗口的向前优化,以及从 OptimizeResult 和底层 optuna.Study 中读取结果。
pybroker-multi-interval
构建多时间框架的 PyBroker 策略:在基础时间框架上交易,同时在严格更粗的压缩区间(例如周线和月线)上确认市场状态和趋势。涵盖三种区间格式,通过 add_execution(intervals=...) 提供压缩 K 线,通过 .intervals(...) 绑定来按区间计算指标和训练模型,通过 ctx.interval(...) 读取已完成的 K 线,以及使用 compress_bars 进行独立压缩。策略代码只会看到已完成的压缩 K 线,从而使更高时间框架的逻辑不受未完成 K 线的前视偏差影响。
pybroker-rotational-trading
构建轮动型 PyBroker 策略,持有品种池中排名最高的品种,并轮出失宠的品种。执行函数使用 ctx.long_score 和 ctx.short_score 为品种评分,使用 Strategy.set_max_long_positions 和 set_max_short_positions 限制仓位,Strategy.enable_rotation(worst_rank_held=...) 会在每根 K 线清仓并从排名最高的候选品种中补充仓位,还可通过 RotationContext 上自定义的 sizer 指定规模。此外还涵盖更简单的排名限仓模式,以及通过 SymbolSelector 选择的动态品种池。