Вопрос ко всем, кто знает: какую таблицу возвращает getQuoteLevel2 если нет bid или ask?

Страницы: 1
RSS
Вопрос ко всем, кто знает: какую таблицу возвращает getQuoteLevel2 если нет bid или ask?
 
Напр., бывает так, что запампленная акция выросла до потолка и её все хотят продать, но никто не хочет купить. Какова структура таблицы, если, к примеру, bid_count == 0 (на самом деле там вопреки документации будет строка "0.000000")?
1. Таблица bid отсутствует (нет ноды с именем "bid").
2. Есть нода с именем "bid" и её тип nil.
3. Тип этой ноды "table" и эта таблица пустая?
4. Или, как сказано в документации, вместо таблицы bid "возвращается пустая строка"?

На днях я посмотрел, какую последнюю таблицу по разным акциям возвращает getQuoteLevel2 в конце вечерней сессии примерно в 23:50: в ней общее количество нод две: bid_count == offer_count == "0.000000". Причём, по одним акциям биржа возвращает последнюю таблицу до 23:50, а после этого по другим акциям биржа ещё может вернуть полноценные таблицы с 4-мя нодами.
 
Добрый день.

Если определить параметры bid и offer, то функция вернет таблицу без этих параметров. Пример:
Код
{'bid_count': '0.000000',
'offer_count': '0.000000'
}
 
Цитата
Oleg Kuzembaev написал:
Добрый день.

Если определить параметры bid и offer, то функция вернет таблицу без этих параметров. Пример:
Код
  {'bid_count':  '0.000000' ,
 'offer_count' :  '0.000000' 
}  
Вот что написано в последней версии справки QLUA.chm за 23.10.25:
Цитата


При отсутствии и спроса и предложения функция возвращает таблицу без параметров bid и offer.

ПараметрТипОписание
bid_countSTRINGКоличество котировок покупки. При отсутствии спроса возвращается значение  «0»
offer_countSTRINGКоличество котировок продажи. При отсутствии предложения возвращается  значение «0»
bidTABLEКотировки спроса (покупки). При отсутствии спроса возвращается пустая  строка
offerTABLEКотировки предложений (продажи). При отсутствии предложения возвращается  пустая строка

1. Здесь, к примеру, неправильно написано, что при отсутствии спроса возвращается значение "0": возвращается "0.000000". Я ещё в прошлом году писал об этом на форуме. Сказали, что исправят, но так и не сделали.

2. Это описание противоречит само себе. При отсутствии спроса и предложения нет параметров с именами "bid" и "offer", или они есть, но имеют тип STRING и длину строки == 0?

3. Что возвращается, если, к примеру, есть offer, но нет bid? bid будет пустой строкой или не будет параметра с именем "bid" (вместо него будет нода с типом NIL?)
 
Нормальному человеку трудно представить, как можно написать в док-ции, что bid имеет тип TABLE, но может возвращать пустую строку...

Из армейского фольклора: "В военное время величина синуса может достигать четырёх".
 
Стакан евротранса сейчас:
Код
{
 bid = "",
 bid_count = "0.000000",
 offer = {
  {
   price = "68.10",
   quantity = "38643",
  }, {
   price = "68.15",
   quantity = "10711",
  }, {
   price = "68.20",
   quantity = "21390",
  }, {
   price = "68.25",
   quantity = "17142",
  }, {
   price = "68.30",
   quantity = "24280",
  }, {
   price = "68.35",
   quantity = "9463",
  }, {
   price = "68.40",
   quantity = "27935",
  }, {
   price = "68.45",
   quantity = "17828",
  }, {
   price = "68.50",
   quantity = "32589",
  }, {
   price = "68.55",
   quantity = "81864",
  }, 
 },
 offer_count = "10.000000",
}

 
Цитата
Serge123 написал:
Нормальному человеку трудно представить, как можно написать в док-ции, что bid имеет тип TABLE, но может возвращать пустую строку...

Из армейского фольклора: "В военное время величина синуса может достигать четырёх".
Возможно это потому, что это LUA.
и строка и таблица это TValue содержащий тип и указатель.  
Когда таблицы нет,
то надо что-то верную .
Лучше полагаю вернуть nil,
но почему-то рушили возвращать пустую строку.
 
Serge123, здравствуйте.

1. Актуальная документация к QLua находится по ссылке: https://arqatech.com/upload/iblock/114/quik_lua.zip В нее внесены изменения, о которых вы говорите.
2. Если спрос и предложения будут отсутствовать, то действительно будет возвращена пустая строка. Таков дизайн QLua.
3. Указанный вами случай описан в документации в п. 3.9.1
 
Цитата
Oleg Kuzembaev написал:
2. Если спрос и предложения будут отсутствовать, то действительно будет возвращена пустая строка. Таков дизайн QLua.
Нет, в этом случае не будет параметров bid и offer согласно вашей же док-ции.
Оказывается, ещё в октябре прошлого года, похоже, после того, как я на форуме об этом написал, эту док-цию исправили в файле "Интерпретатор языка Lua.pdf", но почему-то не исправили в файле QLUA.chm, который входит в Квик, поэтому я об этом узнал только сейчас.
 
Цитата
nikolz написал:
Возможно это потому, что это LUA.
Мне кажется, Квик формирует эти таблицы от коллбэков в коде на Си++, а на стороне клиента тоже ведь могут работать длл на Си.

Я ещё в прошлом году предлагал вместо этой таблицы от getQuoteLevel2, на построение которой тратится куча времени, передавать параметры в строке через разделители. Сделать для этого getQuoteLevel2Ex. getQuoteLevel2 в длл является бутылочным горлышком, которое тормозит работу: надо создавать строки, интернировать их, считать хеши... Но, конечно, этого, как всегда, не сделают.
 
Цитата
Serge123 написал:
Цитата
nikolz написал:
Возможно это потому, что это LUA.
Мне кажется, Квик формирует эти таблицы от коллбэков в коде на Си++, а на стороне клиента тоже ведь могут работать длл на Си.

Я ещё в прошлом году предлагал вместо этой таблицы от getQuoteLevel2, на построение которой тратится куча времени, передавать параметры в строке через разделители. Сделать для этого getQuoteLevel2Ex. getQuoteLevel2 в длл является бутылочным горлышком, которое тормозит работу: надо создавать строки, интернировать их, считать хеши... Но, конечно, этого, как всегда, не сделают.
Уу финама есть такая штука называется TRANSAQ
Когда-то делал на ней робота.
Вещь хорошая но тогда была еще сырая и было много глюков
Потом ушел от них а TRANSAQ только их.
Так вот в TRANSAQ передаются  лишь изменения стакана.
т е хотите сами стройте что угодно или не стройте.
--------------------
В QUIK создали библиотку QLUA как мост бежду VMLUA и терминалом.
Это не библиотека для написания роботов
а скорее библиотека для написания отображения каких -то не сложных вычислений на экране.
Поэтому все так.
 
Цитата
Serge123 написал:
Мне кажется, Квик формирует эти таблицы от коллбэков в коде на Си++, а на стороне клиента тоже ведь могут работать длл на Си.

Я ещё в прошлом году предлагал вместо этой таблицы от getQuoteLevel2, на построение которой тратится куча времени, передавать параметры в строке через разделители. Сделать для этого getQuoteLevel2Ex. getQuoteLevel2 в длл является бутылочным горлышком, которое тормозит работу: надо создавать строки, интернировать их, считать хеши... Но, конечно, этого, как всегда, не сделают.

Правильно понимаем, что вы уже регистрировали пожелание на доработку будущих версий? Если нет, то предлагаем сделать это сейчас.
Страницы: 1
Читают тему
Наверх