← Назад

Новый коннектор к Quik

Мы сделали новый коннектор к Quik. Доступен начиная с версии 4.2.4.0

Коннектор обраладет следующими преимуществами:

  1. Быстрее скорость транспортировки данных.
  2. Значительно упрощена настройка таблиц в Quik (все колонки по умолчанию, нужно просто открыть таблицы в терминале, без дополнительных каких-либо настроек).
  3. Возможность подключаться удаленно к Quik.
  4. Робот может быть скомпилирован под 64 бита.

Подробнее, о настроках и миграции.

Коннектор сделан с использование протокола FIX 4.4. Поэтому появилась новая возможность - подключение к Quik не из StockSharp программ. Если у вас есть код или готовая программа, использующая FIX, то вы можете попробовать подключиться к Quik терминалу через FIX протокол.

Давайте попробуем данный тип подключения, и отпишемся здесь о своих замечаниях. А к осени воздадим почет DDE+Trans2Quik как самой старой технологии, и первому коннектору в S#. И отправим на заслуженный покой.

Комментарии (163)

Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий

poison
poison

Скачал StockSharp_4.2.4_Sources, распаковал, добавляю скрипт StockSharp.QuikLua.lua в Quik и запускаю. Ошибка: Ошибка при запуске lua скрипта

esper
esper

Этот файл есть по указанному пути? Может его разблокировать надо?

poison
poison

Да, есть. По указанному пути в папке все файлы, которые в папке References в архиве для скачивания. Попробовал скопировать папку в C:\References - та же самая ошибка.

Mikhail Sukhov
Mikhail Sukhov Автор

На папку перед распаковкой делали Unblock?

poison
poison

Распаковывал в совершенно новую папку. На всякий случай проверил Unlocker'ом. Нет там блокировок никаких. Может библиотек каких не хватает в папке?

esper
esper

Версия Quik какая?

poison: Распаковывал в совершенно новую папку. На всякий случай проверил Unlocker'ом. Не надо ничего Unlocker'ом проверять, в свойствах архива есть кнопка разблокировать?

poison
poison

Кнопка была. Нажал разблокировать, разархивировал. Ошибка осталась. Квик 6.12.4.11

esper
esper

У меня не воспроизводится ни на 6.12.4.11, ни на более поздних версиях, специально качал архив с box.net для проверки. Необходимо искать кто у вас не дает загрузить файл. В свойствах dll файла есть такая кнопка?

poison
poison

Кнопки нет такой. Свойства файла

UPD: Попробовал запустить скрипт на виртуальном сервере - та же ошибка. Наверное дело в квике

UPD2: Скачал с БКС заново квик - не помогло

esper
esper

Тогда пробуем установить Visual C++ redistributable

poison
poison

esper: Тогда пробуем установить Visual C++ redistributable

Заработало

devruss
devruss

вопрос в тему: Гидра умеет с помощью этого коннектора к Квику подключаться, и если да, то как ее надо настраивать?

esper
esper

В ближайших версиях, смотрите по changelog-у.

poison
poison

Теперь если есть возможность подключаться удаленно, проддерживается ли подключение двух роботов к одному квику одновременно?

Mikhail Sukhov
Mikhail Sukhov Автор

poison: Теперь если есть возможность подключаться удаленно,

Да.

poison: проддерживается ли подключение двух роботов к одному квику одновременно?

Решение на базе FIX Server появилось в рамках продукта S#.Broker. Данный продукт доступен только для корпоративных клиентов.

В коннекторе Quik используется сокращенная по функционалу версию, которая позволяет подключение только 1 клиенту. Возможно, после окончания тестирования, расширим для эту опцию до нескольких клиентов. Но она будет доступна только для учеников или по брокерской лицензии.

devruss
devruss

poison: проддерживается ли подключение двух роботов к одному квику одновременно? А зачем это нужно?

Можно же всегда сделать одного робота с кучей стратегий. Так и риски регулировать удобнее, и за общей позицией следить и т.д.

Mikhail Sukhov
Mikhail Sukhov Автор

devruss: А зачем это нужно?

С одним терминалом могут работать:

  1. Гидра, непрерывно пишущая историю.
  2. Боевые стратегии.
  3. Тестирование новой стратегии из студии на реальном подключении.
devruss
devruss

Михаил Сухов:

devruss: А зачем это нужно?

С одним терминалом могут работать:

  1. Гидра, непрерывно пишущая историю.
  2. Боевые стратегии.
  3. Тестирование новой стратегии из студии на реальном подключении.

Hydra + боевые роботы это вещь... надеюсь, хотя бы такое ограничение можно сделать для пользователей. Иметь 2 источника: 1 для данных, 1 для execution неудобно

poison
poison
QuikTrader 10.07.2014 18:15:42 Error System.InvalidOperationException: Лицензия N56018 не поддерживает 'FixTrader'.
Лицензия N56018 не поддерживает 'FixTrader'.

Новый коннектор не бесплатен?

Mikhail Sukhov
Mikhail Sukhov Автор

poison: Новый коннектор не бесплатен?

Бесплатен. А что вы сделали, что сейчас ошибка вылезла?

poison
poison

Михаил Сухов:

poison: Новый коннектор не бесплатен?

Бесплатен. А что вы сделали, что сейчас ошибка вылезла?

