Помогите получить цену по своей последней сделке по определенному инструменту

Страницы: 1
RSS
Помогите получить цену по своей последней сделке по определенному инструменту
 
Помогите получить цену по своей последней сделке по определенному инструменту.

Делаю так:
Код
Class = "SPBFUT"               -- код класса
MyAccount = "SPBFUT000oy"         -- номер счета
Emit = "SiM9"                  -- код инструмента 


-- функция получения цены по своей последней сделке по инструменту: 
function getLastPriceMyTrade(Cl,Acc,Em)      

   local function fn1(param1,param2)               --локальная функция для отбора строк при помощи функции SearchItems      
      if (param1 == Acc and param2 == Em)then         --фильтруем таблицу: отбираем стороки по номеру счета и инструменту             
         return true
      else 
         return false 
      end
   end
   
   --получаем набор строк таблицы "trades", где были сделки по нашему счету и бумаге:   
   indexNeed = SearchItems("trades", 0, getNumberOf("trades")-1, fn1, "account,sec_code")
   
   if(indexNeed~=nil)then                     --нашли хотя бы одну строку в таблице СДЕЛОК   
   
      local row = getItem("trades",indexNeed[-1])      -- здесь хочу взять последнюю строчку из набора строк indexNeed
                                          -- получаю : attempt to index local 'row' (a nil value)   


                                          
      local PriceLastOrder = row.price         --цена (названия полей возможных и имя в справочнике по ЛУА в папке КВИКа берем)
            
   end

   return PriceLastOrder   
   
                                                            
end
-----------------

function main()   
   
      local EntryPrice = getLastPriceMyTrade(Class,MyAccount,Emit)         
      message("EntryPrice = "..tostring(EntryPrice))
end
 
Дмитрий,
У Вас переменная PriceLastOrder объявлена как локальная, т.е. при выходе из if она удаляется, следовательно и в return не попадает.

уберите слово local перед PriceLastOrder
 
Сергей, спасибо, что откликнулись, но к сожалению,не помогло.

Ошибка где-то в этой строчке:
local row = getItem("trades",indexNeed[-1])        -- здесь хочу взять последнюю строчку из набора строк indexNeed


Не знаю как правильно получить индекс. Весь день бьюсь как мартышка с очками и так и сяк.. и никак..:-)
 
Цитата
Дмитрий написал:
local row = getItem("trades",indexNeed[-1]) -- здесь хочу взять последнюю строчку из набора строк indexNeed

Правильно так
local row = getItem("trades",indexNeed[#indexNeed]) -- здесь хочу взять последнюю строчку из набора строк indexNeed[/QUOTE]

и предыдущая рекомендация не отменяется
 
ОТЛИЧНО !!!    СПАСИБО огромное!!!
 
Добрый день !

Еще вопрос, а как найти номер свечи этой последней сделки при использовании CreateDataSource ?
 
Цитата
Дмитрий написал:
Добрый день !

Еще вопрос, а как найти номер свечи этой последней сделки при использовании CreateDataSource ?

на графиках нет номеров сделок, так что только по времени и цене.
Зная дату и время сделки, и ее цены, Вы можете найти ее на графике.
Страницы: 1
Читают тему (гостей: 1)
Наверх