Скилл hypothesis-test

Начальный 6 мин

Самая дорогая ошибка в проверке идеи это подогнать правила под прошлое и поверить красивой цифре.

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

Как установить

Скопируйте текст скилла и вставьте его в чат агента, добавив сверху такую строку:

Сохрани это как скилл с именем "hypothesis-test". Если не можешь сохранять скиллы, следуй этому в рамках нашего разговора.
hypothesis-test.SKILL.mdНажмите, чтобы скачать
Текст скилла
---
name: hypothesis-test
description: Проверка торговой идеи на истории в ATAS через MCP-сервер ATAS со стандартным отчётом: издержки, размер выборки, проверка вне выборки и сравнение со случайными входами. Используй, когда пользователь просит сделать бэктест, проверить сетап, паттерн или уровень, узнать, как часто что-то происходит («работает ли поглощение на вчерашнем POC», «проверь идею», «как часто цена возвращается к POC»). Не для сигналов на сегодня, точек входа и выставления ордеров.
compatibility: Нужны MCP-сервер ATAS, подключение к криптобирже и возможность запускать код для расчётов. Рыночные данные AI Connect отдаёт агенту по криптовалютам.
metadata:
  version: 0.2
  updated: 2026-11-05
---

# hypothesis-test

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

## Жёсткие правила

- Проверяй только те правила, которые подтвердил пользователь. Не добавляй, не убирай и не ужесточай фильтры, сессии и временные окна по своей инициативе. Предпочтения из более ранней части разговора не учитывай, если пользователь не повторил их для этой проверки.
- Используй только данные ATAS. Внешние сервисы и файлы бери, только если пользователь попросил об этом в этом же запросе, и назови источник в отчёте.
- Считай кодом (твой инструмент запуска кода). Не считай статистику в уме. Если запускать код нельзя, скажи об этом и ограничься количеством сигналов.
- Каждое изменение и допущение записывай в отчёт в раздел «Допущения и изменения», даже мелкое.
- Читай числа из инструментов. Никогда не оценивай их по скриншоту.

## 1. Зафиксируй правила

Заполни поля из запроса. О недостающем спроси один раз и предложи значение по умолчанию. Не начинай, пока пользователь не подтвердит.

| Поле | Пример | По умолчанию, если пользователь согласен |
|---|---|---|
| Инструмент и биржа | BTCUSDT, бессрочный фьючерс Binance | Нет, должен указать пользователь |
| Период баров | 5 минут | Нет, должен указать пользователь |
| Сетап | Бычье поглощение, касающееся POC предыдущей сессии | Нет, должен указать пользователь |
| Вход | Открытие следующего бара | Открытие следующего бара |
| Стоп | За лоу паттерна | Нет, должен указать пользователь |
| Цель | 1R | Нет, должен указать пользователь |
| Выход по времени | Закрыть в 20:00 UTC | Нет, должен указать пользователь |
| Фильтр времени суток | Только часы сессии США | Нет |
| Стороны | Лонг и шорт | Как следует из сетапа |
| История | Последние 60 дней | Всё, что может загрузить график |
| Издержки | Комиссия в % от объёма сделки, проскальзывание 1 тик на сторону | Комиссия из `commissions_list`, проскальзывание 1 тик на сторону |
| Фандинг | Учитывать для бессрочного фьючерса | Не учитывать и записать в допущения |

Если правило можно понять двумя способами, спроси. «Касается POC» требует определения в тиках.

## 2. Получи данные, не трогая графики пользователя

1. `workspace_get_overview`, затем `instruments_search` для инструмента.
2. Открой отдельный график: `modules_open` с `placement: "newTab"` и `tabName: "Hypothesis test"`. Не меняй период и глубину истории на графиках пользователя.
3. Задай глубину через `module_update_context` и `timeFrame: {"minutes": 5, "daysToLoad": N}`. Если `loaded` равно false, подожди и проверь снова. На длинных периодах загрузка может занять время.
4. Читай бары через `chart_get_bars`: `format: "table"`, только нужные `fields`, `count` до 2000. Листай назад через `to`. Отбрасывай последний бар, если он ещё может формироваться.
5. Уровни сессий: добавь на тестовый график Volume Profile & TPO (найди через `indicators_search`) и читай `indicators_get_values` с `levels: 0`, до 30 профилей за вызов, листая через `to`. Не пересчитывай POC и value area из баров.
6. Условия по футпринту: `chart_get_bars` с `footprint: true`, `footprintBars` ограничен 100 барами за вызов и считается от самого нового из возвращённых, так что проверяй их только на отрезке, который реально можешь прочитать, и говори, докуда он доходит. Сначала проверь футпринт: если на большинстве баров объём по уровням почти одинаковый, он распределён равномерно, такие уровни и POC использовать нельзя. Скажи об этом и назови дни, где данные нормальные.
7. Сетап, который можно выразить побарным скриптом, можно посчитать через `scripts_preview`: он считает по последним 20000 баров и ничего не сохраняет. Нужны Script Lab и разрешение на скрипты. При отказе используй бары.

