Бесконечный цикл функции с заданным интервалом времени

Страницы: 1 2 След.
RSS
Бесконечный цикл функции с заданным интервалом времени
 
Добрый день, уважаемые языковеды! Прошу не кидать в меня тапками, я только начал изучать язык.
Помогите пожалуйста с созданием бесконечного цикла функции. Двое суток читал и пробовал, ничего не вышло. Вот, к примеру есть функция:

Скрытый текст


Я хотел сделать ее бесконечной, с паузой в 30 секунд. Пробовал разные циклы (for, while и repeat)
Не выходит каменный цветок  :what: Не по уму пока. Помогите, прошу! :oops:
 
while true do
do_something()
sleep(30*1000)
end
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
Благодарю!
Но оно тоже не работает. Либо я не правильно применяю данное решение к функции.
Как оно применяется к функции?
Я свою функцию ко всем местам этого кода приложил.. :oops:
И внутрь ее положил, и снаружи..
 
Цитата
shtur2005 написал:
Добрый день, уважаемые языковеды! Прошу не кидать в меня тапками, я только начал изучать язык.
Помогите пожалуйста с созданием бесконечного цикла функции. Двое суток читал и пробовал, ничего не вышло.
Я вам пример набросал: скрипт  в цикле выводит сообщения со значениями даты/времени и high/low последних 5 свечей (CNT_CANDLES = 5). Работает.
Код
local CHART_TAG_PRICE = "SRH15MIN"                         -- идентификатор графика цены
local CNT_CANDLES = 5                                      -- значение количества свечей для обработки

local is_run = true
local processed                                            -- количество обработанных свечей графика

local function timeCandle (hour, min)                      -- функция формирования времени свечи (number)
   return 10000 * hour + 100 * min
end

local function dateCandle (year, month, day)               -- функция формирования даты свечи (number)
   return 10000 * year + 100 * month + day
end

local function singleCandleProcessing (t)                  -- функция обработки одиночной свечи
   local time = timeCandle(t.datetime.hour, t.datetime.min)                        -- вызов функции формирования времени свечи
   local date = dateCandle(t.datetime.year, t.datetime.month, t.datetime.day)      -- вызов функции формирования даты свечи
   message(tostring(date) .. "  " .. tostring(time) .. ". High: " .. tostring(t.high) .. ", low: " .. tostring(t.low))
end

local function candlesProcessing ()                        -- функция обработки последней свечи/свечей
   local number = getNumCandles(CHART_TAG_PRICE)               -- количество свечей графика
   if number > processed then
       local t = getCandlesByIndex(CHART_TAG_PRICE, 0, processed, number - processed)          -- получение таблицы последней свечи/свечей
       if t then
           for i = 0, number - processed - 1 do
               if t[i] then
                   singleCandleProcessing(t[i])                        -- вызов функции обработки одиночной свечи
               end
           end
           processed = number
       end
   end
end

function main ()
   processed = getNumCandles(CHART_TAG_PRICE) - CNT_CANDLES
   while is_run do
       candlesProcessing ()                                        -- вызов функции обработки последней свечи/свечей
       sleep (30000)
   end
end

function OnStop ()
   is_run = false
   return 2000
end
 
Написал для Вас такой пример.
Позволяет исполнять различные участки кода через различные интервалы.
Код
 print(os.date())
tstart = os.clock()
t={0,0,0,0}  -- массив таймеров
t1={1,2,3,5} --массив интервалов
tm=0; -- время в минутах
 while true  do
local x=os.clock()
if x-tstart>=60 then tstart=x;  tm=tm+1
=1;  if tm-t[j]>=t1[j]  then  t[j]=tm; print(os.date()..", исполняется код интервал "..t1[j].." мин");  end
j=2;  if tm-t[j]>=t1[j]  then  t[j]=tm; print(os.date()..", исполняется код интервал "..t1[j].." мин");  end
j=3;  if tm-t[j]>=t1[j]  then  t[j]=tm; print(os.date()..", исполняется код интервал "..t1[j].." мин");  end
j=4;  if tm-t[j]>=t1[j]  then  t[j]=tm; print(os.date()..", исполняется код интервал "..t1[j].." мин");  end
end
end
результат :
02/19/22 18:07:37
02/19/22 18:08:37, исполняется код интервал 1 мин
02/19/22 18:09:37, исполняется код интервал 1 мин
02/19/22 18:09:37, исполняется код интервал 2 мин
02/19/22 18:10:37, исполняется код интервал 1 мин
02/19/22 18:10:37, исполняется код интервал 3 мин
02/19/22 18:11:37, исполняется код интервал 1 мин
02/19/22 18:11:37, исполняется код интервал 2 мин
02/19/22 18:12:37, исполняется код интервал 1 мин
02/19/22 18:12:37, исполняется код интервал 5 мин
---------------------------------
Все понятно?
 
Код
 print(os.date())
tstart = os.clock()
t={0,0,0,0}  -- массив таймеров
t1={1,2,3,5} --массив интервалов
tm=0; -- время в минутах
 while true  do
local x=os.clock()
if x-tstart>=60 then tstart=x;  tm=tm+1
j=1;  if tm-t[j]>=t1[j]  then  t[j]=tm; print(os.date()..", исполняется код интервал "..t1[j].." мин");  end
j=2;  if tm-t[j]>=t1[j]  then  t[j]=tm; print(os.date()..", исполняется код интервал "..t1[j].." мин");  end
j=3;  if tm-t[j]>=t1[j]  then  t[j]=tm; print(os.date()..", исполняется код интервал "..t1[j].." мин");  end
j=4;  if tm-t[j]>=t1[j]  then  t[j]=tm; print(os.date()..", исполняется код интервал "..t1[j].." мин");  end
end
end
 
shtur2005, Любой бесконечный цикл формулируется на Lua как while true do... end; Любая пауза формулируется на Lua как sleep (Nms); А, ну да - s_mike всё это уже описал. А со свечами здесь полная жопа, причём даже нет надежды, что положение когда-нибудь улучшится.
 
