joinquant-skill

Справочники API, шаблоны и линтер для JoinQuant: агент сверяет функции платформы до того, как напишет код стратегии.

  • 92 ★ репозитория
  • Последний коммит
Скилл

Расширенный доступ

Почему такой уровень

  • Скилл генерирует код торговых стратегий, который затем запускают на платформе; результат надо проверять самим.
Все причины и проверки

gaaiyun/joinquant-skill

Установка

В терминале, через SkillFoxx CLI

npx skillfoxx add skills/joinquant-skill

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • Скилл генерирует код торговых стратегий, который затем запускают на платформе; результат надо проверять самим.

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

joinquant-skill закрывает типичную беду агентов в Cursor, Claude Code и Codex: они выдумывают функции JoinQuant, путают исследовательский и бэктест-интерфейсы и забывают про комиссии и адъюстировку. Внутри 14 тематических справочников, около 294 КБ исходной документации API, пять шаблонов стратегий и `scripts/api_search.py` для поиска функций. Генерация идет через `scripts/strategy_scaffold.py`, проверка через `scripts/strategy_lint.py` со статическим разбором кода. Остальное: девять примеров факторов в `factors/`, модуль `factor_lab/` с расчетом IC и группировкой, импорт исследовательских отчетов из PDF в `research_importer/` и MCP-сервер `jqskill_mcp`, который отдает агенту инструменты с префиксом `jq_`.

Для кого. Количественные аналитики и разработчики, которые пишут стратегии для платформы JoinQuant с помощью агента и хотят сократить ошибки, выдуманные функции и непроверенные допущения.

Подходит, если

  • Агенту надо написать стратегию ротации ETF для JoinQuant с заданным пулом и расписанием.
  • Готовый код стратегии стоит прогнать через `python scripts/strategy_lint.py my_strategy.py --strict`.
  • В PDF-отчете описана идея стратегии, и ее надо перенести в код через `research_importer`.
  • Нужен быстрый поиск функции JoinQuant в сыром файле документации.

Не подходит, если

  • Платформа другая: справочники и линтер заточены под JoinQuant.
  • Ждете подтверждение доходности: линтер проверяет код, но не данные во времени, не переобучение и не исполнимость сделок.
  • Нужен запуск стратегии на живом счете без отдельной проверки: компиляция, бэктест и симуляция идут на стороне JoinQuant.

Пример запроса к агенту

Напиши стратегию ротации ETF для JoinQuant: пул 510300.XSHG, 510500.XSHG и 159915.XSHE, 20-дневный импульс, перебалансировка по понедельникам.

Ограничения

Проект проверяет структуру кода и часть приемов JoinQuant, но не доходность стратегии и не заменяет облачную компиляцию, бэктест и симуляцию на самой платформе. Прохождение линтера говорит только о том, что код не задел текущие правила. Справочники устаревают вместе с платформой, поэтому ключевые вызовы стоит сверять с официальной документацией. Тесты по умолчанию работают без сети; проверки с `akshare` и `jqdatasdk` включаются флагами. Нужен Python 3.10 или новее. Лицензия MIT указана в README, на странице репозитория она не определена. Последний коммит от 9 ноября 2026 года.

Как отключить. Удалите ссылку или папку joinquant-skill из каталога скиллов клиента и уберите запись joinquant-skill из конфигурации MCP, если ее добавляли.

Частые вопросы

Как проверить стратегию для JoinQuant линтером?

Выполните `python scripts/strategy_lint.py my_strategy.py --strict`. Исправьте ошибки и предупреждения, затем вставьте код в веб-редактор JoinQuant и пройдите там компиляцию и бэктест.

Как создать каркас стратегии?

Команда `python scripts/strategy_scaffold.py --type rotation --security 510300.XSHG --hold-num 5 --output my_strategy.py` собирает файл ротации. `--list` покажет доступные типы.

Как подключить MCP-сервер?

Поставьте `pip install "mcp[cli]"` и запустите `python -m jqskill_mcp.server`. В конфигурации клиента укажите `cwd` на полный репозиторий.

Нужен ли аккаунт JoinQuant для тестов?

Нет. Тесты по умолчанию идут без сети и без аккаунта, а онлайн-проверки `jqdatasdk` включаются отдельным флагом.

Сколько шаблонов в проекте?

Пять: одна акция, мультифактор, ротация ETF, импульс и возврат к среднему. Они служат стартовым кодом, а не проверенной стратегией.

