Quik2Quant - Release - Вопросы

Quik2Quant - Release - Вопросы
Atom
11/24/2010
zyko


Добрый день, у меня есть список вопросов к разработчику адаптера, буду рад, если ответите по пунктам. Я недавний пользователь OQ, но давний пользователь Quik. Использую программы: OQ версии 2.9.12, Quik версии 5.18.0.127, Quik2Quant (версия 1.24.2910.1015, сборка от 14 октября) с демо-лицензией. Время машины синхронизировано с мировым временем и, визуально, с временем сервера Quik.

1. В настройке адаптера предусмотрено поле Account, "по умолчанию, все заявки отправляются по счету, указанному в этом поле". Вообще, в квике, при отправке заявки по "акции" необходимо указывать Код клиента и Счёт депо, а при отправке заявки по "деривативу" достаточно только Торгового счета. Я правильно понимаю, что это поле соответствует счёту депо для акций и торговому счёту для деривативов, то есть подставляется в параметр ACCOUNT транзакции квика? И что для одновременной торговли и акциями и деривативами этого поля будет недостаточно? Или адаптер автоматически определяет какие-то поля из таблиц позиций? Если да, то как он различает бумаги для нескольких кодов клиента и нескольких срочных счетов в одном терминале (иными словами, поддерживается ли адаптером множественность счетов)?

2. Запускал адаптер на своём рабочем счету, но не добавил всех инструментов в ТТП. Возникло явно избыточное количество записей в Provider Errors вида "инструмент с кодом ... не найден" с дублированием кодов инструментов. Почему при наличии позиций по примерно 30 инструментам, количество ошибок перевалило за 200 и вроде как не собиралось останавливаться? Неужели адаптер парсит таблицы заявок и сделок, и по каждой записи производит проверку, вне зависимости от того, что по данному инструменту уже была дана диагностика?

3. При корректной настройке всех таблиц Quik подключение адаптера даёт две одинаковые записи в Provider Error: "элемент с тем же ключом уже был добавлен". Непонятно, какой элемент, с каким ключом, куда был добавлен? Это ошибка или нет? При этом первая запись появляется сразу после Connect, а вторая - примерно через полторы-две минуты в тот момент, когда адаптер завершил все проверки и данные начали поступать в OQ.

4. Правильно я понимаю, что Replace на FORTS всё ещё нельзя использовать? Ведь, как написано в примечании 1 в разделе "Изменения", цена в заявке не меняется, а нам как раз только изменение цены и нужно.

5. Не смог работать с окном Data -> Import -> Historical Data. Насколько я понимаю, поскольку квик интрадейная система, запрос истории возможен в пределах текущей торговой сессии и происходит обработкой таблицы всех сделок. При нажатии Download статус процесса меняется на Downloading и можно ждать сколько угодно - ничего не меняется. Нажатие на Stop не помогает. Поскольку окно закачки исторических данных - модальное, оно блокирует весь интерфейс OQ, что лечится только убиванием процесса программы. Вопрос: реализована работа с HistoricalData? Текущая версия поддерживает исторические запросы GetHistoricalBars(Trades)?

6. Data Capture корректно заполняет все типы данных: тики, бидаски, свечи, стаканы. Однако полученные свечи в итоге не совпадают со свечами в квике. Различия небольшие, сравнение таблицы всех сделок со списком тиков в OQ показывает, что тикам присваивается локальное время их поступления в OQ, а их собственное время не используется. Так ли это? Если так, то на формирование графика влияют любые задержки экспорта DDE и "замирания" данных. Например, отключение квика на полчаса при включении даёт огромную свечу, куда входят все тики за этот период. Параметр EnableTimeCheck не очень спасает, потому что для меня ключевым моментом является полная тождественность формируемого графика данным биржи. Даже в квике графики формируются по времени самих тиков, ведь эта информация поступает в OQ! Вопрос: как в целом реализована работа с таблицей всех сделок? Что происходит при перезапуске квика? Это зависит от EnableTimeCheck? Если EnableTimeCheck = false, то в OQ попадают заново все тики?

7. В мануале написано, что при "повторном включении OQ связи между стратегиями и активными заявками теряются" и предложено снимать активные заявки, где-то их сохранять, а затем загружать обратно в стратегию. Снятие, сохранение и загрузка заявок должны, видимо, происходить непосредственно самой стратегией, иначе возможные изменения статусов заявок останутся неотработанными стратегией. Правильно я понимаю, что эту логику надо размещать в обработке события OnStrategyStop?

8. Что происходит с заявкой при потере ответа на транзакцию? При работе с TRANS2QUIK.dll обычно возникали две сложные ситуации: когда возвращался код ответа 12 и когда ответ на транзакцию вообще не приходил, терялся. В OQ в первом случае, видимо, статус заявки станет Reject? А во втором случае? Ведь в OQ никакого таймаута ожидания, как в QPILE, нету, что - заявка так и останется с бесконечным статусом New?

С уважением,
Николай.


< 1 2 3  >
zyko

Avatar
Date: 11/25/2010
Reply


Mikhail Sukhov
Если у Вас как раз текущие идут с задержками, то это совсем другое дело. Тут нужно отдельно разбираться. Но пока не совсем понятно, какие именно тики у Вас задерживаются.

Попробую ещё раз оценить задержку текущих тиков на длительном интервале и отпишусь сюда. Может быть, удастся всё настроить так, что задержки исчезнут.

