foobar (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 След.
TRANS2QUIK_SEND_SYNC_TRANSACTION и MOVE_ORDERS, Что будет возвращено в pdOrderNum ?
 
Добрый день,
хочу попробовать написать поддержку MOVE_ORDERS  в своём ПО. Из документации немного непонятно, что будет записано в pdOrderNum после выполнения заявки.
Для "обычных" заявок там ИД из торговой системы, который я получаю и привязываю к моему TRANS_ID когда TRANS2QUIK_SEND_SYNC_TRANSACTION возвращает ответ. Но в документации на MOVE_ORDERS указано что он поддерживает до двух заявок. Как мне в синхронном режиме узнать ID новых заявок?
Я правда не планирую переставлять сразу 2, но pdOrderNum хочется получить сразу же.
Сумма лучших
 
Если вам для мидпрайса, то bestBid/bestAsk есть в таблице текущих параметров
Как установить поддержку сокетов в скриптах QUIK ?
 
Спасибо. 5.4 работает стабильнее чем 5.3. Перевёл таблицу текущих котировок на lua/сокеты c DDE. Пока полёт нормальный.
Время экспирации опционов
 
Когда Квик расчитывает греки по БШ, он имеет представление о времени экспирации опциона (0 дней в модель Блека-Шоулза ведь не поставишь, следовательно там скорее всего минуты, а на доске опционов временная стоимость в дату экспирации как-то считается).  Откуда Квик берёт время экспирации для расчёта греков? В таблице текущих торгов не нашёл (есть дней до экспирации, дата экспирации). Есть расписание сессий, но при экспирации квартальных на валюту есть нюансы, которые просто так не учтёшь.

Мне бы таймштамп (дата + время) экспирации любого опциона очень бы пригодился.
Как установить поддержку сокетов в скриптах QUIK ?
 
Цитата
_sk_ написал:
Проверил socket core.dll, вроде работает. Спасибо большое!
А можете выложить? Ссылка уже нерабочая.
Ошибка экспорта по DDE
 
Простите, что влезаю в топик, но спрощу: на тестовом квике игровые данные или реальные? Я спрашивал у брокера, мне сказали что данные не реальные, так что я до сих пор тестирую всё в боевом режиме на 1 лоте мечела :)
Ошибка в работе lua скрипта в quik 8.8.4.3
 
Ничего не накручивал, скрипт писался под 8.1, я с тех пор его не трогал, работает и работает. И 5.1 dll в директории Квика есть. Обновлю, конечно, как вспомню как я компилировал dll, это 3 года назад было.
Ошибка в работе lua скрипта в quik 8.8.4.3
 



Не, всё работает. Возможно это нештатный режим, но пока функционирует.
Ошибка в работе lua скрипта в quik 8.8.4.3
 
Кстати, lua 5.1 поддерживается Квиком. У меня работают написанные под lua 5.1 скрипты в 8.11.0.66
Получение данных из таблицы текущих торгов
 
Вариант, что-то я не подумал об этом сразу. Я планировал использовать коллбек чтобы снизить нагрузку на скрипт, в том смысле что если изменений по инструмету не было, то и в коллбек он не придёт.
Как установить поддержку сокетов в скриптах QUIK ?
 
Ну у кого квик не начинал падать с этой библиотекой? Я скачал версию с сайта из сообщения https://forum.quik.ru/messages/forum10/message50431/topic5986/#message50431
В момент старта через минуту Квик может упасть, полноценно и с дампом.
Получение данных из таблицы текущих торгов
 
Я пока остановился на таким варианте. Где-то тысяч 5 инструментов экспортируется, параметров 25, раз в 2 секунды Запас по производительности как будто бы есть. А в чём преимущество всё делать в мейне и как вообще отказаться от коллбэка?
Главное сервер надолго не отключать, если таблица отжирает гиг, то Квик помирает. При нормальной работе очереди нет (занимаемая скриптом память < мегабайта).


Код
json = require("lib.json")
socket = require("lib.socket")
cfg = require("config")

function string.starts(String,Start)
   return string.sub(String,1,string.len(Start))==Start
end

function hasOption (tab, val)
    for index, value in ipairs(tab) do
        if string.starts(val, value) then
            return true
        end
    end

    return false
end

function OnInit(script) 
   isRun = true
   connected = false
   InstrumentsQueue = {}
end

