Интерактивное управление роботом
Известно, в языке программирования QPILE полностью отсутствуют средства интерактивного общения с пользователем. Нет возможности нажать кнопку или получить вопрос и ответить "Да" либо "Нет". Единственным способом связи со внешним миром является внешний файл. Впрочем, и этого достаточно для полноценного двустороннего интерактивного обмена.
В числе прочих требований к роботу, осуществляющему хеджирование фьючерсами открытых позиций по опционам, содержался пункт о возможности оперативного управления действиями робота в "человеко-приятном виде". Ну что же, кто платит, тот музыку и заказывает. Музыка получилась следующего вида:
Двусторонный протокол обмена данными позволяет получать из терминала QUIK все необходимые для задачи управления данные:
- статус активности протокола
- список доступных классов
- список инструментов
- цены инструментов
- значения полей таблицы текущих параметров
- значения полей таблицы позиций по фьючерсам
- значения полей таблицы ограничений по клиентским счетам
- значения полей таблицы заявок
- значения полей таблицы заявок
- и так далее.
А также отправлять роботу команды пользователя
В результате в приятном "человеко-удобоваримом" виде пользователь имеет возможность оперативно управлять действиями робота, абстрагируясь от технических деталей, связанных с ограничениями и особенностями реализации.
В качестве приятного приложения добавлено звуковое сопровождение работы робота и информирование пользователя о важных событиях посредством E-Mail и SMS, поскольку физически робот размещен удаленно в датацентре. Реализовано на языке AutoIt без применения DDE или ODBC.
И еще 4 минуты хорошей грустной музыки....