Releases: NicolasBohn/NexQuant
Releases · NicolasBohn/NexQuant
Release list
v1.3.6
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)
v1.3.5
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: replace zero $volume with price-range proxy for FX data (3e6732f)
- auto-fixer: strip spurious .reset_index() after .transform() calls (8708aae)
- loop: prevent step_idx advance on unhandled exceptions + fix consecutive assistant messages (5ec4ad1)
v1.3.4
Bug Fixes
- Compress old experiment history in proposal prompt to reduce LLM context usage (keeps last 2 full, summarizes older to bullet points ~40-60k tokens vs ~121k)
- Fix factor result.h5 lookup path in
_evaluate_factor_directlyand_save_factor_values(was using Qlib template workspace, now correctly uses CoSTEER sub-workspace) - Fix
Series.to_frame().to_parquet()in factor value saving - Correct bars-per-day documentation: 1440 bars/day (1-min data), not 96
- Update prompts to accept 2024-only debug dataset output as valid factor result
v1.3.3 — Fix strategy generator crashes on None backtest metrics
Bug Fixes
- Fix
TypeError: bad operand type for abs(): 'NoneType'crash when backtest returns no IC value (ad2ad3ab) - Fix
TypeError: unsupported format string passed to NoneTypein rejected strategy log output (2197f521) - Disable slow
wf_rollingand reducemc_n_permutationsto 50 for faster strategy generation runs
v1.3.2 — Security: bump python-dotenv (CVE symlink overwrite)
Security Fixes
- fix(deps): bump
python-dotenvto>=1.2.2— fixes CVE whereset_key()follows symlinks and can overwrite arbitrary files via cross-device rename fallback (Dependabot alert #74)
v1.3.1 — Security: Resolve all Bandit alerts (B301, B614, B104)
Security Fixes
- fix(security): resolved 30 Bandit security alerts — B301 (unsafe pickle), B614 (torch.load without weights_only), B104 (binding 0.0.0.0)
- fix(deps): bump python-dotenv to >=1.2.2 (CVE: symlink following allows arbitrary file overwrite)
v1.3.0 — Rolling Walk-Forward Validation & Monte Carlo Permutation Test
v1.2.2 — FTMO OOS Walk-Forward & Test Coverage
1.2.2 (2026-04-19)
Tests
- backtest: add comprehensive test suite for FTMO engine and walk-forward OOS validation
— covers leverage caps, zero-signal edge cases, IS/OOS independence, bar-count integrity,
and Monte Carlo permutation helper; slow tests excluded from default CI run
v1.2.1 — FTMO-Realistic Backtest Engine & Walk-Forward OOS Validation
Predix v1.2.1
Highlights
FTMO-Realistic Backtest Engine
- New
backtest_signal_ftmo()— replacesbacktest_signaleverywhere - Risk-based position sizing: 0.5% equity risk/trade, 10-pip stop, max 1:30 leverage
- FTMO daily loss limit (5%) and total loss limit (10%) enforced in simulation
- Realistic EUR/USD costs: 2.14 bps (1.5 spread + 0.5 slippage + 0.35 commission)
- Compounding: position size recalculated from current equity each trade
Walk-Forward Out-of-Sample Validation
- IS period: 2020–2023 | OOS period: 2024–2026 (independent FTMO simulation)
- Strategy acceptance requires
oos_sharpe > 0ANDoos_monthly > 0 - OOS metrics stored in strategy JSON and CSV reports
Strategy Generator
- Full file logging to timestamped
.logfiles - OHLCV-only mode (
OHLCV_ONLY=1) — strategies from raw 1-min price data - Threshold tuner — auto-relaxes signal thresholds if trade count too low
MIN_TRADESraised to 300 for daytrading mode
Infrastructure
release-please-config.json— patch bumps forfeat:commits
v1.2.0 — Kronos Foundation Model Integration
Predix v1.2.0
Highlights
- Kronos integration — Nixtla Kronos-mini OHLCV foundation model for zero-shot forecasting
- Batch GPU inference — 75× faster Kronos predictions via
predict_batch - Auto-generation — Kronos factor auto-generated before each fin_quant loop
- New CLI commands —
rdagent kronos_predict,rdagent kronos_evaluate - CI fix — replaced
rdagent_loggerwith stdlib logging for CI compatibility