# День 3. Формулировка бота на бумаге — до того как пишешь код

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

---

## Зачем останавливаться перед клавиатурой

Это самая сильная привычка которую тебе предстоит выработать. И самая невидимая для зрителя со стороны.

Программист видит интересную задачу — садится и пишет код. Так устроена голова. Код — это **активность**, и активность создаёт ощущение прогресса. Бумага — это **сидение и думание**, и думание ощущается как простой.

Ловушка в том что **бумага дешёвая, а код дорогой**. Изменить одно предложение в текстовом файле занимает 10 секунд. Изменить логику когда у тебя уже написано 800 строк, тесты, конфиг, бэктест — занимает дни. И большинство ошибок становятся видны только когда ты пытаешься объяснить идею **простыми словами**. Если ты не можешь объяснить — значит идею ещё не сформулировал, ты просто торопишься к коду.

Этот день — **проверка на ясность мышления**. Если в конце вечера ты не можешь рассказать о своём боте за две минуты любому человеку — значит ты сам не до конца понимаешь что строишь. Возвращайся к бумаге.

Сегодня:

1. Шаблон одного предложения который описывает любого нормального бота
2. Четыре правила которые должны быть выписаны до кода
3. Простая блок-схема цикла бота — на бумаге, не в Visio
4. Частые ловушки именно при формулировке

---

## Шаблон одного предложения

Это формула из мира продуктового маркетинга, перенесённая в область разработки систем. Она звучит банально — пока не попробуешь её применить к своему боту. Тогда оказывается что **половину вещей** ты сам не определил.

Шаблон:

```
Мой бот будет [конкретный измеримый результат]
используя [архетип + конкретный сигнал на конкретном таймфрейме]
без [главный риск который я избегаю]
чтобы я мог [настоящая цель: время / спокойствие / рост капитала]
в пределах [реалистичный временной горизонт + допустимая просадка].
```

Пять блоков. У каждого жёсткая роль. Разберём по очереди.

### Блок 1. Конкретный измеримый результат

Это **не** «зарабатывать деньги». «Заработать деньги» — это не результат, это надежда. Конкретный измеримый результат звучит так:

- «закрывать 3-5 сделок в неделю»
- «удерживать win-rate выше 50% на горизонте 100 сделок»
- «расти на 8-12% в месяц при просадке не более 15%»
- «генерировать 40-60 сигналов в месяц на тестовом счёте»

Видишь разницу? Тут **измеримая цифра** на которую можно посмотреть и сказать «да или нет, цель достигнута».

Если цифру тяжело назначить — выбирай **процесс**, не **прибыль**. Например, «закрывать 3-5 сделок в неделю» — это о процессе. Прибыль вторична на этапе обучения.

### Блок 2. Архетип + конкретный сигнал на конкретном таймфрейме

Здесь ты вытаскиваешь то что выбрал во второй день. Не «трендовая стратегия», а **конкретно**:

- «трендовая на 4-часовом таймфрейме, сигнал — пересечение быстрой и медленной скользящих»
- «контр-трендовая на 1-часовом таймфрейме, сигнал — отскок от уровня двух стандартных отклонений по Bollinger Bands»
- «парная на дневном таймфрейме, сигнал — выход спреда между BTC и ETH за исторический коридор»

Заметь — никаких **конкретных чисел** (период скольки-баров, сколько отклонений). Числа подбираются позже, осознанно. На бумаге достаточно **тип сигнала**.

### Блок 3. Главный риск который я избегаю

Этот блок — самый важный, и он самый незаметный. Он определяет **что бот делает по-другому, чем большинство аналогов**.

Примеры:

- «без удержания позиций через выход важных новостей» — бот закрывается перед FOMC, перед CPI, перед крупными новостями
- «без работы на праздничных днях» — Рождество, Новый год, китайский Новый год — бот выключен
- «без открытия более одной позиции одновременно» — никогда нет двух открытых сделок
- «без работы при объёме ниже среднего за последние 24 часа» — на тонком рынке бот спит
- «без переоптимизации параметров чаще раза в квартал» — раз в три месяца, не чаще

Хороший бот **отказывается** от каких-то возможностей. Это **признак** хорошей системы. Бот который пытается «торговать всегда и везде» — безнадёжен.