Цитата
Владимир написал:
shtur2005, Любой бесконечный цикл формулируется на Lua как while true do... end; Любая пауза формулируется на Lua как sleep (Nms); А, ну да - s_mike всё это уже описал. А со свечами здесь полная жопа, причём даже нет надежды, что положение когда-нибудь улучшится
Благодарю, Владимир. Если отбросить в сторону свечи, и взять за пример функцию состоящую из одной строчки.
Как ее зациклить?

--тынц
function main()
message ('GOOD MORNING')
end
 
Благодарю всех за ответы, и  ваше потраченное время! :smile:
Если отбросить вычисления свечей, и зациклить функцию из одной строчки через 30 сек, как это будет выглядеть?

--тынц
function main()
message ('GOOD MORNING')
end
 
Цитата
shtur2005 написал:
Благодарю всех за ответы, и  ваше потраченное время! ::
Если отбросить вычисления свечей, и зациклить функцию из одной строчки через 30 сек, как это будет выглядеть?

--тынц
function main()
message ('GOOD MORNING')
end
К примеру, можно сделать вот так:
Скрытый текст
и так дальше, до слез в глазах. Но это не совсем корректно.
 
Всем огромное спасибо, уважаемые языковеды!
Пока у вас всё спрашивал, матчасть до меня дошла. :lol:
Получилось вот так у меня:
Скрытый текст
Может и не совсем корректно, но работает черт возьми! :cool:  
 
stopped = false
function OnStop()
stopped = true
return 5000
end

function candle()
kol_vo = getNumCandles ('SRH15MIN')
SRH15MIN, SiN, SiName = getCandlesByIndex ('SRH15MIN',0 ,0 ,kol_vo)
for i = 100, SiN -100, 10 do
H = SRH15MIN [i].high
L = SRH15MIN [i].low
O = SRH15MIN [i].open
C = SRH15MIN [i].close
if O < C then
GREEN = GREEN + 1
end
if O == C then
DOJE = DOJE + 1
end
if O > C then
RED = RED + 1
end
end
message('GREEN = '..GREEN..
' \nDOJE = '..DOJE..
' \nRED = '..RED)
end

GREEN = 0
DOJE = 0
RED = 0

function main()
while true do
candle()
sleep (30000)
end
end
 
Цитата
shtur2005 написал:
stopped = false
function OnStop()
stopped = true
return 5000
end

function candle()
kol_vo = getNumCandles ('SRH15MIN')
SRH15MIN, SiN, SiName = getCandlesByIndex ('SRH15MIN',0 ,0 ,kol_vo)
for i = 100, SiN -100, 10 do
H = SRH15MIN .high
L = SRH15MIN .low
O = SRH15MIN .open
C = SRH15MIN .close
if O < C then
GREEN = GREEN + 1
end
if O == C then
DOJE = DOJE + 1
end
if O > C then
RED = RED + 1
end
end
message('GREEN = '..GREEN..
' \nDOJE = '..DOJE..
' \nRED = '..RED)
end

GREEN = 0
DOJE = 0
RED = 0

function main()
while true do
candle()
sleep (30000)
end
end
это плохое решение.
У Вас поток main, который работает параллельно основному  ничего не делает 30 секунд.
т е у Вас скрипт фактически простаивает это время, а если работает, то простаивает основной поток квика.
 
Цитата
nikolz написал:
Цитата
shtur2005 написал:
stopped = false
function OnStop()
stopped = true
return 5000
end

function candle()
kol_vo = getNumCandles ('SRH15MIN')
SRH15MIN, SiN, SiName = getCandlesByIndex ('SRH15MIN',0 ,0 ,kol_vo)
for i = 100, SiN -100, 10 do
H = SRH15MIN  .high
L = SRH15MIN  .low
O = SRH15MIN  .open
C = SRH15MIN  .close
if O < C then
GREEN = GREEN + 1
end
if O == C then
DOJE = DOJE + 1
end
if O > C then
RED = RED + 1
end
end
message('GREEN = '..GREEN..
' \nDOJE = '..DOJE..
' \nRED = '..RED)
end

GREEN = 0
DOJE = 0
RED = 0

function main()
while true do
candle()
sleep (30000)
end
end    
это плохое решение.
У Вас поток main, который работает параллельно основному  ничего не делает 30 секунд.
т е у Вас скрипт фактически простаивает это время, а если работает, то простаивает основной поток квика.
Как все сложно  :what:  Два дня матчасть курил. и не то сделал.

А как сделать так, что бы одно другому не мешало?
 
shtur2005,
Цитата
А как сделать так, что бы одно другому не мешало?
Да никак не делать! ВАМ, ЛИЧНО ВАМ нужно что-то делать в эти 30 секунд? Нет? Так какое Вам дело, что кто-то там что-то "простаивает"? И вообще, разделение по потокам - это одна из главных глупостей Lua (после этой долбаной "динамической типизации" и убийства типа integer).
 
Цитата
Владимир написал:
shtur2005,
Цитата
А как сделать так, что бы одно другому не мешало?
Да никак не делать! ВАМ, ЛИЧНО ВАМ нужно что-то делать в эти 30 секунд? Нет? Так какое Вам дело, что кто-то там что-то "простаивает"? И вообще, разделение по потокам - это одна из главных глупостей Lua (после этой долбаной "динамической типизации" и убийства типа integer).
Понял, благодарю Вас! :wink:  
 
Цитата
shtur2005 написал:
Цитата
Цитата
 это плохое решение.
У Вас поток main, который работает параллельно основному  ничего не делает 30 секунд.
т е у Вас скрипт фактически простаивает это время, а если работает, то простаивает основной поток квика.
Как все сложно    Два дня матчасть курил. и не то сделал.