Если ATAS не отдаёт рыночные данные инструмента, скажи, что через AI Connect они доступны по криптовалютам, и остановись, пока пользователь не выберет инструмент. Бары реплея и ATAS Sim недоступны, не ищи обходных путей.

Время баров в UTC. Криптовалюты торгуются круглосуточно, поэтому сессии задаются часами суток. Смещение графика бери из `chartTimeZoneOffset` и учитывай переход на летнее время, если сессия привязана к Нью-Йорку или Лондону.

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

## 3. Считай честно

- **Без заглядывания вперёд.** Сигнал существует только после закрытия его бара. Уровень существует только после закрытия сессии, которая его сформировала. Вход на следующем баре или позже.
- **Стоп и цель в одном баре:** считай стоп и сообщи, скольких сделок это коснулось.
- **Издержки:** комиссия и проскальзывание на каждую сделку, на входе и на выходе. Комиссию в процентах считай от объёма сделки по цене исполнения. Фандинг учитывай, только если пользователь попросил.
- **Открытые позиции:** одна позиция за раз, если пользователь не сказал иначе. Сообщи, сколько сигналов из-за этого пропущено.
- **Контракты:** у спота и бессрочного фьючерса ролловеров нет. Если инструмент с датой экспирации, отметь ролловеры внутри периода.
- **Бары не тики.** Входы и выходы лишь приближённо показывают, что получил бы настоящий ордер.

## 4. Сравни с чем-нибудь

- **Раздели по времени до того, как посмотришь на результат:** первые 70% это выборка, последние 30% проверка вне выборки. Сообщи обе части. Если вне выборки меньше 30 сделок, скажи, что она ничего подтвердить не может.
- **База для сравнения:** те же выходы и издержки на случайных входах в те же сессии, с числом повторов, достаточным для устойчивого результата. Покажи сетап рядом с этой базой и разброс прогонов. Если результат сетапа внутри разброса, пиши, что он не отличается от случайных входов, а не лучше или хуже их.
- **Подбор параметров:** не оптимизируй без просьбы. Если попросили, сообщи, сколько вариантов перебрал, и проверь выбранный вне выборки только один раз.

## 5. Выбери вердикт

Используй ровно один:

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

Никогда не пиши «работает», «прибыльно» или «доказано». Самый сильный вывод: идею стоит проверять дальше.

## 6. Отчёт

Используй этот формат. Результаты давай в R и в процентах от цены входа, в деньгах только если известен объём позиции.

```
Гипотеза: <одна строка>
Правила как проверены: <все поля>
Данные: <инструмент, биржа, период, первый и последний бар, часы, источник>
Допущения и изменения: <всё, что ты решил сам, или "нет">

                   Выборка   Вне выборки   Случайные входы
Сделки
Винрейт (диапазон 95%)
Средняя прибыль / убыток (R)
Матожидание после издержек (R)
Профит-фактор
Макс. просадка (R)
Самая длинная серия убытков

Издержки на сделку: <% и R>
Винрейт безубыточности для этих выходов: <%>
Стоп и цель в одном баре: <количество>
Пропущенные сигналы: <количество>
Доля прибыли от 3 лучших сделок: <%>
По месяцам: <сделки и матожидание>

Вердикт: <один из четырёх>
Почему: <два-три предложения с числами>
Что эта проверка не может сказать: <её настоящие ограничения>
Следующая проверка: <одно конкретное предложение>
```

## 7. Убери за собой

Спроси, оставить ли тестовый график. Если нет, закрой его через `modules_close`. Примеры сделок размечай только по просьбе пользователя (`LongPosition` / `ShortPosition`) и только на тестовом графике.

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

Как запустить

