Добавить в CreateDataSource():SetUpdateCallback() аргумент, указывающий на DataSource

Страницы: 1
RSS
Добавить в CreateDataSource():SetUpdateCallback() аргумент, указывающий на DataSource
 
Колбек указывает только на порядковый номер обновлённой свечки в источнике данных, но не указывает к какому источнику данных она принадлежит. Проблематично при открытии нескольких источников данных с колбеками.
 
Каждому источнику данных -свой колбек, не?
 
Можно ещё лямбду захватывать.
Я так множественные подписки на инструменты делал
 
Цитата
Imersio Arrigo написал:
Можно ещё лямбду захватывать.
Я так множественные подписки на инструменты делал

Можно кратенький примерчик?
 
Цитата
swerg написал:
Цитата
Imersio Arrigo написал:
Можно ещё лямбду захватывать.
Я так множественные подписки на инструменты делал

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

http://bot4sale.ru/blog-menu/qlua/379-1-collback-for-al-ds.html
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
Цитата
swerg написал:
Можно кратенький примерчик?
Как-то так:
Код
_DS = {}

function cb(index, secCode, param)
    local id = secCode.."_"..param
    local ds = _DS[id]
    if ds == nil then
        msg("DS was empty")
        return
    end
    
    local price = ds:C(index)
--здесь целевой код колбека
end

function Subscribe(secCode, classCode, param)
    local ds = nil
    local err = nil

    local id = secCode.."_"..param
    if _DS[id] ~= nil then
        msg("<"..id.."> Already req")
        return
    end

    if param == "last" then
        ds,err = CreateDataSource(classCode, secCode, INTERVAL_D1)
    else
        ds,err = CreateDataSource(classCode, secCode, INTERVAL_D1, param)
    end

    msg("Subscribe: <"..secCode..":"..param.."> is: "..tostring(ds))
    if err ~= nil then
        msg("Err: "..err)
        return nil
    end
    
    ds:SetUpdateCallback(
        function(idx)
            cb(idx, secCode, param)
        end
    )

    _DS[id] = ds
    return ds
end
Вызывать так:
Код
Subscribe("SiH1", "SPBFUT", "last")
 
Цитата
s_mike@rambler.ru написал:
http://bot4sale.ru/blog-menu/qlua/379-1-collback-for-al-ds.html
а) самоподписанный сертификат для CN=*.from.sh
б) вообще не открывается. возможно чтото сломалось
 
Цитата
Imersio Arrigo написал:
возможно чтото сломалось
Там http: в ссылке, у вас, похоже, браузер самовольно повышает до https: (эпл, да?)
 
Цитата
Anton написал:
Там http: в ссылке, у вас, похоже, браузер самовольно повышает до https: (эпл, да?)
Нет, HTTPSEverywhere.
Но да, без S проходит.
 
Цитата
Imersio Arrigo написал:
Но да, без S проходит.
Однако хозяину все же стоит повозиться с летс энкрипт, ящитаю, часть потенциальных посетителей таки отваливается из-за этого.
 
Цитата
Imersio Arrigo написал:
Нет, HTTPSEverywhere.

Но зачем?!
Что за умопомешательство на этом https ??
 
Можно лямбдами бахать но это принуждает копипастить замыкания повсюду. Гораздо лучше когда можно объявить колбек и отправлять его в датасорс, и при вызове он сам объявит к какому датасорсу он принадлежит.
Код
local function tickerUpdateCallback ( datasource, candle )
  foo( datasource )
  bar ( datasource, candle )
  if xyz then baz ( datasource, candle ) end
end

CreateDataSource ( 'TQBR', 'FOO', INTERVAL_TICK ):SetUpdateCallback ( tickerUpdateCallback )
CreateDataSource ( 'TQBR', 'BAR', INTERVAL_TICK ):SetUpdateCallback ( tickerUpdateCallback )
CreateDataSource ( 'TQBR', 'BAZ', INTERVAL_TICK ):SetUpdateCallback ( tickerUpdateCallback )
 
