Skip to content

Strategy Parameters

Strategy parameters are discovered in gordon-lab (Python walk-forward research), then ported to gordon-strategy (Rust). The lab validates candidates; the Rust crate executes them live. These are two separate layers — never reimplement strategy logic in Python for production.

How parameters flow

gordon-lab (Python)
  1. Sweep parameter space
  2. Walk-forward validation across BTC/ETH/SOL minimum
  3. Ablation: every parameter must justify its value

gordon-strategy (Rust)
  4. Implement Strategy::evaluate
  5. Configure validated params
  6. Execute via gordon-bot (live) or gordon-manager (backtest)
     — same code path, enforced by BacktestExecution parity test

Validated strategies (gordon-strategy 4.x retrospective)

Supertrend 3.0

Best Sharpe: 0.90 | Timeframes: D1–8h

ParameterTypeRangeDescription
atr_periodint10–20Lookback for ATR calculation
multiplierfloat2.0–4.0ATR multiplier for band distance

EWMAC Ensemble

Best Sharpe: 0.90 | Timeframes: 6h–1h

ParameterTypeDefaultDescription
speed_pairslist[(8,32),(16,64),(32,128),(64,256)]Fast/slow EMA combinations
forecast_capfloat20.0Maximum absolute forecast value
target_forecast_sdfloat10.0Target standard deviation for forecast scaling
atr_periodint20ATR lookback for volatility normalization

PSAR Tight

Best Sharpe: 0.69–1.43 | Timeframes: W1–D1

ParameterTypeRangeDescription
af_startfloat0.02–0.03Initial acceleration factor
af_stepfloat0.02–0.03Acceleration increment per new extreme
af_maxfloat0.20–0.30Maximum acceleration factor

Common parameters

These apply across all strategies:

ParameterTypeDescription
timeframestringCandle timeframe (1h, 4h, 1d, etc.)
symbolstringTrading pair (BTCUSDT, ETHUSDT, etc.)

Active engines added in 4.6.x (validation in progress)

11 additional engines are implemented and active in gordon-strategy::engines. Walk-forward validation is in progress — none are production-deployed yet.

EngineOne-line description
BasisRevertStrategyMean-reversion on the perp–spot funding spread
BollingerBreakoutStrategyBollinger squeeze→expansion momentum breakout
FundingArbStrategySingle-leg crowded-trade mean reversion on extreme funding rates
HurstRegimeSwitcherStrategyMeta-strategy selecting a sub-strategy based on Hurst exponent (trending vs. mean-reverting vs. choppy)
OpeningRangeBreakoutStrategyIntraday momentum entry on the UTC-day opening range high/low
PairsMrStrategyRelative-value mean reversion on cointegrated crypto pairs (e.g. ETH/BTC)
RsiMeanReversionStrategyWilder RSI oversold/overbought entries gated on a 200-period SMA trend filter
TsMomStrategyTime-series momentum based on Moskowitz, Ooi, Pedersen (2011)
VolumeSpikeBreakoutStrategyIntraday entry on volume surge combined with price range break
VpinImpulseStrategyDirectional entries triggered by order-flow toxicity (VPIN) spikes
VwapStretchMrStrategyFade overextensions from the session VWAP (resets at UTC midnight)

Retired

  • Donchian Ensemble — median Sharpe 0.08 in the v4 retrospective. Removed from active rotation. Not worth the complexity.

Validation gate (promotion from lab to production)

  1. Walk-forward consistency > 50% on BTC/ETH/SOL minimum.
  2. Net-of-fees Sharpe > 0.5 (Level 1).
  3. Max drawdown < 30%, positive CAGR with full cost model (Level 2).
  4. Port to Rust in gordon-strategy. Byte-parity test must pass.
  5. 30+ paper trades on Binance testnet via gordon-bot.
  6. Micro live allocation, then full allocation.

Avoiding overfitting

  • Multi-asset validation: parameters must work on at least 3 assets.
  • Walk-forward windows only — never random train/test splits on time series.
  • Ablation: removing a parameter that does not degrade performance means it is noise.
  • 1-bar delay enforced: signal on bar i, execution on bar i+1.

Gordon — keep compounding without blowing up