Files
NexQuant/CHANGELOG.md
T
TPTBusiness cbe1c52e00 refactor: rename project from Predix to NexQuant
Rename all source files, scripts, tests, documentation, and configuration
from Predix/predix to NexQuant/nexquant across the entire codebase.
2026-05-09 17:48:22 +02:00

79 KiB
Raw Blame History

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 LLMbased hypothesis selection with timeaware 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

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)