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

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

Страницы: 1 2 След.
Настройки потока котировок как сохранить/загрузить?
 
Ау. Тут есть кто живой?  :smile:  
Настройки потока котировок как сохранить/загрузить?
 
Уважаемая тех.поддержка, хоть какой-нибудь сигнал или признак жизни подайте, пож-та... :)
Настройки потока котировок как сохранить/загрузить?
 
Вопрос к тех.поддержке:

1. Система/Заказ данных/Поток котировок... нужные параметры и инструменты на классе
А где вообще хранятся все эти настройки?

2. И как их можно вручную сохранить/загрузить, ибо они регулярно и непредсказуемо сбрасываются?
(функционал через меню "сохранить настройки в файл/загрузить из файла" на эти настройки не влияет)
ParamRequest vs CreateDataSource
 
Цитата
Nikolay Pavlov написал:
1. Руками, выбрав в Система/Заказ данных/Поток котировок... нужные параметры и инструменты на классе;
А где вообще хранятся все эти настройки?

И как их можно вручную сохранить/загрузить, ибо они регулярно и непредсказуемо сбрасываются?
(сохранить настройки в файл/загрузить из файла на эти настройки не влияет)
[BUG] Крах Квика при работе скрипта, версия 8.5
 
Цитата
Николай Камынин написал:
2) значение n может переполниться когда-нибудь
Это комплимент Квику, что скрипт сможет отработать безостановочно тысячи лет подряд
Мир будет на квантовых компьютерах с инопланетянами торговать, а в России будет... Квик
[BUG] Крах Квика при работе скрипта, версия 8.5
 
Не тот скрипт, вот чистый lua :)
Код
function OnAllTrade(tick)
end
 
mainRun = false
 
function OnStop(flag) 
   message("OnStop")
   mainRun = false
   return 3000;
end
 
function main()
   mainRun = true
   message("main run...")
   
   while mainRun do
      local ticksNum = getNumberOf("all_trades")
      local tick = getItem("all_trades", ticksNum-1)
      sleep(1)
   end
 
   message("main exit")
end
[BUG] Крах Квика при работе скрипта, версия 8.5
 
Цитата
Anton написал:
Не факт, что очистка ТВС не произойдет между getNumberOf и getItem, а результат второй разыменовывается без проверки на nil. Перезаказ = крэш. Не квика (должен быть), но скрипта, хотя как сейчас сделано, и нила не надо, сам грохнется, найдет почему.
Имелось ввиду не "Получить заново данные по сделкам", а "Перезаказать данные" - там перезапуск всего Квика происходит. Хотя не суть.
Вообще, этот сахар с сообщениями добавлен для наглядности, какой момент упадет.

Для краха достаточно и такого:
Код
public static void OnAllTrade(Tick tick) {
}
 
static bool mainRun;
public static int? OnStop(int flag) {
   message("OnStop");
   mainRun = false;
   return 3000;
}
 
public static void main() {
   mainRun = true;
   message("main run...");
 
   while (mainRun) {
      var ticksNum = getNumberOf("all_trades");
      Tick tick = getItem("all_trades", ticksNum - 1);
      Thread.Sleep(1);
   }
 
   message("main exit");
}

Упадет может и не сразу, может несколько минут продержаться во время рабочих торгов.
[BUG] Крах Квика при работе скрипта, версия 8.5
 
Цитата
Александр М написал:
Тут налицо переполнение 2-х переменных: ticksIn и n
Ну ежели скрипт будет работать непрерывно несколько веков, то может и переполнятся :)
[BUG] Крах Квика при работе скрипта, версия 8.5
 
В соседних ветках много сообщений о проблемах с версией 8.5, но системы у всех сложные, грешить не понятно на что..

Вот очень простой скрипт, который рушит Квик во время торгов.
Упасть может и не сразу, поработав недолго, видимо зависит от интенсивности потока тиков.
Ошибок в скрипте нет, он элементарный. Да если бы и были ошибки, то рушиться весь Квик не должен, только скрипт.
Для 100% краха можно перезаказать данные текущей сессии. Тогда упадет сразу.

Код
local ticksIn = 0
 
function OnAllTrade(tick)
   if (math.fmod(ticksIn, 5000)==0) then
      message("OnAllTrade " .. ticksIn .. "  tick: " .. tostring(tick.trade_num))
   end
   ticksIn = ticksIn + 1
end
 
mainRun = false
 
