一键导入
store
Use when tasks need local Parquet market data storage, pool management, research artifacts, backtest records, or model metadata.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when tasks need local Parquet market data storage, pool management, research artifacts, backtest records, or model metadata.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use when tasks need factor diagnostics, IC/grouped return analysis, attribution, robustness checks, or time-series distribution and stationarity checks.
Use when tasks need vectorized strategy execution, portfolio weighting, portfolio-level filters, transaction cost helpers, exit A/B analysis, overlay metrics, or multi-strategy return blending.
Use when tasks need strategy-agnostic OHLCV indicators, math utilities, generic factor examples, regime slicing, resampling, or label makers.
Use when tasks need optional PyCaret model training, ML factor generation, inference wrappers, feature importance, or sparse LASSO weight generation.
Use when tasks need PandaData/PandaAI market data, reference data, adjustment factors, futures tick downloads, or symbol conversion.
Use when tasks need HTML reports, Markdown strategy reports, PNG chart helpers, or report files under the research reports directory.
| name | store |
| description | Use when tasks need local Parquet market data storage, pool management, research artifacts, backtest records, or model metadata. |
Use this skill when a task needs local file management for research data and
artifacts. The public project uses DataManager as the storage boundary.
from skills.store.data_manager import DataManager, DataQualityReport, validate_ohlcv
DataManager resolves its root from QUANTSPACE_DATA_ROOT, falling back to
the repository data/ directory.
data/market/{frequency}/{symbol}.parquetdata/adj_factor/{symbol}.parquetdata/pools/{pool_id}.jsondata/factors/{pool_id}/data/factor_test/{pool_id}/data/correlation/data/backtest/data/models/data/export/Market data
read_symbol(symbol, frequency="1d")read_symbols(symbols, frequency="1d")save_symbol(symbol, df, frequency="1d", source="unknown")import_symbol_csv(csv_path, symbol, frequency="1d")import_combined_csv(csv_path, frequency="1d")list_symbols(frequency="1d")Pools
create_pool(pool_id, symbols, description="", frequency="1d")get_pool_symbols(pool_id)get_pool_frequency(pool_id)load_pool_data(pool_id)check_pool_coverage(pool_id)list_pools()Research artifacts
save_factor, read_factorsave_factor_test, read_factor_test_summarysave_factor_correlation, read_factor_correlationsave_backtest_run, read_backtest_summary, read_backtest_runlist_models, read_model_metadataSave PandaData bars
import pandas as pd
from skills.ingest import PandaDataClient
from skills.store.data_manager import DataManager
raw = PandaDataClient().fetch_market_data("SHSE.600000", "20230101", "20231231")
bars = raw.copy()
bars["eob"] = pd.to_datetime(bars["date"])
bars = bars.set_index("eob")[["open", "high", "low", "close", "volume"]].sort_index()
DataManager().save_symbol("SHSE.600000", bars, frequency="1d", source="panda_data")
Load a panel
from skills.store.data_manager import DataManager
dm = DataManager()
panel = dm.load_pool_data("sample_etf_rotation")
Load explicit symbols
from skills.store.data_manager import DataManager
dm = DataManager()
panel = dm.read_symbols(["CFFEX.IF99", "SHFE.CU99"], frequency="1d")
read_symbols returns a MultiIndex (symbol, eob) panel and reports all
missing symbols in one FileNotFoundError.