Class SweepRequest.Builder

java.lang.Object
com.qtsurfer.api.sdk.SweepRequest.Builder
Enclosing class:
SweepRequest

public static final class SweepRequest.Builder extends Object
Fluent builder for SweepRequest.
  • Constructor Details

    • Builder

      public Builder()
  • Method Details

    • strategy

      public SweepRequest.Builder strategy(String strategy)
      Parameters:
      strategy - strategy source code (Java)
      Returns:
      this builder
    • exchangeId

      public SweepRequest.Builder exchangeId(String exchangeId)
      Parameters:
      exchangeId - exchange identifier, e.g. "binance"
      Returns:
      this builder
    • instrument

      public SweepRequest.Builder instrument(String instrument)
      Parameters:
      instrument - instrument symbol, e.g. "BTC/USDT"; mutually exclusive with datasetId
      Returns:
      this builder
    • datasetId

      public SweepRequest.Builder datasetId(String datasetId)
      Parameters:
      datasetId - id of a dataset to backtest against instead of an exchange instrument; mutually exclusive with instrument
      Returns:
      this builder
    • datasetVersionId

      public SweepRequest.Builder datasetVersionId(String datasetVersionId)
      Parameters:
      datasetVersionId - pins a specific past version of datasetId; only valid alongside a non-null datasetId
      Returns:
      this builder
    • from

      public SweepRequest.Builder from(String from)
      Parameters:
      from - range start
      Returns:
      this builder
    • to

      public SweepRequest.Builder to(String to)
      Parameters:
      to - range end
      Returns:
      this builder
    • param

      public SweepRequest.Builder param(String name, ParamAxis axis)
      Add one axis to the grid. Calling this twice with the same name replaces the earlier axis.

      The name must be the strategy property's @StrategyProperty(name = "...") annotation value (e.g. "rsi.period"), NOT the Java field name (e.g. rsiPeriod). Using the field name is silently ignored by the platform and every trial runs with the default.

      Parameters:
      name - the strategy property to vary (the @StrategyProperty name)
      axis - the values to try for it
      Returns:
      this builder
    • params

      public SweepRequest.Builder params(Map<String,ParamAxis> params)
      Replace the whole grid.
      Parameters:
      params - one axis per strategy property to vary
      Returns:
      this builder
    • sampler

      public SweepRequest.Builder sampler(SweepSampler sampler)
      Parameters:
      sampler - how the grid becomes the vectors actually run
      Returns:
      this builder
    • samples

      public SweepRequest.Builder samples(int samples)
      Parameters:
      samples - vectors to draw for a random or Latin-hypercube sampler
      Returns:
      this builder
    • seed

      public SweepRequest.Builder seed(long seed)
      Parameters:
      seed - reproducibility seed; omit to let the platform pick and report one
      Returns:
      this builder
    • objective

      public SweepRequest.Builder objective(SweepObjective objective)
      Parameters:
      objective - the metric to optimize and rank by
      Returns:
      this builder
    • walkForward

      public SweepRequest.Builder walkForward(WalkForwardSpec walkForward)
      Parameters:
      walkForward - opt into walk-forward validation
      Returns:
      this builder
    • walkForward

      public SweepRequest.Builder walkForward(int folds)
      Parameters:
      folds - walk forward over this many folds, at platform-default in-sample share
      Returns:
      this builder
    • equityCurve

      public SweepRequest.Builder equityCurve(com.qtsurfer.api.client.model.EquityCurveRequest equityCurve)
      Parameters:
      equityCurve - retention and default transform for sweep trial curves
      Returns:
      this builder
    • storeSignals

      public SweepRequest.Builder storeSignals(boolean storeSignals)
      Request storage of emitted signals for every sweep trial.
    • build

      public SweepRequest build()
      Build the request.
      Returns:
      the immutable request