function OnStop(flag) 
   message("OnStop")
   mainRun = false
   return 3000;
end
 
function main()
   mainRun = true
   message("main run...")
   
   local n = 0
   while mainRun do
      local ticksNum = getNumberOf("all_trades")
      if (ticksNum > 0) then
         local tick = getItem("all_trades", ticksNum - 1);
         if (math.fmod(n, 1000) == 0) then
            message("AllTrades  num: " .. ticksNum .. "  tick: " .. tostring(tick.trade_num))
         end
      end
      n = n + 1
      sleep(1)
   end
 
   message("main exit")
end
Порядок полей таблицы Даты-Времени у обезличенной сделки. Квик 8.5 Луа53.
 
Цитата
Anton написал:
А вообще господин Иерусалимский говорит следующее ...
Господин, должно быть, имел ввиду код на lua , а не dll
Хотя звучит немного пафосно, видимо он очень любит lua, и не видел скриптов, когда в циклах собираются строки через плюсик :)

Для dll можно, наверное, попробовать сделать lua-макрос, и дергать его, чтоб строки не слать.

Кстати, а как так можно заранее напихать, и чтоб lua не стыковал строки со своим реестром при работе через lua_getfield и т.п.? Такое возможно?  
Порядок полей таблицы Даты-Времени у обезличенной сделки. Квик 8.5 Луа53.
 
Цитата
Aleks написал:

Запускаю первый раз скрипт, пишу ячейки в файл:  
9  3  48  14  4  480  2020  22  480334  
минуты - деньнедели- секунды - часы - месяц - мсек - год - число - мксек

Запускаю второй раз, этот же самый тик:
14  480  4  2020  480334  3  22  48  9
Попробуйте:
Код
string.format('%04d-%02d-%02d %02d:%02d:%02d.%06d', dt.year, dt.month, dt.day, dt.hour, dt.min, dt.sec, dt.mcs or 0)
Строку формата скорректируйте под себя. Сравните по скорости :)
Порядок полей таблицы Даты-Времени у обезличенной сделки. Квик 8.5 Луа53.
 
Цитата
Aleks написал:
Цитата
Anton написал:
Это же нормальное явление для луа, полагаться на какой-то порядок полей было изначально ошибкой.
Тем не менее, обращаться по индексу - самый эффективный способ. Квик и без всяких сортировок и поиску по ключу тормозит сильно
Любопытно. Это заключение на основе чего сделано?

В lua все строки имеют абсолютный индекс.
table["key"] (как и table.key)  -  это всегда доступ по индексу строки, никакого сравнения строк (парсинга, вычисления хэшей и т.п.) по содержимому строки в lua тут не происходит.
Потому lua со строковыми ключами таблиц работает максимально шустро.

А вот конкатенация строк - это в противовес самое тормозное в lua.
quik 8.5 ошибка
 
Цитата
Anton написал:
Цитата
Latrop написал:
Critical error ACCESS_VIOLATION in script
Это теперь так ошибки обрабатываются ) Надеюсь, поправят скоро.

А по существу - должна по идее какая-то ошибка случаться, но воспроизвести не удалось, перезаказал твс, догрузилась до текущего момента и ничего не упало. Вот таким вот образом пробовал
Код
  static int qOnAllTrade(lua_State  *  s)
{
   lua_getglobal(s,  "getInfoParam" );
   lua_pushliteral(s,  "VERSION" );
   lua_call(s,  1 ,  1 );
   lua_pop(s,  1 );
    return   0 ;
}
  
Огромный респект за проверку!
Дало повод не грешить на lua, а разобраться глубже и найти проблему.
Это сборщик мусора мою функцию прибирал таким образом.

Цитата
Sergey Gorokhov написал:
Цитата
Latrop написал:
Примитивная  dll  в  OnAllTrade  просто дергать напр getInfoParam("VERSION") и больше вообще ничего, никаких эксепшенов, но после коннекта и получения прим 50-100 тыс тиков валится:

Critical error ACCESS_VIOLATION in script...

Что это за беда такая может быть?...

Если в OnAllTrade вообще ничего не делать, пустышка, то не падает. Но такой способ обхода проблемы не очень подходит :)

Здравствуйте!
Проблема изучается. Постараемся в ближайшее время дать ответ.
Одна "Проблема изучается" минус. По этой части можно уже не изучать :)
quik 8.5 ошибка
 
