Communitygithub.com

gaaiyun/joinquant-skill

JoinQuant(聚宽)プラットフォーム用の、そのまま実行可能な正確な定量化戦略コードを生成するスキルです。ユーザーが株・ETF・先物のバックテスト、ペーパートレード、または本番取引戦略をJoinQuant上で作成したい場合に使用します。

joinquant-skill とは?

このスキルは、JoinQuant(聚宽)プラットフォーム向けに、修正不要でそのまま貼り付けて実行できる定量化戦略コードを生成することに特化しています。ユーザーが自然言語で戦略のアイデアを伝えると、スキルは意図を理解し、14カテゴリ(294KBの公式ドキュメント)からなるプログレッシブディスクロージャー形式のAPI知識ベースから必要な情報のみを動的に読み込みます。内部では5つの本番用テンプレート(単一株移動平均、多因子、ETFローテーション、モメンタム、平均回帰)をベースにコードを生成し、幻覚APIの検出、未来関数違反、価格モード・スリッページ・手数料の未設定といった問題をチェックするリンツール(strategy_lint.py)も備えています。主な対応プラットフォームはJoinQuantのオンラインエディタであり、生成されたコードは直接貼り付けてコンパイル・実行できます。中国語の指示に最適化されており、株、ETF、先物、信用取引などの戦略を幅広くサポートします。

対応~Claude Code~Codex CLI~Cursor
npx skills add gaaiyun/joinquant-skill

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

JoinQuant Skill

修正なしでJoinQuantプラットフォーム上で実行できる定量化戦略コードを生成します。

このスキルを使用するタイミング

使用すべき場合:

  • JoinQuant(聚宽)での株式バックテスト / ペーパートレード / 本番取引
  • ETFローテーション、多因子銘柄選択、モメンタム、平均回帰戦略
  • JoinQuantでの先物(期货)戦略
  • 信用取引(融资融券)戦略
  • 戦略コードのレビュー / リント:幻覚APIや未来関数違反を検出
  • 戦略アイデアをJoinQuant API呼び出しに変換

使用すべきでない場合:

  • JoinQuantを使用しないローカルデータ分析(jqdatasdk、pandas、numpyを直接使用)
  • 他のプラットフォーム(vectorbt、backtrader、vn.py)での戦略バックテスト(代わりに該当するスキルを使用)
  • 純粋な機械学習モデルのトレーニング(JoinQuant固有のAPIは不要)
  • JoinQuant模擬取引以外のブローカーAPI(CTP、Interactive Brokersなど)での本番取引(別のスキルが必要)

デフォルトモード

ほとんどのユーザーリクエストは以下の3つのパターンのいずれかに該当します。まずパターンを検出し、それに応じてルーティングします:

パターントリガーアクション
クイックコード"帮我写一个 X 策略" / "用聚宽实现 Y"テンプレートを選択し、ユーザー固有の部分を埋め、貼り付け可能なコードを返す
API質問"聚宽里 get_price 的 fq 参数是什么意思" / "set_option 都有哪些选项"該当する references/XX-*.md をロードし、それに基づいて回答
コードレビュー"帮我审一下我这段聚宽代码" / 既存コードの貼り付けメンタル(または実際の) strategy_lint.py を実行し、幻覚APIや不足しているセーフガードを指摘

プログレッシブディスクロージャー:14のAPIカテゴリ

すべてのリファレンスを一度にロードしないでください(合計294KBでコンテキストを消費します)。ユーザーリクエストをパターンマッチングし、関連するカテゴリファイルのみをロードします:

カテゴリリファレンスファイルトリガーキーワード
戦略設定references/01-strategy-setup.mdinitialize, set_benchmark, set_option, set_order_cost, set_slippage, run_daily, run_weekly, run_monthly
データ取得references/02-data-getters.mdget_price, attribute_history, history, get_current_data, get_fundamentals, get_money_flow, get_concept, get_industry
jqlib因子ライブラリreferences/03-jqlib.mdalpha101, alpha191, technical_analysis, jqfactor
データ処理references/04-data-processing.mdget_factor_values, calc_factor_history, neutralize, winsorize, standardlize
ポートフォリオ最適化references/05-portfolio-optimization.mdoptimizer, max_sharpe, min_variance, target_return, mean_variance
取引関数references/06-trading.mdorder, order_value, order_target, order_target_value, cancel_order, get_open_orders
オブジェクトreferences/07-objects.mdOrder, Position, Portfolio, OrderCost, OrderStyle, MarketOrderStyle, LimitOrderStyle
その他の関数references/08-misc-functions.mdrecord, log, write_file, send_message
マルチポートフォリオreferences/09-multi-portfolio.mdset_subportfolios, SubPortfolioConfig, transfer_cash
Tickレベルreferences/10-tick-strategy.mdtick, get_ticks, every_tick
信用取引references/11-margin-trading.mdmargincash_open, margincash_close, marginsec_open, marginsec_close, set_margin_rate
先物references/12-futures.mdget_dominant_future, futures, set_future_commission
帰属分析references/13-attribution-analysis.mdbrinson, factor analysis, attribution
エンジン機構references/14-strategy-engine.md撮合, 复权, 滑点, 税费, 风险指标, alpha, beta, sharpe, max drawdown

ユーザーがキーワードリストにない関数名を言及した場合は、scripts/api_search.py <keyword> を使用して全リファレンスから検索します。

テンプレート

templates/ ディレクトリにある5つの本番用テンプレート:

