Как часто у вас вызывается DataSource:Callback?

Страницы: 1
RSS
Как часто у вас вызывается DataSource:Callback?
 
Даже немного стыдно такое говорить, но после многих лет поллинга информации о свечках из Quik, с высокой скоростью, решил наконец проверить, как же часто реально в квике обновляются эти самые свечки.
Простейший вопрос, простейший скрипт, но должны пройти годы (у некоторый вроде меня) чтобы об этом начать думать.
Итого - скрипт показывает что свечка Si обновляется не сильно чаще 100 раз в минуту. Возможно сегодня просто неактивный день.
Подскажите, а как у вас?
Скрипт выдает сколько раз обновилась свеча за 1 минуту, с помощью сообщения в квике
Код
stopped = false;
function OnStop()
  stopped = true;
end;
current_time = os.clock()
num = 0
function main()
 function cb( index ) 
  local time = os.clock()
  if time - current_time > 60 then
    current_time = time
    message("Запросов в минуту: " .. num, 1)
    num = 0
  end
  num = num + 1
 end 
 ds = CreateDataSource ("SPBFUT", "SiZ1", INTERVAL_M1) 
 ds:SetUpdateCallback (cb)
 while not stopped do
   sleep(1)
 end
 ds:Close()
end


PS: пока писал, квик осилил выдать один раз аж 174

Но в целом получается опрашивать / долбить бедный квик 1000 раз в _секунду_ с вопросом "че, как, изменилась ли свеча" вообще никакого смысла нет. Достаточно 3-5 раз.
 
Более информативным был бы скрипт где есть три потока:
Получение данных LAST для цены последней сделки
Данные таблицы обезличенных сделок
Данные от CreateDataSource

Последний самый медленный. Между его обновлениями десятки сделок могут пройти. Исключение Тиковый график, он равносилен обезличенным сделкам.
 
А что удивляет?

у вас есть уверенность, что в секунду на si происходит более 174 изменений цены?

что не так?
 
Цитата
s_mike@rambler.ru написал:
А что удивляет?

у вас есть уверенность, что в секунду на si происходит более 174 изменений цены?

что не так?
речь шла о минутах
 
Цитата
Nikolay написал:
Более информативным был бы скрипт где есть три потока:
Получение данных LAST для цены последней сделки
Данные таблицы обезличенных сделок
Данные от CreateDataSource

Последний самый медленный. Между его обновлениями десятки сделок могут пройти. Исключение Тиковый график, он равносилен обезличенным сделкам.
Спасибо, пока для тестов и строительства хватает "свечек", а обезличенные сделки, я думаю требуют выделенки и гораздо больших финансовых успехов и вложений.
 
Цитата
Павел Bosco написал:
Цитата
s_mike@rambler.ru написал:
А что удивляет?

у вас есть уверенность, что в секунду на si происходит более 174 изменений цены?

что не так?
речь шла о минутах
Да, крнечно, в минутах.

Вы проверяли по таблице обезличенных сделок или по тиковому графику, сколько на самом деле было ИЗМЕНЕНИЙ цены?  Есть мнение, что их ровно столько и было....
 
Цитата
s_mike@rambler.ru написал:
Вы проверяли по таблице обезличенных сделок или по тиковому графику, сколько на самом деле было ИЗМЕНЕНИЙ цены?  Есть мнение, что их ровно столько и было....

надо будет проверить в другой день, отчасти затем и сделал пост - чтобы люди писали цифры у других брокеров, мб это зависит от настроек брокера/канала.
идея такая, что изменение свечи - происходит не по каждой сделке (зачем это делать по каждой сделке?), а лишь агрегатами, для экономии трафика.
и наверняка цифра настраивается. меня удивило просто, насколько это редко происходит.
 
Цитата
s_mike@rambler.ru написал:
Есть мнение, что их ровно столько и было....
глянул по сайту ММВБ, сегодня сделок было 1/2 от предыдущих дней
ну даже 300 изменений свечек в минуту маловато.
тот же ММВБ говорит что было 448 267 сделок по Si.
с 7 до 24 часов это 17 часов, по 60 минут = 1020 минут, то есть по 400 сделок в минуту в среднем сегодня должно было быть.
а в другие дни по 800. в минуту.
действительно, не так уж и много. но квик транслирует примерно в два раза меньше.
 
Обновление свечей происходит с некоторой частотой, которая зависит от многих факторов. Если активность на рынке повышенная, то отдельные сделки "слипаются" в одно обновление свечи.
 
Павел Bosco, Ни разу не вызывается. Алгоритм DataSource настолько уродлив, что пользоваться им себе дороже выходит.

Реально свечи должны обновляться со скоростью своего таймфрейма. Всё остальное есть алгоритмический идиотизм, который, к тому же, засирает процессор. Так что минутные свечи у меня обновляются ОДИН раз в минуту, часовые - ОДИН раз в час, все остальные тоже ОДИН раз за свой период.
 
Цитата
Владимир написал:
....
я хотел понять, что будет быстрее - поллить или получать свечку из колбека. пока не написал чёткий тест, но по наблюдениям получается что поллить гораздо быстрее.
и скорее всего событие изменения свечи происходит реже и с запаздыванием по отношению к самому обновлению. запаздывание скорее всего технологически вставлено специально чтобы иметь возможность реже обновляться.
ещё один нюанс. опять же не проводил чётких измерений, но при задании SetEmptyCallback свеча обновляется медленнее чем при задании SetUpdataCallback.

буду рад узнать о других результатх измерений, если кому-то эта тема тоже была или есть интересна
 
Павел Bosco, Эта тема всем интересна - именно свечи есть основной инструмент для принятия решений о сделках. Только от меня дважды регистрировали пожелание: "Да положите же вы, наконец, эти свечи куда-нибудь, чтобы их можно было просто прочитать - всё равно ведь их у себя считаете!", но воз и ныне там. Причём желательно бы знать классические мат.ожидание и дисперсию, а не эту "японскую" дребедень.

Обновление же незакрытых свечей есть алгоритмический идиотизм: основное предназначение свечей - сгладить случайные колебания курса, а их постоянно загаживают на последней свече именно ими! ЗАЧЕМ?! Так что "иметь возможность реже обновляться" очень просто: не обновляться НИКОГДА!
Страницы: 1
Читают тему (гостей: 1)
Наверх