Найти в Дзене
Старый биржевик

Робот Scatter&Gather дорос до v4.0

Друзья, продолжаю держать вас в курсе разработки робота Scatter&Gather. Предыстория: Готовый робот, кстати, уже торгует на реальном счете реальными деньгами. Робота можно скачать на моем сайте ikinvestor.ru. Но у него есть один недостаток. Представьте ситуацию, когда вы остановили робота, или он перестал покупать акции по тому, что у вас кончились деньги на счете. Через некоторое время вы запустили робота или добавили денег, чтобы робот смог продолжить торговлю. Первым делом он смотрит последнюю покупку и выставляет заявки на покупку и продажу от этой цены. Но вот незадача - цена уже другая. Если цена выросла, ничего страшного. Робот v4.0 продает все купленные акции, цена которых ниже текущей + шаг цены в %. А если цена упала? Повторюсь, в предыдущей версии робот выставляет заявки на покупку и продажу от цены последней купленой акции. Представьте, выставлена заявка на покупку по цене 290 рублей. А текущая цена снизилась до 160 рублей, подение на 44,83%. Когда цена вернется к этим 290 р
Оглавление

Друзья, продолжаю держать вас в курсе разработки робота Scatter&Gather.

Предыстория:

Готовый робот, кстати, уже торгует на реальном счете реальными деньгами. Робота можно скачать на моем сайте ikinvestor.ru. Но у него есть один недостаток.

Улучшеная версия робота Scatter&Gather

Представьте ситуацию, когда вы остановили робота, или он перестал покупать акции по тому, что у вас кончились деньги на счете. Через некоторое время вы запустили робота или добавили денег, чтобы робот смог продолжить торговлю.

Первым делом он смотрит последнюю покупку и выставляет заявки на покупку и продажу от этой цены. Но вот незадача - цена уже другая. Если цена выросла, ничего страшного. Робот v4.0 продает все купленные акции, цена которых ниже текущей + шаг цены в %. А если цена упала?

Повторюсь, в предыдущей версии робот выставляет заявки на покупку и продажу от цены последней купленой акции. Представьте, выставлена заявка на покупку по цене 290 рублей. А текущая цена снизилась до 160 рублей, подение на 44,83%. Когда цена вернется к этим 290 рублей? Робот замрет на месяцы, если не годы. Как поступит в этой ситуации человек? Он на время оставит в покое те старые акции и начнет торговлю по новым ценам, тем самым продолжит получать прибыль. А когда цена вернется к предыдущему уровню - человек продолжит торговлю теми акциями, которые успел закупить ранее.

Вот вам и новшество версии v4.0 - организовать торговлю по более низким ценам, чем было ранее. В результате, эффективность робота повышается, но нужно посторить алгоритм параллельной торговли по новым ценам. В этом и есть фишка робота v4.0.

Ключевые особенности новой версии:

1. Динамический порог - основан на торговом шаге. Если цена упала ниже, чем на два Шага цены в %, то запускается параллельный алгоритм торовли. Напомню, "Шаг цены в %" - это тот шаг, с которым мы вставляем заявки на покупку и продажу от цены последней покупки.

2. Три режима работы:

  • Нормальный - обычная торговля
  • Мониторинг - отслеживание умеренного расхождения цен. Это когда цена ниже заявки на покупку (1 Шаг цены в %) но выше поргового значения (2 Шага цены в %). Непонятная ситуация, когда робот мониторит в какую сторону пойдет цена. Если вверх - запустится старый алгоритм, если вниз - новый (параллельный)
  • Восстановление - параллельная торговля при значительном расхождении

3. Интеллектуальный запуск - добавлена функция, которая анализирует состояние при старте

4. Селективная продажа - продаются только выгодные позиции при росте цены. Это если цена не упала, а, наоборот, выросла, пока робот не работал.

5. Параллельная торговля - отдельный стек для работы при падении цены

6. Автоматическое объединение - возврат к нормальной торговле при восстановлении цен

7. Обработка появления средств - умное возобновление торговли после пополнения счета

Робот написан и готов к тестированию! Но есть проблемка - у меня нет возможности протестировать робота на исторических данных. А на реальных данных нужно ждать, когда цена упадет достаточно для запуска параллельной торговли.

Ждать у моря погоды - это так скучно

Пока я жду нужной ситуации, решил привести в проядок программу. Если вы скачали моего робота, то можете посмотреть каким длинным оказался итоговый скрипт. С ним тяжело работать уже сейчас, а я планирую развивать своего робота дальше. Поэтому я предложил DeepSeek разбить скрипт на отдельные модули и он поддержал это решение.

Почему модульная архитектура целесообразна:

Упрощение разработки - можно править отдельные модули

Переиспользование кода - модули можно использовать в других роботах

Тестируемость - можно тестировать модули по отдельности

Читаемость - код становится структурированным

Безопасность - ошибки в одном модуле не ломают всю систему

Новая архитектура:

  • main.lua # Главный скрипт
  • config.lua # Конфигурация и параметры
  • utils.lua # Вспомогательные функции
  • file_manager.lua # Работа с файлами
  • data_manager.lua # Получение данных из QUIK
  • price_manager.lua # Управление ценами и расчеты
  • trading_core.lua # Основная торговая логика
  • order_manager.lua # Управление заявками
  • recovery_system.lua # Система восстановления
  • monitoring.lua # Мониторинг и проверки
  • ui.lua # Пользовательский интерфейс
  • init.lua # Инициализация состояния

Итого программа на данный момент состоит из 12 файлов, основными по распределению ответственности можно назвать:

  • price_manager.lua - все расчеты цен, порогов, адаптация к шагу цены
  • data_manager.lua - получение рыночных данных (цены, деньги, заявки)
  • trading_core.lua - бизнес-логика торговли (когда и что торговать)
  • order_manager.lua - техническая работа с заявками (выставление, отмена)

Перехожу к тестированию модульной версии v4.0M.

Буду благодарен за поддержку рублем