Run presets (.qcs)
Save and reload run modal settings as JSON files with the .qcs extension in your QuantCraft workspace folder. Use this to reuse symbols, timeframes, input parameters, and other options across sessions without retyping them.
Where in the UI
Each modal shows Load settings… and Save settings… at the top of the modal body (directly under the title and description):
| Modal | How to open |
|---|---|
| Run backtest | QuantCraft IDE → Test → Run backtest |
| Bulk forward new run | Auto Trading or Quant Cloud → start a new bulk forward job |
| Chart forward test | Trade → attach a .qcraft.json algo → open algo parameters |
Prerequisites
- Desktop app — Save/load uses native file dialogs (not available in the browser-only preview).
- Workspace folder — Set via QuantCraft Files sidebar → Workspace Folder. Dialogs default to this directory.
If no workspace is set, the app prompts you to choose one first.
File format
Files are UTF-8 JSON. Top-level shape:
{
"format": "quantcraft-run-config-v1",
"savedFrom": "backtest",
"savedAt": "2026-06-09T12:00:00.000Z",
"settings": { }
}| Field | Meaning |
|---|---|
format | Must be quantcraft-run-config-v1. |
savedFrom | Metadata: backtest, bulk_forward, or chart_forward (which modal saved the file). |
savedAt | ISO timestamp when the file was written. |
settings | Flat object of run options (see table below). All keys are optional. |
Save writes only fields that apply to the current modal. Load always uses the target modal's rules and ignores keys that do not apply.
Default suggested filenames
| Modal | Default name |
|---|---|
| Run backtest | backtest-config.qcs |
| Bulk forward | bulk-forward-config.qcs |
| Chart forward test | chart-forward-config.qcs |
You can choose any name ending in .qcs when saving.
Settings fields by modal
| Key | Backtest | Bulk forward | Chart forward |
|---|---|---|---|
symbols, assetType | yes | — | — |
startingBalance, startDate, endDate, warmupBars | yes | — | — |
timeframeAlpaca, timeframeB2, minBars | yes | — | — |
includeFundamentals, fundamentalsPickerValues, fundamentalsExtraPaths | yes | — | yes |
includeFactors | yes | — | yes |
inputParams | yes | yes | yes |
optimize, optimizeMode, geneticPopulationSize, geneticGenerations, geneticElitism, geneticCrossoverRate, geneticMutationRate, geneticFitnessMetric, geneticSeed | yes | — | — |
algoId | — | yes | — |
targetScope, selectedStocks, selectedCrypto | — | yes | — |
periodMinutes, timeframeUi | — | yes | — |
timerIntervalMs | — | yes | yes |
includeFactors: When true, backtest and chart-forward runs attach global Fama-French factor data (Premium only; cleared on load for the free tier). Strategies read fama_french.qc; monthly rows are a YYYYMM dict — see Fama-French factors for latest_row / rows_chronological.
inputParams shape
Object keyed by script parameter name. Each entry:
"LOOKBACK": {
"type": "int",
"value": "20",
"optStep": "5",
"optMax": "40"
}optStepandoptMaxare saved from backtest only (optimization grid). Forward modals strip them on load.- Only names that exist in the currently loaded script are applied; other names in the file are ignored.
See Input parameters for how params.NAME is discovered in strategy code.
Cross-modal load
You can load a .qcs file saved from one modal into another. The app applies compatible fields only and silently skips the rest.
| From → To | What transfers |
|---|---|
| Backtest → bulk forward | symbols + assetType → target scope and stock/crypto selections; timeframeAlpaca or B2 d/w → timeframeUi; inputParams; timerIntervalMs if present |
| Backtest → chart forward | inputParams, fundamentals fields, includeFactors, timerIntervalMs; dates, balance, and optimization fields are ignored |
| Bulk forward → backtest | selectedStocks / selectedCrypto → symbols; timeframeUi → timeframeAlpaca (or B2 when no Alpaca keys); inputParams |
| Any → any | Unknown or inapplicable keys are ignored without error |
Timeframe mapping
| Source | Maps to |
|---|---|
timeframeUi 1D / 1Week | Backtest timeframeAlpaca, or B2 timeframeB2 d / w when data source is B2 |
Backtest timeframeB2 d / w | Bulk timeframeUi 1D / 1Week |
Backtest timeframeB2 m (monthly) | No bulk equivalent — skipped on cross-load |
Symbols and bulk targets
- Backtest → bulk:
symbolsare classified intoselectedStocksorselectedCryptowhen possible; target scope becomes Selected. - Bulk → backtest: Selected stocks and crypto merge into the
symbolsarray;assetTypeis inferred from the selection.
Bulk forward edit mode
When editing an existing bulk run, Load settings still applies targets, period, timeframe, timer, and script params. algoId is not changed (algorithm is fixed for that run).
Related workspace artifacts
| Extension | Purpose |
|---|---|
.py | Strategy source files (workspace mirror) |
.qcraft.json | Compiled runnable bundle for Trade / forward runs |
.qcs | Saved run modal presets (this page) |
