Commit Graph

8 Commits

Author SHA1 Message Date
陈少杰 14191abc29 feat(orchestrator): TradingOrchestrator main class with get_combined_signal 2026-04-09 22:05:03 +08:00
陈少杰 ba3297a696 fix(llm_runner): use stored direction/confidence on cache hit, sanitize ticker path 2026-04-09 22:03:17 +08:00
陈少杰 852b6c98e3 feat(orchestrator): implement LLMRunner with lazy graph init and JSON cache 2026-04-09 21:58:38 +08:00
陈少杰 29aae4bb18 feat(orchestrator): implement LLMRunner with caching and rating mapping 2026-04-09 21:54:48 +08:00
陈少杰 30d8f90467 fix(quant_runner): fix 3 critical issues and 2 important improvements
- Critical 1: initialize orders=[] before loop to prevent NameError when df is empty
- Critical 2: replace bare sqlite3 conn with context manager (with statement) in get_signal
- Critical 3: remove ticker param from _load_best_params (table has no ticker col, params are global)
- Important: extract db_path as self._db_path attribute in __init__ (DRY)
- Important: add comment explaining lazy imports require sys.path set in __init__
2026-04-09 21:51:38 +08:00
陈少杰 7a03c29330 feat(orchestrator): implement QuantRunner with BollingerStrategy signal generation 2026-04-09 21:44:34 +08:00
陈少杰 dacb3316fa fix(orchestrator): code quality fixes in config and signals
- config: remove hardcoded absolute path for quant_backtest_path (now empty string)
- config: add llm_solo_penalty (0.7) and quant_solo_penalty (0.8) fields
- signals: SignalMerger now accepts OrchestratorConfig in __init__
- signals: use config.llm_solo_penalty / quant_solo_penalty instead of magic numbers
- signals: apply quant_weight_cap / llm_weight_cap as confidence upper bounds
- signals: both-None branch raises ValueError instead of returning ticker=""
- signals: replace assert with explicit ValueError for llm-None-when-quant-None
- signals: replace datetime.utcnow() with datetime.now(timezone.utc)
2026-04-09 21:39:23 +08:00
陈少杰 56dc76d44a feat(orchestrator): add signals.py and config.py
- Signal / FinalSignal dataclasses
- SignalMerger with weighted merge, single-track fallbacks, and cancel-out HOLD
- OrchestratorConfig with all required fields
2026-04-09 21:35:31 +08:00