Используй hypothesis-test. BTCUSDT, 5 минут, вся загруженная история, только сессия США 9:30-16:00 по Нью-Йорку. Покупаю, когда в баре есть стопка из трёх и более уровней подряд с диагональным имбалансом в покупки: объём по ask на уровне больше объёма по bid на уровне ниже в 3 раза. Бар должен закрыться в верхней трети своего диапазона. Вход на открытии следующего бара, стоп за лоу сигнального бара, цель 1R, выход в 16:00 по Нью-Йорку. Комиссия 0,05% от объёма сделки на сторону, проскальзывание 0,01% на сторону.

Агент повторит правила и спросит о том, что можно понять по-разному:

Чат с ИИ-агентом
Вы

Используй hypothesis-test. BTCUSDT, 5 минут, вся загруженная история, только сессия США 9:30-16:00 по Нью-Йорку. Покупаю, когда в баре есть стопка из трёх и более уровней подряд с диагональным имбалансом в покупки: объём по ask на уровне больше объёма по bid на уровне ниже в 3 раза. Бар должен закрыться в верхней трети своего диапазона. Вход на открытии следующего бара, стоп за лоу сигнального бара, цель 1R, выход в 16:00 по Нью-Йорку. Комиссия 0,05% от объёма сделки на сторону, проскальзывание 0,01% на сторону.

ИИ-агент

ATAS доступен. До начала проверки нужно подтвердить недостающие детали - этого требует ваша инструкция hypothesis-test:

  1. Биржа и контракт: на открытом графике BTCUSDT Binance Futures. Использовать этот бессрочный фьючерс?
  2. Стоп «за лоу»: предлагаю на один минимальный тик ниже лоу сигнального бара.
  3. Имбаланс: предлагаю ask ≥ 3 × bid уровнем ниже; при нулевом bid и положительном ask считать имбалансом. Уровни - соседние минимальные тики инструмента, без объединения цен. Подходит?
  4. Сессия: 09:30-16:00 Нью-Йорка с учётом летнего времени. Проверять каждый календарный день, включая выходные, или только понедельник-пятницу? Предлагаю каждый день, без дополнительных фильтров.
  5. История: под «всей загруженной» понимать глубину текущего BTC-графика, которую воспроизведу на отдельном тестовом графике?
  6. Исполнение: предлагаю одну позицию одновременно, без фандинга; 1R - расстояние от цены входа с проскальзыванием до стопа, цель до вычета издержек. Последний допустимый вход - 15:55, выход оставшейся позиции в 16:00.

Остальные правила зафиксированы: 5 минут, только лонг, стопка ≥3 имбалансов, закрытие в верхней трети, вход на следующем открытии, комиссия 0,05% и проскальзывание 0,01% на каждую сторону.

Подтвердите предложенные значения или укажите изменения.

Это проверка на истории, прошлые результаты не гарантируют будущих, решение принимает трейдер.

После подтверждения агент считает на графике в новой вкладке «Hypothesis test», ваши графики остаются как были. Здесь он остановился ещё раз: футпринт BTCUSDT в ATAS идёт с шагом цены 10 USDT, а подтверждённое правило говорило о минимальном тике 0,1 USDT. Уточнили, что соседние уровни идут через 10 USDT, а стоп стоит на 10 USDT ниже лоу.

Что вы получите

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

Полный ответ агента
Чат с ИИ-агентом
Вы

Бери уровни с шагом футпринта на графике, 10 USDT: три соседних уровня это три цены подряд с этим шагом. Стоп ставь на 10 USDT ниже лоу сигнального бара. Остальное как подтвердил. Начинай.

ИИ-агент

Гипотеза: покупка после ≥3 соседних диагональных имбалансов 3:1 и закрытия бара в верхней трети.

Правила как проверены: BTCUSDT Binance Futures, бессрочный контракт, 5 минут; уровни через 10 USDT, ask ≥ 3 × bid уровнем ниже, положительный ask при нулевом bid учитывается. Лонг на следующем открытии; стоп на 10 USDT ниже лоу сигнального бара; цель 1R от исполнения входа. Каждый день, 09:30-16:00 Нью-Йорка с переходом на зимнее время; последний вход 15:55, принудительный выход в 16:00. Одна позиция одновременно. Комиссия 0,05%, проскальзывание 0,01% на каждую сторону; без фандинга.

Данные: только ATAS, Binance Only Market Data. 18 113 закрытых баров, 04.09.2026 00:00-05.11.2026 21:20 UTC; 63 сессии, пропусков нет. Подтверждённая глубина загружена полностью. Футпринт прочитан по всему периоду порциями до 100 баров.

