Всем здравия! Не могу понять, почему значение nil. Функция function PutDataToTable(posNow) передает значение nil. Decoda тоже не особо помогла
Код |
---|
Class = "SPBFUT" Emit = "SiU0" MyAccount = "SPBFUTJReBr" |
Код |
---|
function main() while is_run==true do body() --основные вычисления end end |
Код |
---|
function body() if (Timer > 0) then Timer = Timer-1 PutDataToTableTimer() sleep(1000) return end local ServerTime = getInfoParam("SERVERTIME") if(ServerTime==nil or ServerTime=="") then Problem = "Error!" Timer = 3 return else Problem = "" end if (IsWindowClosed(TableId)) then CreateWindow(TableId) PutDataToTableInit() end local SessionStatus = tonumber(getParamEx(Class,Emit,"STATUS").param_value) if (SessionStatus~=1) then Problem = "Сессия закрыта" Timer = 3 return end local function f12 (TableId, msg, X, Y) if (msg==QTABLE_LBUTTONDBLCLK) then if (X==13 and Y==1) then message("Робот работает",1) elseif (X==13 and Y==3) then message("Робот остановлен",1) is_run = false end end end SetTableNotificationCallback (TableId, f12) SetCell(TableId,1,2,ServerTime) SetCell(TableId,1,3,Problem) Problem = "" local PosNow = PosNowFunc(Emit,MyAccount) PutDataToTable(posNow) sleep(1000) end function PutDataToTable(posNow) SetCell(TableId,3,2,tostring(posNow)) end function PosNowFunc(emit,account) local nSize = getNumberOf("futures_client_holding") if (nSize~=nil) then for i=0,nSize-1 do local row = getItem ("futures_client_holding",i) if (row~=nil and row.sec_code==emit and row.traccid==account) then return tonumber(row.totalnet) end end end return end function PutDataToTableInit() Clear(TableId) SetWindowPos(TableId,100,200,500,300) SetWindowCaption(TableId,"Робот") --------------------------------------------- for i=1, 13 do InsertRow(TableId,-1) end SetCell (TableId, 1, 1, "Время сервера =>") SetCell (TableId, 2, 1, "Код бумаги =>") SetCell (TableId, 3, 1, "Текущая позиция =>") SetCell (TableId, 4, 1, "Сигнал ТС =>") SetCell (TableId, 5, 1, "ЛОТ =>") SetCell (TableId, 7, 1, "Номер счета =>"); SetCell (TableId, 7, 3, "ФОРТС") SetCell (TableId, 8, 1, "Код класса =>") SetCell (TableId, 13, 1, "Запуск робота") SetColor(TableId, 13, 1, RGB(255,255,0), RGB(0,0,0), RGB(0,220,220), RGB(0,0,0)) SetCell (TableId, 13, 3, "СТОП") SetColor(TableId, 13, 3, RGB(255,255,0), RGB(0,0,0), RGB(0,220,220), RGB(0,0,0)) local nRow,nCol = GetTableSize(TableId) for i=1,nRow do if (i%2==0) then SetColor(TableId, i, QTABLE_NO_INDEX, RGB(220,220,220), RGB(0,0,0), RGB(0,220,220), RGB(0,0,0)) else SetColor(TableId, i, QTABLE_NO_INDEX, RGB(255,255,255), RGB(0,0,0), RGB(0,220,220), RGB(0,0,0)) end end end function PutDataToTableTimer() SetCell (TableId, 1, 1, "Время сервера =>") Highlight(TableId, 1, QTABLE_NO_INDEX, RGB(0,20,255), RGB(255,255,255),500) end function WriteToEndOfFile(sFile,sDataString) local serverTime = getInfoParam("SERVERTIME") local serverData = getInfoParam("TRADEDATE") sDataString = serverData..";"..serverTime..";"..sDataString.."\n" local f = io.open(sFile,"r+") if (f == nil) then f = io.open(sFile,"w") end if (f~=nil) then f:seek("end",0) f:write(sDataString) f:flush() f:close() end end |