function OnParam(class_code, sec_code)
   if cfg.classes:find(class_code) ~= nil then
      if (class_code == "SPBOPT" and hasOption(cfg.optionFilter, sec_code) == false) then
         return
      end

      local data = {}
      data["market"] = getParamEx(class_code, sec_code, "CLASS_CODE")
      data["ticker"] = getParamEx(class_code, sec_code, "CODE")
                -- кусь --
      table.sinsert(InstrumentsQueue, data)
   end
end

function OnStop()
   isRun = false
   client:close()
   return 3000
end

function connect()
   if connected == false then
      client = socket.connect(cfg.server.host, cfg.server.port)
      if client == nil then
         message("Error connecting to socket server")
         sleep(5000)
      else
         connected = true
         message("Connected to socket server")
      end
   end
end


function main()
   while isRun do 
   connect()
   if #InstrumentsQueue > 0 and connected then
      local data = InstrumentsQueue[1]
      local jsonData = json.encode({type = "instrument", value = data})
      local status, msg = client:send(jsonData .. "\r\n")
      
      if status ~= nil then
         table.sremove(InstrumentsQueue, 1)
      else
         message("Error sending data to socket server #" .. msg)
         if msg == "closed" then
            message("Disconnected from socket server")
            client:close()
            connected = false
         end
      end
   else
      sleep(50)
   end
   end
end


Quik 8.11 Не сохраняются настройки в новой таблице Получение данных - Котировки
 
Доброе утро,
программа - получение данных - котировки. В режиме по выбранным классам сохранённые классы сбрасываются после перезапуска QUIK.
Quik 8.11 Не сохраняются настройки в новой таблице Получение данных - Котировки
 
Скачал обновление от брокера, версия 8.11.0.66
Там появилась новая таблица с фильтрами, но сохранённые данные сбрасываются при рестарте терминала. (если не перезапускать, то изменения работают и отражаются при открытии меню). На картинке прицепил дефолтное состояние настроек таблицы. Переключатель умный/по выбранным классам сохраняется.

Ручной вызов "сохранить настройки в файл" так же не помогает. Что можно ещё попробовать? Мне нужно добавить класс SPBOPT со снятыми фильтрами, чтобы в экспорт через LUA автоматически наползали новые недельки.

Не могу найти в документации код для "Тип инстр-та" для передачи его в GetParamEx
 
Более полный список параметров, чем тот что дан в документации нашёлся в этой теме https://forum.quik.ru/messages/forum10/message32291/topic3807/#message32291
Не могу найти в документации код для "Тип инстр-та" для передачи его в GetParamEx
 


Смотрю коды в документации на QPILE, так как в QLUA.chm кодов вообще нет. В QPILE есть код SECTYPE, но похоже, он не существует.
Код
      data["instrumentTypeString"] = getParamEx(class_code, sec_code, "SECTYPE")

Код
"optionTypeString": {
  "param_image": "",
  "result": "0",
  "param_value": "0.000000",
  "param_type": "0"
},

Судя по result такого кода нет. У меня в таблицу текущих параметров вытянуты классы TQBR, SPBFUT, SPBOPT и в колонке всё выглядит красиво.
Получение данных из таблицы текущих торгов
 
Я планировал формировать таблицу в потоке коллбэков, а обрабатывать её через main() По ощущениям, GetParamEx функция недорогая, хотя я планирую выгружать все инструменты всех классов. По идее, отсутствие в коллбеке строки, для которой коллбек сработал, говорит нам о том, что данные нескольких вызовов GetParamEx не будут консистенты, так как эта фунция общего назначения. Исключение только если во время работы коллбека в терминале србатывает глобальная брокировка на обновление данных.


По крайней мере мне это видится так.
Отображение греков в доске опционов
 
В википедии? Я писал для себя расчёт греков, он совпадал с Квиком +- из-за движений БА.
Получение данных из таблицы текущих торгов
 
В документации ответа на вопрос не нашёл.
Предположим, мы хотим послать набор из 20 параметров из таблицы текущих торгов. В документации есть такой пример

в callback OnParam вызываем GetParamEx по нужному классу-коду-параметру, записываем в глобальную табличку и в main() её вычитываем, чтобы не лочить поток обработчика.
Вопрос такой: GetParamEx работает над копией строки, которая была обновлена или нет?