А как сделать так, что бы одно другому не мешало?
Я Вам дал пример, в котором показано как реализовать запуск множества участков кода(функций ) через любые интервалы от 1 секунды .
Изучите его и на его основе попробуйте сделать свое.
----------------------------------------  
Поясняю, Относительно того, что делать потоку main в эти 30 секунд.
------------------------
Дела в том, что виртуальная машина LUA встроена в терминал КВИК таким образом, что все колбеки
исполняются последовательно в основном потоке терминала.
----------------------
Полагаю, Вы видели множество этих колбеков в документации QLUA.
--------------------
Поэтому даже если у Вас супер компьютер,
то все колбеки функции будут работать на одном ядре и выполнятся последовательно.
------------------------------------
При этом основной поток терминала КВИК будет ждать завершение их работы.
----------------------------------
Скорее всего Вы поместите всю свою обработку в эти колбеки и таким образом Ваш робот
превратится из кареты в тыкву.
-------------------  
Так вот, чтобы этого не произошло,
разработчик QLUA и создал новый поток main,
который исполняется на другом ядре в компе и работает параллельно с основным потоком КВИК.
--------------------  
Полагаю, Вы уже поняли чем может заниматься main в эти 30 секунд?
---------------  
Если  нет, поясняю.
Поток main в это время может исполнять всю программу робота,
которую Вы собираетесь поместить в функции колбеков.
--------------------------
В итоге  в правильном роботе, работающему максимально быстро,
этому потоку будет много работы и у него просто не будет свободного времени.
----------------------------  
Успехов в учебе.
 
и еще...
Если есть желание совершенствовать своего робота, то рекомендую изучить
механизмы синхронизации потков - таймеры, события, симофоры, мьютексы,
а также сопоставленные в памяти файлы.
------------------
будут вопросы, спрашивайте.
 
nikolz, Сударь, Ваш "пример" иллюстрирует разве что как не надо программировать - нигде и никогда. Во-первых, в цикле нет задержки, идёт с безумной скоростью опрос системных часов, при этом время задано В МИНУТАХ! А уж набор "ифов" - это позор даже для начинающего программиста. Самого-то не тошнит от Вашего примера? Уж если корчите из себя учителя, хотя бы пишите примерно так:
Код
f=true;
t1={4,17,35,60} --массив интервалов в секундах
function main()
 local i,x,y;
 y=os.time();
 while f==true do
  x=os.time()-y;
  for i=1,4 do
   if x%t1[i]==0 then
    message(x.." истёк интервал "..t1[i].." сек");
   end;
  end;
  sleep(1000);
 end;
end;

function OnStop()
 f=false;
end;
Кроме того, только клинический дебил "поместит всю свою обработку в эти колбеки": это аналог прерываний, и потому любой нормальный программист будет из них уматывать как можно скорее. Наконец, вся та хрень, которую Вы здесь "рекомендуете изучить" относится к области ОС, в которую прикладника нельзя пускать ни при каких обстоятельствах - особенно "деятельных", вроде Вас, у которых ручонки чешутся что-то такое запрограммировать, а задача организации торговли прикладная до мозга костей.
 
Володя, ты бы прежде чем дебилами разбрасываться, свой пример привёл в этой ветке.
Идиот хренов.
 
swerg, Это я, штоле, "Володя"? Так я и привёл свой пример, лапуль - очки купите. Могу даже модифицировать его, если отслеживать надо не 4 интервала, а, скажем, 24. В моём примере для этого нужно поменять две строчки, примерно вот так:
1. t1={4,17,35,60,2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71}
2. for i=1,24 do
А этот долбаный "гуру" что будет делать со своим долбаным "примером", который здесь предлагает "изучить и на его основе (!!!) попробовать сделать свое"? Такую "основу" засуньте себе в задницу, умники хреновы, а не пудрите мозги новичкам вашими позорными кодами!

А по поводу "дебилов" что не так? Единственная моя фраза про дебилов в этой ветке заучит так: только клинический дебил "поместит всю свою обработку в эти колбеки": это аналог прерываний, и потому любой нормальный программист будет из них уматывать как можно скорее. Что-то не так, лапуль? Есть возражения? :wink:  
 
для особо тупых, пример с циклом:
Код
tstart = os.clock()
t={0,0,0,0}  -- массив таймеров
t1={1,2,3,5} --массив интервалов
tm=0; -- время в минутах
 while true  do
local x=os.clock()
if x-tstart>=60 then tstart=x;  tm=tm+1
for j=1,#t do if tm-t[j]>=t1[j]  then  t[j]=tm; print(os.date()..", исполняется код интервал "..t1[j].." мин");  end end
end
end
 
Цитата
Владимир написал:
nikolz, Сударь, Ваш "пример" иллюстрирует разве что как не надо программировать - нигде и никогда. Во-первых, в цикле нет задержки, идёт с безумной скоростью опрос системных часов, при этом время задано В МИНУТАХ! А уж набор "ифов" - это позор даже для начинающего программиста. Самого-то не тошнит от Вашего примера? Уж если корчите из себя учителя, хотя бы пишите примерно так:
Код
  f =  true ;
t1 = { 4 , 17 , 35 , 60 }  --массив интервалов в секундах 
 function   main ()
  local  i,x,y;
 y =  os.time ();
  while  f =  =  true   do 
  x =  os.time () - y;
   for  i =  1 , 4   do 
    if  x%t1[i] =  =  0   then 
     message (x .. " истёк интервал  "..t1[i].."  сек");
    end ;
   end ;
   sleep ( 1000 );
  end ;
 end ;

 function   OnStop ()
 f =  false ;
 end ;
  
Кроме того, только клинический дебил "поместит всю свою обработку в эти колбеки": это аналог прерываний, и потому любой нормальный программист будет из них уматывать как можно скорее. Наконец, вся та хрень, которую Вы здесь "рекомендуете изучить" относится к области ОС, в которую прикладника нельзя пускать ни при каких обстоятельствах - особенно "деятельных", вроде Вас, у которых ручонки чешутся что-то такое запрограммировать, а задача организации торговли прикладная до мозга костей.
Владимир,
Вы хотя бы проверяли свое гениальное творение.
---------------------
я добавил текущее время в сообщение в ваш пример
и Вот что Ваш пример делает:
обрати внимание сколько реально прошло , лапуль.
02/21/22 20:22:54
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:54 0 истёк интервал 4 сек
02/21/22 20:22:54 0 истёк интервал 17 сек
02/21/22 20:22:54 0 истёк интервал 35 сек
02/21/22 20:22:54 0 истёк интервал 60 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
02/21/22 20:22:58 4 истёк интервал 4 сек
 