Просто запустил робота в первый раз. До этого я только с импортом скрипта возился.

С DDE работает нормально.

aPlakhotnuk
aPlakhotnuk

С базовой лицензией не работает. Лицензию перегенерировал. «Лицензия №56157 не поддерживает “FixTrader”» При переключении на соединение через DDE ошибка сохраняется.

Mikhail Sukhov
Mikhail Sukhov Автор

aPlakhotnuk: Лицензию перегенерировал.

Это как именно?

Mikhail Sukhov
Mikhail Sukhov Автор

Лицензию нужно видимо обновить в личном кабинете.

poison
poison

Михаил Сухов: Лицензию нужно видимо обновить в личном кабинете.

Удалил лицензию в личном кабинете и сгенерировал заново. Все равно ошибка, номер лицензии при этом уже другой

QuikTrader 10.07.2014 20:00:11 Error System.InvalidOperationException: Лицензия N66454 не поддерживает 'FixTrader'.

aPlakhotnuk
aPlakhotnuk

Михаил Сухов:

aPlakhotnuk: Лицензию перегенерировал.

Это как именно? Имелось ввиду обновил в Личном кабинете. Повторно обновил лицензию. Ошибка сохранилась.

aPlakhotnuk
aPlakhotnuk

С DDE работает. Ошибка у меня (.

vsnoopy83
vsnoopy83
  1. Стакана в Sample не открываются
  2. Не понятно, если у меня в текущей таблице параметров 2 инструмента, зачем мне грузить в инструменты все 4000 и тратить на это несколько минут.
  3. Не смог в своем роботе получить новые сделки из таблицы всех сделок.

Для примера создал лейбл на главном экране Sample, событие не вызывается, сделки не приходят. Понимаю, что там коллекция, разбирать времени не было, но событие не приходит. Trader.NewTrades += tr => this.GuiAsync(() => ); 4. При попытке отправить из Sample заявку в терминал выскочила ошибка(в приложении), не поддерживается лицензия. Позже обновил лицензию через LicensTool, но не помогло, выскакивает такая же ошибка.

  1. Файл WND написан для версии квика, позже реальной боевой например в Сбербанке-киб (6,12,4,11), при попытке загрузить эти настройки терминал пишет, что версия настроек позже текущей, если все равно грузить настройки квик вываливается с критической ошибкой.
  • ошибки квика при запуске перезапуске экспорта роботов, подробности по мере появления свободного времени, очень хочется уйти от дде, простым обновлением библиотек и настроек к сож. не получилось.
esper
esper

vsnoopy83:

  1. Стакана в Sample не открываются Что значит не открываются? Окно не открывается, открывается но нет данных, стакан в Quik не открывается автоматически?

vsnoopy83: 2. Не понятно, если у меня в текущей таблице параметров 2 инструмента, зачем мне грузить в инструменты все 4000 и тратить на это несколько минут. Это особенность луа, получение данных независимо от того, что выбрал пользователь в интерфейсе.

vsnoopy83: 3. Не смог в своем роботе получить новые сделки из таблицы всех сделок. RegisterTrades вызывали?

vsnoopy83: 5. Файл WND написан для версии квика, позже реальной боевой например в Сбербанке-киб (6,12,4,11), при попытке загрузить эти настройки терминал пишет, что версия настроек позже текущей, если все равно грузить настройки квик вываливается с критической ошибкой. Файл настроек приведен как пример, можно использовать старый файл настроек.

vsnoopy83:

  • ошибки квика при запуске перезапуске экспорта роботов, подробности по мере появления свободного времени, очень хочется уйти от дде, простым обновлением библиотек и настроек к сож. не получилось. Надо логи смотреть, что там за ошибки.
vsnoopy83
vsnoopy83

esper:

vsnoopy83:

  1. Стакана в Sample не открываются Что значит не открываются? Окно не открывается, открывается но нет данных, стакан в Quik не открывается автоматически?

Стакан в Quik не открывается автоматически.

vsnoopy83: 2. Не понятно, если у меня в текущей таблице параметров 2 инструмента, зачем мне грузить в инструменты все 4000 и тратить на это несколько минут. Это особенность луа, получение данных независимо от того, что выбрал пользователь в интерфейсе.

С этим можно жить, это не проблема)

vsnoopy83: 3. Не смог в своем роботе получить новые сделки из таблицы всех сделок. RegisterTrades вызывали?

Проверю чуть позже, у меня есть рабочий робот под дде, я поменял тип подключение, на луа есть какие то особенности с подпиской к всем сделкам?

vsnoopy83: 5. Файл WND написан для версии квика, позже реальной боевой например в Сбербанке-киб (6,12,4,11), при попытке загрузить эти настройки терминал пишет, что версия настроек позже текущей, если все равно грузить настройки квик вываливается с критической ошибкой. Файл настроек приведен как пример, можно использовать старый файл настроек.

Понял, спасибо

vsnoopy83:

  • ошибки квика при запуске перезапуске экспорта роботов, подробности по мере появления свободного времени, очень хочется уйти от дде, простым обновлением библиотек и настроек к сож. не получилось. Надо логи смотреть, что там за ошибки.

Подскажите, что с лицензией то делать? Ошибка была в приложении к сообщению в картинке.

Буду выкладывать по мере повторения поступления ошибок, сейчас самое главное для меня получить сделки из таблицы всех сделок.

