陈少杰
ce2e6d32cc
feat(orchestrator): example scripts for backtest and live mode
2026-04-09 22:12:02 +08:00
陈少杰
480f0299b0
feat(orchestrator): LiveMode + /ws/orchestrator WebSocket endpoint
2026-04-09 22:10:15 +08:00
陈少杰
724c447720
feat(orchestrator): BacktestMode for historical signal collection
2026-04-09 22:09:38 +08:00
陈少杰
928f069184
test(orchestrator): unit tests for SignalMerger, LLMRunner._map_rating, QuantRunner._calc_confidence
2026-04-09 22:07:21 +08:00
陈少杰
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