утро

Страницы: 1
RSS
утро, что происходит утром? Что обнуляется и возвращает nil
 
У меня возникает проблема по утрам. При запущенном скрипте. Если скрипт запустить потом или перезапустить скрипт, устроить дисконект, выключить Квик  никаких проблем нет. Только утро и все!
Функция create(time_can) выполняется для всех свечей графика, а должна выполняться только для новой свечи.
Код
is_run = true 
Class_Code = "SPBFUT"  
Sec_Code="RIM5"
TF=INTERVAL_M30

old_can=20150422100     -- время последней обработанной свечи

function main()
   read_param_file()  -- считываем время свечи из файла
   
   ds = CreateDataSource(Class_Code, Sec_Code, TF)
   sleep(200)
      
   while is_run do
      sleep(1000)
      if isConnected()==1 and getInfoParam("SERVERTIME")~=nil then
         sleep(1000)      
         local n_last_candle=ds:Size()
         local t_last_candle=tonumber(ds:T(n_last_candle).year..Chisla(ds:T(n_last_candle).month)..Chisla(ds:T(n_last_candle).day)..Chisla(ds:T(n_last_candle).hour)..Chisla(ds:T(n_last_candle).min))
         if tonumber(t_last_candle)~=tonumber(old_can) then
            local p_new_candles=new_candle(n_last_candle)  -- получение новых свечей
            for i=n_last_candle-p_new_candles, n_last_candle do
               time_can=tostring(ds:T(i).year)..Chisla(ds:T(i).month)..Chisla(ds:T(i).day)..Chisla(ds:T(i).hour)..Chisla(ds:T(i).min)
               create(time_can)  -- действия над свечами
            end
            old_can=t_last_candle
            save_time(old_can)  --сохранение в файл времени последней свечи
         end
      end
   end
   ds:Close()
end

-- функция возвращает кол-во новых свечей от текущей
function new_candle(n_last_candle)
   local p_new_candles=0
   
   for i=0,n_last_candle-1 do
      if tonumber(old_can)<tonumber(tostring(ds:T(n_last_candle-i).year)..Chisla(ds:T(n_last_candle-i).month)..Chisla(ds:T(n_last_candle-i).day)..Chisla(ds:T(n_last_candle-i).hour)..Chisla(ds:T(n_last_candle-i).min))  then
         p_new_candles=i
      else
         break
      end
   end
   
return p_new_candles
end



function OnStop(stop_flag) 
   is_run=false
   stop_flag=1
end  
 
 
забыл написать функция read_param_file()  передает время в глобальную переменную old_can
Страницы: 1
Читают тему
Наверх