# Торговые скрипты Market Analyzer

Этот набор скриптов предоставляет полный цикл управления сделками для Market Analyzer, от проверки баланса до мониторинга позиций.

## 📋 Список скриптов

### 1. Баланс счёта
#### `get_account_balance.py` - Улучшенный скрипт для получения баланса
```bash
# Получить баланс реального счёта
python src/get_account_balance.py --env real

# Получить баланс тестового счёта
python src/get_account_balance.py --env sandbox

# Получить баланс по конкретному тикеру
python src/get_account_balance.py --env real --ticker SBER
```

**Функции:**
- Автоматическое переключение на реальный/тестовый режим
- Детальная информация о позициях
- Конвертация валют в рубли
- Fallback режим при недоступности API
- Расчёт общего капитала

#### `get_real_account_balance.py` - Легаси скрипт для баланса
```bash
python get_real_account_balance.py
```

### 2. Создание сделок
#### `create_trade_orders.py` - Автоматическое создание торговых ордеров
```bash
# Базовое создание сделки
python src/create_trade_orders.py \
  --ticker SBER \
  --direction BUY \
  --entry 100.0 \
  --sl 95.0 \
  --tp 110.0 \
  --capital 10000 \
  --risk 1.0

# С указанием confidence
python src/create_trade_orders.py \
  --ticker SBER \
  --direction BUY \
  --entry 100.0 \
  --sl 95.0 \
  --tp 110.0 \
  --capital 10000 \
  --risk 1.0 \
  --confidence 80

# Для реального счёта
python src/create_trade_orders.py \
  --ticker SBER \
  --direction BUY \
  --entry 100.0 \
  --sl 95.0 \
  --tp 110.0 \
  --capital 10000 \
  --risk 1.0 \
  --env real
```

**Функции:**
- Полная валидация параметров сделки
- Автоматический расчёт размера позиции
- Создание входного, стоп-лосс и тейк-профит ордеров
- Логирование сделки в журнале
- Проверка достаточности капитала
- Поддержка обоих окружений (sandbox/real)

### 3. Управление сделками
#### `manage_trade.py` - Управление существующими сделками
```bash
# Показать все открытые сделки
python src/manage_trade.py --list

# Показать сделки по конкретному тикеру
python src/manage_trade.py --list --ticker SBER

# Отменить сделку
python src/manage_trade.py --cancel --trade-id <trade_id>

# Закрыть сделку по рыночной цене
python src/manage_trade.py --close --trade-id <trade_id>

# Изменить стоп-лосс
python src/manage_trade.py --modify-sl --trade-id <trade_id> --new-sl 95.0

# Изменить тейк-профит
python src/manage_trade.py --modify-tp --trade-id <trade_id> --new-tp 110.0

# Запустить мониторинг сделки
python src/manage_trade.py --monitor --trade-id <trade_id> --interval 300

# Для реального счёта
python src/manage_trade.py --env real --list
```

**Функции:**
- Просмотр открытых сделок
- Отмена сделок (все ордера)
- Закрытие сделок по рыночной цене
- Модификация SL/TP
- Мониторинг сделок
- Поддержка обоих окружений

### 4. Мониторинг сделок
#### `monitor_trade.py` - Универсальный монитор сделок
```bash
# Запустить мониторинг в фоновом режиме
python src/monitor_trade.py \
  --ticker SBER \
  --trade-id <trade_id> \
  --daemon \
  --env real

# Однократная проверка
python src/monitor_trade.py \
  --ticker SBER \
  --trade-id <trade_id> \
  --once \
  --env real

# Проверить состояние ордеров
python src/monitor_trade.py \
  --ticker SBER \
  --trade-id <trade_id> \
  --verify \
  --env real

# Кастомный интервал проверки (5 минут)
python src/monitor_trade.py \
  --ticker SBER \
  --trade-id <trade_id> \
  --daemon \
  --interval 300 \
  --env real
```