Спасибо за ответы!

esper
esper

Будет фикс, постараемся сегодня выложить.

vsnoopy83
vsnoopy83
vsnoopy83

esper: Будет фикс, постараемся сегодня выложить.

_trader.NewTrades += trades

События так и не приходят, и стаканы так и не открываются. Стаканы то бог с ним, можно вручную открыть, данные начинают приходить, а вот со сделками беда.

Если к нужному инструменту сделать RegisterTrades(инструмент), начинают приходить, но только новые сделки, а как же получить историю с начала дня.

Хочу обратить внимание, что при DDE соединении при подписке на событие trades сделки из таблицы всех сделок приходят по умолчанию, даже без RegisterTrades(инструмент). Если здесь механизм другой, прошу подсказать как им пользоваться, как получить все сделки с начала дня.

vsnoopy83
vsnoopy83

esper: Будет фикс, постараемся сегодня выложить.

В Sample, открываю таблицу всех сделок, сделок нет. При этом все остальные таблицы заполняются.

Интересно также, что после того, как нажимаешь в Sample кнопку отключится фактически отключения не происходит, продолжают приходить данные.

esper
esper

vsnoopy83: В Sample, открываю таблицу всех сделок, сделок нет. При этом все остальные таблицы заполняются. В сэмпле есть кнопка Level1, там выполняется подписка на тики и изменения.

vsnoopy83: События так и не приходят, и стаканы так и не открываются. Стаканы то бог с ним, можно вручную открыть, данные начинают приходить, а вот со сделками беда. Приходят какие-то ошибки? Что в логах? Как таблица инструментов настроена?

vsnoopy83: Если к нужному инструменту сделать RegisterTrades(инструмент), начинают приходить, но только новые сделки, а как же получить историю с начала дня. Что в логах Lua коннектора? Желательно включить Debug логи в скрипте.

vsnoopy83: Хочу обратить внимание, что при DDE соединении при подписке на событие trades сделки из таблицы всех сделок приходят по умолчанию, даже без RegisterTrades(инструмент). Если здесь механизм другой, прошу подсказать как им пользоваться, как получить все сделки с начала дня. Если так было раньше, то это не значит, что было правильно. Вся подписка на данные выполняется через соответствующие методы коннектора.

vsnoopy83
vsnoopy83

esper:

vsnoopy83: В Sample, открываю таблицу всех сделок, сделок нет. При этом все остальные таблицы заполняются. В сэмпле есть кнопка Level1, там выполняется подписка на тики и изменения.

vsnoopy83: События так и не приходят, и стаканы так и не открываются. Стаканы то бог с ним, можно вручную открыть, данные начинают приходить, а вот со сделками беда. Приходят какие-то ошибки? Что в логах? Как таблица инструментов настроена?

vsnoopy83: Если к нужному инструменту сделать RegisterTrades(инструмент), начинают приходить, но только новые сделки, а как же получить историю с начала дня. Что в логах Lua коннектора? Желательно включить Debug логи в скрипте.

vsnoopy83: Хочу обратить внимание, что при DDE соединении при подписке на событие trades сделки из таблицы всех сделок приходят по умолчанию, даже без RegisterTrades(инструмент). Если здесь механизм другой, прошу подсказать как им пользоваться, как получить все сделки с начала дня. Если так было раньше, то это не значит, что было правильно. Вся подписка на данные выполняется через соответствующие методы коннектора.

Спасибо, за ответы, будем проверять в понедельник, по поводу правильно не правильно я ж не знаю, как должно быть правильно, знаю только как работало)) Смущает, что при подписке на трейды по бумаге не приходит история, но будем разбираться.

vsnoopy83
vsnoopy83

После применения Level1 таблица всех сделок заработала, значит и к роботам прикрутим, но вот стаканы автоматически не открываются. т.е. выбираешь бумагу нажимаешь кнопку стакан, Sample стакан открывается, а в квике нет, при этом если вручную в квике открыть стакан, то в стакан sample начинают приходить данные. Ошибок никаких не вижу.

esper
esper

vsnoopy83: После применения Level1 таблица всех сделок заработала, значит и к роботам прикрутим, но вот стаканы автоматически не открываются. т.е. выбираешь бумагу нажимаешь кнопку стакан, Sample стакан открывается, а в квике нет, при этом если вручную в квике открыть стакан, то в стакан sample начинают приходить данные. Ошибок никаких не вижу.

Для текущей версии читаем документацию и далее смотрим на скрин.

esper: Для поддержки автоматического открытия стакана должна присутствовать открытая таблица текущих параметров с названием Инструменты, и содержать следующие первые три колонки: Краткое название бумаги, Код бумаги, Код класса. Порядок и тип остальных столбцов таблицы может быть любым.

vsnoopy83
vsnoopy83

esper:

vsnoopy83: После применения Level1 таблица всех сделок заработала, значит и к роботам прикрутим, но вот стаканы автоматически не открываются. т.е. выбираешь бумагу нажимаешь кнопку стакан, Sample стакан открывается, а в квике нет, при этом если вручную в квике открыть стакан, то в стакан sample начинают приходить данные. Ошибок никаких не вижу.

Для текущей версии читаем документацию и далее смотрим на скрин.

