Добавить в CreateDataSource():SetUpdateCallback() аргумент, указывающий на DataSource
Пользователь
Сообщений: Регистрация: 03.02.2021
03.02.2021 05:04:45
Колбек указывает только на порядковый номер обновлённой свечки в источнике данных, но не указывает к какому источнику данных она принадлежит. Проблематично при открытии нескольких источников данных с колбеками.
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
03.02.2021 07:24:30
Каждому источнику данных -свой колбек, не?
Пользователь
Сообщений: Регистрация: 02.07.2015
03.02.2021 08:29:44
Можно ещё лямбду захватывать. Я так множественные подписки на инструменты делал
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
03.02.2021 09:50:54
Цитата
Imersio Arrigo написал: Можно ещё лямбду захватывать. Я так множественные подписки на инструменты делал
_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")
Пользователь
Сообщений: Регистрация: 02.07.2015
03.02.2021 20:03:44
Цитата
написал:
а) самоподписанный сертификат для CN=*.from.sh б) вообще не открывается. возможно чтото сломалось
Но зачем?! Что за умопомешательство на этом https ??
Пользователь
Сообщений: Регистрация: 03.02.2021
04.02.2021 01:51:35
Можно лямбдами бахать но это принуждает копипастить замыкания повсюду. Гораздо лучше когда можно объявить колбек и отправлять его в датасорс, и при вызове он сам объявит к какому датасорсу он принадлежит.
Код
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 )
Пользователь
Сообщений: Регистрация: 21.08.2015
04.02.2021 03:15:01
Цитата
swerg написал: Что за умопомешательство на этом https ??
Это хорошо для конечного юзера - весь трафик пересылается с шифрованием на уровне транспорта, сделанным профессионалами в этом деле, а не наколхозенным полуграмотным админом сайта. Утащить пароль или сессионный куки сниффером теперь весьма затруднительно.
Затем, это хорошо для производителей железа, криптография штука затратная, и вот уже юзер бежит за новым процессором. Особенно серверный юзер, за особенно дорогим процессором.
Затем, продажа сертификатов - отличный бизнес в стиле торговли воздухом.
Затем, это неистощимая тема для научных статей, типа гонки вооружений, одни ломают, другие укрепляют, можно вечно на этом гранты пилить.
Затем, это хлебушек для программистов, все эти изобретения надо кодить, и опасность демпинга минимальная, юные дарования ниасилят, а когда осилят, уже и сами ценник вывесят правильный.
Затем, кое-кто, может быть, имеет закладочки в сертифицированных алгоритмах, ну чисто так на всякий случай, а на фоне всеобщей уверенности, что прям вот оно тысячелетий для взлома требует, это очень удобно.
Затем, кое-какие реализации тихонько запрашивают юзерский сертификат, а кое-какие его тихонько отправляют. Можно сказать, человек с развернутым паспортом в интернет ходит. Еще удобнее.
В общем, всем хорошо.
Пользователь
Сообщений: Регистрация: 02.07.2015
04.02.2021 04:00:26
Цитата
swerg написал: Что за умопомешательство на этом https ??
Ну вы же всякую дрянь с пола не едите, не так ли? В открытом канале, скачаю я например, скрипт у Михаэля. А провайдер подбросит мне пару лишних строк. А пару поменяет. А я в этом не разбираюсь и не замечу. А скрипт уже работает чуточку не так...
Цитата
Anton написал: Затем, это хорошо для производителей железа, криптография штука затратная, и вот уже юзер бежит за новым процессором. Особенно серверный юзер, за особенно дорогим процессором.
Для высоконагруженного сервера может быть это оказывает ощутимое значение. Для stand-alone сайтов на полузабытых площадках - вряд-ли. А клиент вообще не замечает разницы.
Цитата
Anton написал: Затем, это хлебушек для программистов, все эти изобретения надо кодить, и опасность демпинга минимальная, юные дарования ниасилят, а когда осилят, уже и сами ценник вывесят правильный
Там же цена вопроса три клика. Я имею ввиду добавить на сайт хттпс, а не реализацию ssl :)
Цитата
Anton написал: Затем, кое-кто, может быть, имеет закладочки в сертифицированных алгоритмах, ну чисто так на всякий случай
Отдельный доступ для тов.майора, кмк, куда лучше открытого канала для всех
Цитата
Anton написал: Затем, кое-какие реализации тихонько запрашивают юзерский сертификат, а кое-какие его тихонько отправляют
Ну во-1-х чтобы юзерский сертификат отправить, его нужно иметь. Много ваших знакомых имеют таковой? А во-2-х скрипты, куки и фингерпринты скажут о Вас достаточно для однозначной идентификации.
Пользователь
Сообщений: Регистрация: 21.08.2015
04.02.2021 04:45:54
Цитата
Imersio Arrigo написал: Я имею ввиду добавить на сайт хттпс, а не реализацию ssl :)
Как раз про реализацию написал.
Цитата
Imersio Arrigo написал: А клиент вообще не замечает разницы.
Забахайте DHE на 4096 бит, несколько секунд будете ждать генерации ключа, а оно ж жужжит там внутри все эти секунды, считает.
Цитата
Imersio Arrigo написал: Отдельный доступ для тов.майора, кмк, куда лучше открытого канала для всех
Не спорю. Тока скорее для сэра кэптайна с эллиптикой наперевес. Наши таки ниасилили, судя по всему, а кузнечик в массы не пошел.
Цитата
Imersio Arrigo написал: Ну во-1-х чтобы юзерский сертификат отправить, его нужно иметь. Много ваших знакомых имеют таковой?
Один точно имеет. Лиха беда начало. Раньше вон люди свое яблоко регистрировали с лозунгом нам неча скрывать, а потом уже как-то раз и если тебе есть чего скрывать, хоть бы из унутренних убеждениев, ты уже и неправильный товарищ и тебя уже надо того. А куки кстати третьепартные надобно отключать, и ежли сайтик не хочет без оных работать, то и нафик такой сайтик. На сегодняшний день уже почти все там, на фике, вот форум квика пока еще отпечатки пальцев не просит. Но он делает больно другим способом )
Пользователь
Сообщений: Регистрация: 02.07.2015
04.02.2021 06:53:38
Цитата
Anton написал: Забахайте DHE на 4096 бит, несколько секунд будете ждать генерации ключа, а оно ж жужжит там внутри все эти секунды, считает.
Ну понятно при желании и болт сломать можно.
Цитата
Anton написал: Тока скорее для сэра кэптайна с эллиптикой наперевес
Кузнечик-то? Не, он ближе к аес по устройству, симметричный. А толку, что гост, браузеры и сервера на него плюют с высокой колокольни, а с тлс 1.3 вообще набор циферей урезан и фиксирован и гостом там не пахнет и не запахнет, судя по всему. Будет в крипто-про, кассы да квик наш любимый, а тут и майору глядеть не на что, он может у брокера отчет попросить без этого всего.
Пользователь
Сообщений: Регистрация: 02.07.2015
04.02.2021 07:23:16
Цитата
Anton написал: А толку, что гост, браузеры и сервера на него плюют с высокой колокольни, а с тлс 1.3 вообще набор циферей урезан и фиксирован и гостом там не пахнет и не запахнет, судя по всему.
Даже если запахнет, то сертификацию у наших маёров ему не пройти. Вроде есть инструкции, позволяющие openssl собрать с ГОСТом. И говорят что это даже работает. Но я не пробовал. Мне лень.
Пользователь
Сообщений: Регистрация: 21.08.2015
04.02.2021 09:47:08
Цитата
Imersio Arrigo написал: сертификацию у наших маёров ему не пройти
Недавно минцифры закон выкатывало о запрете тлс 1.3 и особенно esni. Потом убрали и кого-то из замминистров уволили. Но esni и без закона не работает, просто чудесным образом пакетики бьются и соединение фейлит. Никто не виноват, случайность.
Ее и без госта собрать на виндах приключение. Под сертификацию все равно криптопро надо, а без сертификации и гост не нужон. Тксть на этой станции нет пассажиров.
Пользователь
Сообщений: Регистрация: 02.07.2015
04.02.2021 16:33:56
Цитата
Anton написал: Ее и без госта собрать на виндах приключение.
Хз. Стандартная сборка компилятором msvc собирается на ура.
Цитата
Anton написал: Под сертификацию все равно криптопро надо, а без сертификации и гост не нужон
А вот это другой вопрос.
Пользователь
Сообщений: Регистрация: 30.05.2020
26.03.2021 09:01:10
Из-за флуда пожелание так и не заметили.
Цитата
Артем написал: Колбек указывает только на порядковый номер обновлённой свечки в источнике данных, но не указывает к какому источнику данных она принадлежит.
Цитата
Артем написал: Гораздо лучше когда можно объявить колбек и отправлять его в датасорс, и при вызове он сам объявит к какому датасорсу он принадлежит.
Действительно, приносим свои извинения. Пожелание зарегистрировано, мы постараемся его рассмотреть. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
Пользователь
Сообщений: Регистрация: 20.03.2015
27.11.2021 16:15:49
Цитата
Артем написал: Колбек указывает только на порядковый номер обновлённой свечки в источнике данных, но не указывает к какому источнику данных она принадлежит. Проблематично при открытии нескольких источников данных с колбеками.
Ещё один вариант как можно сделать, здесь упор на то, что мы вольны добавлять столько функций к Датасорсу, сколько нам надо.
Код
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