### Блок 4. Настоящая цель

Это **зачем** ты вообще это делаешь. И тут будь честен с собой.

Распространённые честные ответы:

- «чтобы спать спокойно зная что я не пропустил движение пока работал на основной работе»
- «чтобы тратить 30 минут в день на проверку логов вместо 4 часов на чтение чатов»
- «чтобы постепенно вырастить капитал в 10 раз за два года и доказать себе что это работает»
- «чтобы пройти честный путь алготрейдинга и понять подходит ли мне эта ниша вообще»

Распространённые **нечестные** ответы (с которых начинается провал):

- «бросить работу через полгода»
- «купить машину к лету»
- «обогнать рынок»
- «стать миллионером»

Распознать честный или нечестный ответ просто: **может ли бот эту цель реально дать?** Спокойно спать — может. Купить машину к лету — нет, это вопрос статистики и удачи на коротком горизонте.

### Блок 5. Временной горизонт и просадка

Здесь ты заранее **прошиваешь** в систему толерантность к боли.

Пример: «в пределах 6 месяцев тестирования при просадке не более 20% от стартового капитала». Это значит — ты заранее **разрешил себе** просесть на 20% и не паниковать. И заранее **обозначил себе** что через 6 месяцев ты примешь решение, не раньше.

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

### Полный пример

Собираем всё вместе. Учебный пример (не наш, не наша стратегия):

> «Мой бот будет закрывать 3-5 сделок в неделю используя трендовую стратегию на 4-часовом таймфрейме с пересечением скользящих, без удержания позиций через выход важных новостей, чтобы я мог тратить 30 минут в день на просмотр логов вместо 4 часов на чтение чатов, в пределах 6 месяцев тестирования при просадке не более 20% от стартового капитала.»

Прочитай вслух. Если понятно даже человеку который ничего не знает о трейдинге — формулировка хорошая. Если режет ухо или непонятно — переписывай.

---

## Четыре правила на бумаге

После одного предложения мы спускаемся на уровень глубже. Четыре правила — это контракт между тобой и ботом.

### Правило 1. Условия входа

Что должно быть **истинно** чтобы бот открыл сделку. Полный список условий, без исключений.

Шаблон:

```
ВХОД:
- Сигнал X произошёл
- И сигнал Y подтвердил
- И фильтр Z разрешает
- И капитал свободен (нет открытой позиции)
- И время не запрещённое (см. правило 4)
```

Например:

```
ВХОД:
- Быстрая скользящая пересекла медленную снизу вверх
- И объём последней свечи выше среднего за 24 часа
- И ATR (волатильность) выше минимального порога — иначе шум
- И нет открытой позиции
- И время с 9:00 до 22:00 UTC, не выходной
```

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

### Правило 2. Условия выхода

Когда бот **закрывает** сделку. Тоже полный список — потому что выход — это **половина успеха**, а большинство людей думают только о входе.

Шаблон:

```
ВЫХОД:
- Цель прибыли достигнута (тейк-профит)
- ИЛИ потеря достигла лимита (стоп-лосс)
- ИЛИ обратный сигнал появился (реверс)
- ИЛИ время в позиции превысило максимум
- ИЛИ приближается выход важной новости
```

Хорошие боты часто имеют **3-5 условий выхода**. Любое из них срабатывает — закрытие. Если бот думает «подожду ещё» — это признак что условия выхода не определены чётко.

### Правило 3. Управление риском

Это **сколько** бот рискует. Самый важный кусок. Без него любой умный сигнал сольёт капитал.

Шаблон:

```
РИСК:
- Размер одной позиции = X% от текущего капитала (типично 0.5-2%)
- Стоп-лосс = Y% от цены входа (типично 1-3%)
- Максимальная просадка за день = Z% (типично 5-10%) — после неё бот спит до завтра
- Максимум одновременно открытых позиций = N (для первого бота — 1)
- Серия из K убытков подряд = пауза на M часов (типично 5 убытков → пауза 24 ч)
```

И снова — **на бумаге без чисел**. Числа подбираются осознанно при тестировании.

### Правило 4. Аварийный стоп

Что выключает бота **полностью**, не просто пропускает сделку.

Шаблон:

