Здравствуйте!
Есть функция чтения последней свечи, которая несколько лет работала стабильно, но последнее время, раз в несколько дней выдает ошибку(хотя свечи на графике есть).
Функция читает таблицу с одной последней свечой в tab2. Иногда при попытке обратиться к таблице по индексу " if (tab2[0]==nil) then " - вылетает ошибка "attempt to index a function value (local 'tab2')"
Добавил проверку tab2==nil, и она в момент ошибки не срабатывает, т.е. tab2 - задана.
Если я правильно понимаю, LUA считает что tab2 - функция? Но getCandlesByIndex не должен функий выдавать. Как это вылечить?
LUA 5.4.1
Есть функция чтения последней свечи, которая несколько лет работала стабильно, но последнее время, раз в несколько дней выдает ошибку(хотя свечи на графике есть).
Функция читает таблицу с одной последней свечой в tab2. Иногда при попытке обратиться к таблице по индексу " if (tab2[0]==nil) then " - вылетает ошибка "attempt to index a function value (local 'tab2')"
Добавил проверку tab2==nil, и она в момент ошибки не срабатывает, т.е. tab2 - задана.
Код |
---|
function last_condle() -- самая последняя свеча local tmp_max=getNumCandles(options.future.."_price") local tab2, n1, tmpname=getCandlesByIndex(options.future.."_price", 0,tmp_max-1, 1) -- Костыль №1 if (tab2==nil) then say(" Ошибка 1748 - нет данных!!! - входим в режим ожидания данных tmp_max="..tmp_max) while (tab2==nil) do sleep(731) tab2, n1, tmpname=getCandlesByIndex(options.future.."_price", 0,tmp_max-1, 1) end end -- Костыль №2 if (tab2[0]==nil) then -- Тут иногда ошибка "attempt to index a function value (local 'tab2')" say(" Ошибка 1739 - нет данных!!! - входим в режим ожидания данных tmp_max="..tmp_max) while (tab2[0]==nil) do sleep(731) tab2, n1, tmpname=getCandlesByIndex(options.future.."_price", 0,tmp_max-1, 1) end end return tab2[0] end |
LUA 5.4.1