원클릭으로
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.