```
АВАРИЙНЫЙ СТОП:
- Просадка от пика > 20% — бот выключается, ручной запуск
- Серия из K технических ошибок API подряд — бот выключается
- Отсутствие данных от биржи > N минут — бот выключается
- Команда от меня (telegram-бот / ручной флаг) — бот выключается
```

Это финальный предохранитель. Когда что-то очень плохо — бот должен **уметь сдаться**, а не «героически продолжать торговать в шторм».

---

## Простая блок-схема на бумаге

Возьми лист А4 и нарисуй цикл бота от руки. Не в Visio, не в draw.io. **Рукой**, на бумаге, шариковой ручкой. Это важно — рука думает иначе чем мышь.

Минимальный цикл:

```
[ Старт каждые N минут ]
        ↓
[ Получить свежие свечи + текущую цену ]
        ↓
[ Проверить: есть ли открытая позиция? ]
        ↓                   ↓
       ДА                  НЕТ
        ↓                   ↓
[ Проверить ВЫХОД ]    [ Проверить ВХОД ]
        ↓                   ↓
[ Все условия?]        [ Все условия?]
        ↓                   ↓
[ Закрыть ]            [ Открыть ]
        ↓                   ↓
[ Записать в лог ]     [ Записать в лог ]
        ↓                   ↓
[ Спать до следующего тика ]
```

Семь блоков. Не больше. Не меньше. Если у тебя на блок-схеме **меньше** — что-то ты не подумал. Если **больше** — ты усложняешь раньше времени.

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

---

## Частые ошибки именно сегодня

1. **Пропустить день три и сразу прыгнуть к коду.** Это самая массовая ошибка. Человек прочитал «формулировка на бумаге» — подумал «это не для меня, я уже знаю что хочу делать» — и сел писать код. Через две недели приходит назад и переделывает. Не пропускай. Полтора часа на бумаге сегодня экономят два-три дня кода завтра.

2. **Написать одно предложение и одно правило, на этом успокоиться.** Полнота важна. Все четыре правила должны быть на бумаге, даже если последнее (аварийный стоп) ощущается «параноидальным». Особенно последнее.

3. **Поставить конкретные числа уже сегодня.** Не надо. На бумаге — типы сигналов и логика. Числа — следующий этап (день 4 и далее), и они должны быть **обоснованы тестированием**, а не интуицией.

4. **Описывать слишком сложно.** Если твоё одно предложение получается на 40 слов и три придаточных — ты ещё не сформулировал, ты усложняешь. Резюме того же примера на 25 слов: «Бот закрывает 3-5 сделок в неделю по 4-часовому тренду BTC, не торгует через важные новости, цель — экономить мне 4 часа в день, горизонт 6 месяцев, просадка до 20%.» Это ровно то же что и развёрнутый пример выше, но проще.

5. **Описывать слишком абстрактно.** «Бот будет реагировать на рыночные условия и принимать оптимальные решения» — это пустые слова. Их нельзя проверить, нельзя превратить в код, нельзя оценить. Конкретность побеждает.

6. **Не показать формулировку никому.** Лучший тест — прочитать **вслух другому человеку** который не разбирается в трейдинге. Если он переспрашивает «что значит этот блок» — переписывай. Если кивает — формулировка работает.

---

## Задание на сегодня

Письменно, в твой рабочий блокнот:

- [ ] **Одно предложение** твоего бота — заполнено по шаблону пяти блоков, не больше 50 слов
- [ ] **Правило входа** — список из 3-5 условий
- [ ] **Правило выхода** — список из 3-5 условий
- [ ] **Правило риска** — пять параметров (без чисел, на бумаге типы)
- [ ] **Правило аварийного стопа** — что выключает бота полностью
- [ ] **Блок-схема** основного цикла, нарисована рукой на бумаге
- [ ] **Блок-схема** аварийного стопа, отдельно
- [ ] **Прочитал вслух** одно предложение и четыре правила другому человеку (партнёру, другу, родителю — любому). Записал что переспросил.

В Telegram канал короткое сообщение:

```
День 3 — готово.

Одно предложение моего бота:
[вставь своё предложение]

Самое сложное было сформулировать: [блок 1 / 2 / 3 / 4 / 5]
```

---

## Что завтра

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

