Skip to main content

Hyperopt

No description

type Hyperopt implements Node {
id: ID!
deletedAt: Time
status: HyperoptTaskStatus!
epochs: Int!
spaces: [String!]
lossFunction: String!
minTrades: Int!
minProfitFactor: Float!
config: Map
configFingerprint: String
result: Map
progress: Float
errorMessage: String
logs: String
ownerID: String!
strategyID: ID!
runnerID: ID!
startDate: Time
endDate: Time
createdAt: Time!
updatedAt: Time!
completedAt: Time
strategy: Strategy!
runner: BotRunner
summary: HyperoptSummary
resultLost: Boolean!
winningEpochCheck: HyperoptReplayCheck!
resourceUsage: ResourceUsageAggregation
}

Fields​

Hyperopt.id ● ID! non-null scalar​

Hyperopt.deletedAt ● Time scalar​

Soft-delete timestamp. If set, record is considered deleted.

Hyperopt.status ● HyperoptTaskStatus! non-null enum​

Task status

Hyperopt.epochs ● Int! non-null scalar​

Number of optimization epochs

Hyperopt.spaces ● [String!] list scalar​

Spaces to optimize

Hyperopt.lossFunction ● String! non-null scalar​

Hyperopt loss function

Hyperopt.minTrades ● Int! non-null scalar​

Minimum trades an epoch must report to be eligible as the winner. Freqtrade's loss functions have no trade-count constraint, so the lowest-loss epoch is routinely untradeable (2 trades in 10 months). 0 disables the check.

Hyperopt.minProfitFactor ● Float! non-null scalar​

Profit factor an epoch must EXCEED to be eligible as the winner. 0 disables the check.

Hyperopt.config ● Map scalar​

Hyperopt configuration (exchange, pairs, timeframe, etc.)

Hyperopt.configFingerprint ● String scalar​

Identifies the run by what it executes: the strategy code and the merged freqtrade config (timerange included), minus keys that cannot change the result. Two runs with the same fingerprint are the same run, whichever surface launched them (runconfig.Fingerprint, #2963). Server-managed.

Hyperopt.result ● Map scalar​

Hyperopt results (best params, metrics, epoch data)

Hyperopt.progress ● Float scalar​

Progress percentage (0.0 to 100.0)

Hyperopt.errorMessage ● String scalar​

Error message if hyperopt failed

Hyperopt.logs ● String scalar​

Container logs from hyperopt execution

Hyperopt.ownerID ● String! non-null scalar​

Organization alias for multi-tenancy

Hyperopt.strategyID ● ID! non-null scalar​

Foreign key to strategy

Hyperopt.runnerID ● ID! non-null scalar​

Foreign key to runner

Hyperopt.startDate ● Time scalar​

Hyperopt start date

Hyperopt.endDate ● Time scalar​

Hyperopt end date

Hyperopt.createdAt ● Time! non-null scalar​

Hyperopt.updatedAt ● Time! non-null scalar​

Hyperopt.completedAt ● Time scalar​

Completion timestamp

Hyperopt.strategy ● Strategy! non-null object​

Hyperopt.runner ● BotRunner object​

The runner this hyperopt executed on, or null when the caller may not read that runner.

NULLABLE by design, as Backtest.runner: a caller who may read the hyperopt may still be denied its runner, and that denial resolves to null instead of nulling the whole Hyperopt node. A soft-deleted runner still resolves.

Hyperopt.summary ● HyperoptSummary object​

Typed summary of hyperopt results (parsed from raw result), gated like it: the hyperopt's own owner read, even under a public strategy (#3376).

Hyperopt.resultLost ● Boolean! non-null scalar​

True when the run reached COMPLETED but kept no verdict: its result was lost (the container log was truncated before it was read, or the terminal write failed), so there is no summary and no winning epoch.

This is NOT a finding about the strategy. A search that found nothing tradeable still carries a summary, with degenerate = true; a lost result carries none. Present a lost result as lost, never as a completed run with an empty verdict (#2032).

Derived at read time from status and summary, so rows written before this field existed report it correctly. False for every run that is not COMPLETED: a failed or cancelled run presents as what it is, and a loss detected at completion is recorded as FAILED with the reason in errorMessage.

Hyperopt.winningEpochCheck ● HyperoptReplayCheck! non-null object​

Whether the winning epoch was reproduced: a completed backtest of the version these parameters were applied to, on this run's own window and set-up, made exactly the epoch's trades (T-P2-HO-02). Only MATCHED is a result, and it is still in-sample. Computed on read; select it on one run, not on a list.

Hyperopt.resourceUsage ● ResourceUsageAggregation object​

Resource usage aggregation for billing

Interfaces​

Node interface​

An object with an ID. Follows the Relay Global Object Identification Specification

Returned By​

hyperoptChanged subscription ● hyperoptProgress subscription ● runHyperopt mutation ● stopHyperopt mutation

Member Of​

HyperoptEdge object