esper: Для поддержки автоматического открытия стакана должна присутствовать открытая таблица текущих параметров с названием Инструменты, и содержать следующие первые три колонки: Краткое название бумаги, Код бумаги, Код класса. Порядок и тип остальных столбцов таблицы может быть любым.

Все по инструкции, (см. скрин), есть таблица текущих параметров с названием Инструменты, есть первые 3 колонки правильные, но стакан не открывается, да это и мелочь на самом деле, не сложно его открыть руками, но вот сегодня опять не пришла история сделок с начала дня при подписке по Level1.

Также для избежания постоянной путаницы может быть есть смысл в стандартном файле настроек info_lua.wnd изменить название таблицы параметров на Инструменты. Т.к. я вот был уверен, что в этих настройках все так, как должно быть для корректной работы.

esper
esper

Попробуйте на 4.2.6

vsnoopy83
vsnoopy83
vsnoopy83

esper: Попробуйте на 4.2.6

Сделки с начала дня пришли, стаканы открылись, все работает, проверяем функционал дальше. Спасибо!!

vsnoopy83
vsnoopy83

esper: Попробуйте на 4.2.6

Осталась последняя проблема, не отображается корректно максимальная и минимальная цена на фортсе. Показывает 2147483647 и 1 соответственно, подскажите как получить эти данные, очень нужны для фортса и рыночных заявок.

esper
esper

На изменения по инструменту подписаны?

vsnoopy83
vsnoopy83

esper: На изменения по инструменту подписаны?

да, нажимаю сначала Level1, дожидаюсь пока придут все данные в таблице инструментов и потом только смотрю максимальную и минимальную цену.

Раньше в dde нужно было дополнительно эту информацию получать. Может здесь тоже что то подобное?

Mikhail Sukhov
Mikhail Sukhov Автор

vsnoopy83:

esper: На изменения по инструменту подписаны?

да, нажимаю сначала Level1, дожидаюсь пока придут все данные в таблице инструментов и потом только смотрю максимальную и минимальную цену.

Раньше в dde нужно было дополнительно эту информацию получать. Может здесь тоже что то подобное?

Так Level1 нужно нажимать после появления нужного инструмента.

vsnoopy83
vsnoopy83

Михаил Сухов:

vsnoopy83:

esper: На изменения по инструменту подписаны?

да, нажимаю сначала Level1, дожидаюсь пока придут все данные в таблице инструментов и потом только смотрю максимальную и минимальную цену.

Раньше в dde нужно было дополнительно эту информацию получать. Может здесь тоже что то подобное?

Так Level1 нужно нажимать после появления нужного инструмента.

Да естественно, Level1 активен только при выборе инструмента, когда он уже загружен в Sample

longtrades
longtrades

Здравствуйте , версия 4.2.6.0 при попытке запустить скрипт Луа в Квик выскакивает ошибка : error loading module 'StockSharp' from file 'C:\References\StockSharp.QuikLua.dll': The specified module could not be found. Подскажите пожалуйста в чем проблема.

Mikhail Sukhov
Mikhail Sukhov Автор

longtrades:

Было.

longtrades
longtrades

Да , но это : "Тогда пробуем установить Visual C++ redistributable" в моем случае никак не помогает , ошибка та же.

vsnoopy83
vsnoopy83

longtrades: Да , но это : "Тогда пробуем установить Visual C++ redistributable" в моем случае никак не помогает , ошибка та же.

Возможно у вас 64 разрядная система и вы установили redistributable именно для неё, тогда ошибка останется, надо ставить x86.

longtrades
longtrades

vsnoopy83: Возможно у вас 64 разрядная система и вы установили redistributable именно для неё, тогда ошибка останется, надо ставить x86.

Да, так и было. Спасибо.

Mikhail Sukhov
Mikhail Sukhov Автор

vsnoopy83:

longtrades: Да , но это : "Тогда пробуем установить Visual C++ redistributable" в моем случае никак не помогает , ошибка та же.

Возможно у вас 64 разрядная система и вы установили redistributable именно для неё, тогда ошибка останется, надо ставить x86.

Добавил в доку.

vsnoopy83
vsnoopy83

Подскажите есть ли новости по поводу получения максимальной и минимальной возможной цены?

esper
esper

vsnoopy83: Подскажите есть ли новости по поводу получения максимальной и минимальной возможной цены? Будет фикс в следующей версии. Если надо очень срочно, то можно взять библиотеки из последней Гидры.

vsnoopy83
vsnoopy83

esper:

vsnoopy83: Подскажите есть ли новости по поводу получения максимальной и минимальной возможной цены? Будет фикс в следующей версии. Если надо очень срочно, то можно взять библиотеки из последней Гидры.

Вроде все заработало, один вопрос: при перерегистрации заявок раньше по dde в окне сообщения об этом не сообщалось, теперь сообщается:

"Перестановка заявок завершена успешно. New Order1 ID: 2396988446, new Order2 ID: 0"

эти сообщения можно отключить? Из за них можно попустить что то важное, например время открытия вечерки или остановки торгов для расширения лимитов.

И кстати непонятно почему ID Order2 0.

esper
esper

vsnoopy83: Вроде все заработало, один вопрос: при перерегистрации заявок раньше по dde в окне сообщения об этом не сообщалось, теперь сообщается:

"Перестановка заявок завершена успешно. New Order1 ID: 2396988446, new Order2 ID: 0"