К концу дня 4 у тебя будет работающий бот на тестовом счёте. Не идеальный. Не «зарабатывающий деньги». Просто **запускающийся и делающий сделки** по твоим правилам. Это огромная разница от того что было в начале недели.

До завтра.


---


# Домашнее задание — День 3

> Главная задача дня — **не написать ни одной строчки кода**. Только бумага и голова.

## Чек-лист

Письменно, в твой рабочий блокнот:

- [ ] **Одно предложение** моего бота, заполненное по шаблону пяти блоков (≤ 50 слов)
- [ ] **Правило входа** — 3-5 условий списком
- [ ] **Правило выхода** — 3-5 условий списком
- [ ] **Правило риска** — пять параметров (на бумаге без чисел, только типы)
- [ ] **Правило аварийного стопа** — что выключает бота полностью
- [ ] **Блок-схема** основного цикла бота, нарисована рукой на бумаге
- [ ] **Блок-схема** аварийного стопа, отдельно
- [ ] **Прочитано вслух** одно предложение и четыре правила другому человеку, записаны вопросы которые он задавал

---

## Шаблон одного предложения для копирования в блокнот

```
Мой бот будет ___________________ (конкретный измеримый результат)

используя ___________________ (архетип + конкретный сигнал на конкретном таймфрейме)

без ___________________ (главный риск который я избегаю)

чтобы я мог ___________________ (настоящая цель)

в пределах ___________________ (временной горизонт + допустимая просадка).
```

---

## Шаблон четырёх правил

```
ПРАВИЛО 1. УСЛОВИЯ ВХОДА
бот открывает позицию, когда:
1. ________________________________
2. ________________________________
3. ________________________________
4. (опционально) __________________
5. (опционально) __________________

ПРАВИЛО 2. УСЛОВИЯ ВЫХОДА
бот закрывает позицию, когда (ИЛИ):
1. ________________________________
2. ________________________________
3. ________________________________
4. (опционально) __________________
5. (опционально) __________________

ПРАВИЛО 3. УПРАВЛЕНИЕ РИСКОМ
- Размер позиции: ___% от капитала
- Стоп-лосс: ___% от цены входа
- Дневная просадка лимит: ___%
- Максимум одновременных позиций: ___
- Серия убытков → пауза на: ___ часов

ПРАВИЛО 4. АВАРИЙНЫЙ СТОП
бот выключается полностью, когда:
1. ________________________________
2. ________________________________
3. ________________________________
4. ________________________________
```

---

## Самопроверка перед сном

Закрой блокнот, отойди от компьютера, и попробуй ответить **по памяти** на три вопроса:

1. **Что именно делает мой бот?** (Должен ответить за 30 секунд одним предложением.)
2. **Когда мой бот не торгует?** (Условия выхода + аварийный стоп.)
3. **Сколько я готов потерять прежде чем выключить эксперимент?** (Дневной лимит + общий лимит.)

Если на любой из этих вопросов ты «зависаешь» — открывай блокнот и **дописывай**. Голова должна знать ответы автоматически. Это и есть готовность к коду.

---

## Что отправить в общий чат

```
День 3 — готово.

Одно предложение моего бота:
[вставь своё предложение целиком]

Самое сложное было сформулировать:
[блок 1 / 2 / 3 / 4 / 5 — выбери и опиши почему]
```

---

## Если ты залип

**Не получается одно предложение?** Это нормально для первого раза. Попробуй так: напиши **три предложения** про бота, потом сожми в одно. Если ужать не получается — значит у тебя несколько разных идей перепутаны, и **выбирай одну** для первого бота.

**Не получается выписать пять условий входа?** Значит твой сигнал слишком общий. Спроси себя: «при каких **рыночных** условиях я НЕ хочу чтобы бот торговал, даже если основной сигнал есть?» Эти ответы — дополнительные фильтры.

**Не получается определить размер позиции?** Возьми безопасный для первого бота: 1% капитала на сделку, стоп-лосс 2%, максимум 1 открытая позиция. Это не оптимально, но это **не убьёт** твой счёт. Оптимизация позже.

**Не получается рисовать блок-схему?** Семь блоков с цикла дня (см. урок). Скопируй структуру, замени названия на свои.

---

До завтра.
