Есть у кого рабочий пример работы getFuturesHolding( )?

Страницы: 1
RSS
Есть у кого рабочий пример работы getFuturesHolding( )?
 
Что-то поиск (по всей сети, не только тут) ничего не дал, а как работает из документации представляется смутно (и почему было сразу не писать пример в документации?).
Что за аргумент такой передаётся- form_id ?  
 
Добрый день.
Это опечатка. Правильно firm_id, по-русски Фирма.
 
Цитата
Владимир написал:
Добрый день.
Это опечатка. Правильно firm_id, по-русски Фирма.
Спасибо.
 
Цитата
Владимир написал:
Добрый день.
Это опечатка. Правильно firm_id, по-русски Фирма.
а пример есть?
например, как выбрать все активные стоп заявки стоящие по конкретному фьючерсу?  
 
Что-то у меня такой простецкий код не идёт, я даже ошибку не пойму, вроде про синтаксис, но всё же правильно:
Код
Stops = {}
Index = 0
i = 0

function main()

   Index = getNumberOf("stop_orders")
   
   while Index >= 0 do
      Stops = getItem("stop_orders", Index)
      if Stops.sec_code = "SiM6" then
         if Stops.withdraw_time == 0 then
            KeyOrder = Stops.order_num
            i = i+1                     --счётчик активных заявок по инструменту
            if i >=2 then
               message("ERROR,3")
            end                     
         end
      end
      Index=Index-1
   end

end
 
Пишет: attempt to index global 'Stops' (a nil value)
 
Кароч, почему-то работает только как:
Код
 while Index >= 0 do
      Stops = getItem("stop_orders", Index-1)
Но работает!
 
Цитата
Николай Бехтерев написал:
while Index >= 0 do
У вас Index внутри цикла может принять значение 0, следовательно в вызов getItem вы передадите -1, что неправильно.
Советую заменить условие на строгое Index > 0
или заменить получение последнего индекса
Код
Index = getNumberOf("stop_orders")-1
или использовать for с обратным шагом
Код
function main()
   local counter = 0;
   local key;
   for i=getNumberOf("stop_orders")-1,0,-1 do
      local item = getItem("stop_orders", i)
      if item.sec_code = "SiM6" and item.withdraw_time == 0 then
         key = item.order_num
         counter = counter + 1
         if counter >= 2 then
            message("ERROR",3)
         end
      end
   end
end
Страницы: 1
Читают тему
Наверх