эти сообщения можно отключить? Из за них можно попустить что то важное, например время открытия вечерки или остановки торгов для расширения лимитов. Это вопрос скорее в поддержку квика.

vsnoopy83: И кстати непонятно почему ID Order2 0. Переставлялась только одна заявка, поэтому второй номер 0.

vsnoopy83
vsnoopy83

esper:

vsnoopy83: Вроде все заработало, один вопрос: при перерегистрации заявок раньше по dde в окне сообщения об этом не сообщалось, теперь сообщается:

"Перестановка заявок завершена успешно. New Order1 ID: 2396988446, new Order2 ID: 0"

эти сообщения можно отключить? Из за них можно попустить что то важное, например время открытия вечерки или остановки торгов для расширения лимитов. Это вопрос скорее в поддержку квика.

vsnoopy83: И кстати непонятно почему ID Order2 0. Переставлялась только одна заявка, поэтому второй номер 0.

Спасибо!

longtrades
longtrades

В новом коннектроре на Луа есть одна большая проблема: до того пока не произойдет обнвление того или инного поля оно остается пустым, я уже упоминал об этом на примере стакана: на стакан подписался , но стакана еще нет и пока стакан не изменится в коннекторе он таки будет пустым. То же самое например с полями инструментов , например поля теор цены и волатильность опционов так и будут пустыми пока не произойдет событие в котором придет их обновление.

Думаю это неправильно , должно быть так:

Получил новый инструмент подписался на него и автоматом должны перечитаться из квика и заполнится все поля инструмента. Также со стаканом , как только я подписываюсь на стакан , коннектор должен принудительно взять стакан из квика, а не ждать пока произойдет обновление стакана.

Вот самое главное что разработчики пропустили в новом коннекторе .

esper
esper

longtrades: В новом коннектроре на Луа есть одна большая проблема: до того пока не произойдет обнвление того или инного поля оно остается пустым, я уже упоминал об этом на примере стакана: на стакан подписался , но стакана еще нет и пока стакан не изменится в коннекторе он таки будет пустым. То же самое например с полями инструментов , например поля теор цены и волатильность опционов так и будут пустыми пока не произойдет событие в котором придет их обновление. В процессе подписки на данные автоматически запрашивается текущее состояние. Если это стакан, то его срез, если Level1, то текущие данные, если тики, то вся история до текущего момента.

longtrades: Думаю это неправильно , должно быть так:

Получил новый инструмент подписался на него и автоматом должны перечитаться из квика и заполнится все поля инструмента. Также со стаканом , как только я подписываюсь на стакан , коннектор должен принудительно взять стакан из квика, а не ждать пока произойдет обновление стакана. Именно так оно и работает. Откройте стакан на неликвидном инструменте и подпишитесь на него, стакан придет еще до изменения его в квике.

Еще раз, процесс подписки и получения данных асинхронный. Если по каким-то причинам для каких-то коннекторов сразу после вызова метода RegisterMarketDepth (не дожидаясь события изменения стакана), можно получить заполненный стакан, это не значит, что это правильный подход в использовании S# и он будет работать всегда и для всех коннекторов.

longtrades
longtrades

esper: В процессе подписки на данные автоматически запрашивается текущее состояние. Если это стакан, то его срез, если Level1, то текущие данные, если тики, то вся история до текущего момента.

Действительно приходят свойства и стаканы, но почемуто очень и очень медленно и мучительно долго, через ДДЕ все приходит в моменте, а тут нужно минут 10 чтобы все пришло.

Еще заметил что новый коннектор никак не учитывает настройки получения данных прописанные в квике в Связь- Списки , и подгружает все инструменты , может потому он так и тормозит ?

Может стоит отключить автоматическую подписку на все инструменты ? пусть каждый подписывается только на те инструменты которые ему нужны.

Интересно, а как с таблицей всех сделок, он хоть учитывает подписку на эти данные или тоже грузит все подряд?

esper
esper

longtrades: Еще заметил что новый коннектор никак не учитывает настройки получения данных прописанные в квике в Связь- Списки , и подгружает все инструменты , может потому он так и тормозит ? С этим вопросом лучше в поддержку квика.

longtrades: Может стоит отключить автоматическую подписку на все инструменты ? пусть каждый подписывается только на те инструменты которые ему нужны. На данные подписываетесь вы сами, поэтому подписывайтесь только на те инструменты, которые вам нужны. Но список инструментов приходит весь, чтобы можно было подписаться на все, что необходимо.

longtrades: Интересно, а как с таблицей всех сделок, он хоть учитывает подписку на эти данные или тоже грузит все подряд? Не знаю как сейчас это сделано в квике, а раньше он всегда получал все тики, но показывал только те инструменты, что выбраны в фильтре.

longtrades
longtrades

Я и подписываюсь только на то что мне нужно . Вы уверены что коннектор не делает автоматом: connector.RegisterSecurity(sec) при получении ногого инструмента ?

Почему же такие тормоза ? Почему через ДДЕ все приходит намного быстрее ? По идее через Луа наоборот должно быть пошустрее.

Может проблема в самом скрипте луа то есть в длл что в него подгружается, ведь даже если я не подписался отсекать будет уже коннектор, может нужно что бы отсекал скрипт луа ? может все данные идут одним потоком в соннектор из луа?

Andrii
Andrii

