joinquant-skill
Справочники API, шаблоны и линтер для JoinQuant: агент сверяет функции платформы до того, как напишет код стратегии.
- 92 ★ репозитория
- Последний коммит
Расширенный доступ
Почему такой уровень
- Скилл генерирует код торговых стратегий, который затем запускают на платформе; результат надо проверять самим.
Установка
- Работает в
В терминале, через 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 исследования строит скрипт бэктеста дневных факторов
13 скиллов для квантовой торговли на рынке китайских A-акций: данные AKShare и BaoStock, бэктесты Backtrader и RQAlpha, документация QMT и JoinQuant
Переводит торговую стратегию из обычной речи в правила, прогоняет бэктест и сверяет заявки и баланс с независимым журналом.
MCP-сервер для Claude Code: агент сам придумывает альфа-факторы, гоняет бэктесты на акциях Китая и проверяет их на переобучение
InvestSkill дает ассистенту 34 готовые схемы разбора американских акций: от оценки компании до проверки портфеля
Локальный MCP-сервер AKQuant: агент ищет API, проверяет файл стратегии и прогоняет бэктест на исторических данных, без торговли.
Коротко о 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 |