Обзор
Система ручного ввода сделок позволяет вам вручную добавлять торговые возможности, которые бот будет отслеживать и исполнять автоматически, не дожидаясь обычной генерации сигналов. Это идеально подходит, когда вы замечаете хорошие точки входа при ручном анализе рынка и не хотите, чтобы бот их пропустил.
Как это работает
🔄 Автоматическая горячая перезагрузка
- Добавляйте записи в файл
settings/manual_trade_symbols.yamlпока бот работает - Изменения подхватываются автоматически в течение 30 секунд (следующий цикл обработки)
- Перезапуск не требуется!
🎯 Процесс исполнения сделки
- Вы добавляете запись о сделке в YAML-файл
- Бот обнаруживает новую запись на следующем цикле (≤ 30 секунд)
- Бот проверяет:
- Символ присутствует в списке торгуемых инструментов бота
- Нет активных ордеров по этому символу
- Условия по цене выполнены (если установлен порог)
- Бот исполняет сделку автоматически
- Запись удаляется из YAML после успешного исполнения (предотвращение дублей)
Расположение файла конфигурации
settings/manual_trade_symbols.yaml
Описание полей
Symbol (обязательное)
- Торговая пара в формате биржи
- Примеры:
BTCUSDT,ETHUSDT,1000PEPEUSDT - Должно точно совпадать с тем, как символ отображается в списке бота
Price (обязательное)
0= бот сам получит и использует текущую рыночную цену (рекомендуется)> 0= использовать именно этот указанный уровень как точку отсчёта- При значении
0бот:- Получает текущую рыночную цену
- Обновляет это поле в YAML полученным значением
- Использует эту цену для расчёта порогов в последующих циклах
Direction (обязательное)
Long= покупка / лонг-позицияShort= продажа / шорт-позиция
Amount (обязательное)
0= использовать стандартный расчёт размера позиции бота> 0= задать конкретный объём (в валюте котировки)- Примеры:
1000.0= позиция на $10002500.5= позиция на $2500.50
ExecuteThresholdPerfect (обязательное)
0= исполнить немедленно (без ожидания движения цены)> 0= ждать, пока цена изменится на указанный процент, прежде чем исполнить- Для LONG: ждёт падения цены на эту величину %
- Для SHORT: ждёт роста цены на эту величину %
Timestamp (необязательное)
- Используйте
nullили полностью опустите поле - Бот автоматически заполнит его при обработке записи
- Может использоваться в будущем для проверки срока действия
Примеры использования
Пример 1: Немедленный вход (увидели возможность СЕЙЧАС)
Trades:
- Symbol: 'BTCUSDT'
Price: 0 # использовать текущую цену
Direction: Long # лонг
Amount: 0 # стандартный размер
ExecuteThresholdPerfect: 0 # исполнить немедленно
Timestamp: null
Сценарий: BTC пробивает уровень — хотите войти прямо сейчас.
Пример 2: Покупка на откате (стратегия 5% отката)
Trades:
- Symbol: 'ETHUSDT'
Price: 0 # бот возьмёт текущую цену (например $3000)
Direction: Long
Amount: 1000 # позиция $1000
ExecuteThresholdPerfect: 5 # ждать падения на 5% (исполнение ~$2850)
Timestamp: null
Сценарий: ETH выглядит сильно, но немного перекуплен. Хотите купить при откате 5%.
Пример 3: Агрессивная покупка на просадке (откат 10%)
Trades:
- Symbol: '1000PEPEUSDT'
Price: 0
Direction: Long
Amount: 2000 # позиция $2000
ExecuteThresholdPerfect: 10 # ждать падения на 10%
Timestamp: null
Сценарий: PEPE сильно пампит. Хотите докупить при значительной просадке.
Пример 4: Шорт на пампе (ждать роста 3%)
Trades:
- Symbol: 'SOLUSDT'
Price: 0 # бот возьмёт текущую цену (например $100)
Direction: Short # шорт
Amount: 1500
ExecuteThresholdPerfect: 3 # исполнить при росте на 3% (~$103)
Timestamp: null
Сценарий: SOL выглядит перекупленным. Хотите зашортить, если ещё вырастет на 3%.
Пример 5: Многоуровневый вход
Trades:
# немедленный вход
- Symbol: 'BTCUSDT'
Price: 0
Direction: Long
Amount: 500
ExecuteThresholdPerfect: 0 # войти сейчас
Timestamp: null
# добавить при откате 5%
- Symbol: 'BTCUSDT'
Price: 0
Direction: Long
Amount: 1000
ExecuteThresholdPerfect: 5 # добавить позицию при падении 5%
Timestamp: null
# ещё добавить при откате 10%
- Symbol: 'BTCUSDT'
Price: 0
Direction: Long
Amount: 1500
ExecuteThresholdPerfect: 10 # сильное усреднение при падении 10%
Timestamp: null
Сценарий: Усреднение (DCA) в BTC на разных ценовых уровнях.
Важные замечания
✅ Что нужно делать
- ✅ Сохранять корректный YAML (правильные отступы, без синтаксических ошибок)
- ✅ Использовать
nullдля Timestamp (неNone) - ✅ Писать
LongилиShortв Direction (не 0/1) - ✅ Проверять точное совпадение названий символов с биржей
- ✅ Ждать минимум 30 секунд после добавления, чтобы бот увидел изменения
❌ Чего делать нельзя
- ❌ Не использовать
Noneв Timestamp (толькоnullили пропуск) - ❌ Не писать
0/1в Direction - ❌ Не добавлять символы, которые бот не отслеживает
- ❌ Не редактировать файл в момент, когда бот его сохраняет (риск race condition)
🔒 Меры безопасности
- Нет дублирующих исполнений: запись удаляется после исполнения
- Нет конфликтов: не исполняется, если по символу уже есть активные ордера
- Автоматическая проверка цены: при 0 цена подтягивается и обновляется
- Отслеживание времени: бот фиксирует момент создания каждой записи
📊 Мониторинг
Смотрите логи, чтобы увидеть, когда записи были обработаны:
logs/orders.YYYY-MM-DD.log— все исполнения сделок (JSON)logs/trade_summary.YYYY-MM-DD.log— общие сводкиlogs/debug.YYYY-MM-DD.log— подробная информация (при включённом debug-режиме)
Пример рабочего процесса
Шаг 1: Вы анализируете графики и видите, как ETHUSDT пробивает сопротивление
# добавляем в manual_trade_symbols.yaml
Trades:
- Symbol: 'ETHUSDT'
Price: 0
Direction: Long
Amount: 1000
ExecuteThresholdPerfect: 0
Timestamp: null
Шаг 2: Сохраняете файл (бот продолжает работать)
Шаг 3: В течение 30 секунд бот:
- Загружает файл
- Получает текущую цену ETH (например $3000)
- Обновляет поле Price в YAML значением 3000
- Ставит Timestamp на текущее время
- Проверяет отсутствие активных ордеров по ETHUSDT
- Исполняет сделку
- Удаляет запись из YAML
Шаг 4: Проверяете логи для подтверждения
✅ Сделка по ETHUSDT успешно исполнена
💾 Конфигурация ручных сделок обновлена и сохранена (исполненные записи удалены)
Профессиональные советы
💡 На волатильных рынках: ставьте более высокие пороги (10–20%), чтобы ловить лучшие точки входа
💡 Для мгновенных возможностей: используйте ExecuteThresholdPerfect: 0 и Amount: 0 для быстрого входа со стандартным размером
💡 Для наращивания позиции: добавляйте несколько записей с возрастающими порогами по одному символу
💡 Для контроля риска: указывайте конкретные суммы вместо 0, чтобы точно управлять размером позиции
💡 При работе с несколькими символами: группируйте похожие стратегии в YAML для удобства
Помните: эта система создана, чтобы дополнять ваш ручной анализ, а не заменять его. Используйте её с умом, чтобы ловить возможности, которые бот может пропустить в обычных циклах генерации сигналов! 🚀