Denis Denisenko (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Создание "вечного робота"., Переподключение QUIK и Lua-скрипта на следующий день.
 
Скорее всего проблема была в том, что робот "просчитывался" до того как в с сервера были получены необходимые данные. После добавления проверок условий типа
Код
local N=getNumCandles("Si_price")  
t,n,i=getCandlesByIndex("Si_price", 0, N-3, 3)  

if ((N>1) and (type(t) =='table') )then ..  
скрипт больше не отрубается.
Создание "вечного робота"., Переподключение QUIK и Lua-скрипта на следующий день.
 
Добрый день! Ситуация следующая: виртуальный сервер, на нем QUIK, включил скрипт на Lua. На следующий день, после переподключения QUIK скрипт останавливается с ошибкой attempt to index? (a nil value) на строке проверки условия
Код
if ((my_position==0)and(ind==0)and(t[1].close > tt1[0].close)) then      
      ... 
end

точнее на проверке условия (t[1].close > tt1[0].close) (пробовал вынести это условие на отдельную строку, ошибка возникает при проверке именно этого условия).

t[1].close - цена закрытия предыдущей полностью сформировавшейся свечи (5М)
tt1[0].close - предпредыдущее значение индикатора PriceChannel(upper)
Заказываю последние свечи:  t,n,i=getCandlesByIndex("Si_price", 0, N-3, 3), таким образом t[2].close - текущая цена, t[1].close -цена закрытия предыдущей свечи, t[0].close - цена закрытия предпредыдущей свечи.

До переподключения (т.е. всю ночь и до 9:55 (пробовал переподключаться и в 10:16) ) скрипт был запущен, после переподключения QUIK - выключается с ошибкой attempt to index? (a nil value).

скрипт QPILE-подобный, т.е.  пересчитывается каждые 1.5 секунды:
Код
function main()   
   to_log("main_started"
   --message("connection state is " .. tostring(isConnected()), 3)   
   while is_run do
      stime=getSTime() or tonumber(os.date("%H%M%S")
       if ((stime>100030 and stime<184500) or (stime>190030 and stime<235000))  then --не считаем вне сессии   
         if (isConnected()) then
            sleep(1500)
            robot()
         end
         if (isConnected()~=1) then
            to_log("not connected"      
         end
      end         
   end
end

Как исправить ошибку?
Надеюсь, что это моя ошибка в коде, а не что -то из этой (http://forum-archive.quik.ru/forum/lua/122929/122929/) серии.
Страницы: 1
Наверх