Принял. Убыточные часы ранжируются аналогично прибыльным, но относительно **максимального убытка** (самого отрицательного часа) за всю торговлю.
---
##
Инструкция: как составлять таблицу для магика (исправленная версия с ранжированием убытков)
### 1. Исходные данные
- **Магик** — идентификатор торговой системы
- **Лоты**: `0.01`, `0.02`, `0.03` — приводятся к лоту `0.01` (результат делится на лот/0.01)
- **Дробленые сделки** (один `Position ID` с несколькими строками) — **исключаются полностью**
- **Ручные сделки** (магик `0`) — **исключаются**
---
### 2. Глобальная шкала
Для **всех часов** во **всех днях** используется **единая шкала**, привязанная к:
- **Максимальной прибыли** (`max_profit`) — самый прибыльный час за всю торговлю
- **Максимальному убытку** (`max_loss`) — самый убыточный час за всю торговлю
#### 2.1. Алгоритм определения шкалы
1. Найти **максимальную прибыль** среди всех часов:
`max_profit = max(результат всех часов)`
2. Найти **максимальный убыток** (самое отрицательное значение) среди всех часов:
`max_loss = min(результат всех часов)`
3. Для **прибыльных часов** (результат > 0):
`процент = (результат / max_profit) * 100%`
4. Для **убыточных часов** (результат < 0):
`процент = (результат / max_loss) * 100%`
(здесь `max_loss` — отрицательное число, поэтому процент будет положительным)
5. Для **часов без сделок** — `



`
---
### 2.2. Шкала для всех часов (и прибыльных, и убыточных)
| % от максимума | Прибыльные часы | Убыточные часы |
|----------------|-----------------|----------------|
| 80–100% |



| 



|
| 60–80% |



| 



|
| 40–60% |



| 



|
| 20–40% |



| 



|
| 5–20% |



| 



|
| 0–5% |



| 



|
**Примечание:** если в убыточном часе результат = 0 (нет сделок) — он не считается убыточным, а идет как пустой.
---
### 3. Алгоритм составления таблицы по часам
1. **Отфильтровать сделки** (п. 1)
2. **Сгруппировать по часам** (по `Дата открытия` + `Время открытия`)
3. **Для каждого часа**:
- Посчитать суммарный результат ($)
4. **Найти глобальные максимумы**:
- `max_profit = max(результат всех часов)`
- `max_loss = min(результат всех часов)`
5. **Для каждого часа**:
- Если результат > 0:
`процент = (результат / max_profit) * 100%`
- Если результат < 0:
`процент = (результат / max_loss) * 100%` (результат отрицательный, max_loss отрицательный → процент положительный)
- Если результат = 0 (нет сделок):
присвоить `



`
6. **Присвоить квадратики** по шкале из п. 2.2
---
### 4. Формат вывода
```
##
Таблица для магика [номер] по часам
**Глобальный максимум прибыли: +[сумма]$ ([день], [час])**
**Глобальный максимум убытка: -[сумма]$ ([день], [час])**
| Дата | Часы | Результат ($) | % от максимума | Квадратики |
|------|------|---------------|----------------|------------|
| 16.03 | 08:00–09:00 | -15.99 | 69.6% |



|
| 17.03 | 11:00–12:00 | +12.34 | 57.5% |



|
| 18.03 | 11:00–12:00 | +18.45 | 86.0% |



|
| 19.03 | 12:00–13:00 | +21.45 | 100% |



|
| 19.03 | 21:00–22:00 | -22.98 | 100% |



|
| 20.03 | 21:00–22:00 | -12.53 | 54.5% |



|
| ... | ... | ... | ... | ... |
```
---
### 5. Пример расчета
**Исходные данные:**
- Глобальный максимум прибыли: +21.45$ (четверг, 12:00–13:00)
- Глобальный максимум убытка: -22.98$ (четверг, 21:00–22:00)
**Час 11:00–12:00 в среду:**
- Результат: +18.45$
- Процент: 18.45 / 21.45 * 100% = 86.0%
- Квадратики:




**Час 21:00–22:00 в пятницу:**
- Результат: -12.53$
- Процент: (-12.53) / (-22.98) * 100% = 54.5%
- Квадратики:



(40–60%)
**Час 08:00–09:00 в понедельник:**
- Результат: -15.99$
- Процент: (-15.99) / (-22.98) * 100% = 69.6%
- Квадратики:



(60–80%)
**Час 09:00–10:00 в пятницу:**
- Результат: +5.13$
- Процент: 5.13 / 21.45 * 100% = 23.9%
- Квадратики:



(20–40%)
**Час 04:00–05:00 в любой день:**
- Результат: 0$ (нет сделок) →




---
### 6. Особые случаи
| Ситуация | Действие |
|----------|----------|
| В часе нет сделок |



