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 пропорционально.