Spectra
Открыть документацию

backtester

Режимы определения размера

Как определяется размер позиции в бэктестах — фиксированный, процент от капитала, на основе ATR.


Бэктестер предлагает три режима определения размера. Выберите один в панели Strategy; скрипты могут переопределять его в каждом вызове через buy(qty: ...).

Фиксированный

qty = constant  // e.g. buy(qty: 100)

Самый простой. Полезен, когда вы тестируете логику входа/выхода, не заботясь об определении размера позиции.

Процент от капитала

qty = floor(equity × pct / price)

Реинвестирует прибыли и убытки. Используйте, чтобы измерить, как стратегия ведёт себя с реалистичной динамикой кривой капитала. По умолчанию pct = 5%.

На основе ATR (эквивалент риска)

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

Подбирает размер каждой позиции так, чтобы денежный риск до вашего стопа был постоянным. Основной режим для трендовых систем, где ATR масштабируется с волатильностью.

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

Максимальные ограничения

Все три учитывают:

  • Максимальную позицию (Профиль → Backtester → Max position).
  • Максимум одновременных позиций (по умолчанию 5).
  • Доступный капитал — ордера, которые превысили бы покупательную способность, отклоняются (или исполняются частично, если partial_fill_on_margin = true).

Наращивание / сокращение позиции

buy(qty: size, scale: 0.5)   // adds half the size to existing position
sell(qty: size * 0.5)        // sells half

Наращивания усредняются по средней цене входа позиции. Сокращения реализуют P&L пропорционально.