Изменяется порядок нахождения сделок в таблице all_trades в зависимости от параметров таблицы все сделки.

Страницы: 1
RSS
Изменяется порядок нахождения сделок в таблице all_trades в зависимости от параметров таблицы все сделки.
 
1. В потоке обезличенных сделок: GAZP, BRV, SBER, RIZ0, SIZ0.
2. Создаю таблицу "Всех сделок" добавляю GAZP.
3. Жду загрузки
4. Удаляют из таблиц всех сделок, удаляю GAZP и добавляю BRV0
5. Жду когда загрузятся тики
6. Запускаю скрипт и получаю доступ к таблице all_trades через lua api.
7. Сначала выводятся сделки по BRV0 со временем 10:25
8. Потом идут сделки по BRV0 со временем 10:00
Получается в таблице all_trades - теряется порядок хронологии. Все остальные сделки идут верно.
 
Цитата
Александр написал:
1. В потоке обезличенных сделок: GAZP, BRV, SBER, RIZ0, SIZ0.
2. Создаю таблицу "Всех сделок" добавляю GAZP.
3. Жду загрузки
4. Удаляют из таблиц всех сделок, удаляю GAZP и добавляю BRV0
5. Жду когда загрузятся тики
6. Запускаю скрипт и получаю доступ к таблице all_trades через lua api.
7. Сначала выводятся сделки по BRV0 со временем 10:25
8. Потом идут сделки по BRV0 со временем 10:00
Получается в таблице all_trades - теряется порядок хронологии. Все остальные сделки идут верно.
никто и никогда не обещал, что в таблице обезличенных сделок будет какое то упорядочивание по времени.

единственное, на что можно полагаться с большой долей уверенности - что в пределах одного инструмента сделки будут отсортированы по возрастанию времени.
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
Цитата
s_mike@rambler.ru написал:
Цитата
Александр написал:
1. В потоке обезличенных сделок: GAZP, BRV, SBER, RIZ0, SIZ0.
2. Создаю таблицу "Всех сделок" добавляю GAZP.
3. Жду загрузки
4. Удаляют из таблиц всех сделок, удаляю GAZP и добавляю BRV0
5. Жду когда загрузятся тики
6. Запускаю скрипт и получаю доступ к таблице all_trades через lua api.
7. Сначала выводятся сделки по BRV0 со временем 10:25
8. Потом идут сделки по BRV0 со временем 10:00
Получается в таблице all_trades - теряется порядок хронологии. Все остальные сделки идут верно.
никто и никогда не обещал, что в таблице обезличенных сделок будет какое то упорядочивание по времени.

единственное, на что можно полагаться с большой долей уверенности - что в пределах одного инструмента сделки будут отсортированы по возрастанию времени.
Как раз нет хронологии в пределах одного инструмента BRV0 (в примере) - а должна быть.
Так полагаемся на хронологию в приделах одного инструмента. Номера сделок увеличиваются.
Проблема в том, что идут номера большие, потом идут сделки с меньшими номерами.
Брокер финам, версия среды 8.8.4.3
 
Сделайте скриншот таблицы обезличенных сделок, чтобы на нем было видно, что сделка с меньшим временем находится ниже сделки с бОльшим временем в пределах одного инструмента.

если такой случай сделать не получается (так и будет) - ищите ошибку в том, что у вас работает через  "луа апи"
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
Цитата
s_mike@rambler.ru написал:
скриншот таблицы обезличенных сделок
Табличка подсортировывает при отображении. Вообще манипуляциями с фильтрами можно получить в хранилище месиво. Правда, чтобы по одному инструменту порядок менялся, я не видал еще, но думаю, что нет ничего невозможного для заинтересованного экспериментатора.

Зафильтруйте все, оставьте один газик, перезакажите ТВС - в хранилище будет один газик. Теперь снимите фильтр с газика, выберите один риз, не перезаказывая ТВС, - риз добавится в хранилище после газика. А в таблице будет в правильном порядке показано.
 
https://forum.quik.ru/messages/forum10/message38866/topic496/#message38866
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Anton написал:
Цитата
   s_mike@rambler.ru написал:
скриншот таблицы обезличенных сделок
Табличка подсортировывает при отображении.
обезличенные сделки отсортированы в пределах одного инструмента на уровне внутренней базы квика.
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
Цитата
Старатель написал:
https://forum.quik.ru/messages/forum10/message38866/topic496/#message38866
Все верно.
Раз


Два
 
Александр, Добрый день!
Записи в Таблице Обезличенных Сделок действительно должны быть упорядочены.

Для детального анализа проблемы просим выслать архив рабочего места и скрипт, который вы используете, на почту нашей поддержки (quiksupport@arqatech.com).
 
Цитата
s_mike@rambler.ru написал:
обезличенные сделки отсортированы в пределах одного инструмента на уровне внутренней базы квика.
С этим и спору нет. Речь о том, что на клиентской стороне, благодаря фильтрам, флагу "получать с текущего момента" и шаловливым ручкам теоретически можно наколбасить по-другому.