есть информация с какой версии квика будет работать корректно, а то есть брокеры с довольно старыми?

esper
esper

Давайте подойдем с другой стороны, у вас что-то не работает?

Andrii
Andrii

esper: Давайте подойдем с другой стороны, у вас что-то не работает? да, по порядку:

  • настройки для квика info_lua.wnd, нельзя применить для старых версий квика.
  • если брать старые настройки, info.wnd из сорса, которые используются при DDE, то получаем ошибку при верификации: Ошибка верификации

мне бы настроить версию 6.5.2.11

esper
esper

Нет необходимости загружать именно этот файл настроек, все необходимые настройки описаны здесь.

Andrii
Andrii

esper: Нет необходимости загружать именно этот файл настроек, все необходимые настройки описаны здесь. да, это читал, только вот на скрине показываю как не находит таблицу которая уже открыта.

Axell
Axell

При запуске Samples (S# 4.2.20, QUIK 6.14.0.12), через LUA, выскакивает ошибка "Операция является недоступной из-за текущего состояния объекта" http://gyazo.com/9167c69e6a43796ee40866289782da7b , в StockSharp.QuikLua ошибки нет. Что не так?

esper
esper

Скопируйте ошибку текстом.

Axell
Axell

Error System.InvalidOperationException: Операция является недопустимой из-за текущего состояния объекта. в #=qlzAhmNJcRJj7yRqMy$HGIbaJ9VOJwEcYz4f_WwOTVNE=.#=qDgLWy14y870wz4tzTCEUQg==(Stream #=q0z4clprxecT1NtlVhkbsfQ==) в StockSharp.Fix.FixReader.ReadNextTag() в StockSharp.Fix.FixMessageAdapter.#=qacR_9DBjtFT9tmjFdlb977Xn632wOgT$bDM2ysPPVHA=()

esper
esper

Хорошо бы еще дебаг логи для QuikTrader-а увидеть.

Axell
Axell

В StockSharp.QuikLua только: "2014/08/29 22:52:01.685| |FixServer |FixServer started." (LogLevel=2)

Пробовал подключиться через другого брокера (Quik 6.13.0.104), результат аналогичный🤨

Mikhail Sukhov
Mikhail Sukhov Автор

Логи нужны не LUA, а робота. В частности QuikTrader в режиме Debug

Axell
Axell

0001/01/01 00:00:00.000| |QuikTrader|Connect 2014/09/01 17:00:56.454|Debug |FIX |Sending to 80.249.134.243:15101: 8=FIX.4.49=10135=A34=149=*****52=20140901-13:00:56.44056=StockSharpTS98=0108=60141=Y553=*****554=********10=172 0001/01/01 00:00:00.000|Debug |QuikTrader|BP:Connect,T=2014.09.01 17:00:56.523,Error=Операция является недопустимой из-за текущего состояния объекта. 2014/09/01 17:00:56.523|Error |QuikTrader|System.InvalidOperationException: Операция является недопустимой из-за текущего состояния объекта. в #=qlzAhmNJcRJj7yRqMy$HGIbaJ9VOJwEcYz4f_WwOTVNE=.#=qDgLWy14y870wz4tzTCEUQg==(Stream #=q0z4clprxecT1NtlVhkbsfQ==) в StockSharp.Fix.FixReader.ReadNextTag() в StockSharp.Fix.FixMessageAdapter.#=qacR_9DBjtFT9tmjFdlb977Xn632wOgT$bDM2ysPPVHA=() 2014/09/01 17:00:56.523| |QuikTrader|Disconnect 2014/09/01 17:00:56.523|Warning|QuikTrader|Невозможно выполнить отключение, так как соединение находится в состоянии Failed.

Mikhail Sukhov
Mikhail Sukhov Автор

Посмотрите еще лог Lua. Есть ли там хоть какие-то признаки подключения. Судя по стрнной ошибке и что ее нет у других - у вас проблемы сетевого характера (фаервол, неправильный порт, адрес и т.д.), а не коннектора.

Axell
Axell

Михаил Сухов: Посмотрите еще лог Lua. Есть ли там хоть какие-то признаки подключения. Судя по стрнной ошибке и что ее нет у других - у вас проблемы сетевого характера (фаервол, неправильный порт, адрес и т.д.), а не коннектора.

Попробовал подключится через другого брокера, антивирусы/фаерволы отключил, порты и адреса проверил. После запуска Квика лог Lua:

2014/09/01 22:20:24.074| |FixServer |FixServer started. 2014/09/01 22:20:24.074|Debug |None |OnInit done 2014/09/01 22:20:24.075|Debug |None |Main 2014/09/01 22:21:06.545|Debug |None |OnParam 2014/09/01 22:21:06.555|Debug |Quik |Out. Level1Change,T=2014.09.01 22:21:06.558,Sec=S#:RU000A0JPZ35@EQOB, Native:,Type:,Changes=[PriceStep, 0,01] 2014/09/01 22:21:06.564|Debug |None |OnParam done ... 2014/09/01 22:21:07.729|Debug |None |OnDepoLimit 2014/09/01 22:21:07.729|Debug |Quik |Out. PortfolioChange,T=2014.09.01 22:21:07.729,P=139892,Changes=[DepoName, L01-00000F00] 2014/09/01 22:21:07.729|Debug |Quik |Out. Position,T=2014.09.01 22:21:07.730,Sec=S#:RU000A0GN9B5@, Native:,Type:Stock,P=139892 2014/09/01 22:21:07.730|Debug |Quik |Out. PositionChange,T=2014.09.01 22:21:07.730,Sec=S#:RU000A0GN9B5@, Native:,Type:Stock,P=139892,Changes=[BeginValue, 12],[CurrentValue, 12] 2014/09/01 22:21:07.730|Debug |None |OnDepoLimit done

как я понимаю информация по бумагам и позициям идёт. Когда запускаю стратегию, в логе Lua новых записей не появляется, а QuikTrader выдаёт новую ошибку:

0001/01/01 00:00:00.000| |QuikTrader|Connect 2014/09/01 22:23:29.541|Debug |FIX |Sending to 195.226.204.208:15300: 8=FIX.4.49=10235=A34=149=*****52=20140901-18:23:29.53056=StockSharpTS98=0108=60141=Y553=*****554=***10=183 0001/01/01 00:00:00.000|Debug |QuikTrader|BP:Connect,T=2014.09.01 22:23:29.560,Error=Не удается прочитать данные из транспортного соединения: Удаленный хост принудительно разорвал существующее подключение. 2014/09/01 22:23:29.560|Error |QuikTrader|System.IO.IOException: Не удается прочитать данные из транспортного соединения: Удаленный хост принудительно разорвал существующее подключение. ---> System.Net.Sockets.SocketException: Удаленный хост принудительно разорвал существующее подключение в System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags) в System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) --- Конец трассировки внутреннего стека исключений --- в System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) в System.IO.Stream.ReadByte() в #=qlzAhmNJcRJj7yRqMy$HGIbaJ9VOJwEcYz4f_WwOTVNE=.#=qDgLWy14y870wz4tzTCEUQg==(Stream #=q0z4clprxecT1NtlVhkbsfQ==) в StockSharp.Fix.FixReader.ReadNextTag() в StockSharp.Fix.FixMessageAdapter.#=qacR_9DBjtFT9tmjFdlb977Xn632wOgT$bDM2ysPPVHA=()