Примитивная dll в OnAllTrade просто дергать напр getInfoParam("VERSION") и больше вообще ничего, никаких эксепшенов, но после коннекта и получения прим 50-100 тыс тиков валится:

Critical error ACCESS_VIOLATION in script...

Что это за беда такая может быть?...

Если в OnAllTrade вообще ничего не делать, пустышка, то не падает. Но такой способ обхода проблемы не очень подходит :)
API на C#
 
Цитата
Stanislav Tvorogov написал:
На данный момент пожелание не реализовано. В случае его реализации оповещение будет размещено в данной ветке.

Спасибо, понятно. Постараюсь не забыть через очередные 5 лет снова тут спросить :)  правда уже точно не нужно будет, но любопытно же :)
Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок
 
Цитата
Anton написал:
Цитата
Александр М написал:
увидел, что там 2 dll и версии lua 5.1 и версии 5.3 Какая основная
Можно предположить, что 5.1 оставили для какой-то там совместимости, 5.3 экспортирует все то же самое (с поправкой на версию луа). Пока не обнаружил, чтобы что-нибудь крэшнулось без 5.1 (просто убрал ее).
Что касается совместимости с 5.1 (видимо для этого там lua5.1.dll), то она несовместимая пока получается.

Например, Квик просто весь падает при попытке запустить Lua Socket (версия для lua51, x64 отлично работавшая под Quik 8.4).
Копия lua5.1.dll в lua51.dll (необходимая для станд сборки Lua Socket) делалась.
API на C#
 
Цитата
Stanislav Tvorogov написал:
Добрый день,  Мы рассмотрели Ваше пожелание. По итогам его анализа сообщаем Вам, что реализация пожелания признана потенциально целесообразной. Если по результатам дальнейшего анализа, включающего юридические аспекты, анализ на непротиворечивость с общей политикой компании, никаких возражений не возникнет, мы постараемся включить Ваше пожелание в план доработок при выпуске одной из следующих версий нашего ПО.
Ув. разработчики, есть какие новости по данной теме?  
Plugin API
 
Цитата
Данил Бабурин написал:
Добрый день,

Мы рассмотрели Ваше пожелание и вынуждены отказать в его реализации.  В настоящий момент мы не готовы раскрывать внутренние межкомпонентные API нашей системы.

С уважением
Начальник отдела разработки ПО QUIK
Данил Бабурин
Не передумали, случаем?

Уж столько лет прошло, приоритеты должны же как-то эволюционировать (в сторону открытости, хочется надеяться)...  
Как получить ГО по фьючерсу?
 
Цитата
Старатель написал:
Биржа транслирует параметр "ГО продавца" для опционов?
Ищите "БГО"
Выгрузка библиотек
 
М-да, странности. Если dll исходно на С++, то  норм высвобождается, а если на C#, то нет
Код
[DllExport("luaopen_MyModule", CallingConvention = CallingConvention.Cdecl)]
public static int luaopen_MyModule(IntPtr L) {
 return 0;
}
Ошибок не выдает, и даже такая пустышка не хочет выгружаться, хотя норм загружается, отладчик норм в метод заходит и выходит, lua тоже норм все отрабатывает, по OnStop корректно завершается. OnInit не используется.

Видимо DllExport что-то там не того. Тут мои компетенции как бы все.

Может кто сталкивался?..
Выгрузка библиотек
 
Можно вопрос вроде по этой теме:

Указанным способом модуль после использования вроде бы и выгружается (в списке package.loaded его нет), но фактически же dll-файл Квиком не освобождается.
Если нужно перекомпилировать и перезапустить dll-модуль, то только через перезапуск Квика.

Может есть какой-то способ высвобождать dll (используемую в скрипте через require) без перезапуска всего терминала?
Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок
 
Кстати! Уважаемые разработчики Квика!
У вас же всяко-разно есть уже бета (или может даже релиз-кандидат) 8.5 версии с этими доработками.

Учитывая, так сказать, текущую конъюнктуру биржевых (и не только) реалий, почему бы вам не выложить предварительную версию (на ftp), разумеется с соответствующей декларацией-предупреждением (ну как это обычно делается).
Проявить, так сказать, заботу о своих дорогих пользователях, дав им больше времени на проверку и адаптацию своих систем.
Заодно получить обратную связь по апробации всего этого дела.