テンプレート使用タイミング
01-basic-single-stock.py初めてのユーザー、単一銘柄、シンプルな移動平均クロスオーバー。JoinQuantの"Hello World"。
02-multi-factor.py多因子銘柄選択(PER / 時価総額 / モメンタム)、月次リバランス。最も一般的な「本番」戦略構造。
03-etf-rotation.pyモメンタムランキングによるETFローテーション。個人投資家に人気。
04-momentum-stock.py銘柄プールに対するクロスセクショナルモメンタム、週次リバランス。
05-mean-reversion.pyボリンジャー / RSIによる平均回帰。ボラティリティを考慮。

コードを生成する際は、ゼロから書かずにテンプレートをベースに修正してください。理由:

  1. テンプレートにはボイラープレート(set_benchmark、set_option、set_order_cost、set_slippage)が含まれている
  2. テンプレートは正しいタイミング(run_daily / run_weekly に適切なtime引数)を持っている
  3. テンプレートは未来関数の落とし穴を回避している(日付ベースではなくカウントベースのスライシング)

リントツール

生成したコードをユーザーに返す前に、メンタル(または実際に)strategy_lint.py を実行します:

python scripts/strategy_lint.py <user_strategy.py>

重要なチェック項目:

  • ❌ 幻覚API呼び出し(例:jqdata.get_stock_data() は存在しない)
  • ❌ 未来関数:非カウントの get_price または attribute_history でハードコードされた未来日付を使用
  • ❌ set_option('use_real_price', True) の欠落(正確なバックテストに必須)
  • ❌ set_order_cost(...) と set_slippage(...) の欠落
  • ❌ before_trading_start / after_trading_end 内での注文(禁止、拒否される)
  • ❌ 非推奨APIの使用(update_universe など)
  • ⚠️ 棒間での状態保持にはモジュールグローバル変数ではなく g. グローバル変数を推奨
  • ⚠️ 相関の高い資産にはクラスター認識によるサイジングを推奨

生成時に絶対に守るべきこと

戦略をアドバイスする際、以下の点は決して見落とさないでください:

  • 必ず use_real_price=True を設定する。従来のプリ調整済み価格には未来関数バイアスがあります。これは譲歩できません。
  • set_order_cost と set_slippage は必須。これらがないとバックテストが非現実的になり、ユーザーを誤解させます。
  • run_daily の時間引数は重要。'open' は09:30に実行、'every_bar' は毎バー(分足または日足)に実行。間違った選択は誤った実行タイミングを引き起こします。
  • g. だけが安全なグローバル状態。モジュールレベルのグローバル変数は、一部のJoinQuant環境で実行間でリークする可能性があります。
  • 資本管理には order_value > order。株数を手動で計算すると、株式分割時にエラーが発生しやすくなります。
  • リバランスには order_target_value を使用し、"現在値 - 目標値" を自分で計算しないでください。
  • JoinQuant内で pip install しないでください。プラットフォームはサンドボックス化されており、プリインストールされたライブラリのみが動作します。

ワークフロー

典型的なエンドツーエンドの戦略セッション:

1. ユーザーが自然言語でアイデアを説明
2. AI: 一致するテンプレートを選択(例:03-etf-rotation.py)
3. AI: 2〜3の明確化質問を行う:
   - 対象銘柄プールの範囲(指数構成銘柄 / カスタムリスト)
   - リバランス頻度(日 / 週 / 月)
   - リスク管理(ストップロス / ポジション上限 / セクターニュートラル)
4. AI: テンプレートを修正して戦略コードを生成
5. AI: メンタル(または実際の)リントを実行 — 問題を修正
6. ユーザー: JoinQuantオンラインエディタに貼り付け、コンパイル実行
7. エラーが発生した場合: 該当する references/XX-*.md を再ロードし、修正
8. ユーザー: バックテスト曲線を確認、反復

高リスク(本番取引)戦略の場合、さらに以下を実施:

  • スリッページ、手数料、リスク指標については references/14-strategy-engine.md を参照
  • レバレッジが関係する場合は references/11-margin-trading.md を参照
  • モデルリスク(オーバーフィッティング、レジームチェンジ、取引コストの現実性)について明示的に議論

ファイル

ファイル役割
README.mdプロジェクト紹介
WORKFLOW.md戦略開発のエンドツーエンド(✅ 完了)
INSTALL_CN.md中国語インストールガイド(✅ 完了)
api文档/api.txtオリジナル294KBのAPIドキュメント(Rawバックアップ)
references/01-14-*.md14のプログレッシブディスクロージャーカテゴリファイル(✅ 全て完了)
templates/01-05-*.py5つの本番用テンプレート(✅ 完了)
scripts/strategy_lint.pyリントツール — ブラックリスト/ホワイトリストハイブリッド(✅ 運用可能)
scripts/strategy_scaffold.py説明文からスキャフォールドを生成(✅ 運用可能)
scripts/api_search.pyキーワードでAPIを検索(✅ 運用可能)
examples/case-mean-reversion/エンドツーエンドケース: RSI平均回帰(✅)
examples/case-etf-rotation/エンドツーエンドケース: ETF月次ローテーション(✅)
examples/bad-strategy-for-lint-test.pyリント回帰テスト用のネガティブテストサンプル(✅)
factors/(v2) Barraスタイル因子ライブラリ、7カテゴリ
factor_lab/(v2) 単一因子IC / グルーピング / 減衰分析
research_importer/(v2) 証券会社レポートPDF → JoinQuantコード
jqskill_mcp/(v2) 全スキル機能を公開するMCPサーバー
tests/pytest(v2後50以上のテストがパス)

このスキルのバージョンは 0.5.0(2026-04-19現在)。14のリファレンス + 5つのテンプレート + 3つのスクリプト + 13のテスト + WORKFLOW + 2つのサンプルが全て完了しています。

関連スキル