для тех, кто не понял, почему в моем примере первом нет циакла а есть  множество if объясняю.
----------------
пример предназначен для исполнения нескольких фрагментов кода(функций) - по числу if через различные интервалы
---------------------
если поставить цикл, то различить интервалы для запуска различных функций без if не получится
---------------------
Вот и выходит что для задачи данной темы нужны if а не цикл.
 
Цитата
Владимир написал:
nikolz, Сударь, Ваш "пример" иллюстрирует разве что как не надо программировать - нигде и никогда. Во-первых, в цикле нет задержки, идёт с безумной скоростью опрос системных часов, при этом время задано В МИНУТАХ! А уж набор "ифов" - это позор даже для начинающего программиста. Самого-то не тошнит от Вашего примера? Уж если корчите из себя учителя, хотя бы пишите примерно так:
Код
  f =  true ;
t1 = { 4 , 17 , 35 , 60 }  --массив интервалов в секундах 
 function   main ()
  local  i,x,y;
 y =  os.time ();
  while  f =  =  true   do 
  x =  os.time () - y;
   for  i =  1 , 4   do 
    if  x%t1[i] =  =  0   then 
     message (x .. " истёк интервал  "..t1[i].."  сек");
    end ;
   end ;
   sleep ( 1000 );
  end ;
 end ;

 function   OnStop ()
 f =  false ;
 end ;
  
Кроме того, только клинический дебил "поместит всю свою обработку в эти колбеки": это аналог прерываний, и потому любой нормальный программист будет из них уматывать как можно скорее. Наконец, вся та хрень, которую Вы здесь "рекомендуете изучить" относится к области ОС, в которую прикладника нельзя пускать ни при каких обстоятельствах - особенно "деятельных", вроде Вас, у которых ручонки чешутся что-то такое запрограммировать, а задача организации торговли прикладная до мозга костей.
Владимир,
теперь поясните предыдущее свое высказывание
Цитата
Владимир написал:
shtur2005,
Цитата
А как сделать так, что бы одно другому не мешало?
Да никак не делать! ВАМ, ЛИЧНО ВАМ нужно что-то делать в эти 30 секунд? Нет? Так какое Вам дело, что кто-то там что-то "простаивает"? И вообще, разделение по потокам - это одна из главных глупостей Lua (после этой долбаной "динамической типизации" и убийства типа integer).
ну и куда ты лапуль будешь " потому любой нормальный программист будет из них уматывать как можно скорее"  если в main у тебя sleep на 30 секунд.
Придурок, ты наш.
 
nikolz, Лапуль, для особо тупых я ещё прошлый "пример" прокомментировал. А для клинически тупых любые комментарии бесполезны. Ладно, попробую...

1. Время задано В МИНУТАХ, а придурошный "гуру" опрашивает часы функцией, которая выдаёт результат В МИЛЛИСЕКУНДАХ! Дебил? Двух мнений быть не может!

2. В диагностике у придурка указано: ИСПОЛНЯЕТСЯ интервал, а не ЗАКОНЧИЛСЯ интервал, и мне тупо лень смотреть дальше на эту ахинею - за каким хером ему понадобился "массив таймеров", например, и, самое главное, почему он больше не рекомендует изучать его предыдущую бредятину и писать что-то "на её основе", а пишет какую-то очередную херню.

3. Ах, Оно ещё что-то вякает про "моё гениальное творение"?! Ну, и о чём гласит эта длиннющая простыня? Лапуль, мне абсолютно пох, что такой криворукий бездарь, как Вы "добавили в мой пример" что бы то ни было - это уже НЕ МОЙ пример, а изуродованный ВАМИ код. Только что проверил: МОЙ код срабатывает именно так, как и должен срабатывать, а что там натворил такой криворукий бездарь, как Вы, мне изначально было насрать.
Цитата
если поставить цикл, то различить интервалы для запуска различных функций без if не получится
Вы дурак или как? Я не знаю, есть ли в этом долбаном Lua вызов функций по указателю (в JS точно есть), но если это интерпретатор, то он просто ОБЯЗАН быть! Разве что его реализовывали ещё более криворукие бездари, чем Вы.

А что Вам, простите, "пояснить в предыдущем моём высказывании"? По-моему, всё предельно ясно даже для уровня младшей ясельной группы.
 
nikolz, Лапуль, я вчера зацепился глазом за очередной кретинизм "гуру" насчёт "пример предназначен для исполнения нескольких фрагментов кода (функций)" и, естественно, возмутился, а сегодня вдруг подумал: ну откуда нынешнему стаду так называемых "программистов" знать про указатели на функции? Тем более, что я даже не проверял, работает ли эта техника в Lua - уверен, что не может не работать, но вдруг и здесь я грешу излишним оптимизмом? Но сегодня я зацепился глазом за ещё более смешную фразу: "для тех, кто не понял, почему в моем примере первом нет цикла а есть  множество if объясняю" и далее до "если поставить цикл, то различить интервалы для запуска различных функций без if не получится". Лапуль, ну хотя бы ОДНУ функцию из того места вызвать можно? А передать ей аргументом значение интервала из массива или индекс этого массива тоже нельзя? Ну, тады базара нет: "без if не получится! Вот и выходит что для задачи данной темы нужны if а не цикл".
Скрытый текст
 
Я тоже хочу всех "лапуль" поучить :D

rd.isTradingAllowed() учитывает баг `isConnected() == 1`, разрыв связи, клиринг и выходные!

Код
local rd = require("roffild")

function main()
    ISRUN = true
    while ISRUN and rd.isTradingAllowed() ~= true do
        sleep(1000)
    end
    message("started")
    while ISRUN do
        if rd.isTradingAllowed() then
            -- здесь основной код
        end
        sleep(100) -- 0.1сек
    end
end

function OnStop(flag)
    ISRUN = false
    return 3000 -- Timeout
end


Я callback'и не использую ВООБЩЕ! (кроме этого OnStop)
 
Цитата
Roffild написал:
Я тоже хочу всех "лапуль" поучить :D

rd.isTradingAllowed()  учитывает баг `isConnected() == 1`, разрыв связи, клиринг и выходные!