Понятно, что вам захочется сразу в ответ дать категоричное Нет.
Но, большая просьба, попытаться донести это предложение до принимающих такие решения.
Нормальная же, современная практика.
Глядишь, и будет позитив... :)
Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок
 
Цитата
Alexey Ivannikov написал:
- поменялась ссылка на пресс-релиз биржи.
Цитата
Alexey Ivannikov написал:
запланировано на 25 мая 2020 года:  https://www.moex.com/n27033 .
Правильная ссылка вот:
https://www.moex.com/n27761
ОШИБКИ формирования потока всех сделок
 
Цитата
Anton написал:
Квику ж за двадцатку лет уже
Да, двадцать лет - это перебор, что квику, то и сами знаете кому :)
[BUG] Функция getParamEx2 не возвращает имеющийся параметр, напр TRADE_DATE_CODE или SECTYPESTATIC
 
Цитата
новичок написал:
такое часто дает сигнал игнорировать вопрос. шарпеи не в почете у системщиков. ткчт аккуратнее с такими каминг-аутами в правильных сообществах. (имо)
Как начинавший еще с ASM на Z80, позволю себе снисходительно отнестись к такой дискриминации по языковому признаку :)))
[BUG] Функция getParamEx2 не возвращает имеющийся параметр, напр TRADE_DATE_CODE или SECTYPESTATIC
 
Цитата
Anton написал:
Если бумага возвращена из getClassSecurities, она есть в листинге сегодня, разве нет?
У меня скрипт тупо синхронизирует просто всю таблицу securities, ну да, верно, по этой части можно просто брать getTradeDate квика, если бумага есть в списке getClassSecurities, спасибо.

Цитата
Anton написал:
А что из них вытаскивать? ТВС? Дык вон оно все на финаме лежит даром, качать не перекачать.
В финаме же урезанные данные, ни точного времени, ни открытого интереса, ни адресных сделок, ни еще чего-то нужного, так, побаловаться только :)
ОШИБКИ формирования потока всех сделок
 
Цитата
Anton написал:
а мешать домохозяйкам использовать покупные/заказные скрипты - идея плохая, они завалят и разработчика скрипта, и этот форум вопросами "куда все пропало".
Так таким домохозяйкам итак нужно инструкцию, как напр включить поток сделок, отключенный у брокера.
Что мешает также указать что должен быть включен умный заказ тиков, либо указать какие потоки включить, либо еще как-то через апи скрипт сможет рулить.
Тут же вопрос, как полно и грамотно будет реализован функционал управления потоками данных.
Цитата
Anton написал:
Это единственная альтернатива счетчику ссылок у каждой галки. Либо так, либо как есть, либо переделывать весь функционал с нуля, на что арка вряд ли пойдет.
Почему единственная? Можно просто пробежать по всем метаданным открытых таблиц тиков и сложить имеющиеся фильтры.
Хотя отлично понятно суть предложений, по "не уменьшению" фильтра, но блин, все затыкать одну проблему :)
[BUG] Функция getParamEx2 не возвращает имеющийся параметр, напр TRADE_DATE_CODE или SECTYPESTATIC
 
Цитата
Anton написал:
Как насчет вывести тип бумаги из имеющихся параметров от getSecurityInfo?
Наличие базового актива -> дериватив, наличие страйка -> опцион и т.д.
Тип/подтип бумаги косвенно определить не сложно, что и реализовано, хотелось упростить. На фонде и валютах там правда сложнее (типы облигации например).

Более того, наличие SECTYPESTATIC (или TRADE_DATE_CODE и т.п.) было также нужно, если честно, чтобы надежно определить, есть ли бумага в листинге текущей сессии или нет.

Цитата
Anton написал:
Вот в этом я не уверен, мне неизвестно соответствующее поле в sec.dat
Кстати, любопытно, зачем приходится разбирать нутро dat-файлов квика? Какая там есть полезная инфа, которая недоступна в скриптах?
И можно где-то раздобыть уже готовые парсеры этих dat-файлов, на C# напр ?
А то накопились ежедневные копии квиков за кучу лет, руки не доходят слить из них все данные для истории и удалить наконец :)
ОШИБКИ формирования потока всех сделок
 
Цитата
Старатель написал:
Дополню: не изменять список инструментов в сторону уменьшения, пока пользователь не укажет это явно в настройках заказа данных.
Зачем еще дополнительные нагромождения логики автоматики и явных настроек? Это приведет к еще большим неочевидностям.
ОШИБКИ формирования потока всех сделок
 
