herzogflorian 356017e689 Large-scale driver is the default strategy for scenario problems
strategy='auto' now routes every scenario-mode CVaR optimisation through
quantcore.optimization.large_scale (LP relaxation on the tail rows, screening,
round-and-repair, certified against the relaxation bound, escalation to the
integer MILP otherwise); strategy='milp' is the explicit opt-out, and
row_generation applies to that path only. When the escalated MILP proves the
rounded portfolio optimal within its gap, the result is Optimal even where the
relaxation bound is loose (small portfolios with a real integrality gap).

UI: a Strategy selector and the driver's bound, gap, screened size, rows and
solver calls in the provenance card. Deploy env examples document the new
cuOpt settings (presolve off, dual simplex for LPs, 50 ms polling). The
service-equivalence test asks for strategy='milp' where it checks the
integer row-generation path.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-11-04 10:03:30 +01:00

16 lines
1.1 KiB
Plaintext

# Copy to .env and adjust. All variables are optional; defaults are in quantcore/config.py.
QUANTCORE_DATA_DIR=./data # where the setup/download services persist everything
QUANTCORE_CUOPT_URL=http://127.0.0.1:5000 # cuOpt on this machine (Apptainer setup); a remote one: http://<host>:5000
QUANTCORE_CUOPT_TIME_LIMIT=120 # seconds, MILP time limit
QUANTCORE_CUOPT_PRESOLVE=false # off: no 5-25 s GPU-heuristic wait per MILP (cuOpt 26.08)
QUANTCORE_CUOPT_LP_METHOD=2 # pure LPs on cuOpt's dual simplex (exact; concurrent may return PDLP's point)
QUANTCORE_CUOPT_POLL_INTERVAL=0.05 # seconds between polls of a submitted job (a latency floor per solve)
QUANTCORE_BASE_CURRENCY=CHF
QUANTCORE_RISK_FREE_RATE=0.0 # annual, CHF
QUANTCORE_HISTORY_START=2004-12-01 # first date requested from Yahoo
QUANTCORE_REQUIRED_HISTORY_FROM=2005-01-31 # a stock must have prices on or before this date
QUANTCORE_N_US=500
QUANTCORE_N_EUROPE=500
QUANTCORE_LOG_LEVEL=INFO
QUANTCORE_ENABLE_UI=true # false: JSON API and /docs only, no test bench at /ui/