Код
   local  rd  =   require ( "roffild" )

 function   main ()
    ISRUN  =   true 
     while  ISRUN  and   rd.isTradingAllowed () ~ =   true   do 
         sleep ( 1000 )
     end 
     message ( "started" )
     while  ISRUN  do 
         if   rd.isTradingAllowed ()  then 
             -- здесь основной код 
         end 
         sleep ( 100 )  -- 0.1сек 
     end 
 end 

 function   OnStop (flag)
    ISRUN  =   false 
     return   3000   -- Timeout 
 end 
  


Я callback'и не использую ВООБЩЕ! (кроме этого OnStop)
это как смотреть гланды через жопу.
--------------------
В терминале колбеки вызываются там же , где вызываются функции помещения данных в архив (таблицы)
---------------------
Вы вместо того, чтобы получить данные до архива, ждете, когда их загонят в архив, а потом оттуда выковыриваете.
----------------------
Разработчик QLUA , предупредил пользователей, что из архива получать очень долго и специально сделал для этого SearchItems -
Функция позволяет реализовать быструю выборку элементов из хранилища  терминала и возвращает таблицу с индексами элементов, удовлетворяющих условию  поиска.

---------------

Но Вы изобрели свой самовар. всегда проще сделать свою телегу, чем изучить, как работает современный автомобиль.

--------------------------------

На то оно и аля-кулибины.  Все у них через одно место.


 
Цитата
Владимир написал:
nikolz, Лапуль, я вчера зацепился глазом за очередной кретинизм "гуру" насчёт "пример предназначен для исполнения нескольких фрагментов кода (функций)" и, естественно, возмутился, а сегодня вдруг подумал: ну откуда нынешнему стаду так называемых "программистов" знать про указатели на функции? Тем более, что я даже не проверял, работает ли эта техника в Lua - уверен, что не может не работать, но вдруг и здесь я грешу излишним оптимизмом? Но сегодня я зацепился глазом за ещё более смешную фразу: "для тех, кто не понял, почему в моем примере первом нет цикла а есть  множество if объясняю" и далее до "если поставить цикл, то различить интервалы для запуска различных функций без if не получится". Лапуль, ну хотя бы ОДНУ функцию из того места вызвать можно? А передать ей аргументом значение интервала из массива или индекс этого массива тоже нельзя? Ну, тады базара нет: "без if не получится! Вот и выходит что для задачи данной темы нужны if а не цикл".      Скрытый текст        Господи, как же затрахало это безголовое стадо...  
Можно и по ссылке в таблице, но проще не будет.
----------------------
Оператор if наиболее быстрый.
----------------
У вас уже есть оператор if и еще цикл for
----------------
т е Ваш вариант работает по определению медленнее моего.
---------------
То что цикл сокращает длину программы на несколько строк - при современном объеме памяти это как дробина слону
--------------------
Если Вы для выбора функций еще и таблицу с указателями добавите, то у Вас будет монстр.
------------
Причем вам потребуется упаковывать параметры функций  чтобы было одинаковое число а потом распаковывать
---------------
В итогу у Вас и код будет больше и программа будет работать дольше.
----------------
Кроме того Ваша программа не работает без sleep
А это потеря быстродействия.
--------------------
короче, засуньте свой пример обратно в то место, откуда вы его достали.
--------------------
и не смешите мои тапочки.
 
nikolz, Лапуль, во-первых, где Вы нахватались этого бреда? Во-вторых, я модифицировал код, который стал отслеживать не 4 интервала, а 24, поменяв две строчки в коде - проделайте ту же операцию со своим идиотским набором ифов - "и не надо никаких доказательств"! :wink:

Лапуль, кто Вам сказал, что "оператор if наиболее быстрый"? По сравнению с чем? В ассемблере и оператор if и цикл for программируются, как правило, одними и теми же командами (ну, иногда встречается что-то типа JCXZ, но в этом случае как раз for быстрее if). А самое главное - говорить о скорости выполнения операторов интерпретируемого языка есть Бред Сивой Кобылы. И работает мой вариант по определению быстрее Вашего. Разжевать почему или сами догадаетесь?

Мой цикл сокращает не "длину программы на несколько строк", а объём кода, повышает наглядность - СОПРОВОЖДАТЬ Ваш клинический бред с кучей ифов Вы вообще собираетесь? Или написали, и хер с ним?

Лапуль, какой, в жопу, "монстр"? Таблица указателей стоит ровно столько же, сколько и любая другая. У нас в шахматной программе генератор ходов фигур запускался по коду фигуры, то есть по значению клетки на доске - положительному (белые) или отрицательному (чёрные). Так вот: размер этой "таблицы" составлял ровно 28 байт - по два байта на функцию + пустышка на поле без фигур. И, простите, ЗА КАКИМ ХЕРОМ мне "потребуется упаковывать параметры функций  чтобы было одинаковое число а потом распаковывать"? Вы же АБСЛЮТНО ни черта не понимаете в программировании!

Лапуль, моя программа РАБОТАЕТ без sleep, и это не "потеря быстродействия", а, наоборот, его резкое усиление, поскольку sleep есть фактически информация исполнительному механизму: здесь целую секунду ничего не будет происходить, можешь заняться своими делами. А вот в Вашем случае он такую информацию НЕ получит, и будет вынужден крутить Ваш идиотский цикл while и интерпретировать Вашу дурацкую колоду ифов. У меня же даже при таком идиотском организации цикла достаточно запоминать предыдущее значение счётчика секунд и ничего не делать, пока он не сменится.

Лапуль, ну куда Вы в очередной раз лезете с голой жопой против танка? Всем и так давно понятно, что Ваш уровень в программировании болтается возле абсолютного нуля.  
 
nikolz

Я уверен, что создатель QLua уже уволился из конторы, потому что часть новых функций добавляет уже абы кто, путая названия и порядок аргументов функций. Ну... не составили code-style для QLua...

QLua - попытка ответить на MQL, быстро составленное на коленке.

Колбеки выполняются в основном потоке терминала! - За такое уже надо увольнять!

Ну... поймал ты в колбеке момент отправки заявки... будешь в колбеке ждать сделку блокируя поток терминала, чтоб не спамить заявками? А еще инфа о портфеле может обновиться ДО инфы по сделки! Асинхронная модель Квика!

