Documentation

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):

ModalHow to open
Run backtestQuantCraft IDE → TestRun backtest
Bulk forward new runAuto Trading or Quant Cloud → start a new bulk forward job
Chart forward testTrade → attach a .qcraft.json algo → open algo parameters

Prerequisites

  1. Desktop app — Save/load uses native file dialogs (not available in the browser-only preview).
  2. 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": { } }
FieldMeaning
formatMust be quantcraft-run-config-v1.
savedFromMetadata: backtest, bulk_forward, or chart_forward (which modal saved the file).
savedAtISO timestamp when the file was written.
settingsFlat 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

ModalDefault name
Run backtestbacktest-config.qcs
Bulk forwardbulk-forward-config.qcs
Chart forward testchart-forward-config.qcs

You can choose any name ending in .qcs when saving.


Settings fields by modal

KeyBacktestBulk forwardChart forward
symbols, assetTypeyes
startingBalance, startDate, endDate, warmupBarsyes
timeframeAlpaca, timeframeB2, minBarsyes
includeFundamentals, fundamentalsPickerValues, fundamentalsExtraPathsyesyes
includeFactorsyesyes
inputParamsyesyesyes
optimize, optimizeMode, geneticPopulationSize, geneticGenerations, geneticElitism, geneticCrossoverRate, geneticMutationRate, geneticFitnessMetric, geneticSeedyes
algoIdyes
targetScope, selectedStocks, selectedCryptoyes
periodMinutes, timeframeUiyes
timerIntervalMsyesyes

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" }
  • optStep and optMax are 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 → ToWhat transfers
Backtest → bulk forwardsymbols + assetType → target scope and stock/crypto selections; timeframeAlpaca or B2 d/wtimeframeUi; inputParams; timerIntervalMs if present
Backtest → chart forwardinputParams, fundamentals fields, includeFactors, timerIntervalMs; dates, balance, and optimization fields are ignored
Bulk forward → backtestselectedStocks / selectedCryptosymbols; timeframeUitimeframeAlpaca (or B2 when no Alpaca keys); inputParams
Any → anyUnknown or inapplicable keys are ignored without error

Timeframe mapping

SourceMaps to
timeframeUi 1D / 1WeekBacktest timeframeAlpaca, or B2 timeframeB2 d / w when data source is B2
Backtest timeframeB2 d / wBulk timeframeUi 1D / 1Week
Backtest timeframeB2 m (monthly)No bulk equivalent — skipped on cross-load

Symbols and bulk targets

  • Backtest → bulk: symbols are classified into selectedStocks or selectedCrypto when possible; target scope becomes Selected.
  • Bulk → backtest: Selected stocks and crypto merge into the symbols array; assetType is 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).


ExtensionPurpose
.pyStrategy source files (workspace mirror)
.qcraft.jsonCompiled runnable bundle for Trade / forward runs
.qcsSaved run modal presets (this page)