Обсуждение

Вопросов и отзывов пока нет.

Скиллы

Скилл для терминала QMT: по описанию стратегии или PDF исследования строит скрипт бэктеста дневных факторов

СкиллРасширенный доступ170Звезды репозитория

13 скиллов для квантовой торговли на рынке китайских A-акций: данные AKShare и BaoStock, бэктесты Backtrader и RQAlpha, документация QMT и JoinQuant

СкиллШирокий доступ485Звезды репозитория

Переводит торговую стратегию из обычной речи в правила, прогоняет бэктест и сверяет заявки и баланс с независимым журналом.

СкиллРасширенный доступ529Звезды репозитория

InvestSkill дает ассистенту 34 готовые схемы разбора американских акций: от оценки компании до проверки портфеля

СкиллРасширенный доступ285Звезды репозитория
Официальный

Локальный MCP-сервер AKQuant: агент ищет API, проверяет файл стратегии и прогоняет бэктест на исторических данных, без торговли.

MCP-серверРасширенный доступ2,6 тыс.Звезды репозитория

Коротко о README

Документ разбирает, какие ошибки агентов закрывает проект, и дает таблицу модулей с границами проверки. Описаны безопасная установка на Windows, macOS и Linux, MCP, тесты и разделение доказательств: что подтверждают `pytest` и линтер, а что нет.

Бейдж для README

Исходный SKILL.md

---
name: joinquant-skill
description: Generate accurate, runnable quantitative strategy code for the JoinQuant (聚宽) platform. Use this skill when the user asks to write a stock/ETF/futures backtest, paper-trading, or live-trading strategy on JoinQuant — the skill provides progressive-disclosure access to the complete JoinQuant API knowledge base (14 categories, 294KB official docs), 5 production-ready strategy templates (single-stock MA, multi-factor, ETF rotation, momentum, mean-reversion), and a lint tool that catches hallucinated APIs, future-function violations, and unset price-mode/slippage/commission. Chinese-friendly. Code generated by this skill should paste directly into the JoinQuant online editor without modification.
---

# JoinQuant Skill

Generate quantitative strategy code that runs on the JoinQuant platform without modification.

## When to Use This Skill

Yes:
- Stock backtest / paper trading / live trading on JoinQuant (聚宽)
- ETF rotation, multi-factor stock selection, momentum, mean reversion strategies
- Futures (期货) strategies on JoinQuant
- Margin trading (融资融券) strategies
- Strategy code review / lint to catch hallucinated APIs and future-function violations
- Translating a strategy idea into JoinQuant API calls

No:
- Local data analysis without JoinQuant (use `jqdatasdk` directly, or pandas/numpy)
- Strategy backtesting on other platforms (vectorbt, backtrader, vn.py — use those skills instead)
- Pure machine learning model training (no JoinQuant-specific API needed)
- Live trading on broker APIs other than JoinQuant simulated trading (CTP, Interactive Brokers, etc. need different skills)

## Default Mode

Most user requests fall into one of three patterns. Detect the pattern first, then route:

| Pattern | Trigger | Action |
|---|---|---|
| **Quick code** | "帮我写一个 X 策略" / "用聚宽实现 Y" | Pick template, fill in user-specific parts, return ready-to-paste code |
| **API question** | "聚宽里 get_price 的 fq 参数是什么意思" / "set_option 都有哪些选项" | Load matching `references/XX-*.md` and answer based on it |
| **Code review** | "帮我审一下我这段聚宽代码" / paste of existing code | Run mental `strategy_lint.py` against it (or actually call it), point out hallucinated APIs and missing safeguards |

## Progressive Disclosure: 14 API Categories

DO NOT load all references at once (294KB total, would burn context). Pattern-match the user request and load only the relevant category file:

| Category | Reference file | Triggered by keywords |
|---|---|---|
| 策略设置 | `references/01-strategy-setup.md` | initialize, set_benchmark, set_option, set_order_cost, set_slippage, run_daily, run_weekly, run_monthly |
| 数据获取 | `references/02-data-getters.md` | get_price, attribute_history, history, get_current_data, get_fundamentals, get_money_flow, get_concept, get_industry |
| jqlib 因子库 | `references/03-jqlib.md` | alpha101, alpha191, technical_analysis, jqfactor |
| 数据处理 | `references/04-data-processing.md` | get_factor_values, calc_factor_history, neutralize, winsorize, standardlize |

Сообщить о проблеме