Допущения и изменения: шаг уровней и отступ стопа изменены по вашему указанию. Формирующийся бар исключён. До расчёта установлена граница 70/30: 18.10.2026 00:35 UTC. Верхняя треть включает её нижнюю границу; бар нулевого диапазона не считается сигналом. Гэп через стоп исполняется по открытию с проскальзыванием. Случайная база - 2000 прогонов с тем же числом попыток входа по каждому дню, стопом за предыдущим баром и теми же выходами; попытки с входом ниже стопа пропускаются. Число исполненных сделок поэтому различается.

Показатель Выборка Вне выборки Случайные входы¹
Сделки 239 109 306 / 155
Винрейт, 95% интервал 42,3% [36,2-48,6] 40,4% [31,6-49,8] 16,7% / 17,2%
Средняя прибыль / убыток, R +0,51 / −1,34 +0,53 / −1,45 +0,40 / −2,49; +0,42 / −2,53
Матожидание после издержек, R −0,557 −0,651 −2,013 / −2,022
Матожидание, % цены входа −0,1134% −0,1139% −0,1257% / −0,1284%
Профит-фактор² 0,279 0,246 0,032 / 0,034
Макс. просадка, R 133,67 70,94 615,64 / 312,42
Самая длинная серия убытков 11 8 26 / 19

¹ Медианы прогонов: выборка / вне выборки. Центральные 95% прогонов по матожиданию: [−2,200; −1,838] R / [−2,282; −1,782] R. Средние результаты двух половин по 1000 прогонов различались менее чем на 0,004R.
² По суммам результатов в R.

Средняя прибыль / убыток в процентах входа: выборка +0,1823% / −0,3298%, вне выборки +0,1996% / −0,3261%.

Издержки на сделку: в среднем 0,1200%, или 0,597R; по частям 0,591R / 0,611R.
Винрейт безубыточности по наблюдаемым средним выигрышам и потерям: 72,7%.
Стоп и цель в одном баре: 0.
Пропущенные сигналы из-за позиции: 180 из 528.
Доля прибыли от трёх лучших сделок: 3,57% суммы положительных результатов; общий итог отрицательный, доля от чистой прибыли неприменима.

Месяц Сделки Матожидание, R % входа
Сентябрь 147 −0,484 −0,1070%
Октябрь 170 −0,659 −0,1177%
Ноябрь, по 5-е 31 −0,675 −0,1220%

Вердикт: Преимущества не видно.

Сетап выше случайной базы по R, однако после издержек матожидание отрицательное в обеих частях: −0,557R и −0,651R. Вне выборки 109 сделок; её результат также отрицательный.

Что эта проверка не может сказать: баровые исполнения не воспроизводят очередь лимитных ордеров, реальные спреды и движение внутри бара; фандинг исключён. Просадка выражена в суммах R, без модели размера позиции.

Следующая проверка: повторить неизменённые правила на новом, ранее не использованном периоде.

Оставить тестовый график Hypothesis test 2 или закрыть?

Это проверка на истории, прошлые результаты не гарантируют будущих, решение принимает трейдер.

Вердиктов четыре: данных недостаточно, преимущества не видно, слабое подтверждение, стоит проверять дальше. Самый сильный из них последний: дальше него проверка на истории не идёт. Идея из примера получила «преимущества не видно»: она лучше случайных входов, но после издержек матожидание отрицательное в обеих частях периода. Комиссия и проскальзывание в процентах съели в среднем 0,6 R на сделку.

Что можно задать

Поле Что указать Если не указать
Инструмент, период, сетап, стоп, цель Ваши правила Агент спросит
Вход Когда вы заходите Открытие следующего бара
Выход по времени Когда сделка должна закончиться Конец сессии
Фильтр сессии Например, только Нью-Йорк Без фильтра
История Насколько далеко назад Всё, что загрузит график
Издержки Ваши комиссия и проскальзывание Ваша комиссия из ATAS и 1 тик на сторону
Фандинг Учитывать ли его для бессрочного фьючерса Не учитывается

Условие можно описать и по футпринту, как в примере: стопка имбалансов, дельта на уровне, где закрылся бар.

Что нужно

  • Подключение к криптобирже с футпринтом, если условие по футпринту
  • Агент, который умеет запускать код

Это проверка на истории. Прошлые результаты не гарантируют будущих, торговое решение принимаете вы.