DDE-экспорт сделок: удвоение в Quik 8

Страницы: 1
RSS
DDE-экспорт сделок: удвоение в Quik 8, В Quik 8 новые сделки экспортируются по 2--3 раза
 
Добрый день!


Перешёл с Quik6 на Quik8.  Вроде всё понятно, но при совершении новой сделки (например, при вводе заявки вручную в самом Квике, равно как и при использовании TRANS2QUIK.dll) экспортируется из таблицы моих сделок в Квике не один раз, как в Quik6, а 2 или 3 раза.  Это весьма неудобно, т.к. в таблицу сделок в моей программе помещается не одна сделка, а 2 или 3 одинаковых сделки.  Это происходит всегда, в том числе и тогда, когда количество лотов равно 1 (т.е. нельзя объяснить постепенным исполнением заявки за несколько сделок).

Эти экспортируемые сообщения о сделках чем-нибудь вообще отличаются?  Я не увидел отличий.

При этом когда при начале экспорта экспортируется список ранее совершённых сделок, то они экспортируются ОДИН РАЗ.

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

Воспроизвести описываемую Вами ситуацию не удаётся.
Наиболее вероятно, у Вас включен экспорт сразу из нескольких таблиц одинаковых таблиц заявок, что приводит к дублированию записей. Предлагаем проверить этот момент. Для этого предлагаем закрыть рабочее место QUIK, переименовать текущий используемый файл настрок *.wnd, создать файл quik_dde.txt и изменить его расширение на *.log. После этого запустить рабочее место, добавить одну таблицу сделок и настроить экспорт из неё по DDE. Выполнить условия для воспроизведения дубликатов в принимающей таблице.
Если дубликатов не будет - то причина однозначно в используемой Вами конфигурации окон, скорее всего, гипотеза о нескольких открытых окнах окажется верной. Предлагаем проверить этот момент и отключить лишний экспорт.
Если же проблема воспроизведётся при предложенной минимальной конфигурации, то просим прислать нам файл quik_dde.log для анализа по адресу quiksupport@arqatech.com
 
Здравствуйте, Андрей.

Это я, конечно, сделаю, но вряд ли это что-то прояснит, ибо:

1) В Квик-6 этой проблемы не было, она появилась только в Квик-8, причём переход на 8-ю версию был выполнен штатным обновлением (самим Квиком) с сохранением настроек;

2) Иногда сделка приходит 2 раза, а иногда - 3 раза (по одной и той же бумаге).  Ведь не может окно со списком сделок то существовать, то нет?
 
P.S.  И, кроме того,
3) Список сделок, совершённых до начала DDE-экспорта, приходит ОДНОКРАТНО.  Двоение-троение имеет место только для сделок, совершённых ПОСЛЕ старта DDE-экспорта.
 
Я подтверждаю данный эффект как минимум с версии 7, но не придавал этому значения так как фильтр всё-равно придётся делать на случай если квик будет перезапущен.
Сделок:




Событий в очереди:


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

Просьба всё же выполнить предложенные инструкции и сообщить результат.
Вместе с этим просьба ответить - откуда в Вашей СУББД появляются "первые" сделки, при условии, что экспорт по DDE из QUIK, как Вы сами пишите - не запущен?
Цитата
Борис написал:
3) Список сделок, совершённых до начала DDE-экспорта, приходит ОДНОКРАТНО.  Двоение-троение имеет место только для сделок, совершённых ПОСЛЕ старта DDE-экспорта.
Или уточните, пожалуйста, что Вы имеете ввиду?
 
Уточняю.

Моя программа при запуске инициализирует DDE-экспорт из Квика.  При этом приходит список сделок (с заголовками столбцов), совершённых мною сегодня ДО ЭТОГО ЗАПУСКА МОЕЙ ПРОГРАММЫ.  Сделки в этом списке приходят однократно.

Если после этого совершить сделку, то информация о ней приходит в виде одной строки и без заголовков столбцов (что вполне разумно).  И вот эти-то сделки в Квик-8 приходят два или три раза, тогда как в Квик-6 они приходили однократно.

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

Запрошенные Вами действия выполню, но по некоторым моим обстоятельствам сделаю это чуть позже.
 
Andrey Bezrukov,

я выполнил Ваши предписания и выслал Вам файл quik_dde.log на адрес quiksupport@arqatech.com.

В этот день было (до старта DDE-экспорта) 11 сделок, которые были благополучно экспортированы по DDE ОДНОКРАТНО.

После чего я совершил (для простоты) одну сделку с 1 лотом, которая была экспортирована ТРИ РАЗА.

Дополнительные детали -- в письме.
 
Борис,
Письмо получили, благодарим за предоставленную информацию.

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

Взяли в работу.
 
Цитата
Борис написал:
Перешёл с Quik6 на Quik8.
С разморозкой.
https://forum.quik.ru/forum10/topic1082/
 
Цитата
Imersio Arrigo написал:
С разморозкой. https://forum.quik.ru/forum10/topic1082/
О, я приобщился к Великой Древней Традиции!
 
Борис,
Дублируем резолюцию по инциденту здесь.

В общем случае одна сделка может быть получена с сервера несколько  раз, это связано с заполнением на сделке некоторых специфических параметров (например, UID, ID транзакции), которые не всегда известны на момент получения сервером данных о сделке и поэтому сервер сначала отсылает сделку как есть, а потом, по мере уточнения параметров высылает её повторно.
Так как у вас свой DDE-сервер, вы можете залогировать все параметры получаемых сделок и сравнить их значения при получении сделки многократно. Если выяснится, что значения всегда одинаковые (т.е. речь идет об многократном получении одних и тех же данных), сообщите нам об этом и мы продолжим анализ.
 
Спасибо за разъяснения!

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

Ибо не хотелось бы каждый раз сличать пришедшую запись со всеми сделками за день.  Трата процессорного времени вроде бы небольшая, но если день случится бурный и сделок будет много, то может стать существенной.
 
Можно ли рассчитывать на то, что хотя бы номер сделки приходит во всех записях по сделке?
 
Да, он приходит всегда. Я таким образом обновляю остальные поля в БД, используя номер как уникальный ИД.
 
foobar, спасибо за информацию.
Страницы: 1
Читают тему (гостей: 1)
Наверх