Цитата
Старатель написал:
Ломать, тем более автоматику не нужно.
Почему ломать? Добавить возможность отключения это автоматики "для домохозяек" :)
Если же, занимаясь созданием систем и алгоритмов для торговли, то очень странно судить о работе своих алгоритмов по трафику на роутере и делать оттуда какие-то выводы, возможно и ложные :)
[BUG] Функция getParamEx2 не возвращает имеющийся параметр, напр TRADE_DATE_CODE или SECTYPESTATIC
 
Так и я про то.
Квик очевидно заказывает всегда весь листинг. Там же в Квик приходит и тот же SECTYPESTATIC, но получить его в скрипте никак, пока не закажешь любой другой совсем ненужный биржевой параметр.

Разботчики:
Можно SECTYPESTATIC в виде кода, а также прочие static параметры выдавать через метаданные бумаги (getSecurityInfo) ?
Очень сильно тормозит Quik (компьютер в порядке)
 
Цитата
Дмитрий написал:
Проблема такая - запускаю таблицу обезличенных сделок и Quik просто уничтожается, еле-еле откликается даже на отрисовку курсора мыши (на графике). Компьютер в порядке, достаточно мощный. Запускал раньше такую же таблицу (около месяца назад) и всё было хорошо. В чём может быть проблема? Может что-то не то (не ту галочку) прожал в настройках?
Тема Квика установлена какая? Темная?  
Таблицы сделок и заявок - вставьте НКД за 1 ед.
 
А если его вычислять обратным делением на кол-во, то так будет не корректно?
Не надо присылать письмо про мой собственный пост
 
Подтверждаю, галка есть, выключаешь, а она не выключается.
ОШИБКИ формирования потока всех сделок
 
Цитата
Andrey Bezrukov написал:
Ошибка будет исправлена в одной из очередных версий программы. Приносим извинения за причиненные неудобства.

Что по доработкам потока обезличенных сделок (тиков) скажете?

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

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

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

Если нужно сохранить "умный" заказ тиков, то вынести его вкл/выкл в настройки, по умолчанию выключен.

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


2. Также хорошо бы также доработать сервер, чтобы он слал потоки только по заказанным клиентом классам, такой дополнительной гибкости будет более чем достаточно для оптимизации трафика и нагрузки.
ОШИБКИ формирования потока всех сделок
 
Цитата
Старатель написал:
Цитата
Latrop написал:
Как удалось разобраться, если заказано получение тиков хоть одного инструмента, то на клиент льется вообще весь поток всех(!) тиков.
Фильтр по отдельным инструментам никакой экономии трафика не дает
Не соглашусь, при использовании фильтров трафик уменьшается.
На чем основано данное несогласие? :)

Сами же разработчики Квика предупреждают:
Поток обезличенных сделок используется при отображении данных в одноименной таблице, экспорте тиков во внешние системы технического анализа и при построении в QUIK тиковых графиков. При использовании любого функционала из перечисленных - с сервера QUIK будут заказаны все сделки по всем инструментам, на получение информации по которым у терминала есть права. Заказ полного набора всех сделок происходит все зависимости от установленных в таблице обезличенных сделок фильтров или открытого тикового графика по конкретному инструменту.  
[BUG] Функция getParamEx2 не возвращает имеющийся параметр, напр TRADE_DATE_CODE или SECTYPESTATIC
 
Цитата
Старатель написал:
QUIK не умеет фильтровать заказанные параметры внутри класса и будет слать все заказанные явно или неявно параметры для одного класса.

Тоже так думаю, но вот тех.поддержка иное заявляет:

Цитата
Sergey Gorokhov написал:
умеет заказывать такие "частные" параметры в разрезе инструментов
Кому верить? :)
[BUG] Функция getParamEx2 не возвращает имеющийся параметр, напр TRADE_DATE_CODE или SECTYPESTATIC
 
Цитата
Sergey Gorokhov написал:
Есть функция getClassSecurities которая вернет список доступных инструментов.
Т.е. полный список инструментов в терминале заказывается и обновляется всегда? Независимо от каких-либо настроек параметров?
[BUG] Функция getParamEx2 не возвращает имеющийся параметр, напр TRADE_DATE_CODE или SECTYPESTATIC
 
Еще вопрос:

Если заказать
ParamRequest(class1, sec1, par1)
и
ParamRequest(class1, sec2, par2)

