Oleg Kuzembaev написал: Ситуации, когда пользователю действительно необходимо знать о текущей версии сервера, практически не встречаются. Инструкция, приведенная Вами выше, создана для брокерских компаний, чтобы они могли корректно обновить ПО на своей стороне в соответствии с требованиями.
Обычное обновление версии Рабочего места QUIK происходит после того, как обслуживающий брокер делает новую версию доступной для обновления для своих клиентов. Решение о наступлении такого момента принимает брокер. Случаев, где пользователю нужна версия для обновления вручную и она не поддерживается версией сервера, ничтожно мало и можно считать исключением.
Добрый день!
Конечно одна строчка кода - это не посильная ноша! Пускай пользователи и дальше мучаются с Вашим "произведением искусства"!
Проверьте, пожалуйста, воспроизводится ли описанная ошибка в последней версии Рабочего места QUIK?
Что касается версии сервера, то ее необходимо уточнить у Вашего обслуживающего брокера. Программа QMonitor - это программа для наблюдения и контроля над процессом работы сервера QUIK и подключенных к нему модулей. Ее нет в свободном доступе, поэтому строчку с ней в файле обновления можно пропустить.
Добрый день!
Установил версию 13.0.2.20 баг пропал. Что касается версии серверной части... Зачем эти "Танцы с бубном" чтобы узнать версию сервера. Коль скоро Пользователю нужно знать о версии сервера, как почему Вы не выводите ее в рабочем месте Quik (сразу за версией рабочего места)?
Проверьте, пожалуйста, воспроизводится ли описанная ошибка в последней версии Рабочего места QUIK?
Что касается версии сервера, то ее необходимо уточнить у Вашего обслуживающего брокера. Программа QMonitor - это программа для наблюдения и контроля над процессом работы сервера QUIK и подключенных к нему модулей. Ее нет в свободном доступе, поэтому строчку с ней в файле обновления можно пропустить.
Добрый день!
Установил версию 13.0.2.20 баг пропал. Что касается версии серверной части... Зачем эти "Танцы с бубном" чтобы узнать версию сервера. Коль скоро Пользователю нужно знать о версии сервера, как почему Вы не выводите ее в рабочем месте Quik (сразу за версией рабочего места)?
D long? D short таблицы ""Купить/Продать"
Пользователь
Сообщений: Регистрация: 29.07.2015
10.07.2026 03:55:16
Скачал файл с обновлением quik_13.0.2_upd.zip Внутри в файле readme написано следующее:
"ВАЖНО! - Данная версия Рабочего места поддерживается только серверной частью QUIK версии 16.0.0 или выше. Перед установкой обновления убедитесь, что обновление сервера версии 16.0.0 или выше было Вами установлено. Версию сервера можно посмотреть в программе QMonitor, в разделе с деревом серверов доступа в левом разделе таблицы "User table". "
1. Как я могу обновить сервер, если он находится у Брокера? 2. Где лежит QMonitor ?
Когда же Вы, ARQA, научитесь понятно доносить до пользователей, что Вы имеете ввиду?
D long? D short таблицы ""Купить/Продать"
Пользователь
Сообщений: Регистрация: 29.07.2015
10.07.2026 03:34:10
Цитата
Megafan написал: Это баг. Ошибка была исправлена в версии 13.0.х
Спасибо! Но хотелось бы услышать ответ разработчиков...
D long? D short таблицы ""Купить/Продать"
Пользователь
Сообщений: Регистрация: 29.07.2015
09.07.2026 16:59:30
Добрый день!
Версия QUIK 12.8.4.9
Почему в таблице "Купить/Продать", при выбранной галочке "Выбрать инструменты вручную", в таблице появляются другие инструменты? См. вложение
Единая торговая сессия на Срочном рынке
Пользователь
Сообщений: Регистрация: 29.07.2015
07.11.2025 13:38:48
Добрый день!
Ведутся ли у Вас работы по внедрению ЕТС? Когда Биржа планирует внедрить ЕТС на боевом контуре?
Ошибка net error
Пользователь
Сообщений: Регистрация: 29.07.2015
29.09.2025 23:55:55
Сегодня 29.09.2025 22:38:29.830 --> Ошибка: Net error: Can't get data from net 29.09.2025 22:38:59.745 --> Ошибка: Application error: Net error: Сервер по указанным сетевому адресу и порту не обнаружен. Возможно, Вы пытаетесь установить соединение в нерабочее время, или же указываете неверные сетевой адрес и порт.
Это Ваш косяк или Брокеру писать?
Ошибка net error
Пользователь
Сообщений: Регистрация: 29.07.2015
28.09.2025 04:08:55
Добрый день!
Брокер Финам, версия квик 12.5.0.20 В последнее время (приблизительно неделя) стала появляться ошибка в trans2quik.dll (до этого, 2 года все работало как часы)
25.09.2025 22:44:51.967 --> Ошибка: Net error: Can't get data from net 25.09.2025 22:45:22.070 --> Ошибка: РH 27.09.2025 22:36:49.835 --> Ошибка: Соединение разорвано
Таблица "Ограничения по клиентским счетам"
Пользователь
Сообщений: Регистрация: 29.07.2015
06.08.2025 15:38:47
Добрый день!
Ответьте, пожалуйста.
Таблица "Ограничения по клиентским счетам"
Пользователь
Сообщений: Регистрация: 29.07.2015
05.08.2025 17:56:03
Добрый день!
Версия Quik 12.5.0.20 Брокер Финам
Почему в таблице "Ограничения по клиентским счетам" перестало транслироваться поле "Текущие чистые позиции"?
Блокирование средств
Пользователь
Сообщений: Регистрация: 29.07.2015
12.04.2025 15:46:03
А как рассчитать комиссию брокера перед отправкой заявки?
Блокирование средств
Пользователь
Сообщений: Регистрация: 29.07.2015
03.04.2025 01:48:36
Цитата
Karina Dmitrieva написал: , приносим свои извинения за дезинформацию. В действительности трансляция данного параметра была уже поддержана. В Таблице текущих торгов он транслируется только для класса MOEXRATES ("МБ Деривативы: Курсы валют") и звучит как "Радиус изменения цены валюты в процентах" ("Радиус вал.(%)" - краткое). Проверьте наличие данного класса у себя в правах, если его нет, то необходимо обратиться к Вашему брокеру, чтобы Вам добавили права на класс.
Спасибо, понятно
Блокирование средств
Пользователь
Сообщений: Регистрация: 29.07.2015
01.04.2025 00:32:20
Цитата
Karina Dmitrieva написал: , составили обращение на биржу для уточнения информации по поводу трансляции данного параметра. Как только получим ответ - сообщим Вам.
Добрый день! Мне не нужно сообщать, это я Вам сообщил, что транслируется. См. вложенный скпиншот из документации Плаза 2
Блокирование средств
Пользователь
Сообщений: Регистрация: 29.07.2015
30.03.2025 04:14:15
Цитата
Karina Dmitrieva написал: В Рабочем месте QUIK такого параметра нет. А транслируется ли он биржей или же только публикуется рекомендуем уточнить у специалистов биржи.
Да нет, но биржа все же транслирует радиусы, Вы могли бы добавить этот параметр
Блокирование средств
Пользователь
Сообщений: Регистрация: 29.07.2015
06.02.2025 00:32:06
Спасибо. Короче, Биржа принуждает покупать их модуль Spectra IM
Блокирование средств
Пользователь
Сообщений: Регистрация: 29.07.2015
04.02.2025 11:44:21
Цитата
Karina Dmitrieva написал: , см. на сайте Московской биржи "Надбавка, учитывающая валютный риск при расчете гарантийного обеспечения" ( ).
Покупка: ГО = ГО покупателя - (РЦ - Цена сделки) * Стоимость шага цены / Мин шаг цены * (1 + R / 100) Продажа: ГО = ГО продавца + (РЦ - Цена сделки) * Стоимость шага цены / Мин шаг цены * (1 + R / 100) где РЦ - значение котировки последнего клиринга, R - радиус валютного курса.
Прекрасно. А этот радиус транслируется Биржей, или только на сайте публикуется?
Блокирование средств
Пользователь
Сообщений: Регистрация: 29.07.2015
24.01.2025 05:10:50
Цитата
Karina Dmitrieva написал: На Срочном рынке МБ для фьючерсов, стоимость шага цены которых выражена в отличной от рубля валюте, также необходимо учитывать параметр "Радиус валютного курса". Отметим, что в Рабочем месте QUIK расчет ГО для выставляемой заявки в форме ввода носит прежде всего информационный (предварительный) характер. И признаем то, что расчет ГО для фьючерсов, использующих радиус курса иностранных валют, может быть, к сожалению, неточным.
Спасибо, понятно. А как взять (посчитать Радиус валютного курса)
Также надо учитывать сумму комиссии брокера и торговой системы с объема заявки (в QUIK это рассчитывается автоматически в соответствии с установленным алгоритмом, на форме ввода заявки выводится в поле справа и отображается в валюте расчетов по инструменту. Самостоятельно рассчитать не получится).
на Срочном рынке: «Объем ГО» = «Количество контрактов» * «ГО покупателя / продавца» * («Стоимость шага цены» / «Размер шага цены») При этом при покупке/продаже бумаг выше/ниже расчетной цены «ГО покупателя /продавца» пересчитывается с учетом разницы расчетной цены и цены сделки:
Рекомендуем проверить статусы инструментов по классу SPBFUT в момент создания транзакции. В таблицу текущих торгов добавьте параметры "Состояние сессии", "Статус торговли инструментом". Если "Сессия" в состоянии "Закрыта" и/или "Статус торговли инструментом" будет "Не торгуется", то транзакция не выполняется по этой причине.
Добрый день!
Ищите ошибку на своей стороне, робот написан 3 года назад со всеми проверками и прекрасно работал ДО ОБНОВЛЕНИЯ. procedure TExpert.OnTick; var PosSt: POS_STATE; PosEQ: integer; RemOrder: boolean; inVol, outVol, aZalog: Double; begin if(StopTrading = false) then //false - expert work begin if((Settings.isSet = true) and (DllConn = true) and (QConn = true) and (WrongData.Res = false)) then begin if(CheckTime(RemOrder) = true) then begin if((ExpData.FutData.Session = 'открыта') and (ExpData.SpotData.Session ='открыта')) then begin ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Ошибка выставления ордера
Пользователь
Сообщений: Регистрация: 29.07.2015
26.07.2024 19:51:49
Цитата
nikolz написал: г файл содержимое самой заявки. Возможно оно искажается либо там nil.
Ок, выведу, но до обновления 3 года ошибок не было...
Где скачать TRANS2QUIK.dll x64 ? есть пример использования на delphi выставления заявки?
Пользователь
Сообщений: Регистрация: 29.07.2015
25.07.2024 22:01:33
Цитата
bas написал: Где скачать TRANS2QUIK.dll x64 ? есть пример использования на delphi выставления заявки?
procedure TExpert.SendOrder; var outStr, id, s: string; res: long; ErrCode: long; ErrSize: Dword; ErrStr: LPSTR; begin if(CheckFutPrice(f_price) = false) then begin Mutex.Lock; try FTransBusy:= false; finally Mutex.Unlock; end; FmemoStr:= 'SendOrder: Не правильная цена в заявке ' + FloatTostr(f_price); Synchronize(UpdMemo); exit; end; FOrder:= 0; FTransID:= GetTransID(); id:= UintToStr(TransID); ErrCode:= 0; ErrSize:= 0; ErrStr:= nil; Mutex.Lock; try FTransBusy:= true; finally Mutex.Unlock; end;
case dir of BUY: s:= 'B'; SELL: s:= 'S'; end; outStr:= 'ACCOUNT=' + FutAccaunt + '; TYPE=L; TRANS_ID=' + id + '; CLASSCODE=' + ExpData.FutData.ClassCode + '; SECCODE=' + ExpData.FutData.SecCode + '; ACTION=NEW_ORDER; OPERATION=' + s + '; EXECUTION_CONDITION=KILL_BALANCE' + '; PRICE=' + FloatToStr(f_price) + '; QUANTITY=' + FloatToStr(Qnty) + ';'; res:= T2QSendASyncTrans(LPSTR(AnsiString(outStr)), ErrCode, ErrStr, ErrSize); if(res <> TRANS2QUIK_SUCCESS) then begin Mutex.Lock; try FTransID:= 0; FTransBusy:= false; finally Mutex.Unlock; end; FmemoStr:= 'SendOrder: Ордер ' + ExpData.FutData.SecCode + ' не отправлен.'; Synchronize(UpdMemo); end else begin if((ExitOrder.Order > 0) and (dir = BUY)) then RemoveExitOrder(); FmemoStr:= 'SendOrder: Ордер ' + ExpData.FutData.SecCode + ' отправлен.'; Synchronize(UpdMemo); end; end;
Ошибка выставления ордера
Пользователь
Сообщений: Регистрация: 29.07.2015
25.07.2024 21:58:44
Да, и еще погрешность фунции засечки времени, кажется 16 мс., да и саму ошибку Указанная транзакция по указанному классу не найдена: "SPBFUT". выдает ДЛЛ или терминал, это не мое.
Ошибка выставления ордера
Пользователь
Сообщений: Регистрация: 29.07.2015
25.07.2024 21:52:51
Цитата
nikolz написал: там где ошибки нет, время различается.
Конечно различается, ордер "слетал" на Биржу и вернулся ответ.
А где ошибка, то все происходит на локальном компе, так что время не показатель.
Обидно то, что 3 с лишнем года все работало как часы, а вот теперь появилась проблема. Не знаю как устроен внутри Квик, но с МТ-5 постоянно "цапался" с разработчиками, как новый билд, так вылезает какая-либо ошибка.
Ошибка выставления ордера
Пользователь
Сообщений: Регистрация: 29.07.2015
25.07.2024 18:44:06
Да, забыл сказать. Ошибка проявляется в начале торгов после 10-00
Требуется более развернутая информация для изучения проблемы. Какая транзакция посылается, с какими параметрами. Т.е. ожидаем от Вас саму транзакцию, по которой получаете ошибку
Добрый день! Транзакции посылает робот. Пораметры такие
procedure TExpert.SendOrder; var outStr, id, s: string; res: long; ErrCode: long; ErrSize: Dword; ErrStr: LPSTR; begin if(CheckFutPrice(f_price) = false) then begin Mutex.Lock; try FTransBusy:= false; finally Mutex.Unlock; end; FmemoStr:= 'SendOrder: Не правильная цена в заявке ' + FloatTostr(f_price); Synchronize(UpdMemo); exit; end; FOrder:= 0; FTransID:= GetTransID(); id:= UintToStr(TransID); ErrCode:= 0; ErrSize:= 0; ErrStr:= nil; Mutex.Lock; try FTransBusy:= true; finally Mutex.Unlock; end;
case dir of BUY: s:= 'B'; SELL: s:= 'S'; end; outStr:= 'ACCOUNT=' + FutAccaunt + '; TYPE=L; TRANS_ID=' + id + '; CLASSCODE=' + ExpData.FutData.ClassCode + '; SECCODE=' + ExpData.FutData.SecCode + '; ACTION=NEW_ORDER; OPERATION=' + s + '; EXECUTION_CONDITION=KILL_BALANCE' + '; PRICE=' + FloatToStr(f_price) + '; QUANTITY=' + FloatToStr(Qnty) + ';'; res:= T2QSendASyncTrans(LPSTR(AnsiString(outStr)), ErrCode, ErrStr, ErrSize); if(res <> TRANS2QUIK_SUCCESS) then begin Mutex.Lock; try FTransID:= 0; FTransBusy:= false; finally Mutex.Unlock; end; FmemoStr:= 'SendOrder: Ордер ' + ExpData.FutData.SecCode + ' не отправлен.'; Synchronize(UpdMemo); end else begin if((ExitOrder.Order > 0) and (dir = BUY)) then RemoveExitOrder(); FmemoStr:= 'SendOrder: Ордер ' + ExpData.FutData.SecCode + ' отправлен.'; Synchronize(UpdMemo); end; end;
Мы рассмотрели Ваше пожелание. По итогам его анализа сообщаем Вам, что реализация пожелания признана потенциально целесообразной. Если по результатам дальнейшего анализа, включающего юридические аспекты, анализ на непротиворечивость с общей политикой компании, никаких возражений не возникнет, мы постараемся включить Ваше пожелание в план доработок при выпуске одной из следующих версий нашего ПО.
Сколько ждать? Как обычно лет 5?
Таблица "Клиентский портфель"
Пользователь
Сообщений: Регистрация: 29.07.2015
14.11.2023 18:11:09
Финам, версия 11.0.0.92
Таблица "Клиентский портфель"
Пользователь
Сообщений: Регистрация: 29.07.2015
14.11.2023 17:28:37
Добрый день!
Если оставить квик на ночь с включенным выводом по DDE, то на утро таблица "Клиентский портфель" - пустая
Классический арбитраж на * счете
Пользователь
Сообщений: Регистрация: 29.07.2015
31.10.2023 11:03:26
Какой-нибудь ответ будет?
Классический арбитраж на * счете
Пользователь
Сообщений: Регистрация: 29.07.2015
26.10.2023 23:40:12
Добрый день, Разработчики!
Почему в КВИК на Едином Брокерском Счете (Открытие) или Единая Денежная Позиция (Финам), при торговле фьючерс против спота, учитывается только вариационная маржа фьючерсов, а цена акций не учитывается?
Продав фьючерс и купив акции (равные ноги по кол-ву акций), мы имеем дельта нейтральную позицию, т.е при любом движении рынка (вверх или вниз) у нас должно быть приблизительно одинаковое кол-во свободных средств.
К сожалению, на данный момент конкретных сроков назвать не можем. Как только пожелание будет рассмотрено, мы оповестим Вас об этом в данной теме форума.
Добрый! Хотя сегодня пятница 13 :) Понятно, еще 5 лет ждать....
Мин.возм.цен. и Макс.возм.цен.
Пользователь
Сообщений: Регистрация: 29.07.2015
13.10.2023 08:02:42
Цитата
Andrey Golik написал: Михаил Филимонов, дело в том, что сокращенное название столбца транслирует шлюз. Соответственно название столбца в Вашей таблице будет зависеть от инструментов, которые в неё добавлены. В данном случае было обнаружено различие, так как для фондового рынка действительно на данный момент "цен.".
Добрый день, Андрей! Как скоро исполнится мое пожелание? Мое прошлое пожелание уже 5 год остается в пожеланиях!
Запуск экспорта по DDE из своего приложения
Пользователь
Сообщений: Регистрация: 29.07.2015
13.10.2023 07:49:18
Добрый день!
Возможно?
Мин.возм.цен. и Макс.возм.цен.
Пользователь
Сообщений: Регистрация: 29.07.2015
12.10.2023 00:36:15
Цитата
Andrey Golik написал: , разница "Мин. возм. цена" и "Мин. возм. цен." возникает на разных рынках. Так, например, для срочного рынка будет "Мин. возм. цена", а для фондового "Мин. возм. цен.". Мы зарегистрировали пожелание, чтобы исправить различия.
При чем тут разные рынки? В одной и той же таблице "вылезают" разные названия колонок!
Пришлите, пожалуйста, скриншот таблицы, в которой отображается "Мин. возм. цена" и её настройки ("Редактировать таблицу").
Эти изменения произвольно появляются, ка выскочат, так пришлю
Мин.возм.цен. и Макс.возм.цен.
Пользователь
Сообщений: Регистрация: 29.07.2015
06.10.2023 23:43:32
Господа разработчики! Поправьте, пожалуйста названия этих колонок в таблице "Текущие торги" А то, в процессе работы эти колонки называются то Мин.возм.цен. и Макс.возм.цен., то Мин. возм. цена и Макс. возм. цена
Cкорректированное значение НРП1
Пользователь
Сообщений: Регистрация: 29.07.2015
27.09.2023 19:12:40
Для покупки 40 лотов FEES требуется чуть больше 50 000 руб.
Cкорректированное значение НРП1
Пользователь
Сообщений: Регистрация: 29.07.2015
27.09.2023 19:06:19
Добрый день!
Транзакции посылаются через trans2uik.dll Каким образом могла возникнуть эта ошибка (достаточно средств для покупки 40 лотов Россети (FEES))? Как расчитывается "Скорректированное значение НРП1" ?
Просим уточнить, что в данном случае означает "заявка отправляется успешно"? Речь идет об успешной отправке транзакции на сервер? Какой ответ получаете на эту транзакцию?
procedure TExpert.SendOrder; var outStr, id, s: string; res: long; ErrCode: long; ErrSize: Dword; ErrStr: LPSTR; begin if(CheckFutPrice(f_price) = false) then begin Mutex.Lock; try FTransBusy:= false; finally Mutex.Unlock; end; FmemoStr:= 'SendOrder: Не правильная цена в заявке ' + FloatTostr(f_price); Synchronize(UpdMemo); exit; end; FOrder:= 0; FTransID:= GetTransID(); id:= UintToStr(TransID); ErrCode:= 0; ErrSize:= 0; ErrStr:= nil; Mutex.Lock; try FTransBusy:= true; finally Mutex.Unlock; end;
case dir of BUY: s:= 'B'; SELL: s:= 'S'; end; outStr:= 'ACCOUNT=' + FutAccaunt + '; TYPE=L; TRANS_ID=' + id + '; CLASSCODE=' + ExpData.FutData.ClassCode + '; SECCODE=' + ExpData.FutData.SecCode + '; ACTION=NEW_ORDER; OPERATION=' + s + '; EXECUTION_CONDITION=KILL_BALANCE' + '; PRICE=' + FloatToStr(f_price) + '; QUANTITY=' + FloatToStr(Qnty) + ';'; res:= T2QSendASyncTrans(LPSTR(AnsiString(outStr)), ErrCode, ErrStr, ErrSize); if(res <> TRANS2QUIK_SUCCESS) then begin Mutex.Lock; try FTransID:= 0; FTransBusy:= false; finally Mutex.Unlock; end; FmemoStr:= 'SendOrder: Ордер ' + ExpData.FutData.SecCode + ' не отправлен.'; Synchronize(UpdMemo); end else begin FmemoStr:= 'SendOrder: Ордер ' + ExpData.FutData.SecCode + ' отправлен.'; Synchronize(UpdMemo); end; end;
Соответственно выводится сообщение FmemoStr:= 'SendOrder: Ордер ' + ExpData.FutData.SecCode + ' отправлен.'; Synchronize(UpdMemo);
А в pfTransReplyCB ничего не приходит и в самом терминале нет этой заявки...
В ответ на какую транзакцию приходят такие сообщения? Есть возможность предоставить фрагмент кода с описанием функции pfTransReplyCB?
//--- Transaction callback --- procedure pfTransReplyCB; var i: integer; Child: TMDIChild; begin for i:= 0 to MainForm.MDIChildCount - 1 do begin Child:= TMDIChild(MainForm.MDIChildren[i]); if(Child <> nil) then begin if(dwTransId = Child.Expert.TransID) then begin if(nTransactionResult = TRANS2QUIK_SUCCESS) then begin if(nOrderNum > 0) then Child.Expert.FOrder:= nOrderNum else //Get order done begin Child.FExpert.FTrRes:= nTransactionResult; Child.FExpert.FExCode:= nTransactionExtendedErrorCode; Child.FExpert.FTCode:= nTransactionReplyCode; Child.FExpert.FRepMess:= lpcstrTransactionReplyMessage; Child.FExpert.FStopTrading:= true; Child.Expert.FTransBusy:= false; //Stop trading Child.FExpert.FErrorEvent.SetEvent; end; end else begin Child.FExpert.FTrRes:= nTransactionResult; Child.FExpert.FExCode:= nTransactionExtendedErrorCode; Child.FExpert.FTCode:= nTransactionReplyCode; Child.FExpert.FRepMess:= lpcstrTransactionReplyMessage; Child.FExpert.FStopTrading:= true; Child.Expert.FTransBusy:= false; //Stop trading Child.FExpert.FErrorEvent.SetEvent; end; break; end else //--- Enter order --- if(dwTransId = Child.Expert.EnterOrder.TransId) then begin if(nTransactionResult = TRANS2QUIK_SUCCESS) then begin if(nOrderNum > 0) then begin Child.FExpert.FEnterOrder.Order:= nOrderNum; end; end else begin Child.FExpert.FEnterOrder.isBusy:= false; Child.FExpert.FTrRes:= nTransactionResult; Child.FExpert.FExCode:= nTransactionExtendedErrorCode; Child.FExpert.FTCode:= nTransactionReplyCode; Child.FExpert.FRepMess:= lpcstrTransactionReplyMessage; Child.FExpert.FStopTrading:= true; Child.Expert.FTransBusy:= false; //Stop trading Child.FExpert.FErrorEvent.SetEvent; end; break; end else //--- Exit order --- if(dwTransId = Child.Expert.ExitOrder.TransId) then begin if(nTransactionResult = TRANS2QUIK_SUCCESS) then begin if(nOrderNum > 0) then Child.FExpert.FExitOrder.Order:= nOrderNum; end else begin Child.FExpert.FExitOrder.isBusy:= false; Child.FExpert.FTrRes:= nTransactionResult; Child.FExpert.FExCode:= nTransactionExtendedErrorCode; Child.FExpert.FTCode:= nTransactionReplyCode; Child.FExpert.FRepMess:= lpcstrTransactionReplyMessage; Child.FExpert.FStopTrading:= true; Child.Expert.FTransBusy:= false; //Stop trading Child.FExpert.FErrorEvent.SetEvent; end; break; end; end; end; end;
Со стороны Trans2QUIK ограничения на отправку транзакций нет.
Странно. Но у меня, в период большой активности рынка, выставляется много заявок. И бывает, что заявка отправляется успешно, но в терминале она не появляется и номер ордера не присваивается. (асинхронная подача заявок)
написал: Хоть и trans2quik кривая, но все же она работает нормально, у меня вызывы идут из 138 потоков и все ок. Проверяйте своего бота
Сколько у вас транзакций в день по одному инструменту?
5000 - 6000
250-300 тысяч
Количество заявок в день ни о чем не говорит. Может влиять количество заявок в секунду, например.
Race condition в Trans2Quik.dll?
Пользователь
Сообщений: Регистрация: 29.07.2015
21.09.2023 01:53:02
Я тоже отсылаю асинхронные ордера. Но у меня немного другая проблема. Бывает ордер отсылается, а в pfTransReplyCB ничего не приходит и в Квик заявка не появляется. думается, что при большом потоке ордеров очередь в библиотеке переполняется (если она вообще есть)