- Add comprehensive processors module documentation to cta_1d/README.md
including usage examples for RobustZScoreNorm.from_version() and
parameter extraction instructions
- Add test_processors.py test script for validating processor functionality
- Update metadata.json timestamp from parameter extraction
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add extract_qlib_params.py script to extract pre-fitted mean/std parameters
from Qlib's proc_list.proc and save as reusable .npy files with metadata.json
- Add RobustZScoreNorm.from_version() class method to load saved parameters
by version name, supporting multiple parameter versions coexistence
- Update dump_polars_dataset.py to use from_version() instead of loading
parameters directly from proc_list.proc
- Update generate_beta_embedding.py to use qshare's filter_instruments for
stock universe filtering
- Save parameters to data/robust_zscore_params/csiallx_feature2_ntrla_flag_pnlnorm/
with 330 features (158 alpha158_ntrl + 158 alpha158_raw + 7 market_ext_ntrl + 7 market_ext_raw)
- Update README.md with documentation for parameter extraction and usage
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
## New Files
- src/qlib_loader.py - Qlib data loader utility with:
- load_data_from_handler() - Load data with configurable start/end dates
- load_data_with_proc_list() - Full pipeline with preprocessing
- load_and_dump_data() - Dump raw and processed data to pickle files
- Fixed processor implementations (FixedDiff, FixedColumnRemover, etc.)
that handle :: separator column format correctly
- NaN filling workaround for con_rating_strength column
- config/handler.yaml - Modified handler config with <LOAD_START> and
<LOAD_END> placeholders instead of hardcoded <SINCE_DATE> and <TODAY>
- data/.gitignore - Ignore pickle and parquet data files
## Updated
- README.md - Documentation for data loading with configurable date range
## Key Changes
1. Fixed Diff processor bug: Column names now correctly use :: separator
format (e.g., 'feature_ext::log_size_diff') instead of malformed
string representations of tuples
2. Preserved trained parameters: Fixed processors use mean_train/std_train
from original proc_list pickle for RobustZScoreNorm
3. Configurable end date: handler.yaml now respects user-specified end
dates instead of always loading until today
## Tested
- Successfully dumps raw data (before proc_list) to pickle files
- Successfully applies fixed proc_list and dumps processed data
- Both 2019-01 and 2025-01 data processed without errors