local stopped=false
local FileNameRead=getScriptPath().."\\poz.txt"
local FileNameWrite=getScriptPath().."\\data.txt"
local FileRead
local ID
local code
FileRead=io.open(FileNameRead,«r»)
local Read
code,ID=FileRead:read(4,"*n")
FileRead:close()
--message(code)
local ID_back=ID
local direct
function OnStop()
stopped=true
return 5000
end
function main()
local TableSI=AllocTable()
AddColumn(TableSI,1,«Дата»,true,QTABLE_DATE_TYPE,10)
AddColumn(TableSI,2,«Время»,true,QTABLE_TIME_TYPE,10)
AddColumn(TableSI,3,«Код»,true,QTABLE_STRING_TYPE,10)
AddColumn(TableSI,4,«Цена»,true,QTABLE_INT_TYPE,10)
AddColumn(TableSI,5,«Позиция»,true,QTABLE_INT_TYPE,10)
while stopped==false do
local ServerTime=tostring(getInfoParam(«SERVERTIME»))
local TradeDate=tostring(getInfoParam(«TRADEDATE»))
local SecCode=«SiH9»
local LastPrice = getParamEx(«SPBFUT», SecCode, «LAST»).param_value
local Pos=getFuturesHolding(«SPBFUT»,«SPBFUT00d8u»,SecCode,0)
if Pos~=nil then
Pos=Pos.totalnet
else
Pos=0
end
FileRead=io.open(FileNameRead,«r»)
local Read
code,ID,Read=FileRead:read(4,"*n","*n")
FileRead:close()
if(Read~=nil) then
if ID_back~=ID then
local Price
if (Read>0) then
Price=tonumber(LastPrice-LastPrice%1)*(-1)*Read
direct=1
elseif (Read<0) then
Price=tonumber(LastPrice-LastPrice%1)*math.abs(Read)
direct=-1
end
local FileWrite=io.open(FileNameWrite,«a»)
if Price~=nil then
FileWrite:write(tostring(Price).." ")
FileWrite:close()
end
sleep(1000)
ID_back=ID
end
end
end
message(«Скрипт остановлен»)
end
А если это по задумке, то поставьте там хотя бы sleep( 0 ), это капитально снизит нагрузку на процессор.
Если sleep в цикле функции main не выполняется, то скрипт будет полностью съедать одно ядро процессора.
1. последовательно комментите функции и прогоняете скрипт.
2. смотрите, какая функция вызывает загруз проца
3. чешете репу
4. пишите на СЛ вопрос, если расчесали до крови, а толку — ноль