Вопрос связан с тем, что вызвав GetParamEx() 20 раз, я получу неконсистентные данные (пока получаю параметры поштучно строка изменяется) или всё будет хорошо? Мне бы получить оригинальную строку, которая бы была в Таблице текущих торгов.
Сделка с большим идентинтификатором может иметь более раннее время в рамках одного класса.
 


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

В результате сверки, несколько (да, всегда пара штук в день) минуток не совпадает с пересчётом по тикам. Выяснилось, что предположение соблюдается не всегда. Как видно на картинке, в классе SPBXM начали поступать данные из 15:38 минутки, но тут внезапно ET_SPB досылает свою сделку из 15:37-й. При этом, счётчик показывает, что тик народился после более позднего. Это нормально? И как поздно может придти тик в принципе?
Совпадение идентификаторов при импорте обезличенных сделок
 
Кажется, моя вина. Я LONG получал из DOUBLE. Видимо, проблема в потере точности.
Совпадение идентификаторов при импорте обезличенных сделок
 
Доброе утро,
со вчерашнего дня наблюдаю совпадение внешних идентификаторов у разных инструментов. Это так биржа транслирует или поломалось что-то в экспорте?
Например,
2006661407055020288 у меня соответствует разным сделкам

- ALZ0 2020-09-14 21:54:40.000000 1 лот
- ALU0 2020-09-14 22:04:00.000000 14 лотов

Как такое возможно?
DDE-экспорт сделок: удвоение в Quik 8, В Quik 8 новые сделки экспортируются по 2--3 раза
 
Да, он приходит всегда. Я таким образом обновляю остальные поля в БД, используя номер как уникальный ИД.
Экспорт по DDE текущих торгов отваливается при смене дат на сервере
 
Добрый день, у меня снова проблемы с экспортом по DDE.

настроен экспорт 7 таблиц из Квик по DDE. C 5 таблицами никаких проблем нет вообще, с двумя - есть.

Обе таблицы - Текущие торги. Происходит всё по такому сценарию каждый день:

1. Сервер брокера отключается (или выкидывает клиентов около 09:00).

2. Квик настроен на очистку данных при смене Даты на сервере (очистка при смене дат на клиенте приводит к такому же результату).

3. Квик автоподключается через какое-то время. При этом происходит  смена дат на сервере и происходит обнуление данных прошлого дня. В  таблице текущих параметров пропадает часть данных. Одновременно  выскакивает окно "Вывод через DDE сервер", как если бы DDE сервер был  выключен для первой таблицы. Если нажать на ОК, возникнет окно "Вывод  через DDE сервер" уже для второй таблицы. Если нажать снова на ОК,  возникнет окно для первой таблицы.

Было замечено, что при единичном нажатии ОК происходит подгрузка в таблицу данных по одному инструменту. Т.е. нажимать на ОК надо несколько тысяч раз (по числу инструментов в таблице)


Единственное решение - нажать Отменить, подождать загрузки данных в  таблицу и начать экспорт по DDE. Если это не сделать, Квик ожидает  реакции пользователя на окно "Вывод через DDE сервер" и вообще не  начинает работать.

Остальные таблицы не отваливаются и экспортируются без проблем. Второй Квик, который не экспортирует таблицы Текуших торгов (данные таблицы, понятное дело, одинаковые) на том же DDE сервере, работает месяцами без всяких проблем.

Хотелось бы, чтобы экспорт стартовал сам, без дополнительных действий пользователя. Что можно сделать?

В таблице текущих параметров экспортируются классы: TQBR, SPBFUT, SPBOPT (все инструменты).

DDE-экспорт сделок: удвоение в Quik 8, В Quik 8 новые сделки экспортируются по 2--3 раза
 
Я подтверждаю данный эффект как минимум с версии 7, но не придавал этому значения так как фильтр всё-равно придётся делать на случай если квик будет перезапущен.
Сделок:




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


Число выгрузок примерно соответствует числу испускаемых нейтронов при делении U235 (больше двух, меньше трёх), так что гипотеза о несколькоих таблицах неверна.
Постоянный вывод по DDE таблицы текущих параметров
 
Проблема получила объяснение. Верхний и нижний лимиты цен у опционов, по-видимому, привязаны к волатильности и постоянно меняются, а так как волатильность обновляется раз в минуту, то это приводит к иллюзии выгрузки данных. Т.е. для опционов набор данных совсем не постоянный, как у других инструментов.
Постоянный вывод по DDE таблицы текущих параметров
 
