TPTBusiness
3f3a23bd38
feat: integrate Kronos-mini OHLCV foundation model (Option A + B)
...
Add Kronos-mini (4.1M params, AAAI 2026, MIT) as:
- Option A: predicted-return alpha factor via rolling daily inference
(kronos_factor_gen.py — stride=96 bars/day, ~2k inference calls)
- Option B: standalone model evaluator alongside LightGBM
(kronos_model_eval.py — IC / hit-rate vs actual realized returns)
KronosAdapter wraps NeoQuasar/Kronos-mini + Kronos-Tokenizer-2k,
auto-detects GPU, gracefully degrades if ~/Kronos repo is missing.
Factor output: MultiIndex (datetime, instrument) with KronosPredReturn.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-18 09:49:25 +02:00
TPTBusiness
0651faed92
feat: unified backtest engine, LLM error handling, strategy refactor
...
- Add vbt_backtest.py as single source of truth for all metric formulas
(Sharpe, drawdown, IC, transaction costs) — backtest_engine.py and
strategy_orchestrator.py now delegate to it
- Add LLMUnavailableError to exception.py; rd_loop.py catches it at the
proposal stage and raises LoopResumeError to avoid corrupting trace
history with None hypotheses
- Guard record() against None exp/hypothesis so loop resets leave
trace.hist in a consistent state
- Refactor strategy_orchestrator and optuna_optimizer to use unified
backtest path; remove duplicate metric calculation code
- Add predix_rebacktest_unified.py script for offline re-evaluation
- Update tests and README
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-17 22:52:07 +02:00
TPTBusiness
c78ecd3b6a
feat: add daily log rotation, llama health wait, factor auto-fixer, and README updates
...
- Add rdagent/log/daily_log.py: daily-rotating structured logs per command
(fin_quant, strategies, evaluate, parallel) with loguru; all.log combined sink
- predix.py: route TeeWriter output to logs/YYYY-MM-DD/ instead of root dir;
wrap quant() and evaluate() in daily_log.session() for start/stop/duration tracking
- rdagent/app/cli.py: fin_quant_cli waits for llama.cpp /health endpoint before
starting pipeline (up to 300 s); daily_log integration for fin_quant,
generate_strategies, eval_all, parallel commands
- scripts/predix_gen_strategies_real_bt.py: daily_log integration with
per-strategy ACCEPTED/REJECTED entries and summary on completion
- rdagent/components/coder/factor_coder/auto_fixer.py: new module that patches
common LLM-generated factor issues (min_periods, inf/NaN, groupby.transform,
MultiIndex corrections)
- rdagent/components/coder/factor_coder/prompts.yaml: add critical rules for
EURUSD 1-min intraday factors (min_periods, inf handling, groupby, date range)
- README.md: document --reasoning off and --n-gpu-layers 28 for llama-server;
explain VRAM constraints when Ollama is running alongside llama.cpp
- .bandit.yml: suppress B615 (HuggingFace unsafe download) for RL benchmark files
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-16 07:20:08 +02:00
TPTBusiness
02bf326767
feat: Add start_llama and start_loop CLI commands
...
Added to rdagent CLI:
- rdagent start_llama: Start llama.cpp server (replaces start_llama.sh)
- rdagent start_loop: Start strategy generator loop (replaces start_strategy_loop.sh)
Features:
- start_llama: --model, --port, --gpu-layers, --ctx-size, --reasoning options
- start_loop: --target, --max-wait options with auto-restart on crash
- Both commands have full help (--help) and examples
Moved .sh scripts to scripts/:
- start_llama.sh → scripts/ (kept as reference)
- start_strategy_loop.sh → scripts/ (kept as reference)
Usage:
rdagent start_llama # Start LLM server
rdagent start_llama --gpu-layers 40 # Custom GPU layers
rdagent start_loop # Start strategy loop
rdagent start_loop --target 5 # Generate 5 strategies per run
2026-04-09 14:49:00 +02:00
TPTBusiness
a7d1d97596
chore: Organize utility scripts into scripts/ directory
...
Moved 13 scripts from root to scripts/:
- create_strategy.py
- debug_backtest.py
- predix_add_risk_management.py
- predix_batch_backtest.py
- predix_full_eval.py
- predix_gen_strategies_real_bt.py
- predix_parallel.py
- predix_quick_daytrading.py
- predix_rebacktest_strategies.py
- predix_simple_eval.py
- predix_smart_strategy_gen.py
- predix_strategy_report.py
- watchdog_generator.sh
Kept in root (intentional):
- predix.py (main entry point)
- start_llama.sh (convenience startup)
- start_strategy_loop.sh (convenience startup)
Root directory: 44 files → 31 files
2026-04-09 14:45:49 +02:00
TPTBusiness
5437c15f1b
fix: Resolve 88% empty backtest results + path fixes
...
Root Cause: Qlib configs used cn_data (Chinese stocks) instead of eurusd
- provider_uri: cn_data → eurusd_1min_data
- market: csi300 → eurusd
- topk: 50 → 1 (single-asset EURUSD, was opening 0 positions)
- n_drop: 5 → 0, limit_threshold: 0.095 → 0.0
Add failed run tracking and validation:
- factor_runner.py: Validate results before DB save, track failed runs
- model_runner.py: Same validation and tracking
- results_db.py: generate_results_summary() → RESULTS_SUMMARY.md
- extract_results.py: Failed run tracking, progress indicators
Fix project root paths in all modules:
- ResultsDatabase: correct path from rdagent/results/ → results/
- factor_runner: db, factors, failed_runs paths
- model_runner: failed_runs path
All 246 tests passing.
2026-04-03 16:21:59 +02:00
TPTBusiness
15c5a4860f
fix: Ensure backtest results save to DB and JSON files
...
- Remove duplicate DB save from quant.py (keep only in factor_runner)
- Add explicit DB path creation with mkdir -p
- Add JSON factor summaries to results/factors/
- Add debug logging for result structure
- Fix logger.debug -> logger.info (RDAgentLog compatibility)
- Update tests to match new architecture (240/240 passing)
- Enhance extract_results.py with progress indicators
2026-04-03 15:46:52 +02:00
TPTBusiness
a7a4170187
fix: Add nosec comments for schema migration SQL in results_db.py
...
Bandit false positive B608: Schema migration uses controlled column names,
not user input. Add nosec comments to suppress warning.
2026-04-03 14:37:22 +02:00
TPTBusiness
e884034f6b
chore: Simplify pre-commit to mandatory hooks only
...
- Remove optional code quality hooks (black, isort, ruff, mypy, toml-sort)
* These blocked commits when tools not installed
* Users can run them manually when needed
- Keep only MANDATORY hooks:
* Integration Tests (60 tests, ~7.5s)
* Bandit Security Scan
- Both MUST pass before every commit
2026-04-03 12:33:30 +02:00