Цитата
swerg написал:
Что за умопомешательство на этом https ??
Это хорошо для конечного юзера - весь трафик пересылается с шифрованием на уровне транспорта, сделанным профессионалами в этом деле, а не наколхозенным полуграмотным админом сайта. Утащить пароль или сессионный куки сниффером теперь весьма затруднительно.

Затем, это хорошо для производителей железа, криптография штука затратная, и вот уже юзер бежит за новым процессором. Особенно серверный юзер, за особенно дорогим процессором.

Затем, продажа сертификатов - отличный бизнес в стиле торговли воздухом.

Затем, это неистощимая тема для научных статей, типа гонки вооружений, одни ломают, другие укрепляют, можно вечно на этом гранты пилить.

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

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

Затем, кое-какие реализации тихонько запрашивают юзерский сертификат, а кое-какие его тихонько отправляют. Можно сказать, человек с развернутым паспортом в интернет ходит. Еще удобнее.

В общем, всем хорошо.
 
Цитата
swerg написал:
Что за умопомешательство на этом https ??
Ну вы же всякую дрянь с пола не едите, не так ли?
В открытом канале, скачаю я например, скрипт у Михаэля. А провайдер подбросит мне пару лишних строк. А пару поменяет. А я в этом не разбираюсь и не замечу. А скрипт уже работает чуточку не так...

Цитата
Anton написал:
Затем, это хорошо для производителей железа, криптография штука затратная, и вот уже юзер бежит за новым процессором. Особенно серверный юзер, за особенно дорогим процессором.
Для высоконагруженного сервера может быть это оказывает ощутимое значение. Для stand-alone сайтов на полузабытых площадках - вряд-ли. А клиент вообще не замечает разницы.
Цитата
Anton написал:
Затем, это хлебушек для программистов, все эти изобретения надо кодить, и опасность демпинга минимальная, юные дарования ниасилят, а когда осилят, уже и сами ценник вывесят правильный
Там же цена вопроса три клика. Я имею ввиду добавить на сайт хттпс, а не реализацию ssl :)
Цитата
Anton написал:
Затем, кое-кто, может быть, имеет закладочки в сертифицированных алгоритмах, ну чисто так на всякий случай
Отдельный доступ для тов.майора, кмк, куда лучше открытого канала для всех
Цитата
Anton написал:
Затем, кое-какие реализации тихонько запрашивают юзерский сертификат, а кое-какие его тихонько отправляют
Ну во-1-х чтобы юзерский сертификат отправить, его нужно иметь. Много ваших знакомых имеют таковой?
А во-2-х скрипты, куки и фингерпринты скажут о Вас достаточно для однозначной идентификации.
 
Цитата
Imersio Arrigo написал:
Я имею ввиду добавить на сайт хттпс, а не реализацию ssl :)
Как раз про реализацию написал.

Цитата
Imersio Arrigo написал:
А клиент вообще не замечает разницы.
Забахайте DHE на 4096 бит, несколько секунд будете ждать генерации ключа, а оно ж жужжит там внутри все эти секунды, считает.

Цитата
Imersio Arrigo написал:
Отдельный доступ для тов.майора, кмк, куда лучше открытого канала для всех
Не спорю. Тока скорее для сэра кэптайна с эллиптикой наперевес. Наши таки ниасилили, судя по всему, а кузнечик в массы не пошел.

Цитата
Imersio Arrigo написал:
Ну во-1-х чтобы юзерский сертификат отправить, его нужно иметь. Много ваших знакомых имеют таковой?
Один точно имеет. Лиха беда начало. Раньше вон люди свое яблоко регистрировали с лозунгом нам неча скрывать, а потом уже как-то раз и если тебе есть чего скрывать, хоть бы из унутренних убеждениев, ты уже и неправильный товарищ и тебя уже надо того. А куки кстати третьепартные надобно отключать, и ежли сайтик не хочет без оных работать, то и нафик такой сайтик. На сегодняшний день уже почти все там, на фике, вот форум квика пока еще отпечатки пальцев не просит. Но он делает больно другим способом )
 