Т.е. для разных инструментов одного и того же класса будут заказаны разные параметры.
То фактически терминал что сделает?
Будет неявно заказывать оба параметра для обоих инструментов, или он умеет заказывать такие "частные" параметры в разрезе инструментов?
Просто такое через диалог заказа параметров настроить невозможно - понять как устроен заказ данных.
[BUG] Функция getParamEx2 не возвращает имеющийся параметр, напр TRADE_DATE_CODE или SECTYPESTATIC
 
Переформулирую вопрос:

Если явно заказаны только конкретные инструменты (т.е. задан фильтр по инструментам), то каким образом можно узнать, какие есть еще активные инструменты в текущей сессии для заказа данных?
Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок
 
Т.е. если, напр, из большой целочисленной переменной вычесть другую переменную, которая нечаянно окажется double, то результат будет тоже double и в итоге потеря точности?
[BUG] Функция getParamEx2 не возвращает имеющийся параметр, напр TRADE_DATE_CODE или SECTYPESTATIC
 
Каким образом, используя явно getParamEx(2) и ParamRequest, узнать в скрипте о появлении нового инструмента?
[BUG] Не чистится firms.dat при перезаказе данных с очисткой локальных справочников
 
Не чистится firms.dat при перезаказе данных с очисткой локальных справочников через меню.

Только удалять файл вручную для очистки от старых данных с прошлых сессий :)

Ошибка?
[BUG] Функция getParamEx2 не возвращает имеющийся параметр, напр TRADE_DATE_CODE или SECTYPESTATIC
 
Цитата
Anton написал:
Вообще-то я тоже не признал бы такое поведение ошибочным с точки зрения луа: бумага не заказана, заказ запрещен фильтром, луа тыкается в строку, строки нет, заказывать нельзя, ок, держите нил. Логично. С точки зрения видимой таблицы разве что, да и то скорей "особенность поведения", это же вью, а не модель. Вот что луа часто от "модели" уклоняется в угоду то ли "упрощению", то ли сокрытию внутренней кухни, это вот хуже ящитаю.
В видимой таблице значит данные инструментов берутся из локального кэша справочников.
В луа эти инструменты из кэша все доступны в таблице securities, а вот их закэшированные параметры уже нет.
Как вообще корректно определить, что заказ инструмент или нет?

Цитата
Sergey Gorokhov написал:
Функция getParamEx2 возвращает параметры предварительно заказанные с помощью функции ParamRequest.А вот getParamEx не требует такого заказа.
Вообще без разницы, какую функцию тут использовать.

Проблема в общем понятна, что это не ошибка функции, а ошибка архитектуры, вопрос можно снять :)
Темная тема
 
Не надо переходить темную сторону, это шляпа, там нет силы  :cool:  
[BUG] Функция getParamEx2 не возвращает имеющийся параметр, напр TRADE_DATE_CODE или SECTYPESTATIC
 
Цитата
Sergey Gorokhov написал:
Если так сделать, то Вы не сможете открыть таблицу текущих торгов, т.к. не будет списка инструментов.
Таблица уже открыта. Просто попытался описать кейс с нуля, не учел всех "умностей" терминала.

Скорректировал описание (могли бы и сами догадаться):

Ошибка:
- Версия 8.4.1.6 (вообще любая)
- Открыть таблицу Текущих торгов, добавить любые инструменты
- Выключить "Умный" заказ параметров, отключить заказ всех параметров (все галки убраны)
- Перезаказать данные текущей сессии
- Видим большинство параметров пустые (это норм, раз они не заказаны), но некоторые параметры есть (видимо статичные)
- Например "Тип инструмента" (SECTYPESTATIC) и он выводится (напр выдает: "Фьючерсы"/"Опционы"/"Ценные бумаги" и т.п.)
- Попытаться получить этот параметр getParamEx2(marketCode, secCode, "SECTYPESTATIC") , где marketCode, secCode соотв код класса и код инструмента, любого
- В ответ - Пусто - Параметр в таблице есть, а через lua-код его нет.

Признаете вышеуказанное поведение ошибочным? (дубль 3)
ОШИБКИ формирования потока всех сделок
 
Цитата
Andrey Bezrukov написал:

По предложенным сценариям не удаётся воспроизвести описанный эффект. Предлагаем воспользоваться ранее указанными рекомендациями и если устранить эффект не удастся - просим прислать архив Вашего рабочего места для изучения.

Файлы дампа при этом не нужны.
Дамп - и имелся ввиду архив каталога. Еще бывают дампы памяти, дампы БД, дампы экрана и т.п. :)

По ошибке:
- Версия 8.4.1.6 (вообще любая)
- Открыть таблицу обезличенных сделок, установить фильтр по классу SPBFUT (нажать галочку в списке напротив FORTS), нажать ОК, дождаться, увидеть поток сделок.
- Скопировать эту таблицу (Ctrl-N), установить в ней фильтр по любому инструменту этого класса, например BRU0, нажать ОК, увидеть в ней поток сделок по BRU0
- В итоге в первой таблице поток всех сделок класса прекратится, останется только поток тоже по BRU0, а если открыть настройки этой первой таблицы, то там все по прежнему, фильтра по инструменту нет, целиком класс
- это ОШИБКА

Ну как еще описать, не знаю. Если другие сторонние пользователи с полуслова понимают в чем проблема, и дают ссылки, что проблема древняя.
То тех.поддержка похоже просто издевается? Или халтурят? :)
Как изменить цвет перекрестия на графике
 
Цитата
Egor Zaytsev написал:
У перекрестия нельзя цвет задавать.
Если очень хочется, то можно:

Настройки графика - Диаграмма - Внешний вид - Шкалы - Цвет (он же применится к перекрестию)
ОШИБКИ формирования потока всех сделок
 
Цитата
Latrop написал:
По ошибке максимально просто для воспроизведения ситуации:
- Версия 8.4.1.6 (вообще любая)
- Открыть таблицу обезличенных сделок, установить фильтр по классу, ОК, увидеть поток сделок.
- Скопировать эту таблицу (Ctrl-N), установить в ней фильтр по любому инструменту, ОК
- В итоге в первой таблице поток всех сделок прекратится
- это ОШИБКА

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

Предположу, что похожие проблемы, описанные в других ветках - суть одной ошибки в логике.Признайте это ошибкой, пожалуйста, и поправьте.
Тех.поддержка, удалось повторить такую простую проблему? Или без дампа вы вообще никак? :)
[BUG] Функция getParamEx2 не возвращает имеющийся параметр, напр TRADE_DATE_CODE или SECTYPESTATIC
 
Цитата
Sergey Gorokhov написал:
Дата торгов, это не параметр инструмента, а параметр сервера и получить его можно в getInfoParam("TRADEDATE")
Спасибо, за просвещение, вопрос был в другом.
Код: getParamEx2(marketCode, secCode, "TRADE_DATE_CODE") - возвращает дату торгов в виде параметра конкретного инструмента.
Обычно это работает, и там возвращается дата в виде числа, чтоб понятнее было. Проблема в том, что не всегда.

Перефразирую проблему, раз есть непонимание.

Ошибка:
- Версия 8.4.1.6 (вообще любая)
- Выключить "Умный" заказ параметров, отключить заказ всех параметров (все галки убраны)
- Перезаказать данные текущей сессии
- Открыть таблицу Текущих торгов, добавить любые инструменты
- Видим большинство параметров пустые (это норм, раз они не заказаны), но некоторые параметры есть (видимо статичные)
- Например "Тип инструмента" (SECTYPESTATIC) и он выводится (напр выдает: "Фьючерсы"/"Опционы"/"Ценные бумаги" и т.п.)
- Попытаться получить этот параметр getParamEx2(marketCode, secCode, "SECTYPESTATIC") , где marketCode, secCode соотв код класса и код инструмента, любого
- В ответ - Пусто - Параметр в таблице есть, а через lua-код его нет.
Признаете вышеуказанное поведение ошибочным?


Цитата
Sergey Gorokhov написал:
Тип инстр-та и Подтип инстр-та формируются на основе данных поступающих с биржи.В иных случаях определяются сервером.Тип инструмента. Возможные значения:
«1» – Ценная бумага;
«2» – Облигация;
«3» – Фьючерс;
...
Спасибо, вопрос был другой:
SECTYPESTATIC, SECSUBTYPESTATIC (и т.п.) - строковые, и они как бы есть всегда. Каким образом они определяется? Ведь не строкой же с сервера приходят? Значит есть исходные кодовые поля? Как их получить?
Как получить эти значения в виде кодов (1,2,3...) в lua-скрипте?


Выделил жирным для лучшего акцента.
Страницы: 1 2 След.
Наверх