Оказывается, я не добавил сегодня класс SPBOPT.
Проблема воспроизводится. Если добавить опционы SiU0 в таблицу текущих параметров, то таблица начинает выгружаться каждую минуту.
Постоянный вывод по DDE таблицы текущих параметров
 
Я тоже невнимательно ответ прочитал, думал речь про другой параметр.
Параметр, о котором говорилось, у меня имеет значение 3600,т.е. тоже не подходит по времени. В Сообщениях Квика ошибок нет и не было.

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

Вчера на вечерке воспроизводилось стабильно. Отпишу что будет сегодня.
Постоянный вывод по DDE таблицы текущих параметров
 
Доброе утро,
боюсь это не является ответом на мой вопрос
Текущее значение этого параметра у меня равно 1, т.е. мы хотим видеть обновления таблицы не чаще 1 в сек.
Тем не менее, раз в 60 сек выгружаются ВСЕ инструменты сразу (т.е. как будто Квик хочет перерисовать всю таблицу)
Постоянный вывод по DDE таблицы текущих параметров
 
Есть желание иметь у себя справочник всех инструментов (базовые вещи, которые меняются не часто). К сожалению, была обнаружена высокая нагрузка, связанная с тем, что данные постоянно выгружаются, хотя и не были изменены.
Содержимое таблицы:

Код класса, код инструмента, ISIN, Инструмент сокращённый, Инструмент, Лот, Макс. возм. цена, Мин. возможная цена, Шаг Цены, Точность, Стоимость шага цены, Класс базового актива, Баз. Актив, Дата исп, Сессия, Тип инструмента, Тип опциона, Страйк, До погашения

Добавлены все инструменты в классах: TQBR, SPBFUT, SPBOPT.

Как видите, данные относительно редко изменяемые.

С целью тестирования в таблице были оставлены: SiU0 и все опционы на него. Первый инструмент ликвидный, все остальные - не очень.

При запуске вся таблица выгружается целиком (это нормально).
Потом выгружаются единичные сделки, большей частью по Си
Через минуту выгружается вся таблица целиком и этот процесс повторяется снова и снова каждую минуту.
Это создаёт характерную пилу на графике СУБД. Таблица из 20к строк выгружаемая раз в минуту что-то да хочет в плане ресурсов. Это можно как-то отключить или рассказать зачем выгружать данные, которые заведомо не менялись?
Квик 8.6

Экспорт по DDE таблицы обезличенных котировок с FORTS, Неверная Дата торгов
 
Вы как всегда правы. Действительно, не заметил что там есть и Дата.
Вопрос решился.
Экспорт по DDE таблицы обезличенных котировок с FORTS, Неверная Дата торгов
 
Решил добавить экспорт всего SPBFUT (до этого экспортировался TQBR, проблем не было). Удалил файл alltrades.dat, quik.log
Наблюдаю очень странный эффект: вечерка 25.06.2020 выводилась в таблицу как 26.06.2020
Как такое возможно? У меня вся база из-за этого поломалась.
Пример:
https://i.imgur.com/1qY8JBM.png Этот ID (26057566584852) соответствует сделке на вечерней сессии 25.06.2020, но в ленте принтов  в колонке Дата торгов он идёт как 26.06.2020
Почему такое происходит?
Уведомление о необходимости обновления торговых терминалов в связи с изменениями на срочном рынке Московской биржи, Список проблем при работе устаревших версий QUIK после обновления торговой системы срочного рынка МБ
 
Цитата
Sergey Gorokhov написал:
QUIK Вы не правы, в trans2quik_api.h мы видим следующее:EntityNumber nOrderNumгде typedef unsigned __int64 EntityNumber;
Тип LONG указан в документации на QUIK в соответствующем разделе. Ну, тогда хорошо, получается, что влезет даже в знаковый тип (как, например LONG в Java), так как 2^63-1
Уведомление о необходимости обновления торговых терминалов в связи с изменениями на срочном рынке Московской биржи, Список проблем при работе устаревших версий QUIK после обновления торговой системы срочного рынка МБ
 
