quantskills/agent-quantspace/ingest
- community
Checking that the SKILL.md file is still in the repository.
Use when tasks need PandaData/PandaAI stock, fund, ETF, index, or futures data, reference data, adjustment factors, futures tick downloads, or symbol conversion.
Install
npx vskill@latest install quantskills/agent-quantspace/ingestSKILL.md
PandaData Ingest
Use this skill when a task needs stock, listed-fund/ETF, index, or futures market data; reference data; adjustment factors; or futures tick data from the PandaData SDK.
Prerequisites
- Install optional SDK dependencies with
uv sync --extra panda_data. - Set
PANDA_DATA_USERNAMEandPANDA_DATA_PASSWORDin the environment. PandaDataClientfetches data only. Persist normalized OHLCV with
skills.store.data_manager.DataManager.
Public API
PandaDataClient accepts QuantSpace symbols such as SHSE.510300 and panda_data native symbols such as 510300.SH. Returned symbol columns are converted back to QuantSpace format by default.
Wrapped Endpoints
Bars
fetch_market_data(symbol, start_date, end_date, type="stock")fetch_market_min_data(symbol, start_date, end_date, symbol_type="stock", frequency="1m")fetch_hk_daily(symbol, start_date, end_date)fetch_us_daily(symbol, start_date, end_date)get_fund_daily(start_date, end_date, symbol=...)get_fund_daily_pre(start_date, end_date, symbol=...)get_fund_daily_post(start_date, end_date, symbol=...)
Reference
get_stock_detailget_fund_detailget_index_detailget_index_indicatorget_index_weightsget_industry_detailget_industry_constituentsget_stock_industryget_concept_listget_concept_constituentsget_adj_factor
ETF Creation/Redemption
get_fund_etf_cr_limitsget_fund_etf_cr_netget_fund_etf_constituentsget_fund_etf_cr
Listed ETFs and LOFs are funds, not A-share stocks. Fetch their bars with get_fund_daily*; do not send them to get_stock_daily, get_factor, or fetch_market_data(..., type="stock"). The get_fund_etf_* methods provide creation/redemption data and are not price-bar replacements.
The three get_fund_daily* methods accept an inclusive YYYYMMDD range of any length. PandaDataClient automatically sends contiguous requests of at most 365 calendar days and concatenates the returned frames in request order. This handling applies only to listed-fund daily bars, not get_fund_etf_* creation/redemption endpoints.
Futures Tick Utility
skills.ingest.panda_future_tick contains offline-testable helpers and CLI building blocks for PandaData futures tick downloads.
Progressive References
Detailed PandaAI docs are split by task under references/. Open only the specific file needed for the endpoint you are using.
| Reference | Open when you need | Main methods | |
|---|---|---|---|
pandaai-01-overview-setup.md | setup and auth | init_token | |
pandaai-02-market-daily.md | A-share/index/futures daily bars | get_market_data | |
pandaai-03-market-minute.md | A-share/index/futures intraday bars | get_market_min_data | |
pandaai-04-market-hk-us.md | HK/US daily bars | get_hk_daily, get_us_daily | |
pandaai-05-reference-securities.md | stock/index metadata | get_stock_detail, get_index_detail | |
pandaai-06-reference-classification-index.md | classifications and index weights | get_index_weights | |
pandaai-07-equity-market-events.md | market events | get_lhb_list, get_margin | |
pandaai-08-equity-corporate-info.md | holders and corporate info | get_top_holders | |
pandaai-09-financial-reports.md | financial reports | get_fina_reports | |
pandaai-10-factors-adjustment.md | factors and adjustment events | get_factor, get_adj_factor | |
pandaai-11-trading-tools.md | calendars and trade lists | get_trade_cal, get_trade_list | |
pandaai-12-futures.md | futures metadata and dominant contracts | get_future_detail | |
pandaai-13-funds-etf.md | fund metadata, listed-fund bars, ETF creation/redemption | get_fund_detail, get_fund_daily*, get_fund_etf_* |
Recipes
Daily A-share bars
Daily ETF bars
Use get_fund_daily_pre or get_fund_daily_post when the research explicitly requires forward- or backward-adjusted fund prices.
The market-data API frequency remains the real bar interval. For example, adjusted daily bars still use freq="1d" (or the endpoint's daily API); do not send "1d_adj" to an ingest endpoint as a frequency. 1d_adj is only the QuantSpace storage directory/data-set name for adjusted 1d bars. The same rule applies to other intervals: a directory such as 5m_adj contains adjusted 5m bars, while the ingest frequency is still 5m.
Normalize and save bars
When saving adjusted bars, pass the storage directory key, for example frequency="1d_adj", to DataManager; the fetch frequency stays 1d.
The same store boundary applies to listed funds: normalize the returned date column to the timezone-naive eob index, keep OHLCV columns, and call DataManager.save_symbol. PandaDataClient never writes local files.
Symbol conversion
CLI command reference
<!-- BEGIN GENERATED: qs commands -->
Transport: --input-json FILE|-, --preview N, and --log-level LEVEL; flags override JSON. Use --print-template [FIELD] for fillable templates.
Shared parameter groups
OutputOptions
| Option | Type / default | Description | |
|---|---|---|---|
--output | path? / null | Explicit output path outside managed store namespaces. | |
--overwrite | boolean / false | Allow replacing an existing output artifact. | |
--data-root | path? / null | Managed data root; otherwise QUANTSPACE_DATA_ROOT or repository data/. |
uv run qs ingest bars
Fetch stock, index, future, fund, HK or US bars; optionally store them.
Priority: P0. Side effects: network, writes-output, writes-store.
Shared parameters: OutputOptions.
| Option | Type / default | Description | ||||||
|---|---|---|---|---|---|---|---|---|
--asset | `stock\ | index\ | future\ | fund\ | hk\ | us / required` | Asset class. Listed ETF and LOF are fund, not stock. | |
--symbols | list[string] / factory | QuantSpace (SHSE.510300) or native (510300.SH) symbols; repeat flag or comma-separate. | ||||||
--symbols-file | path? / null | Text lines or JSON list of symbols, instead of symbols. | ||||||
--start | string / required | Inclusive start date: YYYY-MM-DD or YYYYMMDD. | ||||||
--end | string? / null | Inclusive end date: YYYY-MM-DD or YYYYMMDD; defaults to today. | ||||||
--freq | `1d\ | 1m\ | 5m\ | 15m\ | 60m / 1d` | Real bar interval sent to PandaData (never 1d_adj). Only stock, index (1m only) and future have minute bars; the provider caps rows per minute request, so split long minute ranges across runs. | ||
--adjust | `none\ | pre\ | post / none` | Fund price adjustment: none, pre (forward) or post (backward). Fund only. | ||||
--fields | list[string] / factory | SDK fields subset; empty returns all columns. | ||||||
--indicator | string? / null | Stock pool code for daily stock bars only; empty means all stocks. | ||||||
--st | boolean / true | Include ST stocks; --no-st excludes them. Daily stock bars only. | ||||||
--save-frequency | string? / null | Market store directory under data/market, for example 1d or 1d_adj (adjusted 1d bars). Without --write this is a dry run that only reports planned paths. | ||||||
--write | boolean / false | Write bars into data/market/<save-frequency>/<symbol>.parquet; requires --save-frequency. |
Output data fields: asset, freq, adjust, start, end, requested_symbols, dry_run, saved, rows, columns, symbols, no_data, output, target_frequency, planned_paths, written_paths, preview.
Inspect schemas: uv run qs schema ingest.bars (add --part input|output or --file-field FIELD).
uv run qs ingest adj-factor
Fetch stock adjustment-factor events; optionally store them per symbol.
Priority: P1. Side effects: network, writes-output, writes-store.
Shared parameters: OutputOptions.
| Option | Type / default | Description | |
|---|---|---|---|
--symbols | list[string] / factory | Stock symbols (QuantSpace or native); empty queries the whole market. | |
--symbols-file | path? / null | Text lines or JSON list of symbols, instead of symbols. | |
--start | string? / null | Inclusive start date: YYYY-MM-DD or YYYYMMDD. | |
--end | string? / null | Inclusive end date: YYYY-MM-DD or YYYYMMDD. | |
--fields | list[string] / factory | SDK fields subset; empty returns all columns. | |
--write | boolean / false | Write one data/adj_factor/<symbol>.parquet per symbol (ex_date index). A bounded --start/--end stores only the events in that range. With neither --output nor --write the command is a dry run: nothing is fetched. |
Output data fields: scope, requested_symbols, start, end, dry_run, saved, rows, columns, symbols, no_data, output, planned_paths, path_template, written_paths, preview.
Inspect schemas: uv run qs schema ingest.adj-factor (add --part input|output or --file-field FIELD).
uv run qs ingest ref stock-detail
Fetch stock basic information (get_stock_detail).
Priority: P1. Side effects: network, writes-output.
Shared parameters: OutputOptions.
| Option | Type / default | Description | |
|---|---|---|---|
--symbols | list[string] / factory | Stock symbols; empty returns all. Symbols (QuantSpace or native); repeat flag or comma-separate. | |
--market | string / cn | Market code passed to get_stock_detail. | |
--status | integer? / null | Listing status filter. | |
--fields | list[string] / factory | SDK fields subset; empty returns all columns. |
Output data fields: endpoint, rows, columns, output, preview.
Inspect schemas: uv run qs schema ingest.ref.stock-detail (add --part input|output or --file-field FIELD).
uv run qs ingest ref fund-detail
Fetch fund and ETF metadata (get_fund_detail).
Priority: P1. Side effects: network, writes-output.
Shared parameters: OutputOptions.
| Option | Type / default | Description | |
|---|---|---|---|
--symbols | list[string] / factory | Fund symbols, listed or *.OF. Symbols (QuantSpace or native); repeat flag or comma-separate. | |
--exchange | list[string] / factory | Exchange filter, SH or SZ. | |
--type | list[string] / factory | Fund type filter. | |
--operation-mode | list[string] / factory | Operation mode filter. | |
--etf-lof-type | list[string] / factory | ETF or LOF subtype; ETF discovers listed ETFs. | |
--is-class-fund | list[integer] / factory | Class-fund flag filter, 0 or 1. | |
--index-fund-type | list[string] / factory | Index fund type filter. | |
--status | list[string] / factory | Listing status filter, e.g. L. | |
--fund-status | list[string] / factory | Fund status filter. | |
--fields | list[string] / factory | SDK fields subset; empty returns all columns. |
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/ingest/SKILL.md
Popularity
- Repository stars
- 57
- Repository forks
- 11
- 7-day trend score
- 20
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/quantskills/agent-quantspace/ingest)