Проблема в синхронизации последовательности заявка-сделка-портфель, чтоб не отправить лишнею заявку.
Моё решение на Гитхабе.

И где гарантия, что в колбек поступает ВСЯ информация БЕЗ потерь? Можно и сделку не поймать...

В момент выполнения колбека пришли еще 5. Какая судьба у этих 5? Вызовутся последовательно все 5 или (вероятнее всего) только последний (или ничто)???
 
nikolz, Вот, лапуль, проверил вариант с указателями - всё прекрасно работает. Далее, чтобы ни по одному поводу мявкнуть не посмели, разжёвываю код.
1. Интервалов у меня в массиве 24, но отслеживаю я только три - для проверки я написал именно столько функций.
2. sleep теперь стоит на 0.1 секунды, но срабатывает обработка, как и раньше, раз в секунду.
3. Код "монстра" ваапще не потребовался - я генерю имена функций из того же самого массива, и даже аргументы им передаю. Их код слегка варьировал, чтобы не было сомнений, что вызываются именно они.

Учите матчасть, лапуль! Впрочем, Вам лучше заняться чем-то другим, а не программированием. :wink:
Код
f=true;
t={4,17,35,60,2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71}
function main()
 local i,x,y,z;
 y=os.time();
 z=0;
 while f==true do
  x=os.time()-y;
  if x~=z then 
   for i=1,3 do
    if x%t[i]==0 then
     loadstring("f"..t[i].."("..i..")")();
    end;
   end;
  end;
  z=x;
  sleep(100);
 end;
end;

function OnStop()
 f=false;
end;

function f4(i)
 message("Истёк интервал "..t[i].." сек");
end;

function f17(i)
 message("Интервал "..t[i].." сек");
end;

function f35(i)
 message("Обрабатываем интервал "..t[i].." сек");
end;
 
Цитата
Владимир написал:
Далее, чтобы ни по одному поводу мявкнуть не посмели, разжёвываю код.
 Мявкну :smile:
----
  Несколько замечаний по выложенному вами скрипту.
1. loadstring в версиях QLua > 5.1  не существует. В этих версиях надо использовать load (это все QUIK версии >= 8.5).
2. Фрагмент:
if x%t[i]==0 then
   loadstring("f"..t[i].."("..i..")")();
end;
работоспособен только  в предположении того, что х непрерывная последовательность секунд.
  Кто гарантирует, что x=os.time() в приведенном коде всегда выдаст x+1 сек.? Даже если реакция на таймерные события message (……), то в операционной системе ПК могут возникнуть работы, требующие > 1 сек. и, тогда в последовательности x возникнут пропуски, потенциально приводящие к пропуску таймерных событий (возможно, важных для торговли).
3. Зачем в цикле используется loadstring (load в версиях QUIK >= 8.5)? Эта функция вызова программы Lua для трансляции строки в байт-код и хоть она выполняется быстро, зачем это делать? Конечно, если скрипт пишется только для себя, то его производительностью надо заниматься в последнюю очередь. Но, если есть понимание, то почему бы не реализовать более эффективный скрипт?
4. Для эффективности выполнения скриптов Lua везде, где это возможно, следует использовать переменные со спецификацией local.  Переменные со спецификацией local хранятся в стеке блоков Lua (обращении к ним – прямой, быстрый доступ). Переменные без спецификации local, это поля таблицы, которая хранится в служебной переменной _ENV (для версий Lua > 5.1) и обращение к ним, это обращение к полям таблицы с использованием ее индексов.  Это же относится и к спецификации создании функций Lua.
-----
С учетом выше приведенных замечаний, выкладываю модифицированный код вашего скрипта:
Код
local function OnStop()
 f=false;
end;

local function f4(i)
 message("Истёк интервал "..i.." сек");
end;

local function f17(i)
 message("Интервал "..i.." сек");
end;

local function f35(i)
 message("Обрабатываем интервал "..i.." сек");
end;

f=true;

function main()
 local x
 ----  Таймеры задаются в порядке увеличения их интервалов, в виде {<Интервал таймера>, <Функция обработки таймера>, <Вычисляемое время запуска функции>}
 t={{4, f4, 0}, {17, f17, 0},{35, f35, 0} }    -- Начальное состояние (можно задать и другое в третьей записи таймера). Можно добавлять таймеров (с разрешением 1 сек.) сколько надо --
 x=os.time()
 for i=1,#t do t[i][3] = x + t[i][1]  end
 message("Начало");
 while f==true do
   x=os.time();
   for i=1,#t do 
     if  x >= t[i][3] then 
    t[i][3] = x + t[i][1]   --- !! Если существенна обработка пропущенных интервалов, то:t [i][3] = t[i][3] + t[i][1]
         t[i][2]( t[i][1] )
     end
   end
   sleep(1000);
 end;
end;
 
TGB,
Цитата
Мявкну
Вам - можно.  :smile: А вот nikolz - уже нельзя.
Цитата
loadstring в версиях QLua > 5.1  не существует.
Да? Ну, это в русле: как и в JS единственную приличную функцию eval, выполняющую аналогичные функции, фактически угробили, так и эту добьют - её и так в документации нет. Кстати, у меня как раз QUIK версии >= 8.5, но пока что работает.
Цитата
Фрагмент работоспособен только  в предположении того, что х непрерывная последовательность секунд.
Ну, во-первых, там действительно непрерывная последовательность секунд, а во-вторых, что случится, если она не будет таковой (допустим, будем пропускать некоторые события) - будут разве что пропуски этой самой обработки, но работать должна.

Я гарантирую, что x=os.time() в приведенном коде всегда выдаст x+1 сек. В последней-то версии проверка идёт вообще через 0.1 сек - неужели пропустит? И потом, зачем здесь особая точность? Это же не работа системных часов.

Как это "зачем в цикле используется loadstring"? Это фактически вызов функции по указателю, т.е. программирование данными. Производительностью здесь а любом случае надо заниматься в последнюю очередь - это новая функциональность. Я чуть ли не со своего первого появления на форуме её запросил, техподдержка подсказала, с тех пор пользуюсь, и не нарадуюсь.