Mikhail Sukhov
Как реагирует на это дело адаптер не скажу, но вообще заявки можно отслеживать через два потока. Первый - это непосредственно их создание, второй - экспорт по ДДЕ (например, когда трейдер торгует на пару с роботом). Городить огород для проверок я думаю пока рановато (уж больно редки ситуации намного проще просто оповещать о таких редких ситуациях роботовода). Тем более что Квик постоянно фиксит баги (им надо лишь детально написать шаги, и тогда 100% к следующему релизу баг исчезнет). Например в 5.18 они исправили закоренелую проблему с быстрой перестановкой заявок. А баг был очень и очень назойлив.

Я не предлагал вводить алгоритмы проверок в S# [blush] (не стал пользователем вашего чудо-проекта, хотя оценки исключительно восторженные и соблазн был велик).
Я всего лишь описал проблему потери ответов на транзакции.
Отслеживать уже зарегистрированную заявку - не проблема. Проблема - связать заявку (появление которой вероятностно) с конкретным роботом (которых тоже куча разных алгоритмов). Связывание через trans_id - ненадёжно. Во-первых, заявки MOVE_ORDERS до сих пор, даже после перехода на плазу2, не получают trans_id и uid, во-вторых, вечерние классы также не получают этих полей, в-третьих, сервера часто не пересылают друг другу эти поля или прекращают их трансляцию. Вот здесь http://www.quik.ru/forum/import/58076/ объявили, что плаза2 решила проблемы, но я этого у себя в таблице заявок не вижу. Когда увижу - буду думать, пока - работает старая логика.

Mikhail Sukhov
Я так и не понял почему.

Насколько я разобрался в программе, бары в OQ формируются в реальном времени из поступающих тиков (или бидов, или асков, или среднего - это указывается в настройке адаптера маркет даты), поэтому будут содержать в себе ошибку времени входящих тиков.

Mikhail Sukhov
В кванте можно подписаться на событие новых тиков?

Да, конечно:
OnTrade - при появлении нового тика
OnQuote - при изменении лучших
OnOrderBookChanged - при изменении стакана!
Thanks:

aleksej

Avatar
Date: 2/7/2011
Reply


Здравствуйте!

Пробовал последнюю версию адаптера с OQ 2.9.13 и OQ 3.0.4, 3.0.5.

В режиме Live стратегии в OQ 2.9.13 работают отлично. А в OQ 3.0.x возникают ошибки при попытке снять лимитную заяку.

Code
Method not found: 'Void OpenQuant.API.Plugins.UserProvider.EmitCancelReject(OpenQuant.API.Order, System.String)'.
System.MissingMethodException: Method not found: 'Void OpenQuant.API.Plugins.UserProvider.EmitCancelReject(OpenQuant.API.Order, System.String)'.
at QuikAdapter.QuikMarketDataProvider.Cancel(Order order)
at OpenQuant.API.Plugins.SQProvider.SendOrderCancelRequest(OrderCancelRequest request)
at SmartQuant.Execution.OrderManager.4PAGg35hK(SingleOrder )
at SmartQuant.Execution.SingleOrder.Cancel()
at OpenQuant.API.Order.Cancel()
at MyStrategy.OnQuote(Quote quote) in c:\Documents and Settings\Администратор\Мои документы\OpenQuant\Projects\test1\code.cs:line 68
at OpenQuant.Trading.StrategyRunner.SetNewQuote(Instrument instrument, Quote quote)


Можно ли обновить адаптер для работы с 3-ей версией OpenQuant-а? Очень уж там плюшки хорошие :)
Thanks:

Pike

Avatar
Date: 2/10/2011
Reply


Обновим в ближайшее время
Thanks:

solabuto

Avatar
Date: 3/30/2011
Reply


Добрый день. Я получил от Вас ключь для тестирования адаптера, но при подсоединении к Кванту програма сказала что нет ключа. Ничего не помогает не переустановка не перезагруска. Что делать? помогите.
Thanks:

trader

Avatar
Date: 11/29/2011
Reply


Здравствуйте!

Установил программу установщиком, в папке с программой нет файла самого приложения OpenQuant.exe?
Thanks:

SmartQuant

Avatar
Date: 12/12/2011
Reply


Я думаю взять можно на www.smartquant.com [biggrin]
Thanks:

SelfDeleted

Avatar
Date: 2/2/2012
Reply


Q2Q 3.1.1 демо
OQ 3.4.0 32 bit демо

следовал инструкции по установке и подключению. однако при попытке подключения провайдера OQ упорно выдает ошибку:

Не удалось подключиться к Quik. Возможно, в Quik-е не включена обработка внешних транзакций.
Имя параметра: path

обработка внешних транзакций включена. в чем мб причина?
Thanks:

Mikhail Sukhov

Avatar
Date: 2/2/2012
Reply


Thanks:

SelfDeleted

Avatar
Date: 2/3/2012
Reply


все, как на первой картинке и далее. info.wnd из дистрибутива.
Thanks:

SelfDeleted

Avatar
Date: 2/3/2012
Reply


topic959
все, как на первой картинке и далее. info.wnd из дистрибутива.

принтскрин verifier
также в числе возможных причин указывает невключение обработки внешних транзакций. но она включена.
verifier.bmp 4 MB (279)
Thanks:
< 1 2 3  >

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy