Доброе время суток, Николай
1) Поле CLIENT_CODE не является обязательным параметром при формировании строки заявки (см. руководство пользователя Quik, раздел "Формат .tri-файла с параметрами транзакций"). Счет, который указан в параметрах адаптере сделан для создания возможности отправлять заявку "руками" (из Quite Monitor это можно сделать нажав правую кнопку мыши по инструменту, по которому собираетесь отправлять заявку), т.к. при формировании заявки подобным образом нет поля "Счет".
Цитата:Я правильно понимаю, что это поле соответствует счёту депо для акций и торговому счёту для деривативов, то есть подставляется в параметр ACCOUNT транзакции квика?
Да.
Цитата:...поддерживается ли адаптером множественность счетов
Да, множественность счетов возможна. Когда вы в стратегии в OpenQuant создаете объект Order для отправки торгового приказа, то в нем доступно поле Account, по которому и будет отправлена данная конкретная заявка. Если в объекте Order счет не указан явно, то будет использован счет из настроек провайдера Quik2Quant. Таким образом вы можете для каждого конкретного ордера указывать свой счет.
2) Все таблицы, которые экспортируются для нужд Quik2Quant-провайдера должны быть синхронизированы по инструментам. Ошибки возникают в связи с тем, что вновь поступающие сделки, заявки, собственные сделки не находят соответствующей информации по инструменту из ТТП. Я рекомендую вам использовать для настройку для Quik, которая приложена в архиве с Quik2Quant. Если помимо автотрейдинга вам необходимы другие таблицы/графики, то я рекомендую вам создать отдельную вкладку в Quik и создать дубликаты необходимых вам таблиц.
3) Вам нужно активировать логирование работы адаптера в файл и при повторении ошибки выслать его на
Quik2Quant@qmail.com (лучше в zip-архиве). После этого можно будет более точно определить источник ошибки.
4) С методом Replace на момент реализации текущей версии Quik2Quant на стороне OpenQuant была
проблема. Если вопрос с ценой заявки будет решен со стороны разработчиков OpenQuant, то можно будет использовать метод Replace не только с площадкой FORTS для лимитных ордеров (одна транзакция), но и для спот, причем и для стоп-заявок в том числе (2 транзакции). Это сделано для удобства манипуляции заявками из стратегии. К примеру, если вам нужно будет переместить скользящий стоп-ордер, то вы можете вызвать метод Replace, а не отправлять приказ на снятие заявки, дожидаться снятия заявки (через изменение OrderStatus) и генерировать новую заявки. Причем метод Replace так же будет работать, если у выставленной вами стоп-заявки уже исполнилось условие и она попала на сервер биржи в виде лимитного ордера.
5) Импорт исторических данных не реализован в текущей версии провайдера (даже за текущую сессию). Нами сейчас рассматривается ряд возможных решений, в рамках которых можно будет загружать данные за произвольный интервал. Этот функционал ВОЗМОЖНО будет добавлен в более поздних версиях провайдера. На текущий момент можно воспользоваться импортом данных из текстовых файлов, предварительно скаченных например с
FINAM6) Да, вновь поступающим тикам присваивается локальное время (используется рекомендуемый разработчиками OpenQuant объект Clock). Бары в OpenQuant формируются "внутри", исходя из тиков и API OpenQuant не содержит методов, с помощью которых можно передать программа Бар.
Цитата:...отключение квика на полчаса при включении даёт огромную свечу...
Этого не должно произойти при включенном фильтре EnableTimeCheck поскольку как только Quik "отомрет" поток пропущенных сделок, у которых время отстает от локального более чем на TimeShift будут игнорированы. Соответственно, при формировании бара будет потеряна часть трейдов (которые проигнорировались). Если необходимо, опишу более детальный пример. Если при рестарте Quik в течение сессии вы не включили EnableTimeCheck, то все сделки с начала дня со своим (биржевым) временем начнут поступать в провайдер и с измененным временем на локальное поступят во все объекты OpenQuant. Очевидно, что будет грубо нарушена логика работы - сделки с начала дня будут восприниматься как вновь поступающие.
7) Да. Загрузка ордеров, которые были активны до выключения OpenQuant целесообразно оформить в обработчике OnStrategyStart, а сохранение - в OnStrategyStop
8) Если по заявке пришел отчет об ее отклонении (вне зависимости от причин), но заявка в OpenQuant будет иметь статус Rejected. Если по отправленной заявке не пришло никакого ответа от сервера, то статус заявки будет PendingNew. Статус заявки изменяется на New только тогда, когда от сервера получен ответ об успешной постановке
С уважением