Вот уж что-что, а эффективность выполнения скриптов Lua меня никогда не волновала - скрипт преспокойно обслуживает сотни и тысячи тикеров, а у меня денег хватает дай Бог на десятки. Локальные переменные я использую, но не для скорости, а для удобства - это обычно i, j, k и тому подобные. В Си они хранятся в стеке программы, а где и как здесь - совершенно по барабану.

Насчёт моего кода: "я его слепила из того, что было" - просто потому, что nikolz тут нёс такую ахинею, что уши вяли, имена функций слепил из того же самого массива, поскольку тот же nikolz утверждал, что "получится монстр" - мог ли я отказать себе в удовольствии получить монстра размером в 0.00 байт?  :smile: В каком там порядке таймеры задаются, мне тоже было пофиг: первые 4 цифры забил от фонаря, а когда расширил до 24, добил простыми числами - действительно "в порядке увеличения", но только потому, что в таком порядке их было легче вспоминать. Здесь можно много чего и делать и так, и сяк, но моя цель была просто заткнуть пасть воинствующему неучу, и только.
 
Loadstring в последних версиях луа заменён на load, в qlua он оставлен для совместимости в качестве синонима
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
Цитата
Владимир написал:
nikolz, Вот, лапуль, проверил вариант с указателями - всё прекрасно работает. Далее, чтобы ни по одному поводу мявкнуть не посмели, разжёвываю код.
1. Интервалов у меня в массиве 24, но отслеживаю я только три - для проверки я написал именно столько функций.
2. sleep теперь стоит на 0.1 секунды, но срабатывает обработка, как и раньше, раз в секунду.
3. Код "монстра" ваапще не потребовался - я генерю имена функций из того же самого массива, и даже аргументы им передаю. Их код слегка варьировал, чтобы не было сомнений, что вызываются именно они.

Учите матчасть, лапуль! Впрочем, Вам лучше заняться чем-то другим, а не программированием.  
Код
  f =  true ;
t = { 4 , 17 , 35 , 60 , 2 , 3 , 5 , 7 , 11 , 13 , 17 , 19 , 23 , 29 , 31 , 37 , 41 , 43 , 47 , 53 , 59 , 61 , 67 , 71 }
 function   main ()
  local  i,x,y,z;
 y =  os.time ();
 z =  0 ;
  while  f =  =  true   do 
  x =  os.time () - y;
   if  x~ = z  then  
    for  i =  1 , 3   do 
     if  x%t[i] =  =  0   then 
     loadstring( "f"  .. t[i] .. "( "..i.." )")();
     end ;
    end ;
   end ;
  z = x;
   sleep ( 100 );
  end ;
 end ;

 function   OnStop ()
 f =  false ;
 end ;

 function   f4 (i)
  message ( "Истёк интервал "  .. t[i] .. " сек");
 end ;

 function   f17 (i)
  message ( "Интервал "  .. t[i] .. " сек");
 end ;

 function   f35 (i)
  message ( "Обрабатываем интервал "  .. t[i] .. " сек");
 end ;
  
Владимир, Вы что пытаетесь доказать?
Что ваш вариант хуже моего?
----------------------
Я Вам указал проблемы В вашем варианте .
---------------------------------
Вы ничего не сказали в чем у Вас лучше.
Попробуйте без словесного поноса проанализировать достоинства Вашего решения и недостатки моего
--------------------
относительно приведенного Вами нового "шедевра"
------------------  
Ранее я Вам написал, но Вы невнимательно читаете, так как ничего не исправили и все проблемы Вашего эссе остались.
--------------------
Повторю для особо тупых.
-----------------------
1) Ваше решение на работает без sleep.  Это указывает на низкий уровень разработчика.
----------------------------
2) ваше решение loadstring( "f"  .. t[i] .. "( "..i.." )")();  Это не полноценное решение, а костыли.
Это не указатель на функцию, а загрузка строки скрипта , ее компиляция в байт код и исполнение с вызовом функции из массива.
При этом число формальных параметров у таких функций сложно сделать различным.
Т е Вы нагородили кучу бессмысленного кода лишь бы показать что Вы что-то знаете?
Ваш пример стал еще монстрее и медленнее.
Ну и нахрена это?
3) Все ваши костыли просто усложняют решение и следовательно замедляют исполнение.
------------------
Изучайте мат часть .
 
Немногого поправлю свое мнение,
----------------------
Ба, да Вы показывается поняли как у меня сделано без Sleep?
-------------------------------
Но забыли сказать спасибо , а просто стащили из моего решения.
-------------------------------
Поэтому теперь у Вас sleep не надо.
Но это ценой воровства чужих решений.
=================
Но  попытка Ваших костылей с указателями все равно не тянет.
Да,  своровать неоткуда, а знания у Вас лишь из прошлого века, да и то какие искаженные временем и пространством.
---------------------
Признаться что мое решение работает быстрее, Вам жаба не позволяет.
---------------------
Успехов в присвоении  чужих решений.
 
чем больше смотрю на ваше новое эссе, тем сильнее веселюсь.
----------------
чего стоит этот шедевр:
-------------------
 for  i =  1 , 3   do     if  x%t[i] =  =  0   then
    loadstring( "f"  .. t[i] .. "( "..i.." )")();
    end ;
   end ;
--------------
Т е вместо простейшего вызова
if t[i]==x then func(x1,x2,x3,.....x 1019284) end
Вы городите функцию луа, которая собирает указатель функции   в глобальной таблице из содержимого таблицы t и затем вызываете эту функцию.
---------------
Ну что же могу лишь "восхищаться" таким извращенным  способом.
 
Владимир, скажите сколько времени Вы будете собирать функцию у которой 100 параметров
и честь из них функции у которых 10 параметров, а часть - двумерные таблицы из которых надо передать в нашу функцию выборку из строк и столбцов.
--------------------
Напишите пример.
Поразите публику Вашем  стилем извращенного программирования.
 
О, Господи! Эта тупорылая придурь снова всплыла! Ладно, пока не до неё - потом почитаем...
 
