QuantStudio complete application source - 2026-10-26-Capacity

Includes React/Vite frontend, Python engine, regression tests, Windows desktop
source/build script and DLLs, built frontend, import support and release scripts.
No account database, user strategies, browser profile, main market dataset, reports,
QA output, node_modules or Python runtime is included in this source archive.
Pair this source with the build ZIP to obtain the bundled Python runtime.
The downloader module includes its original VIX/master snapshots and UnRAR.

BUILD FRONTEND: npm ci, then npm run build
FRONTEND TESTS: node --test tests/*.test.mjs
BACKEND: Python 3.12 x64; install requirements-runtime.txt, then from backend run
python -B -m unittest discover -s tests -v
Some optional import tests require the owner's Desktop sample files.
BUILD DESKTOP: run desktop/build.ps1 with Windows PowerShell; .NET Framework
compiler and the included WebView2 DLLs are used.
SOURCE CONFIG: backend/app_settings.json deliberately has an empty data_path.
Set absolute data_path, state_dir and results_path for your development copy.
Do not launch a second backend on the original application's port 60964.

Release packaging source is scripts/package_release.py. It accepts --output,
--python-home and --arrow-root. Personal strategy state must be supplied in
state/ before using that personal-build packaging script.
The release archives are integrity checked and contain SHA256-MANIFEST.json.

CAPACITY
10,000 saved strategies; 1,000 per combined run; two simultaneous runs.
Up to 16 workers per run, sharing CPU and the whole-engine 50% RAM budget.

WORKSPACE / EXPORT UPDATE 2026-10-27
Drag the green divider below the Multi-Leg table to resize. Double-click resets it.
Export opens a selection window: choose a Strategy Tag, Select filtered, then tick/untick portfolios.
Save the selected QS JSON, then Saved Baskets > Add basket > choose .json > Review > Save.
Each basket upload is a separate dated copy; original portfolios are retained.
Completed run cards clear automatically. Open saved reports from Backtest Results.

STRIKE INTERVAL UPDATE 2026-10-27
Edit portfolio > CRUDEOIL > Strike Selection: ATM +/- points.
Set Strike interval to 100 for each leg, or press its 100 points shortcut.
Value 0 means ATM; OTM1 CE +100 / PE -100; ITM1 CE -100 / PE +100.
OTM2 CE +200 / PE -200. Use lots, timings and risk settings as required.
The configured underlying reference is rounded to the interval, then Value is added.
For reference 8851, interval 100 and Value 0, the selected strike is 8900.
Use Value in multiples of 100 to keep targets on the 100-point grid.
An exact target strike with a valid quote is still required.
Relative ATM steps is a separate listed-strike rule. Closest premium does not
gain a new 100-only filter; imported premium/delta depth keeps its saved grid.
Existing portfolios and saved reports are not rewritten by this update.

CLOSEST PREMIUM STRIKE INTERVAL UPDATE 2026-10-27
Edit Portfolio > Strike Selection: Closest premium. Value is the target premium.
Below the leg table, find Closest premium - strike interval filter.
Set each desired leg interval to 100 (or use 100 points).
Only 8700/8800/8900-style absolute strike multiples are considered; 8750/8850
are ignored, even if their premium is closer. Blank / All strikes removes
only this optional filter. Existing expiry, imported search depth and SAE caps
still apply. There is no off-grid or later-expiry fallback for missing quotes.
Old strategies remain unchanged unless this filter is explicitly saved.
The previous ATM +/- points interval setting remains separate.
Activate the new backend before saving/running the new filter. Finish active
backtests/downloads before Setup; do not terminate ongoing work to install.
