## 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
- Add detailed directory structure to CLAUDE.md and README.md
- Document Module Organization section explaining src/ layout
- Add Python API import examples showing re-export pattern
- Add Command Line usage section with examples
- Update "Adding a New Task" instructions for src/ structure
- Add module organization best practice
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Move cta_1d/loader.py, train.py, backtest.py to cta_1d/src/
- Move stock_15m/loader.py, train.py to stock_15m/src/
- Update root __init__.py files to re-export from src/ submodules
- Update src/__init__.py files with proper public API exports
- Update imports to use relative paths within src/
- Add missing create_experiment_dir export to common/__init__.py
- Remove legacy/ directories with old pandas implementations
- Remove test_new_loaders.py development test file
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>