CreateDataSource()

Страницы: 1
RSS
CreateDataSource()
 
Здравствуйте.
Например, вызвали CreateDataSource(), увидели в полученной таблице наличие данных. Гарантируется ли их синхронность с данным на сервере? Т.е. в тот момент, когда я их увидел, они уже полностью загрузились с сервера/локального quik источника или нужно подождать какое-то время для полной загрузки и не пользоваться ими сразу?

Или другими словами - мы открыли таблицу, сначала там 100 свечек, через секунду там 300, следовательно, таблица подгружается. Или я сразу увижу 300?

Наверняка разберусь со временем, но чужой опыт не помешает.
 
Здравствуйте,
После заказа данных нужно немного подождать, пока они закачаются
 
Хотелось бы более конкретно. Дано:
* 0 - самы старый бар.
* На текущий момента в истории 1000 баров, пользовательская история синхронизирована с серверной.
* Связь обрывается, на сервере скапливается 2000 баров. Обозначим: n - самый новый бар (1000) в пользовательской истории, m - самый новый бар в серверной истории.
* Связь восстанавливается.
* Раз я могу увидеть промежуточное состояние (данные не полностью загружены с сервера), какое промежуточное состояние возможно (наблюдаемо пользователем):
1. 0,1,2,...,n,пропуск,m-2,m-1,m  ? Или
2. 0,1,2,...,n,n+1,n+2,пропуск.

Может странный вопрос, но по первмоу типу работает metatrader.
 
В Quik данные приезжают в хронологическом порядке.
То есть
2. 0,1,2,...,n,n+1,n+2,пропуск.
 
Спасибо.
 
А есть возможность понять, что данные актуальные? Например стартую в начале дня, часов в 9. Данных нет или частично нет. Кроме привязки ко времени, анализе данных на вменяемость, есть какие-нибудь флаги что данные пошли/пришли  ушли)?
 
И еще вопрос
Что за сделки проходят утром? Мои вчерашние контракты вижу в логе, что онтрейд сработал.
Как это????

Скрытый текст
коды класса OPTEVN FUTEVN и такого рода сделок 6 штук Вчера вроде 6 и было их.

Такое впечатление, что мои вчерашние пошли событиями.. Благо, с другим кодом класса.
Что это???
 
прошу прощения, 16 событий!  

Скрытый текст
Точно столько у меня не было вчера.
 
Здравствуйте,

Виктор, это нормальная ситуация.
Код классы OPTEVN FUTEVN это классы вечерней сессии. Т.е вы видите вчерашние заявки/сделки вечерней сессии.
Если Вам эта информация не нужна, то можно обратиться к брокеру, что он отключил трансляцию этих классов.
 
Я догадался что это история, только не понятно, почему они прошли событием по онтрейд. Как будто, по логике, произошла сделка. У меня лог их засек. То есть не просто таблица сделок висевших со вчера, а ивенты.
Еще какие-нибудь хвосты бывают? Если нет, то я могу это отключить, если в сессии скрипта не было например, ни одного транзрепли. А так эти онтрейды могли бы и навредить, если б в моем случае коммент совпал))
 
Цитата
Viktor MMM пишет:
А есть возможность понять, что данные актуальные? Например стартую в начале дня, часов в 9. Данных нет или частично нет. Кроме привязки ко времени, анализе данных на вменяемость, есть какие-нибудь флаги что данные пошли/пришли ушли)?
И еще вопрос остался незамеченным, ответьте, пожалуйста.
 
Цитата
Viktor MMM пишет:
Я догадался что это история, только не понятно, почему они прошли событием по онтрейд. Как будто, по логике, произошла сделка. У меня лог их засек. То есть не просто таблица сделок висевших со вчера, а ивенты.
Еще какие-нибудь хвосты бывают? Если нет, то я могу это отключить, если в сессии скрипта не было например, ни одного транзрепли. А так эти онтрейды могли бы и навредить, если б в моем случае коммент совпал))
Виктор, посмотрите в таблице сделок класс OPTEVN или FUTEVN.
Там должны быть эти сделки по которым вы получили событие. Других "хвостов" быть не должно.

На второй вопрос ответим обязательно.
 