Александр,  а вот этим скриптиком можете экспортнуть? То же самое получится?
Код
local function save_ticks(cls, sec)
   local f = io.open(getScriptPath() .. '\\' .. cls .. '.' .. sec .. '.' .. 'csv', 'w')
   f:write('<DATE>;<TIME>;<TRADENUM>;<PRICE>;<QTY>\n')
   local fmt = '%04u%02u%02u;%02u%02u%02u%03u;%u;%.6f;%u\n'
   local function cmp(t)
      if not t then
         return nil
      end
      if cls == t.class_code and sec == t.sec_code then
         local dt = t.datetime
         f:write(string.format(fmt,
            dt.year, dt.month, dt.day,
            dt.hour, dt.min, dt.sec, dt.ms,
            t.tradenum, t.price, t.qty))
      end
      return false
   end
   SearchItems('all_trades', 0, 2000000000, cmp)
end

function main()
   save_ticks('SPBFUT', 'BRV0')
end
 
Цитата
Anton написал:
флагу "получать с текущего момента"
Этот флаг никак не должен менять порядок сделок в хранилище
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Старатель написал:
Этот флаг никак не должен менять порядок сделок в хранилище
Сам по себе да, а вкупе с шаловливыми ручками? Поставить флажок, накачать чего, снять флажок, накачать еще.
 
Цитата
Anton написал:
Цитата
Старатель написал:
Этот флаг никак не должен менять порядок сделок в хранилище
Сам по себе да, а вкупе с шаловливыми ручками? Поставить флажок, накачать чего, снять флажок, накачать еще.
Проверьте. При снятии флага пропущенные сделки закачиваются только при перезаказе. Так что как раз теоретически в пределах одного тикера накрутить невозможно. А что на практике - так это не шаловливые ручки виноваты.
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Старатель написал:
Проверьте. При снятии флага пропущенные сделки закачиваются только при перезаказе. Так что как раз теоретически в пределах одного тикера накрутить невозможно.
Просто ручки недостаточно шаловливые. Ставлю с текущего момента, ставлю фильтр только BRV0, подключаюсь, едет с момента подключения. Снимаю с текущего момента, сбрасываю все галки. Ничего не едет. Ставлю опять фильтр только BRV0, едет со вчерашней вечерки безо всякого перезаказа.
Скрытый текст
 
Цитата
Anton написал:
Цитата
   s_mike@rambler.ru написал:
обезличенные сделки отсортированы в пределах одного инструмента на уровне внутренней базы квика.
С этим и спору нет. Речь о том, что на клиентской стороне, благодаря фильтрам, флагу "получать с текущего момента" и шаловливым ручкам теоретически можно наколбасить по-другому.

Александр,  а вот этим скриптиком можете экспортнуть? То же самое получится?
Код
   local   function   save_ticks (cls, sec)
    local  f  =   io.open ( getScriptPath ()  ..   '\ \'    ..  cls  ..   '.'   ..  sec  ..   '.'   ..   'csv' ,  'w' )
   f:write( '<DATE>;<TIME>;<TRADENUM>;<PRICE>;<QTY>\n' )
    local  fmt  =   '%04u%02u%02u;%02u%02u%02u%03u;%u;%.6f;%u\n' 
    local   function   cmp (t)
       if   not  t  then 
          return   nil 
       end 
       if  cls  =  =  t.class_code  and  sec  =  =  t.sec_code  then 
          local  dt  =  t.datetime
         f:write( string.format (fmt,
            dt.year, dt.month, dt.day,
            dt.hour, dt.min, dt.sec, dt.ms,
            t.tradenum, t.price, t.qty))
       end 
       return   false 
    end 
    SearchItems ( 'all_trades' ,  0 ,  2000000000 , cmp)
 end 

 function   main ()
   save_ticks( 'SPBFUT' ,  'BRV0' )
 end 
  
Галочка нет на флаге "получать с текущего момента"
Попробую сделать.
 
Цитата
Roman Azarov написал:
Александр, Добрый день!
Записи в Таблице Обезличенных Сделок действительно должны быть упорядочены.

Для детального анализа проблемы просим выслать архив рабочего места и скрипт, который вы используете, на почту нашей поддержки ( quiksupport@arqatech.com ).
На счет скрипта не понятно. Там у меня мой скрипт запущен, который написан на lua api? Вы его хотите?
 
Цитата
Александр написал:
Цитата
Roman Azarov написал:
Александр , Добрый день!
Записи в Таблице Обезличенных Сделок действительно должны быть упорядочены.

Для детального анализа проблемы просим выслать архив рабочего места и скрипт, который вы используете, на почту нашей поддержки (  quiksupport@arqatech.com  ).
На счет скрипта не понятно. Там у меня мой скрипт запущен, который написан на lua api? Вы его хотите?
Да
 

Таблица всех сделок опять начала чудить.
 
Александр, добрый день!

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