Spectra
Explorar docs

backtester

Modos de sizing

Cómo se determina el tamaño de posición en backtests — fijo, porcentaje de equity, basado en ATR.


El backtester ofrece tres modos de sizing. Elige uno en el panel Strategy; los scripts pueden override por llamada vía buy(qty: ...).

Fijo

qty = constant  // p. ej. buy(qty: 100)

El más simple. Útil cuando estás probando lógica de entry/exit sin preocuparte del tamaño.

Porcentaje de equity

qty = floor(equity × pct / price)

Compounded ganancias y pérdidas. Úsalo para medir cómo se comporta una estrategia con dinámica realista de curva de equity. Default pct = 5%.

Basado en ATR (risk-equivalente)

qty = floor(risk_pct × equity / (atr(14) × atr_multiplier))

Dimensiona cada posición para que el riesgo en dólares hasta tu stop sea constante. El modo de cabecera para sistemas trend-following donde ATR escala con volatilidad.

let size = atr_position(risk_pct: 1.0, atr: atr(14))
buy(qty: size)

Restricciones máximas

Los tres respetan:

  • Posición máxima (Perfil → Backtester → Max position).
  • Posiciones concurrentes máximas (default 5).
  • Equity disponible — las órdenes que excederían buying power se rechazan (o llenan parcial si partial_fill_on_margin = true).

Scale in / out

buy(qty: size, scale: 0.5)   // añade la mitad a la posición existente
sell(qty: size * 0.5)        // vende la mitad

Los scale-ins compounded al entry promedio de la posición. Los scale-outs realizan P&L proporcionalmente.