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>
16 lines
1.1 KiB
Plaintext
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/
|