Синхронизация состояния клиента TRANS2QUIK.dll с рабочим местом

Страницы: 1
RSS
Синхронизация состояния клиента TRANS2QUIK.dll с рабочим местом
 
Здравствуйте.

Для отправки заявок использую свой .NET привод, использующий TRANS2QUIK.dll. Возник вопрос по поводу синхронизации информации о заявках и сделках с рабочим местом.

Главным образом меня интересует получение актуальной информации о позиции, так как из-за дисконнекта я могу пропустить часть коллбеков. Соответственно, стейт моего привода будет неактуальным. Два варианта, которые пришли на ум, не работают.

Первый - запросить текущий стейт у рабочего места. Но, функции запроса текущей позиции или списка заявок и сделок нет.

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

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

Спасибо.

Версия рабочего места: 6.16.1.15
Версия TRANS2QUIK.dll: 1.1
 
Цитата
aidan1387 пишет:
Первый - запросить текущий стейт у рабочего места. Но, функции запроса текущей позиции или списка заявок и сделок нет.
Здравствуйте,
Есть TRANS2QUIK_START_ORDERS для получения текущих заявок и тоже для сделок TRANS2QUIK_START_TRADES
Цитата
aidan1387 пишет:
Версия TRANS2QUIK.dll: 1.1
Это старая версия, рекомендуем установить обновление до 1.2 с нашего сайта
http://www.quik.ru/depot/Trans2QuikAPI_1.2.rar
 
Спасибо за ответ. Напишу подробней, вижу, возникло недопонимание.
Код
void OnStart()
{
   API.TRANS2QUIK_SUBSCRIBE_ORDERS("", "");
   API.TRANS2QUIK_START_ORDERS(m_orderStatusCallback);
}

void OnDisconnect()
{
   API.TRANS2QUIK_UNSUBSCRIBE_ORDERS();
}

void OnReconnect()
{
   API.TRANS2QUIK_SUBSCRIBE_ORDERS("", "");
   API.TRANS2QUIK_START_ORDERS(m_orderStatusCallback);
}

Первый subscribe-start на старте клиента присылает мне всю историю за текущий день (Тут возникает еще вопрос: как получить историю более чем за день? Но, хотя бы с первым разобраться...). После повторной подписки при восстановлении соединения с рабочим местом мне история уже не приходит. Колбеки приходят только по новым заявкам. Как мне после переподключения получить историю? Мне может отписываться надо когда есть соединение? Или вообще отписываться не надо? Можно мне рабочий пример перезапроса без перезапуска моего приложения на псевдокоде хотя бы?

По поводу версии 1.1 и 1.2. Я смотрел интерфейсы и ченджлог. В 1.2 добавилось несколько бесполезных функций и все. По поводу каких-то фиксов не сказано ничего. 1.2 исправит мою проблему?
 
Цитата
aidan1387 пишет:
Тут возникает еще вопрос: как получить историю более чем за день? Но, хотя бы с первым разобраться.
Никак, потому что биржа ее не хранит. Ее может хранить брокер и предоставлять клиентам в виде отчета.
Цитата
aidan1387 пишет:
Мне может отписываться надо когда есть соединение?
Если произошел разрыв связи, то считаем что это форс мажор, то есть аварийная ситуация.
А значит лучше всего отписаться и заказать все по новой.
Цитата
aidan1387 пишет:
Можно мне рабочий пример перезапроса без перезапуска моего приложения на псевдокоде хотя бы?
Все существующие примеры поставляются вместе с библиотекой. Ссылка была приведена выше.
Цитата
aidan1387 пишет:
По поводу каких-то фиксов не сказано ничего. 1.2 исправит мою проблему?
Рекомендация обновить библиотеку никак не связана с описанной проблемой.
Просто добрый совет, всегда использовать актуальные версии программ.
 
Цитата

Если произошел разрыв связи, то считаем что это форс мажор, то есть аварийная ситуация. А значит лучше всего отписаться и заказать все по новой.
Вот я и пытаюсь у вас узнать, как мне правильно это сделать через ваше апи. А вы мне отвечаете, что "да, это нужно сделать"... Я заказываю по новой после разрыва связи, и мне ничего не приходит. Это баг?
Цитата

Все существующие примеры поставляются вместе с библиотекой. Ссылка была приведена выше.
Если б там был рабочий пример касательно моего вопроса, я б тут не писал.
Цитата

Рекомендация обновить библиотеку никак не связана с описанной проблемой. Просто добрый совет, всегда использовать актуальные версии программ.
К сожалению, при современных тенденциях разработки ПО этот совет далеко не добрый. Новые не известные заранее баги - это дополнительные потери денег, которые мне ни к чему.
 
Цитата
aidan1387 пишет:
Если б там был рабочий пример касательно моего вопроса, я б тут не писал.
Вот именно на том примере, который там, очень легко проверить, что после разрыва и установления связи, если отписать от заявок а потом подписаться и вызвать старт, то увидите все заявки которые были до разрыва.
 
Так, окей. Что вы подразумеваете под "после разрыва и установления связи, если отписать от заявок а потом подписаться и вызвать старт"? В вашем примере вы на старте приложения подписываетесь, на завершении - отписываетесь. Перезапуск приложения? Другого способа у вас там в примере нет. И, естественно, там без перезапуска ничего никуда не перезапрашивается.

Когда я перезапускаю свой клиент, мне при первом запросе история заявок и сделок тоже приходит. Но, это бесполезно в рамках вашего интерфейса. Я хочу понять, так должно быть, или я что-то делаю не так. Я пытаюсь у вас узнать контракт для работы с вашим интерфейсом. В какой момент он должен присылать мне историю? Только при первом вызове после старта нового процесса? Ни в хелпе, ни в примерах у вас это абсолютно никак не показано.
 
Цитата
aidan1387 пишет:
Так, окей. Что вы подразумеваете под "после разрыва и установления связи, если отписать от заявок а потом подписаться и вызвать старт"? В вашем примере вы на старте приложения подписываетесь, на завершении - отписываетесь. Перезапуск приложения? Другого способа у вас там в примере нет. И, естественно, там без перезапуска ничего никуда не перезапрашивается.
Видимо мы говорим о разных примерах.
Я говорю про пример который можно скачать по указанной ранее ссылке, который называется API_Tester_DLG
Подписаться это кнопка "Subscribe"
Отписаться это кнопка "Unsubscribe"
Старт, это кнопка "Start"
И на этом примере все прекрасно работает. Там же Вы найдете исходные коды.
Цитата
aidan1387 пишет:
В какой момент он должен присылать мне историю?
В тот момент когда Вы ее запросите.

Еще раз повторю, посмотрите пример, потыкайте кнопки, воспроизведите разрыв связи.
Потом посмотрите код у себя.
 
Да, моя ошибка была в том, что я подумал, что у вас одинаковые примеры на всех языках.
Цитата

Мне может отписываться надо когда есть соединение?
В этом была проблема. Нельзя отписываться при отсутствии связи с сервером. Что естественно должно быть хоть как-то отражено в мануале. Теперь с 1.1 все работает.
Страницы: 1
Читают тему
Наверх