Mikhail Sukhov
Mikhail Sukhov Автор

195.226.204.208:15300 - это что за адрес?

Axell
Axell

Михаил Сухов: 195.226.204.208:15300 - это что за адрес?

Михаил, я понял свою ошибку! Это адрес соединения брокера😂. Спасибо!

Axell
Axell

Добрый день. Как при Lua подключении получить значение "Входящие средства" (Размер позиции на начало торговой сессии) из таблицы "Портфель по бумагам"? portfolio.BeginValue выводит неправильные данные.

Mikhail Sukhov
Mikhail Sukhov Автор

Подробнее

Axell
Axell

Михаил Сухов: Подробнее

При соединении через DDE в Quke настраивается таблица "Портфель по бумагам", с колонками: Код клиента ВходСредства ТекСредства Тек.плечо

Данные из колонки "ВходСредства" выводятся с помощью portfolio.BeginValue. При соединении через Lua, portfolio.BeginValue выводит совершенно другие данные, не соответствующие данным в колонке "ВходСредства"🤨 (похоже на данные из колонки "Вход.активы", но это не то что надо) Как при соединении через Lua достать данные из колонки "ВходСредства"?

Roman08120
Roman08120

Добрый вечер!

Подскажите пож-та, запускаю скрипт, выдаёт ошибку! Visual C++ redistributable установлен, настройки Quik загрузил из Sample.

Mikhail Sukhov
Mikhail Sukhov Автор
rtDen
rtDen

Приветствую всех. У меня вопрос про получение BestBid и BestAsk. Для этого обязательно запускать экспорт стаканов? В хелпе в описании метода RegisterSecurity указанно "Начать получать новую информацию (например, LastTrade или BestBid) по инструменту", но даже после его вызова BestBid и BestAsk у инструмента остаются равны null. В Sample также, при нажатии кнопки Level1 колонки bestbid и bestask остаются пустыми, при запуске стакана - заполняются. Verifier пишет, что все настроено правильно. Это баг или я что-то делаю/понимаю не так?

quik: 6.14.0.12 S#: 4.2.22 OS: Windows 7 x64

rtDen
rtDen

В режиме блиц-опроса повторю свой вопрос. Для проверки скачал только что 4.2.26 и запустил Sample, при нажатии Level1 bid'ов и ask'ов в таблице как не было, так и нет. Появляются только при запуске стакана.

rtDen: Приветствую всех. У меня вопрос про получение BestBid и BestAsk. Для этого обязательно запускать экспорт стаканов? В хелпе в описании метода RegisterSecurity указанно "Начать получать новую информацию (например, LastTrade или BestBid) по инструменту", но даже после его вызова BestBid и BestAsk у инструмента остаются равны null. В Sample также, при нажатии кнопки Level1 колонки bestbid и bestask остаются пустыми, при запуске стакана - заполняются. Verifier пишет, что все настроено правильно. Это баг или я что-то делаю/понимаю не так?

quik: 6.14.0.12 S#: 4.2.22 OS: Windows 7 x64

Roman08120
Roman08120

Добрый день, подскажите пож-та, можно ли осуществить в коннекторе так, чтобы в список инструментов загружался только один определённый инструмент, а не весь список фьючей, акций, опционов и т.д.? Затрудняет поиск

