Одинаковый код В Quik Junior работает а Quik СБЕР нет

Страницы: 1
RSS
Одинаковый код В Quik Junior работает а Quik СБЕР нет
 
Доброго времени суток всем.
Прошу помочь.Есть следующий код
Код
--========>  Н А Ч А Л О
is_Run = true
      -->> Класс и код бумаги. для начала одна бумага
class ="QJSIM" 
sec ="IRAO"
      -->> Для Функций BUY_SELL 
qty = "1" ---->>  кол-во лотов на прокупку-продажу
--Основной поток отдельно от Quick'a
function main()
-- *****************************************************************
      ---------->> Т Е Л О   С К Р И П Т А  <<---------
while is_Run == true do
--Берем цену из стакана
   stakan()
   spred()
   sleep (5000)
   
   end
end
   
--==========      Ф У Н К Ц И И    ========--
--  Основная функция для остановки 
----------------------
function OnStop()   --
is_Run = false      --
end               --
----------------------

---------->> П О Л У Ч Е Н И Е   С Т А К А Н А 
function stakan()
   ql2 = getQuoteLevel2(class, sec);
   bids_qty = tonumber(ql2.bid_count)      -- кол-во BID-ов
   --offers_qty = tonumber(ql2.offer_count)   -- кол-во OFFER-ов
   
     --message(tostring(bids_qty))
     return ql2
end 
---------->> Р А С С Ч Е Т   С П Р Е Д А
function spred()
   --ql2 = getQuoteLevel2(class, sec)
   b_qty = tonumber(ql2.bid_count)
   price_bid = tonumber(ql2.bid[b_qty].price) --<<<<<  Выдает ошибку
   price_off = tonumber(ql2.offer[1].price)
   spred_pr =tonumber(price_off-price_bid)/price_bid*100
   --spred_pr = 0.30
   message (tostring(price_bid.."<>"..spred_pr.."<>"..price_off))
end
В quik Junior на тестовом счете все работает.
А на рабочем Quik от сбера выдает ошибку "attempt to index a nil value (field 'bid')".
Нужный стакан открыт и там и там. Перепроверял.
Подскажите куда копать?
 
Цитата
Ренат написал:
Доброго времени суток всем.
Прошу помочь.Есть следующий код
Код
   --========>  Н А Ч А Л О 
is_Run  =   true 
       -->> Класс и код бумаги. для начала одна бумага 
class  =  "QJSIM"  
sec  =  "IRAO" 
       -->> Для Функций BUY_SELL  
qty  =   "1"   ---->>  кол-во лотов на прокупку-продажу 
 --Основной поток отдельно от Quick'a 
 function   main ()
 -- ***************************************************************** 
       ---------->> Т Е Л О   С К Р И П Т А  <<--------- 
 while  is_Run  =  =   true   do 
 --Берем цену из стакана 
   stakan()
   spred()
    sleep  ( 5000 )
   
    end 
 end 
   
 --==========      Ф У Н К Ц И И    ========-- 
 --  Основная функция для остановки  
 ---------------------- 
 function   OnStop ()    -- 
is_Run  =   false        -- 
 end                 -- 
 ---------------------- 

 ---------->> П О Л У Ч Е Н И Е   С Т А К А Н А  
 function   stakan ()
   ql2  =   getQuoteLevel2 (class, sec);
   bids_qty  =  tonumber(ql2.bid_count)       -- кол-во BID-ов 
    --offers_qty = tonumber(ql2.offer_count)   -- кол-во OFFER-ов 
   
      --message(tostring(bids_qty)) 
      return  ql2
 end  
 ---------->> Р А С С Ч Е Т   С П Р Е Д А 
 function   spred ()
    --ql2 = getQuoteLevel2(class, sec) 
   b_qty  =  tonumber(ql2.bid_count)
   price_bid  =  tonumber(ql2.bid[b_qty].price)  --<<<<<  Выдает ошибку 
   price_off  =  tonumber(ql2.offer[ 1 ].price)
   spred_pr  = tonumber(price_off - price_bid)/price_bid *  100 
    --spred_pr = 0.30 
    message  (tostring(price_bid .. " <  > " .. spred_pr .. " <  > " .. price_off))
 end 
  
В quik Junior на тестовом счете все работает.
А на рабочем Quik от сбера выдает ошибку "attempt to index a nil value (field 'bid')".
Нужный стакан открыт и там и там. Перепроверял.
Подскажите куда копать?
bid_count скорее всего nil
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
s_mike@rambler.ru,
Торговля то идет в данный момент по данному инструменту и я смотрю на этот стакан.
 
Между определением кол-ва бидов и обращением к нужно строке за ценой проходит время,
поэтому лучше сделать проверку на не пустую строку
if ql2.bid[b_qty].price ~= '' then

end;
 
Цитата
Ренат написал:
class ="QJSIM"
на бою код TQBR
 
Цитата
Ренат написал:
   s_mike@rambler.ru,
Торговля то идет в данный момент по данному инструменту и я смотрю на этот стакан.
не тот стакан видите)
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
Sergey Gorokhov, Спасибо.
Все заработало.
Не подумал бы что разные class code будут на демо и на боевом.
Даже не смотрел в ту сторону.  
Страницы: 1
Читают тему
Наверх