Цитата
Sergey Denegin написал:
Интересно было бы узнать, сколько нас таких, кто не [хочет переходить на 8ю версию, т.к. наслышан о ее косяках
Да нет там никаких косяков, я без проблем перешёл, только автологин пришлось чуть переделывать, так как форма логина изменилась и пересобирать lua-расширение под х64 бита, поправив где надо типы на 64-битные аналоги.
Уведомление о необходимости обновления торговых терминалов в связи с изменениями на срочном рынке Московской биржи, Список проблем при работе устаревших версий QUIK после обновления торговой системы срочного рынка МБ
 
Добрый вечер.

1. Какие изменения будут в trans2quik в связи с этим? Там номер заявки определён как LONG, оно туда поместится?
2. Quik For Android, который назван "устаревшим" работает с ключами, а новая программа только с паролем (и SMS, которые я люто не люблю). Будет ли доработана старая версия в связи с этим?

3. Новая версия, которую я скачал с сайта брокера, ругается на то, что телефон рутованный. На мой взгляд, некорректно, указывать пользователям как они должны настраивать собственное устройство. Можно сделать предупреждение отключаемым?
В таблице Позиции по инструментам нет класса инструмента
 
А как мне тогда узнать в каком классе продавать инструмент? Я должен заполнить CLASSCODE при генерации ордера.
В таблице Позиции по инструментам нет класса инструмента
 
Просьба добавить в таблицу Позиции по инструментам класс инструмента, как это сделано в большинстве других таблиц. Конечно, там уже есть ISIN, но он не у всех классов (например, CETS, SPBFUT). В таблице уже есть Код Инструмента, класс бы позволил однозначно идентифицировать инструмент при экспорте таблицы.
Экспорт по DDE Позиции по инструментам
 
А с Т0 будут аналогичные проблемы, разве нет? Проблема скорее в том, что для пользователей экселя проблемы нет - у них вся область перерисуется.
Идея была в том, что при закрытии позиции получать подтверждение по таблице Лимитов, что позиция была действительно закрыта. Я сейчас повесил анализ на доступный остаток = 0, это немного криво, так как позиция закрывается до исполнения ордера, но хоть что-то
Экспорт по DDE Позиции по инструментам
 
https://imgur.com/YZYYbRq
https://imgur.com/bu6HY5j
Экспорт по DDE Позиции по инструментам
 
Мои настройки https://imgur.com/bS5zMXl
Экспорт по DDE Позиции по инструментам
 
Мне кажется, мы используем разные термины.
Проблема такая:
1. При входе в позицию при DDE экспорте формируется массив строк (в формате xltable).
2. При выходе из позиции формируется массив строк, в нём не будет строки с данными закрытой позиции, она пропадёт из таблицы и не породит запись в формате xltable.

Говоря об "уведомлениях" я имел ввиду, что я не получу запись о том, что конкретно закрытая позиция была закрыта по dde.

Пример (формат таблицы https://imgur.com/igWaevZ )

1. Создание рыночного ордера покупки 1 лота мечела
Терминал создаёт 2 DDE сообщения:

{isin=RU000A0JPV70, ticker=MTLRP, period=T2, openingLots=0,  currentLots=0, inBuy=0, inSell=10, total=0, available=0, balance=0,  price=0.0, terminalCode=OPEN}
{"isin":"RU000A0JPV70","ticker":"MTLRP","period":"T2","openingLots":0,"currentLots":10,"inBuy":0,"inSell":0,"total":10,"available":10,"balance":10,"price":107.85,"terminalCode":"OPEN"}

Первое - это обновление "строки по изменению в покупке" (видимо, я ошибочно ее назвал inSell у себя в программе, но это не суть).

Второе - ордер удовлетворён, в периоде Т2 мы получаем 10 бумаг мечела (ошибочно названных лотами, но так же не суть)

2. Совершение оффетной сделки:

Терминал выгружает одно DDE сообщение

{isin=RU000A0JPV70, ticker=MTLRP, period=T2, openingLots=0,  currentLots=10, inBuy=10, inSell=0, total=10, available=0, balance=10,  price=107.85, terminalCode=OPEN}

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

Ожидание: выгрузить строку с нулевыми данными (позиции нет).

Сырой DDE обмен у меня записан и может быть предоставлен. Там информация выгрядит аналогично.

Терминал версии 8.1.0.30
Экспорт по DDE Позиции по инструментам
 
Я экспортирую в свою программу по DDE и с позициями по инструментам есть такая проблема:
1. Покупаю один лот чего-нибудь - появляется строчка Т2 с позицией. Она выгружается, всё хорошо.
2. Продаю это же самое день в день - строчка пропадает, но при этом ничего не выгружается и у меня зависает фантомная позиция.

Есть ли какие-нибудь варианты? Хорошо бы, чтобы уведомления о нуле приходили.
Сбой передачи данных по ODBC из таблицы заявок, Сбой передачи данных по ODBC из таблицы заявок после изменений на бирже от 13.12.2019
 
Насколько я помню, таблица заявок выгружает данные по одному ордеру как минимум 2 раза, в первый раз создаётся неполный ордер, где ИД Транзакции действительно NULL, после этого строка сразу обновляется.
Я сейчас использую на DDE для скорости и там аналогичная картина.


PS. Quik 8.1.0.30
Непонятность с полем ID транзации в таблицах заявок и сделок
 
Добрый вечер, Александр

Проблема немного иная: для ручных заявок ID транзакции не проставляется и это правильно, так как TRANS_ID заполняется внешней системой (согласно документации). Но для порождённых такой заявкой сделок, ID транзакции заполняется. Счётчик стартует с 10 в начале торговой сессии и растёт согласно числу сделок по "ручным" ордерам. Надо убрать TRANS_ID из сделок, если породивший их ордер не имеет TRANS_ID.
Quck досту через сокеты
 
А чём проблема брать из DDE и писать в сокет? DDE сам по себе быстрый, я выгружаю в очередь правда
Непонятность с полем ID транзации в таблицах заявок и сделок
 
Но использование TRANS_ID всё-равно удобнее, потому что его знаешь даже до отправки ордера. Когда всё асинхронное очень хочется иметь что-то постоянное. Транзакции для рыночного ордера действительно выгружаются быстрее чем сам ордер. А так можно вычитать обе DDE очереди, собрать по TRANS_ID и вернуть на клиента.
Непонятность с полем ID транзации в таблицах заявок и сделок
 
Цитата
Anton написал:
Что на шарпе, что на сях даблы в IEEE754, так что тоже не пофиг. На возвращенное в бинарном виде не смотрели, там точно ноль или некий "битый дабл"? Вроде как у явы big endian, помнится, кто-то как-то попадал с необходимостью байты переворачивать, правда, не помню, в каком контексте.
Я получал "какие-то 8 байт" и кастил их в лонг, на выходе получался ноль, потому что внутреннее представление в Double было меньше 1. В общем, документацию не мешало бы поправить и так проблем хватает :)
Непонятность с полем ID транзации в таблицах заявок и сделок
 
Спасибо. Действительно что-то добавляется. Но пока думал, обнаружил проблему почему не возвращается ИД заявки. В документации неправильно указан тип - указан double*, но это не так, в реальности это указатель на int_64. Может, на С# пофиг что пихать, 8 байт и 8 байт, то на Яве это было не так. Думаю, это наилучшее решение проблемы.
Непонятность с полем ID транзации в таблицах заявок и сделок
 
Есть вариант всадить большой начальный TRANS_ID, чтобы с запасом и без шансов налепить вручную столько (счётчик ручных сделок стартует с 10), но непонятно почему этот счётчик для ручных вообще есть и что ему мешает тоже стать большим, после какого-нибудь изменения.
Непонятность с полем ID транзации в таблицах заявок и сделок
 
Проблема-то даже хуже, чем я думал.
Тестирую сейчас импорт рыночных заявок, общая задача привязать сделки к заявке. Экспорт данных по DDE.
Итак,
1. Передаём TRANS2QUIK_SEND_SYNC_TRANSACTION  строку ACCOUNT=L01+00000F00;SECCODE=MTLR;CLASSCODE=TQBR;ACTION=NEW_ORDER;TYPE=M;OPERATION=B;QUANTITY=1;PRICE=0;TRANS_ID=36;
2. Функция отвечает:  orderId=36;result=0;resultCode=TRANS2QUIK_SUCCESS;status=3;statusMessage=транзакция выполнена;transactionId=0;
3. Транзакцию в системе, как мы видим, функция возвращать не желает. Ладно.
4. Терминал отправляет результат из таблицы сделок раньше, чем из таблицы заявок, т.е. нарушена причинно-следственная связь (я тестировал в однопоточном режиме, 4 раза - сделка оказывается раньше заявки).
Таким образом, я даже не знаю, как тут быть.
- TRANS_ID ненадёжен, ибо ненулевой для ручной заявки
- Связь по ИД заявки невозможна, а) потому что ордер в момент обработки сделки ещё не пришёл.
Страницы: 1 2 След.
Наверх