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