**Функции:**
- Детекция TP исполнения по исчезновению ордера
- Автоматический перевод SL в безубыточок
- Проверка срабатывания SL
- Учет торговых часов MOEX
- Логирование всех событий
- Универсальный (работает с любым тикером)

#### `monitor_plzl_trade.py` - Специализированный монитор PLZL
```bash
# Мониторинг PLZL (legacy)
python src/monitor_plzl_trade.py --daemon
python src/monitor_plzl_trade.py --once
```

## 🔄 Типичный workflow

### 1. Проверка баланса
```bash
python src/get_account_balance.py --env real
```

### 2. Создание сделки
```bash
python src/create_trade_orders.py \
  --ticker SBER \
  --direction BUY \
  --entry 100.0 \
  --sl 95.0 \
  --tp 110.0 \
  --capital 10000 \
  --risk 1.0 \
  --confidence 80 \
  --env real
```

### 3. Мониторинг сделки
```bash
# Получить ID сделки из вывода предыдущего скрипта
TRADE_ID="your-trade-id-here"

python src/monitor_trade.py \
  --ticker SBER \
  --trade-id $TRADE_ID \
  --daemon \
  --env real
```

### 4. Управление сделками
```bash
# Показать все открытые сделки
python src/manage_trade.py --env real --list

# Изменить SL при необходимости
python src/manage_trade.py \
  --env real \
  --modify-sl \
  --trade-id $TRADE_ID \
  --new-sl 96.0

# Закрыть сделку вручную
python src/manage_trade.py \
  --env real \
  --close \
  --trade-id $TRADE_ID
```

## 🛡️ Безопасность

### Тестовый режим (Sandbox)
- Использует виртуальные деньги
- Идеально для тестирования стратегий
- Никакого риска потери реальных средств

### Реальный режим (Real)
- Использует реальные деньги
- Все ордера исполняются по рыночным условиям
- Требует осторожности и понимания рисков

### Рекомендации
1. **Всегда тестируйте в sandbox** перед использованием реального счёта
2. **Проверяйте баланс** перед созданием сделок
3. **Используйте stop-loss** для ограничения убытков
4. **Мониторьте позиции** особенно в волатильные периоды
5. **Не инвестируйте больше, чем готовы потерять**

## 🔧 Конфигурация

Все скрипты используют конфигурацию из `.env` файла:
```env
# T-Bank API токены
TBANK_TOKEN=t.wqnyx3rg3L8_P3GUrXXP29SPdebJRvYYD5b_Z5-5PjA1ky5_jJRaQlZRVV6eYe60WxuQBHzUI7RgxJpJskj_8g
TBANK_REAL_TOKEN=t.JEWjjGv... (ваш реальный токен)

# Счёта
TBANK_ACCOUNT_ID=3ed6a662-... (sandbox)
TBANK_ACCOUNT_ID_REAL=... (real)

# Комиссии
TBANK_COMMISSION_PCT=0.3
MOEX_EXCHANGE_FEE_PCT=0.01
```

## 📊 Логирование

Все скрипты ведут логи:
- Баланс: `reports/monitor_logs/monitor_{ticker}.log`
- Сделки: `reports/trades.json`
- Мониторинг: `reports/monitor_{ticker}.log`

## 🚨 Ошибки

### Распространенные ошибки
1. **Недостаточно средств** - проверьте баланс перед созданием сделки
2. **Неверный тикер** - убедитесь, что тикер существует в MOEX
3. **API недоступен** - проверьте интернет-соединение и токены
4. **Рынок закрыт** - мониторинг работает только в часы торгов MOEX

### Восстановление
1. Проверьте логи в `reports/`
2. Используйте `src/manage_trade.py --list` для просмотра сделок
3. При необходимости отмените сделку: `src/manage_trade.py --cancel --trade-id <id>`

## 📞 Поддержка

При возникновении проблем:
1. Проверьте логи скриптов
2. Убедитесь, что `.env` файл правильно настроен
3. Проверьте доступность T-Bank API
4. Обратитесь к документации Market Analyzer