RomSunZ
RomSunZ

Roman08120: Добрый день, подскажите пож-та, можно ли осуществить в коннекторе так, чтобы в список инструментов загружался только один определённый инструмент, а не весь список фьючей, акций, опционов и т.д.? Затрудняет поиск

Наверное настроить списки в квике...

Roman08120
Roman08120

RomSunZ:

Roman08120: Добрый день, подскажите пож-та, можно ли осуществить в коннекторе так, чтобы в список инструментов загружался только один определённый инструмент, а не весь список фьючей, акций, опционов и т.д.? Затрудняет поиск

Наверное настроить списки в квике...

Настраивал, оставлял один инструмент, но всё равно подгружаются куча других

Mikhail Sukhov
Mikhail Sukhov Автор

В режиме блиц-опроса.

Какие то сейчас наблюдаются проблемы с новым коннектором через LUA или все были успешно устранены?

Пишите тут о своих проблемах, если они еще присутствуют.

Andrii
Andrii

Михаил Сухов: В режиме блиц-опроса.

Какие то сейчас наблюдаются проблемы с новым коннектором через LUA или все были успешно устранены?

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

rtDen
rtDen

Я как-то не так вопрос задал (может в не ту ветку или этот вопрос из разряда моего непонимания и ответ доступен только пользователям платной поддержки)? В моем понимании Level1 - это Bid price, Bid size, Ask price, Ask size, Last price, Last size. А стаканы это уже Level2. Тем более судя по документации (см. мое предыдущее сообщение) после вызова RegisterSecurity биды и аски должны быть доступны у security. Вызов SubscribeMarketData(sec, StockSharp.Messages.MarketDataTypes.Level1) также нчиего не дает. Мне в программе нужна информация по множеству инструментов (опционы разных страйков и дат, пока для одного БА, в перспективе для нескольких) и как-то совсем не хочется открывать миллион стаканов.

Mikhail Sukhov
Mikhail Sukhov Автор

Кто то еще может подтвердить данное поведение?

RomSunZ
RomSunZ

Да, действительно это так и есть.

И действительно не работает фильтр по настроенным спискам, выдает все инструменты. Сделайте фильтр, чтобы данные по LUA (по инструментам и сделкам) передавались только те, что настроены по списку в Квике.

Mikhail Sukhov rtDen
esper
esper

RomSunZ: И действительно не работает фильтр по настроенным спискам, выдает все инструменты. Сделайте фильтр, чтобы данные по LUA (по инструментам и сделкам) передавались только те, что настроены по списку в Квике. Это вопрос скорее к разработчикам Quik, почему у них фильтры не работают.

Andrii
Andrii

esper:

RomSunZ: И действительно не работает фильтр по настроенным спискам, выдает все инструменты. Сделайте фильтр, чтобы данные по LUA (по инструментам и сделкам) передавались только те, что настроены по списку в Квике. Это вопрос скорее к разработчикам Quik, почему у них фильтры не работают.

Это скрин с окна из примеров Samples\Quik\Sample и открыты инструменты...

  • в квике с версии 6.15 не отрабатывает Verifier, "Таблица стоп-заявки. Окно не найдено." но те же настройки в 6.14 отрабатывают хорошо загрузка настроек из info_lua.wnd тоже не отрабатывает.
Mikhail Sukhov
Mikhail Sukhov Автор

Andrii: Это скрин с окна из примеров Samples\Quik\Sample и открыты инструменты...

  • в квике с версии 6.15 не отрабатывает Verifier, "Таблица стоп-заявки. Окно не найдено." но те же настройки в 6.14 отрабатывают хорошо загрузка настроек из info_lua.wnd тоже не отрабатывает.

Вы не понимаете что такое луа. Читайте все сообщения посвященные новому коннектору, и только после этого используйте его.

Andrii
Andrii

Михаил Сухов:

Andrii: Это скрин с окна из примеров Samples\Quik\Sample и открыты инструменты...

  • в квике с версии 6.15 не отрабатывает Verifier, "Таблица стоп-заявки. Окно не найдено." но те же настройки в 6.14 отрабатывают хорошо загрузка настроек из info_lua.wnd тоже не отрабатывает.

Вы не понимаете что такое луа. Читайте все сообщения посвященные новому коннектору, и только после этого используйте его. к чему это сказано? и не в том то ли прелесть абстракции?

в 6.14 QUIK версии все работает, в 6.15 уже не работает...

если нужны какие-то преднастройки, то было бы хорошо иметь описание или *.wnd

Mikhail Sukhov
Mikhail Sukhov Автор

Andrii: к чему это сказано?

К тому, что Lua не опирается на разметку таблиц (wnd)

esper
esper

Andrii: в 6.14 QUIK версии все работает, в 6.15 уже не работает... 15-я версия, судя по всему, не совсем рабочая, читайте форум квика.

RomSunZ
RomSunZ

А подскажите, почему трейдер LUA не возвращает статус заявки (null)?


Order order = connector.Orders.FirstOrDefault(o => o.Id == oid);

Результат такой:

esper
esper

RomSunZ: А подскажите, почему трейдер LUA не возвращает статус заявки (null)?

Order order = connector.Orders.FirstOrDefault(o => o.Id == oid);

Как воспроизвести?
Загрузить еще комментарии