Цитата
Viktor MMM пишет:
Цитата
Viktor MMM пишет:
А есть возможность понять, что данные актуальные? Например стартую в начале дня, часов в 9. Данных нет или частично нет. Кроме привязки ко времени, анализе данных на вменяемость, есть какие-нибудь флаги что данные пошли/пришли ушли)?
И еще вопрос остался незамеченным, ответьте, пожалуйста.
Виктор, можно фильтровать по классам, кроме OPTEVN и  FUTEVN ничего другого в таблицы сделок/заявок не приедет.
 
Спасибо, но имелось в виду другое.
С утра включил квик и сразу запустил скрипт. ТТП не заполнились, и скрипт не смог определить базовый актив по опциону.
Вот и вопрос, по-моему, он уже звучал ранее, год или пару лет назад..
Как проверить, что все ТТП загружены, графики отрисованы и тп?  
 
Цитата
Viktor MMM пишет:
Спасибо, но имелось в виду другое.
С утра включил квик и сразу запустил скрипт. ТТП не заполнились, и скрипт не смог определить базовый актив по опциону.
Вот и вопрос, по-моему, он уже звучал ранее, год или пару лет назад..
Как проверить, что все ТТП загружены, графики отрисованы и тп?
Добрый день.

Проверить, что все ТТП загружены полностью нельзя.
Так как эту информацию не знает даже сервер.

Цитата
ТТП не заполнились, и скрипт не смог определить базовый актив по опциону.
Уточните более подробно, правильно понимаем, что сами опционы и фьючерсы в таблице присутствуют, а базового опциона в таблице нет, т.е поле пустое?
 
Судя по логам не был определен БА. По скрипту он определяется по ТТП как базовый от опциона. В каком состоянии была таблица - не знаю, я включил с утра и ушел.
Пришел в обед, увидел что ничего не происходит со скриптом уже в рабочее время, просто его перезапустил и работа пошла.
Так что можно допустить что вся таблица была пустой на момент старта скрипта.
 
Цитата
Viktor MMM пишет:
Судя по логам не был определен БА. По скрипту он определяется по ТТП как базовый от опциона. В каком состоянии была таблица - не знаю, я включил с утра и ушел.
Пришел в обед, увидел что ничего не происходит со скриптом уже в рабочее время, просто его перезапустил и работа пошла.
Так что можно допустить что вся таблица была пустой на момент старта скрипта.
Виктор, проверьте, пожалуйста, есть ли базовый актив до начала торгов.
Т.е нужно понять, если есть опционы и фьючерсы в таблице и транслируется ли базовый актив. Если нет, то считаем такое поведение не корректным.
 
В документации по QLua про это не написано, поэтому спрошу тут.

Предположим, что запускается скрипт, в котором создаётся dataSource ds и задаётся callback-функция. Сначала ds:Size() возвращает 0, скрипт в цикле ждёт, пока с сервера закачаются данные. Потом, через некоторое время, ds:Size() возвращает положительное число. Есть ли гарантия, что после этого для всех обновляющихся старых и новых свечей будет вызываться callback-функция?

Не хотелось бы иметь ситуацию типа, когда значение ds:Size() сначала равно 0, потом прыгает на 1500 (закачалась часть данных), потом становится равным 3000 (закачался остаток данных), после чего идут callback-функции для свечей с номерами 3000 и выше.

Вопрос к разработчикам: есть ли такая гарантия?
 
_sk_, все надо делать в коллбаке. Снаружи не делай ничего. Заведи переменную, где храни индекс последней обработанной свечи. При вызове коллбака обрабатывай данные от последней обработанной свечи (включительно) до переданного индекса измененной свечи (включительно).
 
Вопрос был про начальную загрузку данных, ведь для них callback-функции не вызываются. Потом, нужные операции я произвожу в callback-функции.

Сообщение от Constantinа пугает. Неужели при разрыве связи и её восстановлении через несколько минут не все callback-функции будут вызваны для вновь поступивших 1-минутных свечей? Если это так, это обязательно нужно указать в документации.
 
Начальную загрузку можно производить и в коллбаке. Если первый полученный индекс будет равен 1500, то будет произведена обработка свечей в цикле от последней обработанной (нулевой или первой) до этого индекса. Если гипотетически представим, что потом индекс свечи сразу скакнет на 3000, то обработаются свечи с 1500 по 3000.
Страницы: 1
Читают тему
Наверх