Stage 05.8 - quantity normalization by exchange rules
This commit is contained in:
70
docs/stages/stage-05_8-quantity_normalization.md
Normal file
70
docs/stages/stage-05_8-quantity_normalization.md
Normal file
@@ -0,0 +1,70 @@
|
||||
# Stage 05.8 — Quantity Normalization by Exchange Rules
|
||||
|
||||
# Stage 05.8 — Нормализация количества по правилам биржи
|
||||
|
||||
## Кратко
|
||||
|
||||
Добавлена единая нормализация quantity во всем flow создания и редактирования ордера.
|
||||
|
||||
Количество теперь всегда:
|
||||
- соответствует stepSize
|
||||
- не меньше minQty
|
||||
- учитывает minNotional
|
||||
- отображается без float-артефактов
|
||||
|
||||
---
|
||||
|
||||
## Что сделано
|
||||
|
||||
- Нормализация quantity вынесена в сервис (`OrderDraftsService`)
|
||||
- Одинаковая логика для preset и ручного ввода
|
||||
- Для LIMIT без цены используется рыночный reference price
|
||||
- Убраны хвосты типа `0.0050000003`
|
||||
- Количество стабильно на всех шагах FSM
|
||||
|
||||
---
|
||||
|
||||
## Поведение
|
||||
|
||||
### Малое значение
|
||||
Если пользователь вводит слишком маленькое количество:
|
||||
- система автоматически корректирует до допустимого (если возможно)
|
||||
- иначе показывает ошибку
|
||||
|
||||
### LIMIT без цены
|
||||
- minNotional считается через рынок (ask/bid)
|
||||
- не нужно ждать ввода цены
|
||||
|
||||
---
|
||||
|
||||
## Затронутые файлы
|
||||
|
||||
- app/src/trading/orders/service.py
|
||||
- app/src/telegram/handlers/trade/new_order_flow.py
|
||||
|
||||
---
|
||||
|
||||
## Changelog
|
||||
|
||||
### Added
|
||||
- Нормализация quantity по stepSize, minQty, minNotional
|
||||
- Автокоррекция при ручном вводе
|
||||
|
||||
### Changed
|
||||
- Flow quantity переведен на normalize_entry_quantity
|
||||
- Preset quantity проходит через те же правила
|
||||
|
||||
### Fixed
|
||||
- Убраны float-артефакты
|
||||
- Исправлена рассинхронизация quantity между шагами
|
||||
|
||||
---
|
||||
|
||||
## Breaking Changes
|
||||
|
||||
- quantity теперь может автоматически изменяться системой
|
||||
(например: 0.000001 → 0.0002)
|
||||
|
||||
- normalize_quantity больше не используется как финальный результат
|
||||
|
||||
- для LIMIT без цены используется reference price
|
||||
Reference in New Issue
Block a user