# Почему в бэктесте 0 сделок

> Бэктест без сделок почти всегда значит, что условия входа ни разу не выполнились на одной свече. Причины в порядке проверки, где их увидеть и как исправить.

Руководство · Janorium · Опубликовано 2026-11-05  
Веб-страница: https://janorium.com/guides/why-backtest-shows-zero-trades?lang=ru

Бэктест без единой сделки почти всегда значит, что условия входа ни разу не выполнились все вместе на одной свече, — это не нехватка данных и не ошибка. Ниже причины в том порядке, в каком их стоит проверять, где Janorium показывает каждую и как её исправить.

## С чего начать

- **Пробный прогон.** В панели **Пробный прогон** редактора график **Где срабатывал вход** отмечает на последних 500 свечах периода каждый вход и каждую свечу, где условие выполнилось, а позиция не открылась. Если условие не выполнилось ни разу, он так и пишет: «На этих барах условие входа не выполнилось ни разу, и сделок в прогоне нет».
- **Отчёт вашего бэктеста.** На вкладке **Цена и сделки** отметьте **Отмечать почти-срабатывания**. Панель **Почему нет?** считает свечи, где выполнились все условия, кроме одного, и показывает, какое условие мешало чаще всего; нажмите на свечу на графике, чтобы узнать, почему именно на ней не открылась сделка. Панель разбирает группу верхнего уровня **Все (AND)**.

## 1. Условия не выполняются на одной свече

Каждая строка группы **Все (AND)** должна выполниться на одной и той же свече. Каждая по отдельности может выполняться часто, а вместе — никогда. Обычно виноваты пересечения: `CROSS_UP` истинно только на той свече, где одна линия пересекает другую, а не всё время, пока она выше, поэтому два пересечения — или пересечение и редкий уровень — должны прийтись ровно на одну свечу.

- **Для состояния берите `>` или `<`** («выше средней»), а пересечение оставьте для того единственного события, ради которого и вход.
- **Дайте строке окно баров.** В её **Окне баров** выберите **в пределах** и число баров: строка будет считаться выполненной, если она выполнялась хотя бы на одной из последних N свечей.

## 2. Порог, до которого рынок не дошёл

RSI ниже 10, падение на 40% от максимума, объём в десять раз выше среднего: таких событий за период может просто не случиться. Панель почти-срабатываний называет условие, которое мешало чаще всего, — ослабьте его, возьмите свечи короче или период длиннее.

Отдельный случай — уровень цены. Условия сравнивают сырые значения, поэтому `CLOSE > 60000`, написанное для BTC, никогда не выполнится на ETH, а уровень одного года может оказаться далеко от цены другого. Сравнивайте цену с индикатором — со средней, каналом, максимумом последних N свечей.

## 3. У индикатора ещё нет данных

Фандинг, открытый интерес и другие фьючерсные ряды могут начинаться позже свечей. Пока у ряда нет значения, условие на нём ложно, и стратегия ждёт без всякой ошибки. Начните период после того, как ряд появился.

## 4. Вход срабатывает, а позиция не открывается

Если на графике пробного прогона есть сигналы без входа, условие выполнилось, но помешало что-то другое:

- **Не помещается размер.** Фиксированная сумма больше свободного капитала или размер от риска, маржа которого больше него, — и вход пропускается. Нажмите на такую свечу в отчёте, и он напишет: «Условие выполнилось, но расчёт размера дал ноль — не хватило свободного капитала или маржи».
- **Ордер или сетап, который так и не сработал:** лимитный ордер на вход, до которого цена не дошла, сетап, который ни разу не взвёлся, или стоп по неправильную сторону от входа.
- **Лимит ликвидности в режиме пропуска.** Ограничение доли объёма свечи по умолчанию урезает ордер до допустимого (**Урезать ордер**); выбрасывает его только **Пропустить сделку**.

## Что не даёт ноль сделок

- **Прогрев индикаторов.** Длинной средней нужна история до первого значения, и Janorium подгружает её из времени до начала периода. Позже начинает торговать только монета, у которой столько ранней истории нет.
- **Позиция, которая не закрывается.** Её закрывают в конце периода и считают сделкой.
- **Макс. открытых позиций, кулдаун и повторный вход.** Они уменьшают число сделок, но слой, который ещё не входил, войти может всегда.
- **Нет свечей.** Монета или период без данных заканчивают запуск ошибкой (`NO_CANDLES`), а не нулём сделок.
- **Фьючерсные данные на споте.** Спотовую стратегию с фандингом или открытым интересом не дадут сохранить.

## Всё равно ничего?

Вернитесь к стратегии, которая торгует, и меняйте по одной вещи, делая пробный прогон после каждой правки: правка, после которой сделок стало ноль, и есть причина. Хорошая основа — идея из мастера: эта входит на каждом пересечении двух средних, поэтому на любой монете торгует уже за несколько месяцев свечей:

> **Идея: Следовать за трендом**
>
> Торгует BTCUSDT на споте Binance по 4-часовым свечам.
>
> Покупает, когда экспоненциальная скользящая средняя EMA(20) пересекает EMA(50) снизу вверх, и вкладывает 50% свободного капитала.
>
> Закрывает сделку при убытке −6%. Также закрывает, когда EMA(20) пересекает EMA(50) сверху вниз.
>
> Каждый вход и каждый выход стоят 0.1% комиссии плюс 0.01% проскальзывания.
>
> [Открыть в мастере](https://janorium.com/strategies/new?idea=trend&src=guide:why-backtest-shows-zero-trades)

## Частые вопросы

### Почему в бэктесте нет ни одной сделки?

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

### Почему стратегия перестала торговать, когда я добавил условие?

Каждая строка группы «Все (AND)» должна выполниться на одной свече, поэтому новая строка может только убрать входы. Если новая строка — пересечение, она истинна лишь на одной свече: для состояния берите > или <, или дайте строке окно баров.

### Съедает ли длинный индикатор начало бэктеста?

Нет. Janorium подгружает историю, нужную индикатору, из времени до начала периода, поэтому у 200-дневной средней есть значение уже в первый день теста — если монета торговалась столько до него.
