Разработка систем для биржевой торговли на базе 1С — это сложная техническая задача, требующая интеграции платформы с внешними терминалами (QUIK), базами данных и математическими библиотеками. Рассмотрим подробно, как спроектировать архитектуру такой системы, организовать хранение данных и реализовать автоматическое принятие решений.
Для организации обмена данными между 1С и биржевым терминалом QUIK эффективнее всего использовать связку ODBC и файлового обмена. Разберем основные принципы:
РегламентныеЗадания. Это позволяет распараллелить обработку данных на многопроцессорных серверах.Проанализируем оптимальную структуру метаданных для хранения истории цен и параметров инструментов. Неэффективно хранить все данные в одном справочнике, так как параметры торгов постоянно меняются. Рекомендуется следующее разделение:
БиржевыеИнструменты: содержит условно-постоянную информацию (код тикера, кратность лота, принадлежность к рынку).Пример логики запроса для отбора растущих активов:
ВЫБРАТЬ
Цены.Инструмент КАК Инструмент
ИЗ
РегистрСведений.ИсторияЦен.СрезПоследних(&Дата1, ) КАК Цены
ГДЕ
Цены.ЦенаЗакрытия > (ВЫБРАТЬ Цена ИЗ РегистрСведений.ИсторияЦен.СрезПоследних(&Дата2, ) ГДЕ Инструмент = Цены.Инструмент)
Выясним, как автоматизировать процесс торговли. Вместо использования сложных встроенных функций QUIK, логику принятия решений лучше перенести в 1С, используя язык запросов и программный код.
Многоуровневая система стратегий:
Для отправки команд в QUIK используется формирование текстового файла транзакций, который терминал считывает автоматически. Рассмотрим пример структуры обработки команды:
Процедура ВыставитьЗаявку(Инструмент, Цена, Количество, Направление)
ТекстЗаявки = "ACTION=NEW_ORDER; CLASSCODE=" + Инструмент.Класс + "; SECCODE=" + Инструмент.Код + "; OPERATION=" + Направление + "; PRICE=" + Цена + "; QUANTITY=" + Количество;
// Запись в файл обмена для QUIK
КонецПроцедуры
Посмотрим на возможности расширения аналитики. Поскольку встроенные средства 1С ограничены в математических вычислениях, целесообразно использовать Python через запуск внешних скриптов. Это позволяет подключать специализированные библиотеки:
ta (Technical Analysis Library) — более 40 индикаторов.talib — профессиональная библиотека для расчета сложных паттернов и осцилляторов.Проанализируем процесс: 1С выгружает накопленную историю цен в CSV, запускает Python-скрипт, который рассчитывает значения индикаторов и возвращает результат обратно в 1С для принятия финального решения торговым роботом.
Важным этапом является синхронизация данных 1С с реальными операциями. Рассмотрим подробнее механизм корректировки:
В момент совершения сделки 1С фиксирует примерную цену и комиссию по константе. На следующий день необходимо загрузить официальный отчет брокера (в формате Excel или XML). Специальная обработка должна распознать фактические комиссии, налоги и точные цены исполнения, корректируя документы ПокупкаИнструментов и ПродажаИнструментов. Это гарантирует, что управленческий баланс инвестора в 1С будет на 100% совпадать с реальным состоянием брокерского счета.