Specification
ОБЩЕЕ ОПИСАНИЕ
Создание автоматизированной торговой системы (торгового робота) для терминала QUIK на языке Lua, предназначенной для внутридневной торговли биржевыми инструментами в течение торговой сессии.
Ключевой сценарий использования:
Трейдер утром запускает терминал и скрипт, выбирает настройки (режим торговли, наборы паттернов от 3 до 10), после чего робот автономно ведет торговлю до завершения торговой сессии либо в пределах заданных пользователем временных коридоров. В заданное время робот принудительно закрывает все открытые позиции либо, в зависимости от вкл/выкл соответствующего параметра - оставляет позиции открытыми, чем обеспечивает перенос позиций на следующую торговую сессию.
Режим работы: полуавтоматический (запуск — трейдером вручную, торговля — роботом автономно).
ФУНКЦИОНАЛЬНЫЕ ТРЕБОВАНИЯ К LUA-СКРИПТУ
1. Пользовательские настройки
Настройка параметров работы скрипта осуществляется без использования графического интерфейса КВИКа. Пользователь открывает файл скрипта в режиме блокнота (штатными средствами терминала) и задает необходимые значения в специально выделенной секции предустановленных параметров.
В данной секции доступны для изменения:
· Выбор инструментов для торговли.
· Выбор таймфреймов.
· Режим торговли: Только Лонг / Только Шорт / Лонг и Шорт.
· Набор паттернов для Лонга (включение/отключение каждого паттерна).
· Набор паттернов для Шорта (включение/отключение каждого паттерна).
· Допустимый риск на сделку (% от капитала или фиксированная сумма).
· Соотношение прибыль/убыток (для расчета тейк-профита).
· Максимально допустимая дневная просадка.
· Время принудительного закрытия позиций.
2. Торговая логика
При возникновении торгового сигнала скрипт выполняет следующую строгую последовательность действий:
1. Обнаружение сигнала.
2. Определение места выставления стоп-лосса — расчет цены защитного ордера.
3. Расчет убытка на один лот — определение потенциальных потерь на единицу инструмента.
4. Расчет размера лота — исходя из допустимых потерь на сделку.
5. Расчет цены тейк-профита — на основе заданного соотношения прибыль/убыток.
6. Выставление заявки на открытие позиции — отправка ордера на вход.
7. Отслеживание исполнения.
8. Выставление защитных ордеров и тейк-профитов.
9. Отслеживание исполнения стоп-лоссов и тейк-профитов.
10. После закрытия позиции скрипт продолжает поиск новых сигналов (цикличность).
3. Менеджер рисков
· Контроль дневной просадки по счету.
· Автоматическая блокировка открытия новых позиций при достижении заданного порога просадки.
4. Защитный автомат (вкл/выкл)
· Принудительное закрытие ВСЕХ открытых позиций и снятие всех активных заявок в строго заданное время (например, 18:45 МСК) для исключения переноса через вечерний клиринг либо для исключения переноса позиций на следующую сессию.
5. Логирование
Запись в лог-файл ВСЕХ значимых событий с временной меткой, включая:
· статус подключения и проверки связи;
· результат каждой итерации поиска паттернов;
· параметры найденного сигнала (тип паттерна, инструмент, цена);
· результаты расчета лота, стоп-цены и тейк-профита;
· факт и параметры выставления заявок;
· текущую стоимость активов и уровень просадки;
· события блокировки/разблокировки торговли;
· срабатывание защитного автомата.
6. Отказоустойчивость
· Автоматическое восстановление работы после обрыва связи с сервером.
· Защита от дублирования заявок.