nikolz, Лапуль, я Вам НИЧЕГО не пытаюсь доказать! Вы абсолютно нихрена не понимаете в программировании и порете здесь клиническую херню, да ещё и корчите здесь из себя "учителя". Я Вас поторкал носом по Вашей ахинее, которая есть Бред Сивой Кобылы от первого до последнего слова. Я сказал в первом же сообщении, что Ваша колода ифов есть позор даже для начинающего программиста, я посоветовал Вам расширить до 24 количество обслуживающих интервалов, чтобы любой дебил, включая лично Вас, мог самостоятельно убедиться, что Ваше решение есть полное говно. Я показал, что "монстр", про который Вы тут кукарекали, не потребовал вообще НИ ОДНОГО БАЙТА, что Вы есть невменяемый дурак и полуграмотный неуч. Хрен ли там "анализировать" в Вашей бредятине?

1) Кто Вам сказал, придурок, что "моё решение не работает без sleep"? Отключите sleep (надеюсь, хоть это Вы умеете?) и запустите мой скрипт - всё прекрасно работает. sleep у меня введён потому, что решение без sleep идиотское, и я вчера пытался вдолбить невменяемому идиоту - почему.

2) Моё решение loadstring( "f"  .. t[i] .. "( "..i.." )")(); - это не просто полноценное решение, а единственная возможность на этом дурацком языке программирования данными - судя по всему, Вы вообще не знаете, что это такое. А я, как оказалось вообще В САМОМ ПЕРВОМ своём сообщении на этом форуме 25.09.2020 09:50:33 спросил: "Есть ли возможность динамически создавать строку аргументов (что-то типа функции eval в JavaScript)"? На что мне Roman Azarov 28.09.2020 08:04:24 ответил: "В Lua действительно есть функция идентичная eval в JS - loadstring". А я ему 28.09.2020 09:20:15 написал: "УХ ТЫ! А в описании языка (руководство пользователя) нет ни звука ни про unpack, ни про loadstring! А эти вещи, как я предполагаю, должны бы расширять функциональные возможности совершенно диким образом"!

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

Ха-ха-ха! Лапуль, ЭТО КАК РАЗ ВЫ "нагородили кучу бессмысленного кода лишь бы показать что Вы что-то знаете". Я же решил эту задачу НОРМАЛЬНЫМ способом - так, как это должен делать программист, а не безграмотный маразматик.

Господи, что за дебил? Вы всерьёз считаете, что кто-то что-то может почерпнуть из Вашего решения, в чём бы оно ни выражалось? Всем им место на помойке, не читая! Моё первое решение тоже прекрасно работало - просто оно не было рассчитано на то, что какой-то мудак спи&дит из моего кода sleep. А последнее решение не боится даже этого! Но, повторяю, решение БЕЗ sleep - ИДИОТСКОЕ! И утверждать, что Ваше решение работает быстрее, может только клинический дебил. И только клинический дебил может "собирать функцию у которой 100 параметров" - ни того, ни другого нельзя и на километр подпускать к компьютеру.
 
Вот самое простое и быстрое решение:
Код
local t0 = os.clock()
local t1,t2,t3,t4,t5,t6,t7=t0,t0,t0,t0,t0,t0,t0  -- таймеры
-- функции исполняемого кода
function f1(x1) print(x1..", f1");   end
function f2(x1,x2) print(x1..", f2");   end
function f3(x1,x2,x3) print(x1..", f3");   end
function f4(x1,x2,x3,x4) print(x1..", f4");   end
function f5(x1,x2,x3,x4,x5) print(x1..", f5");   end
function f6(x1,x2,x3,x4,x5,x6) print(x1..", f6");   end
function f7(x1,x2,x3,x4,x5,x6,x7) print(x1..", f7");   end

 while true  do   --бесконечный цикл
local x=os.clock()
 if x-t1>1 then f1(x) t1=x end
 if x-t2>2 then f2(x,x2) t2=x end
 if x-t3>3 then f3(x,x2,x3) t3=x end
 if x-t4>4 then f4(x,x2,x3,x4) t4=x end
 if x-t5>5 then f5(x,x2,x3,x4,x5) t5=x end
 if x-t6>6 then f6(x,x2,x3,x4,x5,x6) t6=x end
 if x-t7>7 then f7(x,x2,x3,x4,x4,x6,x7) t7=x end
end
--- накладные расходы на вызов функции  - оператор if, одно вычитание, одно сравнение и одно присвоение.
это результат теста:
Скрытый текст
 
Sleep(15) - это минимум на Винде 10 с последними обновами...
 
nikolz, Лапуль, Ваше "самое простое и быстрое решение" можете смело засунуть себе в задницу - оно столь же идиотское, что и Ваше предыдущее. За каким-то хером в функции передаётся туева хуча аргументов, а используется один. Накладные расходы бешеные: мудацкий цикл крутится с безумной скоростью, процессор не имеет ни малейшей возможности заняться чем-то другим. КЛИНИЧЕСКИЙ бред!
 
nikolz, а какой практический смысл этих таймеров? Попытка обуздать коллбеки?

Я на практике знаю про профайл кода и что замеры... ну... э... "бредовые".
 
Код
local timers = {
    [1] = function(...)
        for key, value in pairs({...}) do
            print("arg num=", key, " val=", value)
        end
    end
}
-- Заполнение таймеров одной функцией (влом копи-пастить)
for key, value in pairs({3, 5, 8, 9, 16}) do
    timers[value] = timers[1]
end
-- Цикл
local tmlast = 0
while true do
    local tm = os.clock()
    local fun = timers[math.tointeger(tm - tmlast)]
    if fun then
        fun(tm, tmlast, "Любое количество", "аргументов!")
    end
    tmlast = tm
end
 
Roffild, а что этот код делает? Содержательно
 
Просто печатает через каждые {1, 3, 5, 8, 9, 16} секунд:
Код
arg num=   1    val=   6767.77
arg num=   2    val=   6768.88
arg num=   3    val=   Любое количество
arg num=   4    val=   аргументов!


А смысл... пусть nikolz объяснит.
 
Ну... да... с "tmlast = tm" баганул и надо поправить...

Но без понимая смысла этих таймеров я не знаю насколько правильно.
Страницы: 1 2 След.
Читают тему
Наверх