|
| В часе есть и прибыльные, и убыточные сделки (общий результат может быть любым) | считается общий результат часа |
| Лот 0.02 или 0.03 | привести к 0.01 |
| Один Position ID с несколькими строками | исключить полностью |
| Магик 0 | исключить |
---
Этот бэкап можно использовать для составления таблиц для любых магиков в следующих чатах.
---
##
### 1. Исходные данные
- **Магик** — идентификатор торговой системы
- **Лоты**: `0.01`, `0.02`, `0.03` — приводятся к лоту `0.01` (результат делится на лот/0.01)
- **Дробленые сделки** (один `Position ID` с несколькими строками) — **исключаются полностью**
- **Ручные сделки** (магик `0`) — **исключаются**
---
### 2. Глобальная шкала
Для **всех часов** во **всех днях** используется **единая шкала**, привязанная к:
- **Максимальной прибыли** (`max_profit`) — самый прибыльный час за всю торговлю
- **Максимальному убытку** (`max_loss`) — самый убыточный час за всю торговлю
#### 2.1. Алгоритм определения шкалы
1. Найти **максимальную прибыль** среди всех часов:
`max_profit = max(результат всех часов)`
2. Найти **максимальный убыток** (самое отрицательное значение) среди всех часов:
`max_loss = min(результат всех часов)`
3. Для **прибыльных часов** (результат > 0):
`процент = (результат / max_profit) * 100%`
4. Для **убыточных часов** (результат < 0):
`процент = (результат / max_loss) * 100%`
(здесь `max_loss` — отрицательное число, поэтому процент будет положительным)
5. Для **часов без сделок** — `
---
### 2.2. Шкала для всех часов (и прибыльных, и убыточных)
| % от максимума | Прибыльные часы | Убыточные часы |
|----------------|-----------------|----------------|
| 80–100% |
| 60–80% |
| 40–60% |
| 20–40% |
| 5–20% |
| 0–5% |
**Примечание:** если в убыточном часе результат = 0 (нет сделок) — он не считается убыточным, а идет как пустой.
---
### 3. Алгоритм составления таблицы по часам
1. **Отфильтровать сделки** (п. 1)
2. **Сгруппировать по часам** (по `Дата открытия` + `Время открытия`)
3. **Для каждого часа**:
- Посчитать суммарный результат ($)
4. **Найти глобальные максимумы**:
- `max_profit = max(результат всех часов)`
- `max_loss = min(результат всех часов)`
5. **Для каждого часа**:
- Если результат > 0:
`процент = (результат / max_profit) * 100%`
- Если результат < 0:
`процент = (результат / max_loss) * 100%` (результат отрицательный, max_loss отрицательный → процент положительный)
- Если результат = 0 (нет сделок):
присвоить `
6. **Присвоить квадратики** по шкале из п. 2.2
---
### 4. Формат вывода
```
##
**Глобальный максимум прибыли: +[сумма]$ ([день], [час])**
**Глобальный максимум убытка: -[сумма]$ ([день], [час])**
| Дата | Часы | Результат ($) | % от максимума | Квадратики |
|------|------|---------------|----------------|------------|
| 16.03 | 08:00–09:00 | -15.99 | 69.6% |
| 17.03 | 11:00–12:00 | +12.34 | 57.5% |
| 18.03 | 11:00–12:00 | +18.45 | 86.0% |
| 19.03 | 12:00–13:00 | +21.45 | 100% |
| 19.03 | 21:00–22:00 | -22.98 | 100% |
| 20.03 | 21:00–22:00 | -12.53 | 54.5% |
| ... | ... | ... | ... | ... |
```
---
### 5. Пример расчета
**Исходные данные:**
- Глобальный максимум прибыли: +21.45$ (четверг, 12:00–13:00)
- Глобальный максимум убытка: -22.98$ (четверг, 21:00–22:00)
**Час 11:00–12:00 в среду:**
- Результат: +18.45$
- Процент: 18.45 / 21.45 * 100% = 86.0%
- Квадратики:
**Час 21:00–22:00 в пятницу:**
- Результат: -12.53$
- Процент: (-12.53) / (-22.98) * 100% = 54.5%
- Квадратики:
**Час 08:00–09:00 в понедельник:**
- Результат: -15.99$
- Процент: (-15.99) / (-22.98) * 100% = 69.6%
- Квадратики:
**Час 09:00–10:00 в пятницу:**
- Результат: +5.13$
- Процент: 5.13 / 21.45 * 100% = 23.9%
- Квадратики:
**Час 04:00–05:00 в любой день:**
- Результат: 0$ (нет сделок) →
---
### 6. Особые случаи
| Ситуация | Действие |
|----------|----------|
| В часе нет сделок |
| В часе есть и прибыльные, и убыточные сделки (общий результат может быть любым) | считается общий результат часа |
| Лот 0.02 или 0.03 | привести к 0.01 |
| Один Position ID с несколькими строками | исключить полностью |
| Магик 0 | исключить |
---
Этот бэкап можно использовать для составления таблиц для любых магиков в следующих чатах.