Install
$ agentstack add skill-perfectuser21-jq-strategy-skill-jq-strategy-skill ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
聚宽策略代码生成器
把用户的自然语言描述翻译成可直接在 joinquant.com 回测的聚宽 Python 策略。
用户拿到代码 → 登录 joinquant.com → 策略 → 新建 → 粘贴 → 设日期 → 跑回测。
为什么需要这个 skill
用户往往只有模糊的投资想法("我想试试选市值小的股票"),而聚宽的 API 有几十个函数和专有对象(get_fundamentals / query / valuation / run_daily 等),直接上手门槛不低。本 skill 负责这层翻译,让用户专注在策略逻辑而不是 API 细节上。
🎯 工作流程
1. 解析需求
从用户描述里抽出 5 个要素。缺失的要素填默认值 —— 不要反问,Auto 模式偏执行:
| 要素 | 默认值 | 说明 | |------|--------|------| | 标的池 | 全 A 股 | 也可指定指数成分(沪深 300 / 中证 500)或几只 ETF | | 选股规则 | —— | 必须从描述里提取;如完全没线索,按"市值最小"兜底 | | 择时规则 | 开盘时 | run_daily(trade, 'open') | | 调仓频率 | 每 5 交易日 | 可改每日 / 每周 / 每月 / 信号触发 | | 持仓数量 | 3 只 | |
2. 选骨架
根据需求类型挑一个模板(完整模板见 reference/templates.md,有 4 类):
- 选股轮动(定期按基本面选 N 只)→ 大多数选股类策略
- 择时信号(技术指标触发买卖)→ 单标的 + 均线/MACD/RSI
- 多因子打分(多指标综合打分选 top N)→ 低 PE + 高 ROE 组合
- ETF 轮动(几只 ETF 间切换)→ 动量轮动
3. 填充代码
三个必须写对的部分:
initialize(context)—— 基准、手续费、全局变量、调用频率- 选股/择时函数 —— 核心策略逻辑
trade(context)—— 调仓执行(卖旧 → 买新)
纪律:所有选股策略都必须加 filter_paused + filter_st。停牌和 ST 股在聚宽回测里会产生假成交,必须过滤掉。这不是可选项。
具体 API 用法见 reference/api-cheatsheet.md。
4. 输出
按以下顺序给用户:
- 完整
.py代码块(可复制) - 保存到
~/perfect21/investment/strategies/.py(目录不存在先创建) - 参数摘要表(让用户一眼看懂这段代码在做什么)
- 回测设置建议(起止日期 / 初始资金 / 基准)
- 一行使用说明:登录 joinquant.com → 策略 → 新建 → 粘贴 → 跑回测
🧩 自然语言 → 聚宽语法映射
这是最核心的翻译表。用户描述中出现下列词时按映射来:
| 用户说 | 翻译成 | |--------|--------| | "小市值" / "市值最小的" | .order_by(valuation.market_cap.asc()) + 取前 N | | "市值 X 到 Y 亿" | valuation.market_cap.between(X, Y) | | "低 PE" / "低估值" | valuation.pe_ratio 0(排除亏损)| | "破净" | valuation.pb_ratio 15 | | "成长股" | indicator.inc_revenue_year_on_year > 20 | | "高分红" / "红利" | valuation.dividend_yield_ratio > 3 | | "沪深 300" | get_index_stocks('000300.XSHG') | | "中证 500" | get_index_stocks('000905.XSHG') | | "均线金叉" | 短 MA 上穿长 MA(需 get_price 算)| | "每日" / "每根 bar" | run_daily(trade, 'every_bar') | | "每周调仓" | run_weekly(trade, weekday=1) | | "每月调仓" | run_monthly(trade, monthday=1) | | "每 N 天调仓" | 用 g.days 计数器(见 examples/small-cap.py)| | "开盘买入" | time='open' | | "收盘买入" | time='close' | | "止损 X%" | run_daily 里查持仓收益率 .py** —— 名字用 kebab-case(如 small-cap.py、ma-cross-510300.py`)
- 参数表放代码后,Markdown 表格形式
- 诚实边界 —— 如果用户想要的东西聚宽不支持(实时 tick、外部 API 调用、非 A 股标的),直接告诉用户,不要硬编出跑不起来的代码
🧪 工作示例
用户输入:选市值 20-30 亿,每 5 天换仓,买最小的 3 只
skill 的处理:
- 类型:选股轮动
- 模板:
template_stock_rotation - 要素:全 A 股池 / 市值 20-30 亿 / 每 5 交易日 / 持 3 只 / 市值升序
- 参考
examples/small-cap.py(这就是这个输入对应的标准产出)
其他场景的完整示例:
- 均线择时:
examples/ma-cross.py—— 5 日线上穿 20 日线买 510300,死叉清仓 - 多因子打分:
examples/multi-factor.py—— 沪深 300 里 低 PE + 高 ROE + 低负债率综合打分,月度调仓持 10 只
📂 文件指引
reference/api-cheatsheet.md—— 聚宽所有核心 API 速查(initialize/get_fundamentals/query/ 交易函数 / 过滤器 / 行情数据)。写代码时遇到不确定的 API 就去查。reference/templates.md—— 4 类策略完整骨架,填空式使用。新需求先从这里挑一个骨架再填内容。examples/—— 3 个完整工作案例,可直接复用或改写。
🚫 不要做的事
- 不要在 SKILL.md 或聊天里给用户整份 API 文档 —— 用户要的是能跑的代码,不是教程
- 不要给本地可跑的 backtrader / rqalpha 代码 —— 那是另一个 skill 的事,聚宽代码只能在聚宽网页跑
- 不要反问"你想要什么基准 / 手续费 / 资金"等细节 —— 填默认值,用户不满意自己改
- 不要在代码里引用聚宽外的本地文件、外部 API —— 聚宽沙箱不允许
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: perfectuser21
- Source: perfectuser21/jq-strategy-skill
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.