"ABRD,AESL,AGRO,ALBK,ALNU,AMEZ,APTK,AQUA,.......................... и до конца класса TQBR
в брокере Неттрейдер квик НЕ выдавал ошибку "Превышено число открытых стаканов", а в брокере Открытие появляется такая ошибка. Это зависит от настроек брокера? У всех разное число стаканов можно открыть? Поэтому и пришлось использовать Unsubscribe_Level_II_Quotes(class, sec) внутри прохода каждой акции
И ещё вопрос. Он не праздный. Может быть у дохлого брокера с одним сервером это будет проблемой.
Когда я заказываю данные с сервера, например, стакан, это создаёт нагрузку на сервер брокера? ну например бесконечный цикл:
Код
class="SPBFUT"
sec="SRH7"
for i=1,10000000000000000000 do
qt=getQuoteLevel2(class, sec)
end
Вредит ли это способности брокера обслуживать других клиентов? Например отправка заявок бесконечным потоком точно вредит. У других клиентов заявки будут дольше улетать на биржу.
Космонавт, Если заказать большое количество стаканов, то да это создаст какую-то нагрузку на сервер брокера. Если постоянно заказывать и отписываться то нет. если просто дергать значения функцией getQuoteLevel2 то брокер этого даже не заметит
Космонавт написал: И ещё вопрос. Он не праздный. Может быть у дохлого брокера с одним сервером это будет проблемой.
Когда я заказываю данные с сервера, например, стакан, это создаёт нагрузку на сервер брокера? ну например бесконечный цикл:
Код
class = "SPBFUT"
sec = "SRH7"
for i = 1 , 10000000000000000000 do
qt = getQuoteLevel2 (class, sec)
end
Вредит ли это способности брокера обслуживать других клиентов? Например отправка заявок бесконечным потоком точно вредит. У других клиентов заявки будут дольше улетать на биржу.
Добрый день. Предполагаю, что Вы таким способом реализовываете проверку о появлении данных по стакану после его заказа с сервера? Если это так, то посоветую Вам использовать функцию обратного вызова OnQuote(), которая будет вызвана сразу после прихода слепка заказанного стакана, а уже внутри функции OnQuote(), например, запоминать флаг, что слепок по такому-то инструменту и классу получен.
Перед тем как задать вопрос, убедитесь, что решение Вашей задачи не описано в официальном мануале - 'Использование Lua в Рабочем месте QUIK.pdf' https://arqatech.com/upload/Public/quik_lua.zip
Космонавт написал: Nikolay Pavlov,срабатывания будут происходить часто, а мне нужно обращаться к стакану существенно реже, чем приходят обновления.
Добрый день. Язык Lua - интерпретируемый язык, Вы можете в динамике определять содержимое функции OnQuote(), и "обнулять" ее когда Вам необходимо, так можно задействовать функцию OnQuote() только на время выяснения получен ли первоначальный слепок стакана или нет. Вот пример, который Вы можете доработать под себя и свою задачу:
Код
function OnInit(script)
is_run = true
quotes_is_received = false
end
function OnStop()
is_run = false
return 2000
end
OnQu ote = function()end
function main()
quotes = getQuoteLevel2('TQBR', 'LKOH')
message(string.format("bid_count %s offer_count %s", quotes.bid_count, quotes.offer_count))
My_Subscribe_Level_II_Quotes('TQBR', 'LKOH')
while is_run do
message('quotes_is_received ' .. tostring(quotes_is_received))
quotes = getQuoteLevel2('TQBR', 'LKOH')
message(string.format("bid_count %s offer_count %s", quotes.bid_count, quotes.offer_count))
sleep(1000)
end
end
function My_Subscribe_Level_II_Quotes(class_code, sec_code)
quotes_is_received = false
OnQu ote = function(cl_code, s_code)
if cl_code == class_code and s_code == sec_code then
quotes_is_received = true
message(string.format("Слепок стакана по инструменту %s [%s] получен", class_code, sec_code))
OnQu ote = function()end
end
end
is_subscribe = Subscribe_Level_II_Quotes(class_code, sec_code)
end
Перед тем как задать вопрос, убедитесь, что решение Вашей задачи не описано в официальном мануале - 'Использование Lua в Рабочем месте QUIK.pdf' https://arqatech.com/upload/Public/quik_lua.zip
OnQu ote = function... естественно без пробела, парсер форума сам зачем-то пробел добавляет.
Перед тем как задать вопрос, убедитесь, что решение Вашей задачи не описано в официальном мануале - 'Использование Lua в Рабочем месте QUIK.pdf' https://arqatech.com/upload/Public/quik_lua.zip
Космонавт написал: И ещё вопрос. Он не праздный. Может быть у дохлого брокера с одним сервером это будет проблемой.
Когда я заказываю данные с сервера, например, стакан, это создаёт нагрузку на сервер брокера? ну например бесконечный цикл:
Код
class = "SPBFUT"
sec = "SRH7"
for i = 1 , 10000000000000000000 do
qt = getQuoteLevel2 (class, sec)
end
Вредит ли это способности брокера обслуживать других клиентов? Например отправка заявок бесконечным потоком точно вредит. У других клиентов заявки будут дольше улетать на биржу.
это вредит только Вам, так как Вы таким циклом ничего не заказываете многократно а просто вешаете свой комп. ----------------------------------------- За такие программы надо по рукам палкой.