mirror of
https://github.com/NicolasBohn/NexQuant.git
synced 2026-07-27 15:37:44 +00:00
cbe1c52e00
Rename all source files, scripts, tests, documentation, and configuration from Predix/predix to NexQuant/nexquant across the entire codebase.
79 KiB
79 KiB
Changelog
0.8.0 (2026-05-04)
Features
- [AutoRL-Bench] Update DeepSearchQA split and translate task instructions to English (#1368) (ffb9491)
- Add 'nexquant evaluate' command to CLI (4308c25)
- Add 'nexquant top' command + explain factor evaluation results (ac3334c)
- Add 6 new CLI commands - all scripts integrated with local LLM (e0dd07a)
- add a rag mcp in proposal (#1267) (dc7b732)
- add a web UI server (#1345) (1439548)
- Add advanced ML models (Transformer, TCN, PatchTST, CNN+LSTM) (44760f8)
- Add AI Strategy Builder (StrategyCoSTEER) - Closed Source (089189d)
- Add beautiful CLI welcome screen for GitHub README (9e4a97d)
- Add CLI model selection (local vs OpenRouter) (c37935a)
- Add complete ML pipeline with graceful degradation (closed source) (ed6b906)
- add daily log rotation, llama health wait, factor auto-fixer, and README updates (2238fed)
- Add factor code and description to saved results (b6b378d)
- Add GitHub infrastructure, CI/CD pipelines, and examples (26bd87e)
- add improve_mode to MultiProcessEvolvingStrategy for selective task implementation (#1273) (03f22dc)
- Add improved local prompt with MultiIndex code examples (v3) (a729eb7)
- add Kronos CLI commands, expand tests, document in README (24a51e4)
- add LLM-finetune scenario (#1314) (6e19c9e)
- add mask inference in debug mode (#1154) (b4117cf)
- Add model loader system (same as prompts) (b7e397b)
- add option to enable hyperparameter tuning only in first eval loop (#1211) (f82de4a)
- Add P5 ML Training Pipeline with LightGBM and 46 tests (c934276)
- Add parallel run system with API key distribution (31fb7d5)
- add previous runner loops to runner history (#1142) (2426a1d)
- add reasoning attribute to DSRunnerFeedback for enhanced evaluation context (#1162) (bfa4525)
- Add RL Trading Agent system with 99 tests (0c4cb7a)
- add runtime backtest verification (10 invariant checks in <1ms) + 489 tests + README docs (26db657)
- add show_hard_limit option and update time limit handling in DataScience settings (#1144) (8a3e42d)
- Add simple factor evaluator with direct IC/Sharpe computation (c7f23d0)
- Add start_llama and start_loop CLI commands (c1d1844)
- add stdout into workspace for easier debugging (#1236) (0daeb82)
- add time ratio limit for hyperparameter tuning in Kaggle settin… (#1135) (6a49981)
- Add Trading Protection System with 4 protections + comprehensive tests (a9e0eff)
- add user interaction in data science scenario (#1251) (6e09dc6)
- Auto-start dashboard for fin_quant (3441604)
- Auto-start dashboard for fin_quant (52d2b89)
- backtest: add FTMO-realistic backtest mode with leverage, daily/total loss limits and realistic EUR/USD costs (c5012e1)
- backtest: add rolling walk-forward validation and Monte Carlo trade permutation test (d284d3e)
- backtest: add walk-forward OOS validation to backtest_signal_ftmo (329841f)
- Backtesting Engine + Risk Management + Results Database (cce889a)
- Backtesting Engine + Risk Management + Results DB (86ef426)
- backtest: use backtest_signal_ftmo in strategy orchestrator and optuna optimizer (994080e)
- Beautiful CLI dashboard + corrected start command (c2932cb)
- Centralize all prompts in prompts/ directory (3ff1ef8)
- CLI Commands for strategy generation (P4 complete) (1f7ef1b)
- Complete P6-P9 implementation (73 tests) (6981e91)
- continuous strategy generator (WF, MTF, stability, ML models, auto-ensemble) (a206a31)
- create Jupyter notebook pipeline file based on main.py file (#1134) (f03b1b9)
- Data Loader module with tests (P0 complete) (af45cdf)
- Diverse factor selection + improved prompt v3 (ea47f75)
- enable finetune llm (#1055) (35c209b)
- enable LLM‑based hypothesis selection with time‑aware prompt & colored logging (#1122) (90dd2f7)
- enable to inject diversity cross async multi-trace (#1173) (b05a530)
- enable walk-forward OOS validation by default in backtest_signal_ftmo (8853f8e)
- enhance timeout handling in CoSTEER and DataScience scenarios (#1150) (811d4e7)
- enhance timeout management and knowledge base handling in CoSTEER components (#1130) (305eff1)
- EURUSD FX patches - prompts, factor spec, experiment settings (b6cf687)
- EURUSD model experiment setting + model simulator text patched (9a17b25)
- EURUSD Trading-Verbesserungen (Phase 2 & 3) (05c4e1b)
- EURUSD Trading-Verbesserungen implementiert (Phase 1) (b95bbf5)
- EURUSD walk-forward splits, bars terminology, README no $factor (0eae7d0)
- factor-coder: Add critical rules to prevent common factor implementation errors (e5c5d34)
- fallback to acceptable results (#1129) (7fc0916)
- Fast mode - CoSTEER goes to backtest after 1 iteration (fc830a2)
- fin_quant: auto-generate Kronos factor before loop start (0daf7a8)
- Fix 1min data integration and centralize all prompts (2e94a4c)
- Fix realistic backtesting (Step 1+2) (9b88ffb)
- Full auto strategy generation in fin_quant loop (6d2990d)
- Full system integration - RL + Protections + Backtesting + CLI (60618d9)
- FX feedback loop, EURUSD ticker examples, bars terminology (781779a)
- FX Multi-Agent Validator (TradingAgents-inspired) - Session/Macro/Bull-Bear/Trader (cddfc53)
- improve fallback handling in CoSTEER and add GPU usage guidelin… (#1165) (9c190e3)
- Improve nexquant portfolio command with robust error handling (5051527)
- Improved LLM prompt + Optuna integration (Step 3+5) (f72b07c)
- init pydantic ai agent & context 7 mcp (#1240) (5ba5e83)
- Integrate critical features into fin_quant workflow (P0+P1) (484377b)
- Integrate factor code/description saving into fin_quant process (3b502e9)
- integrate Kronos-mini OHLCV foundation model (Option A + B) (165c156)
- Intelligent embedding chunking instead of truncation (2d0584b)
- logging: write complete LLM prompts and responses to daily JSONL log (1f83410)
- mcp: cache with one-click toggle (#1269) (4f493c8)
- mcts policy based on trace scheduler (#1203) (ac6d8ed)
- migrate to 1min EURUSD data (2020-2026) (b39f2b7)
- ML Training Pipeline with 46 tests (P5 complete) (8f2aa83)
- offline selector (#1231) (d4c5399)
- optimize strategy generator (cache OHLCV, min_sharpe 1.5, nexquant generate-strategies CLI) (def3975)
- optimizer: add max_positions parameter to Optuna search space (f7b23b9)
- Optuna Parameter Optimizer with 60 tests (P3 complete) (5583bf8)
- PDF performance reports for strategies (reportlab) (b86e412)
- nexquant.py wrapper for dashboard support (757c66c)
- prob-based trace scheduler (#1131) (7e15b5e)
- Realistic backtesting with OHLCV data (P5 continued) (1506439)
- Realistic backtesting with OHLCV data and spread costs (85a1e29)
- Redirect RD-Agent workspace to results/ directory (fd2def0)
- refactor CoSTEER classes to use DSCoSTEER and update max seconds handling (#1156) (c111966)
- refine the logic of enabling hyperparameter tuning and add criteira (#1175) (e77572f)
- rl: add AutoRL-Bench framework and benchmark integrations (#1348) (7cd64a2)
- Save all factor results to results/factors/ (2abbec9)
- Save factor results immediately after each evaluation (72c5ec5)
- scripts: add full file logging to strategy generation and rebacktest scripts (c629af5)
- show the summarized final difference between the final workspace and the base workspace (#1281) (35a7ae5)
- strategies: make OOS validation mandatory in strategy generator (0f4c7c4)
- Strategy Generator working with local LLM (P0-P4) (036edee)
- Strategy Orchestrator with 30 tests (P2 complete) (9af5cdb)
- Strategy performance reports, CLI docs, and README update (232e918)
- Strategy Worker module with 41 tests (P1 complete) (b8acf82)
- strategy: Continuous optimization with Optuna parameter injection (da90ae2)
- streamline hyperparameter tuning checks and update evaluation g… (#1167) (5866230)
- Support 25+ parallel runs with resource warnings (7a4dd1a)
- ui, support disable cache (#1217) (70fd91c)
- unified backtest engine, LLM error handling, strategy refactor (1ddb114)
- update README with latest paper acceptance to NeurIPS 2025 (#1252) (12969b4)
- zentrale data_config.yaml + apply_config.py für dynamische Datenkonfiguration (b7c1e4d)
Bug Fixes
- (to main) litellm's Timeout error is not picklable (#1294) (315850e)
- 15 bug fixes across orchestrator, runner, backtest, and infrastructure (5ec4516)
- add a switch for ensemble_time_upper_bound and fix some bug in main (#1226) (fc18942)
- Add Bandit security scanning and fix critical vulnerabilities (f47dcf1)
- Add critical column name rules to factor generation prompt (bf73725)
- Add get_factor_count() to QuantTrace to prevent parallel run crashes (a16db77)
- add json format response fallback to prompt templates (#1246) (694afd8)
- add metric in scores.csv and avoid reading sample_submission.csv (#1152) (80c953d)
- Add missing os import in factor_runner.py (f201823)
- Add missing Panel import in nexquant evaluate command (e21923b)
- add missing self parameter to instance methods in DSProposalV2ExpGen (#1213) (c8bf617)
- add missing sys import and fix undefined acc_rate in factor eval (34323f3)
- Add nosec comments for schema migration SQL in results_db.py (3626b22)
- allow prev_out keys to be None in workspace cleanup assertion (#1214) (f02dc5f)
- also catch ValueError in mean_variance for dimension mismatch (daded85)
- auto-fixer: add five new factor code fixes for groupby/apply errors (d03bcf3)
- auto-fixer: add four new factor code fixes for common runtime errors (21ce0de)
- auto-fixer: add groupby([level=N,'date']) SyntaxError fix (d58eba3)
- auto-fixer: disable _fix_min_periods for intraday data (665e490)
- auto-fixer: fix chained groupby(level=N).groupby('date') pattern (9869839)
- auto-fixer: fix df.loc[instrument] DateParseError on MultiIndex frames (87926dc)
- auto-fixer: fix df['instrument'] KeyError on MultiIndex frames (63a348e)
- auto-fixer: fix two assignment-target bugs in instrument column fixers (a44eba9)
- auto-fixer: preserve date dimension in groupby(['instrument','date']) fix (37a2f37)
- auto-fixer: remove ddof from rolling() args, not only from std()/var() (daacbfd)
- auto-fixer: replace zero $volume with price-range proxy for FX data (7fcec39)
- auto-fixer: strip spurious .reset_index() after .transform() calls (c489616)
- avoid triggering errors like "RuntimeError: dictionary changed s… (#1285) (b180543)
- backtest: replace broken MC permutation test with binomial win-rate test (f284b7a)
- cancel tasks on resume and kill subprocesses on termination (#1166) (0e3f4cf)
- change runner prompts (#1223) (be3433f)
- ci: fix closed-source asset check false positives in security workflow (1473085)
- ci: lazy import logger in nexquant.py and cli.py to avoid ImportError in test env (52d9ff0)
- ci: remove CodeQL workflow (conflicts with default setup), drop duplicate lint job (ab73425)
- ci: remove env-print step to avoid leaking sensitive environment variables (#1299) (c067ea6)
- ci: set JAVA_TOOL_OPTIONS UTF-8 in Codacy workflow (a9c6ea9)
- clear ws_ckp after extraction to reduce workspace object size (#1137) (28ceb41)
- CLI dashboard in separate terminal window (b72cca9)
- close log file handle, fix FTMO equity double-count, remove bare except (4c76c85)
- collect_info: parse package names safely from requirements constraints (#1313) (99a71bf)
- correct MaxDD to equity curve in strategy_builder; test: add 8 cross-validation tests for metric correctness (7be98e8)
- correct project root paths and subprocess handling in parallel runner and CLI (1c35a22)
- correct Sharpe/MaxDD/WinRate in direct factor eval (was computing on raw factor, now on strategy returns) (69122ee)
- deps: bump python-dotenv to >=1.2.2 (CVE symlink overwrite) (f69333b)
- deps: pin aiohttp>=3.13.4 to patch 4 CVEs (a0b3b90)
- deps: relax aiohttp constraint to >=3.13.4 for litellm compatibility (d3978fe)
- Disable ANSI color codes when not running in TTY (9db0e59)
- Disable Flask debug mode by default (Security Alert #2) (48c177f)
- Display litellm messages as info instead of warnings (bd9d672)
- dockerfile: install coreutils to resolve timeout command error (#1260) (35580cb)
- docs: update rdagent ui with correct params (#1249) (3b9ad11)
- Embedding Context Length Error (6d6c5ab)
- enable embedding truncation (#1188) (880a6c7)
- end-timestamp 23:45, weg, SZ-beispiele weg (6a9ccd5)
- enhance feedback handling in MultiProcessEvolvingStrategy for improved task evolution (#1274) (afb575c)
- Ensure backtest results save to DB and JSON files (ae7b35e)
- evaluator erkennt 15min als valid (nicht daily) (cf0f634)
- factors: detect and correct look-ahead bias in daily-constant factors (dcad0d1)
- factors: extend look-ahead rules to session factors and add intraday-factor guidance (8811dc0)
- filter NaN in max(), remove redundant ternary, handle non-finite vbt results (1acfe50)
- fix bug for hypo_select_with_llm when not support response_schema (#1208) (d759ca9)
- fix chat_max_tokens calculation method to show true input_max_tokens (#1241) (7e99605)
- fix mcts (#1270) (5003aff)
- Fix parallel runner dashboard rendering error (3e8c07e)
- fix some bugs in RD-Agent(Q) (#1143) (7134a51)
- fix type annotation, remove unused parameter, improve import_class errors (1eb5849)
- Forward-fill daily factors to 1-min frequency (20f4c21)
- generate.py nutzt rdagent4qlib env für Qlib-Datenzugriff (b9007f7)
- graph: using assignment expression to avoid repeated function call (#1174) (b6fae75)
- Handle failed experiments in feedback step to prevent crashes (979ef66)
- handle mixed str and dict types in code_list (#1279) (32ecf92)
- Handle negative/zero values in performance report charts (f4a4c65)
- handle None output and conditional step dump in LoopBase execution (#1212) (9de8d60)
- Handle Qlib Docker backtest failures gracefully (SECURITY FIX) (59f4561)
- Handle timeout exceptions safely in nexquant_full_eval.py (2738263)
- handle ValueError in stdout shrinking and refactor shrink logic (#1228) (6fc3877)
- Harden _safe_resolve to fix CodeQL alert #3 (0ed1a0a)
- Harden path validation in Job Summary UI to fix CodeQL alert #17 (7fe15d4)
- Harden path validation to fix CodeQL alert #20 (59d06f6)
- ignore case when checking metric name (#1160) (1b84f7b)
- ignore RuntimeError for shared workspace double recovery (#1140) (bd8a16d)
- Import pandas in nexquant portfolio_simple command (2b6de06)
- Improve path traversal prevention with dedicated helper function (50dc275)
- increase retry count in hypothesis_gen decorator to 10 (#1230) (86ce4f1)
- increase time default not controlled by LLM (#1196) (e4bd647)
- Initialize EnvController in QuantTrace.init (698a17e)
- inject correct MultiIndex template into factor prompt (49004db)
- inject MultiIndex warning into factor interface prompt (YAML valide) (79e2915)
- insert await asyncio.sleep(0) to yield control in loop (#1186) (e0453e0)
- jinja problem of enumerate (#1216) (6725f15)
- kaggle competition metric direction (#1195) (04878f9)
- kronos: lazy torch import to fix CI ModuleNotFoundError (9cd8ab5)
- kronos: pass actual datetime Series to Kronos predictor timestamps (7741408)
- kronos: replace rdagent_logger with stdlib logging for CI compatibility (1ee5ea7)
- loop: compress old experiment history in proposal prompt to reduce context size (bde37f0)
- loop: prevent step_idx advance on unhandled exceptions + fix consecutive assistant messages (881ca81)
- merge candidates (#1254) (46aad78)
- model/factor experiment filtering in Qlib proposals (#1257) (9e34b4e)
- move snapshot saving after step index update in loop execution (#1206) (774346d)
- move task cancellation to finally block and fix subprocess kill typo (#1234) (a984f69)
- optuna: fix inverted parameter range in Stage 2/3 when signal_bias is negative (f0be842)
- Override webshop's Werkzeug dependency to fix CVE-2026-27199 (3a5aa0b)
- preserve null end_time when rendering dataset segments template (#1326) (6196ba3)
- prevent calendar index overflow when signal data ends early (#1324) (3dbd703)
- prevent JSON content from being added multiple times during retries (#1255) (31b19de)
- Prevent path injection in FT Job Summary UI (e4393fb)
- Prevent path injection in RL Job Summary UI (b3e8cb8)
- Prevent path traversal in autorl_bench server.py (6634e6e)
- Prevent path traversal in get_job_options() app.py (7da2e57)
- Prevent path traversal in RL UI app.py (d2c1516)
- Prevent path traversal in Streamlit UI app.py (0d0fd34)
- qlib: correct indentation in except blocks in quant_proposal and factor_runner (8f67ab6)
- Refactor path validation to fix CodeQL alert #16 (a417ebc)
- refine DSCoSTEER_eval prompts (#1157) (5594ab4)
- refine prompts and add additional package info (#1179) (5353bd3)
- refine task scheduling logic in MultiProcessEvolvingStrategy for… (#1275) (27d38af)
- remove $factor from prompt, update example count to EURUSD (3adc5bf)
- remove all Chinese stock references, replace with EURUSD 1min FX (44eeb01)
- Remove API key from test_benchmark_api.py config (16e8631)
- Remove API key logging from eurusd_llm.py (3f510be)
- Remove API key parameter from generate_api_config() (e6eeac9)
- Remove API key presence detection from logging (12b45e5)
- Remove clear-text storage of API key (CodeQL alert #8) (4842311)
- Remove hardcoded credentials from test_benchmark_api.py (2523ee2)
- remove unused imports in data science scenario module (#1136) (fd6cd39)
- Rename loader.py to prompt_loader.py to fix module conflict (06f0c34)
- replace hardcoded ChromeDriver path with webdriver-manager (#1271) (e3d2443)
- Resolve 88% empty backtest results + path fixes (8d1c70e)
- resolve dead code, shell injection risk, mutable defaults, and other bugs (4267315)
- Resolve FORWARD_BARS NameError in backtest script (ad7f5e1)
- Resolve security vulnerabilities (Dependabot + Code Scanning) (2c96828)
- resolve unbound variable, logger shadowing, withdraw_loop edge case, and other bugs in main scripts (2fd4bc3)
- revert 2 commits (#1239) (2201a47)
- revert to v10 setting (#1220) (51f5bc9)
- security: nosec for B608/B701 false positives in UI and template code (8b73952)
- security: Patch 5 CodeQL path injection and clear-text logging alerts (#22-#25, #9) (5aed2cf)
- security: Patch 5 CodeQL path injection and weak hashing alerts (#25-#30) (e188333)
- security: Patch path injection and stack trace exposure (CodeQL #31, #27) (2b0525f)
- security: real fix for B110 (logging in factor_proposal.py #746) (61656af)
- security: real fix for B110 (logging in factor_runner.py #744) (5ac64e6)
- security: real fix for B110 (logging in quant_proposal.py #741) (bcfeb32)
- security: real fix for B110 (logging in quant_proposal.py #741) (d865c82)
- security: real fix for B404/B603 (sys.executable in factor_runner.py #745) (7894b8e)
- security: replace eval() with ast.literal_eval and add request timeouts (B307, B113) (ffb24fd)
- security: replace eval() with ast.literal_eval in finetune validator (B307) (8d53b81)
- security: replace os.path.realpath with pathlib.resolve in safe_resolve_path to fix path-injection alerts (0d7af52)
- security: replace relative_to() with realpath+startswith for CodeQL sanitization (d7e2018)
- security: replace remaining assert statements with proper error handling (d4d5baf)
- security: replace shell=True subprocess calls with list args (B602) (30887ac)
- security: replace shell=True subprocess calls with list args in env.py (B602) (1a4f1cf)
- security: resolve all 30 Bandit security alerts (B301, B614, B104) (00f400f)
- security: resolve CodeQL path-injection alerts in UI data loaders (7caab95)
- security: resolve CodeQL path-injection and clear-text-logging alerts (8701b8b)
- security: Resolve GitHub Security Scan alerts (5af7f19)
- security: resolve path-injection and add nosec for safe temp paths (B108, py/path-injection) (4133fff)
- security: resolve path-injection, B701, B101, B112 Bandit alerts (e87d612)
- security: revert broken read_pickle encoding arg in kaggle template (B301) (e16460c)
- security: Upgrade vllm and transformers to patch 4 CVEs (85915b3)
- security: validate SQL identifiers in _add_column_if_not_exists (B608) (c40795b)
- security: whitelist-validate metric column in get_top_factors (B608) (db51417)
- set requires_documentation_search to None to disable feature in eval (#1245) (ee8c119)
- Skip already evaluated factors in nexquant_full_eval.py (8375213)
- skip Kronos factor on GPUs < 20GB to avoid CUDA OOM (shared with llama-server) (08fea7a)
- skip res_ratio check if timer or res_time is None (#1189) (dbe2142)
- strategies: guard against None IC in acceptance check, disable slow wf_rolling (843cd9a)
- strategies: handle None ic/sharpe/dd in rejected strategy log output (0121c2c)
- strategy: Fix template variables, APIBackend import, and JSON extraction (f0e813e)
- strategy: Re-evaluate Optuna-optimized strategies with full OHLCV backtest (7da8bad)
- summary page bug (#1219) (beab473)
- Switch to ThreadPoolExecutor for factor evaluation (d0aa146)
- Translate remaining German comment in eurusd_macro.py (02b46d1)
- ui bug (#1192) (2f8261f)
- update fallback criterion (#1210) (dbbe374)
- Update LICENSE badge link from main to master branch (0dbace6)
- update requirements.txt's streamlit (#1133) (600d159)
- Update Werkzeug to 2.3.8 (latest secure 2.x version) (d68a5ee)
- update WF test for new default (wf_rolling=True) (c906e00)
- Use 96-bar forward returns in backtest (matching factor IC horizon) (19c5b3d)
- Use num_api_keys instead of len(api_keys) for round-robin (c91976e)
- weg, Timestamps mit Uhrzeit, kein SZ-Beispiel (e9f6ac4)
Performance Improvements
- kronos: batch GPU inference via predict_batch — 75x faster (a93f940)
- kronos: batch GPU inference via predict_batch — 75x faster (471b1f9)
Documentation
- Add ATTRIBUTION.md with clear usage guidelines (c5bf3e4)
- Add CLI welcome screenshot to README (4103ebe)
- Add comprehensive CHANGELOG.md for v1.0.0 release (569b72b)
- Add comprehensive CLI help and update README with quick start (8265462)
- Add comprehensive data setup guide to README (ca30ed2)
- Add comprehensive Git commit guidelines to QWEN.md (d10d3a2)
- Add conda requirement to README + fix nexquant CLI (90e185a)
- Add CRITICAL rule - NEVER commit closed-source/private assets (a0ed4f7)
- Add CRITICAL rule - NEVER commit trading strategies or JSON files (cb0cb4c)
- add documentation for Data Science configurable options (#1301) (d603d5a)
- add execution environment configuration guide (Docker vs Conda) (#1288) (27ed3d1)
- Add implementation summary (649ed0c)
- Add live trading system documentation to QWEN.md (49b15d9)
- Add Microsoft RD-Agent acknowledgment to README (06c0b44)
- Add professional badges to README header (91d44dd)
- Add results/ directory README for storage documentation (ba4e5d6)
- Add v2.0.0 release changelog (c5e34ff)
- Clean changelog of closed-source performance metrics (7dc2ecd)
- Create changelog/ directory with v1.0.0.md release notes (ddefcd4)
- Final system completion - all 9 phases done (ab541de)
- fix duplicate sections, add hardware requirements and data setup guide (cc85cd4)
- improve README badges, fix llama-server flags, clean up structure (7981a6a)
- Remove 'Inspired by' comments and add comprehensive Acknowledgments (d5dc48a)
- Simplify README for git-clone-only installation (a1e3bb9)
- Translate all code comments to English (cff6c2a)
- Translate data_config.yaml to English (b5221b7)
- Translate server.py comments to English (7fd7592)
- Translate server.py docstring to English (d5acaa0)
- update configuration docs (#1155) (56ed919)
- update license section from MIT to AGPL-3.0 (ff441a4)
- Update QWEN.md with complete 5-phase architecture and results (66e1798)
- Update QWEN.md with detailed Git history correction guide (a972772)
- Update QWEN.md with implementation guide (23af142)
- Update SECURITY.md and CONTRIBUTING.md (e40f659)
- Update TODO.md with v1.0.0 completed items and future roadmap (2d3ca5b)
Miscellaneous Chores
- release 0.8.0 (8c15238)
1.4.2 (2026-05-03)
Bug Fixes
- add missing sys import and fix undefined acc_rate in factor eval (c45f990)
1.4.1 (2026-05-03)
Bug Fixes
- 15 bug fixes across orchestrator, runner, backtest, and infrastructure (163687d)
- also catch ValueError in mean_variance for dimension mismatch (ed73b72)
- close log file handle, fix FTMO equity double-count, remove bare except (76219a5)
- correct project root paths and subprocess handling in parallel runner and CLI (9735e3a)
- filter NaN in max(), remove redundant ternary, handle non-finite vbt results (f89fbb3)
- fix type annotation, remove unused parameter, improve import_class errors (8b6ab73)
- resolve dead code, shell injection risk, mutable defaults, and other bugs (afff262)
- resolve unbound variable, logger shadowing, withdraw_loop edge case, and other bugs in main scripts (748cf9b)
1.4.0 (2026-05-01)
Features
- optimizer: add max_positions parameter to Optuna search space (fdb4be3)
1.3.11 (2026-05-01)
Bug Fixes
- ci: lazy import logger in nexquant.py and cli.py to avoid ImportError in test env (60763e8)
1.3.10 (2026-05-01)
Bug Fixes
- security: replace remaining assert statements with proper error handling (928533d)
1.3.9 (2026-05-01)
Bug Fixes
- security: resolve path-injection, B701, B101, B112 Bandit alerts (20b89a0)
1.3.8 (2026-04-30)
Bug Fixes
- deps: relax aiohttp constraint to >=3.13.4 for litellm compatibility (34ab192)
- qlib: correct indentation in except blocks in quant_proposal and factor_runner (8143451)
- security: replace eval() with ast.literal_eval in finetune validator (B307) (0508caf)
- security: replace shell=True subprocess calls with list args in env.py (B602) (2012d5a)
- security: resolve path-injection and add nosec for safe temp paths (B108, py/path-injection) (6727480)
1.3.7 (2026-04-30)
Bug Fixes
- security: nosec for B608/B701 false positives in UI and template code (5eb5d7e)
- security: replace eval() with ast.literal_eval and add request timeouts (B307, B113) (3301ada)
- security: replace shell=True subprocess calls with list args (B602) (13c08f4)
1.3.6 (2026-04-30)
Bug Fixes
- security: real fix for B110 (logging in factor_proposal.py #746) (16624e0)
- security: real fix for B110 (logging in factor_runner.py #744) (88cf0fb)
- security: real fix for B110 (logging in quant_proposal.py #741) (7cf2a64)
- security: real fix for B110 (logging in quant_proposal.py #741) (ef985f8)
- security: real fix for B404/B603 (sys.executable in factor_runner.py #745) (819655a)
- security: revert broken read_pickle encoding arg in kaggle template (B301) (3574907)
- security: validate SQL identifiers in _add_column_if_not_exists (B608) (e10dfa2)
- security: whitelist-validate metric column in get_top_factors (B608) (e50519f)
1.3.5 (2026-04-27)
Bug Fixes
- auto-fixer: add five new factor code fixes for groupby/apply errors (449c8fd)
- auto-fixer: add four new factor code fixes for common runtime errors (40484f6)
- auto-fixer: add groupby([level=N,'date']) SyntaxError fix (ca77c00)
- auto-fixer: disable _fix_min_periods for intraday data (77b0740)
- auto-fixer: fix chained groupby(level=N).groupby('date') pattern (7d5fe32)
- auto-fixer: fix df.loc[instrument] DateParseError on MultiIndex frames (b7860ea)
- auto-fixer: fix df['instrument'] KeyError on MultiIndex frames (aad6bd1)
- auto-fixer: fix two assignment-target bugs in instrument column fixers (421eedf)
- auto-fixer: preserve date dimension in groupby(['instrument','date']) fix (b58fdd8)
- auto-fixer: remove ddof from rolling() args, not only from std()/var() (b0fc328)
- auto-fixer: strip spurious .reset_index() after .transform() calls (8708aae)
- loop: prevent step_idx advance on unhandled exceptions + fix consecutive assistant messages (5ec4ad1)
1.3.4 (2026-04-27)
Bug Fixes
- auto-fixer: add five new factor code fixes for groupby/apply errors (449c8fd)
- auto-fixer: add four new factor code fixes for common runtime errors (40484f6)
- auto-fixer: add groupby([level=N,'date']) SyntaxError fix (ca77c00)
- auto-fixer: disable _fix_min_periods for intraday data (77b0740)
- auto-fixer: fix chained groupby(level=N).groupby('date') pattern (7d5fe32)
- auto-fixer: fix df.loc[instrument] DateParseError on MultiIndex frames (b7860ea)
- auto-fixer: fix df['instrument'] KeyError on MultiIndex frames (aad6bd1)
- auto-fixer: preserve date dimension in groupby(['instrument','date']) fix (b58fdd8)
- auto-fixer: remove ddof from rolling() args, not only from std()/var() (b0fc328)
- backtest: replace broken MC permutation test with binomial win-rate test (c38d894)
- factors: detect and correct look-ahead bias in daily-constant factors (eb490a4)
- factors: extend look-ahead rules to session factors and add intraday-factor guidance (c24c100)
- loop: compress old experiment history in proposal prompt to reduce context size (4bf90a9)
- loop: prevent step_idx advance on unhandled exceptions + fix consecutive assistant messages (5ec4ad1)
1.3.3 (2026-04-25)
Bug Fixes
- backtest: replace broken MC permutation test with binomial win-rate test (c38d894)
- factors: detect and correct look-ahead bias in daily-constant factors (eb490a4)
- factors: extend look-ahead rules to session factors and add intraday-factor guidance (c24c100)
- loop: compress old experiment history in proposal prompt to reduce context size (4bf90a9)
- strategies: guard against None IC in acceptance check, disable slow wf_rolling (2197f52)
- strategies: handle None ic/sharpe/dd in rejected strategy log output (ad2ad3a)
1.3.2 (2026-04-23)
Bug Fixes
- strategies: guard against None IC in acceptance check, disable slow wf_rolling (2197f52)
- strategies: handle None ic/sharpe/dd in rejected strategy log output (ad2ad3a)
1.3.1 (2026-04-21)
Bug Fixes
- deps: bump python-dotenv to >=1.2.2 (CVE symlink overwrite) (126ae7d)
1.3.0 (2026-04-21)
Features
- backtest: add rolling walk-forward validation and Monte Carlo trade permutation test (637a94c)
Bug Fixes
- security: resolve all 30 Bandit security alerts (B301, B614, B104) (ce5983d)
1.2.2 (2026-04-19)
Documentation
- claude: auto-merge release-please PR after every push (f500917)
2.2.0 (2026-04-18)
Features
- add Kronos CLI commands, expand tests, document in README (f911081)
- fin_quant: auto-generate Kronos factor before loop start (277063f)
- integrate Kronos-mini OHLCV foundation model (Option A + B) (4ae3b99)
Bug Fixes
- kronos: lazy torch import to fix CI ModuleNotFoundError (ccc1d27)
- kronos: pass actual datetime Series to Kronos predictor timestamps (dc6e7ce)
- kronos: replace rdagent_logger with stdlib logging for CI compatibility (b4558f2)
Performance Improvements
- kronos: batch GPU inference via predict_batch — 75x faster (74611d0)
- kronos: batch GPU inference via predict_batch — 75x faster (2babeb9)
Documentation
- fix duplicate sections, add hardware requirements and data setup guide (6c771b3)
2.1.0 (2026-04-18)
Features
- add daily log rotation, llama health wait, factor auto-fixer, and README updates (4ae4d6f)
- Add GitHub infrastructure, CI/CD pipelines, and examples (a0b5dc4)
- factor-coder: Add critical rules to prevent common factor implementation errors (a1edca8)
- logging: write complete LLM prompts and responses to daily JSONL log (803ef13)
- strategy: Continuous optimization with Optuna parameter injection (4fda5ea)
- unified backtest engine, LLM error handling, strategy refactor (76b9341)
Bug Fixes
- Add critical column name rules to factor generation prompt (3e74410)
- ci: fix closed-source asset check false positives in security workflow (4b83c2b)
- ci: remove CodeQL workflow (conflicts with default setup), drop duplicate lint job (a671361)
- ci: set JAVA_TOOL_OPTIONS UTF-8 in Codacy workflow (e36721c)
- deps: pin aiohttp>=3.13.4 to patch 4 CVEs (81adddc)
- optuna: fix inverted parameter range in Stage 2/3 when signal_bias is negative (eaf885e)
- security: Patch 5 CodeQL path injection and clear-text logging alerts (#22-#25, #9) (d386af9)
- security: Patch 5 CodeQL path injection and weak hashing alerts (#25-#30) (0d4c3b7)
- security: Patch path injection and stack trace exposure (CodeQL #31, #27) (b0b8432)
- security: replace relative_to() with realpath+startswith for CodeQL sanitization (6d70f1e)
- security: resolve CodeQL path-injection alerts in UI data loaders (cced426)
- security: resolve CodeQL path-injection and clear-text-logging alerts (ec50224)
- security: Resolve GitHub Security Scan alerts (6c85ba8)
- security: Upgrade vllm and transformers to patch 4 CVEs (6c9ba91)
- strategy: Fix template variables, APIBackend import, and JSON extraction (8220faa)
- strategy: Re-evaluate Optuna-optimized strategies with full OHLCV backtest (026edce)
Documentation
- Add CLI welcome screenshot to README (e6f2374)
- Add comprehensive data setup guide to README (f721d53)
- Add conda requirement to README + fix nexquant CLI (df45698)
- Clean changelog of closed-source performance metrics (a0f6587)
- improve README badges, fix llama-server flags, clean up structure (336e1a5)