Цитата
Anton написал:
Забахайте DHE на 4096 бит, несколько секунд будете ждать генерации ключа, а оно ж жужжит там внутри все эти секунды, считает.
Ну понятно при желании и болт сломать можно.
Цитата
Anton написал:
Тока скорее для сэра кэптайна с эллиптикой наперевес
Дык ГОСТ же. Он же на эклиптике, не?
 
Цитата
Imersio Arrigo написал:
Он же на эклиптике, не?
Кузнечик-то? Не, он ближе к аес по устройству, симметричный. А толку, что гост, браузеры и сервера на него плюют с высокой колокольни, а с тлс 1.3 вообще набор циферей урезан и фиксирован и гостом там не пахнет и не запахнет, судя по всему. Будет в крипто-про, кассы да квик наш любимый, а тут и майору глядеть не на что, он может у брокера отчет попросить без этого всего.
 
Цитата
Anton написал:
А толку, что гост, браузеры и сервера на него плюют с высокой колокольни, а с тлс 1.3 вообще набор циферей урезан и фиксирован и гостом там не пахнет и не запахнет, судя по всему.
Даже если запахнет, то сертификацию у наших маёров ему не пройти.
Вроде есть инструкции, позволяющие openssl собрать с ГОСТом. И говорят что это даже работает. Но я не пробовал. Мне лень.
 
Цитата
Imersio Arrigo написал:
сертификацию у наших маёров ему не пройти
Недавно минцифры закон выкатывало о запрете тлс 1.3 и особенно esni. Потом убрали и кого-то из замминистров уволили. Но esni и без закона не работает, просто чудесным образом пакетики бьются и соединение фейлит. Никто не виноват, случайность.

Цитата
Imersio Arrigo написал:
openssl собрать с ГОСТом
Ее и без госта собрать на виндах приключение. Под сертификацию все равно криптопро надо, а без сертификации и гост не нужон. Тксть на этой станции нет пассажиров.
 
Цитата
Anton написал:
Ее и без госта собрать на виндах приключение.
Хз. Стандартная сборка компилятором msvc собирается на ура.
Цитата
Anton написал:
Под сертификацию все равно криптопро надо, а без сертификации и гост не нужон
А вот это другой вопрос.
 
Из-за флуда пожелание так и не заметили.


Цитата
Артем написал:
Колбек указывает только на порядковый номер обновлённой свечки в источнике данных, но не указывает к какому источнику данных она принадлежит.
Цитата
Артем написал:
Гораздо лучше когда можно объявить колбек и отправлять его в датасорс, и при вызове он сам объявит к какому датасорсу он принадлежит.

Тут реально упущение разработчика.
 
Артем, Незнайка, добрый день!

Действительно, приносим свои извинения.
Пожелание зарегистрировано, мы постараемся его рассмотреть. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
 
Цитата
Артем написал:
Колбек указывает только на порядковый номер обновлённой свечки в источнике данных, но не указывает к какому источнику данных она принадлежит. Проблематично при открытии нескольких источников данных с колбеками.
Ещё один вариант как можно сделать, здесь упор на то, что мы вольны добавлять столько функций к Датасорсу, сколько нам надо.

Код
stopped = false;
function OnStop()
  stopped = true;
end;

function member_callback(dataSource, index) 
  message("member_callback\n  dataSource.size() = " .. tostring(dataSource:Size()) .. ",\n  index = " .. tostring(index), 1)
  stopped = true
end 

function main()
 local ds = CreateDataSource ("QJSIM", "SBER", INTERVAL_M1)
 ds.member_callback = member_callback
 ds:SetUpdateCallback(function(index)
   ds:member_callback(index)
 end)
 while not stopped do
   sleep(1)
 end
 ds:Close()
end


На выходе получается
Код
member_callback
  dataSource.size() = 722,
  index = 722
Страницы: 1
Читают тему
Наверх