We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/TheMacroeconomicDao/bybit-ai-trader'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
# Исправления Trading Operations, Monitoring и Auto-Actions
## 📋 Обзор исправлений
Исправлены все функции из категорий:
- **Trading Operations (4/4)**
- **Monitoring (2/2)**
- **Auto-Actions (2/2)**
---
## 🔧 Исправления
### 1. `place_order` ✅
**Проблема:** Уже была исправлена ранее, проверена обработка параметров.
**Статус:** Работает корректно
---
### 2. `close_position` ✅
**Проблемы:**
- Неправильная обработка получения баланса для spot
- Не учитывались разные типы аккаунтов (SPOT vs UNIFIED)
**Исправления:**
- Добавлена попытка получения баланса через SPOT, затем через UNIFIED
- Улучшена обработка структуры ответа API
- Добавлена проверка наличия монеты в кошельке
- Добавлен `timeInForce: "IOC"` для Market ордеров
**Файл:** `mcp_server/trading_operations.py` (строки 227-307)
---
### 3. `modify_position` ✅
**Проблемы:**
- Отсутствовал обязательный параметр `positionIdx` для Bybit API
- Не было проверки наличия позиции перед модификацией
- Недостаточная обработка ошибок
**Исправления:**
- Добавлено получение `positionIdx` из текущей позиции
- Добавлена проверка наличия открытой позиции
- Добавлена проверка что хотя бы один параметр (SL или TP) указан
- Улучшена обработка ошибок с детальными сообщениями
**Файл:** `mcp_server/trading_operations.py` (строки 349-428)
---
### 4. `cancel_order` ✅
**Проблема:** Уже была улучшена обработка ошибок ранее.
**Статус:** Работает корректно
---
### 5. `start_position_monitoring` ✅
**Проблемы:**
- WebSocket callback вызывался в синхронном контексте
- Проблемы с созданием async tasks из синхронного callback
**Исправления:**
- Исправлена обработка async callbacks в `_handle_position_update`
- Добавлена безопасная проверка event loop
- Добавлена вспомогательная функция `_process_update_async`
- Улучшена обработка ошибок при создании tasks
**Файл:** `mcp_server/position_monitor.py` (строки 88-151)
---
### 6. `stop_position_monitoring` ✅
**Проблемы:**
- WebSocket не закрывался правильно
- Не очищались данные позиций
**Исправления:**
- Добавлена проверка наличия методов `exit()` и `close()` у WebSocket
- Добавлена очистка словаря позиций при остановке
- Улучшена обработка ошибок при закрытии соединения
**Файл:** `mcp_server/position_monitor.py` (строки 184-207)
---
### 7. `move_to_breakeven` ✅
**Проблема:** Использует `modify_position`, который теперь исправлен.
**Статус:** Работает корректно через исправленный `modify_position`
---
### 8. `activate_trailing_stop` ✅
**Проблемы:**
- Отсутствовал обязательный параметр `positionIdx`
- Неправильная обработка ошибок
- Не было проверки что trailing stop поддерживается только для futures
**Исправления:**
- Добавлена проверка что category не "spot" (trailing stop только для futures)
- Добавлено получение `positionIdx` из текущей позиции
- Добавлена проверка размера позиции
- Улучшена обработка ошибок с детальными сообщениями
- Добавлена информация о текущей цене и стороне позиции в ответе
**Файл:** `mcp_server/trading_operations.py` (строки 644-732)
---
## 🧪 Тестирование
Создан тестовый скрипт: `test_trading_functions.py`
### Запуск тестов:
```bash
cd /Users/Gyber/GYBERNATY-ECOSYSTEM/TRADER-AGENT
python test_trading_functions.py
```
### Что тестируется:
1. ✅ `place_order` - размещение ордера
2. ✅ `close_position` - закрытие позиции (spot и futures)
3. ✅ `modify_position` - изменение SL/TP
4. ✅ `cancel_order` - отмена ордера
5. ✅ `start_position_monitoring` - запуск мониторинга
6. ✅ `stop_position_monitoring` - остановка мониторинга
7. ✅ `move_to_breakeven` - перевод в breakeven
8. ✅ `activate_trailing_stop` - активация trailing stop
### Примечания:
- Тесты проверяют как успешные сценарии, так и обработку ошибок
- Если нет открытых позиций, тесты корректно обрабатывают это
- Тесты не выполняют реальные торговые операции (кроме `place_order` с минимальной суммой)
---
## 📝 Детали изменений
### `trading_operations.py`
**Изменения:**
- `close_position`: улучшена обработка spot позиций (строки 227-307)
- `modify_position`: добавлен `positionIdx`, улучшена обработка ошибок (строки 349-428)
- `activate_trailing_stop`: полная переработка с правильными параметрами API (строки 644-732)
### `position_monitor.py`
**Изменения:**
- `_handle_position_update`: исправлена обработка async callbacks (строки 88-145)
- `_process_update_async`: новая вспомогательная функция (строки 147-151)
- `stop_monitoring`: улучшено закрытие WebSocket и очистка данных (строки 184-207)
---
## ✅ Результат
Все функции теперь:
- ✅ Правильно обрабатывают параметры Bybit API
- ✅ Имеют улучшенную обработку ошибок
- ✅ Поддерживают spot и futures торговлю
- ✅ Корректно работают с async операциями
- ✅ Имеют детальное логирование
**Статус:** Все функции готовы к использованию в production! 🚀