Моя функция для получения количества бумаг+ордеров по инструменту:
-- Получает текущую чистую позицию по инструменту
function GetTotalPos(stock_id,firm_id,client_code_id,account_id,pos_type)
local temp_stock1=getDepoEx(firm_id, client_code_id,stock_id, account_id, 2)
local temp_stock_info=getSecurityInfo(GetClassBySec(stock_id),stock_id)
if temp_stock1==nil then
message (temp_stock_info.name..' nilll ');
sleep(1000);
return nil;
else
local pos=temp_stock1.currentbal+temp_stock1.locked_buy;
if pos_type==0 then pos=temp_stock1.currentbal; end;
if pos_type==1 then pos=temp_stock1.currentbal+temp_stock1.locked_buy; end;
if pos_type==2 then pos=temp_stock1.locked_buy; end;
if pos_type==-1 then pos=temp_stock1.currentbal+temp_stock1.locked_sell; end;
if pos_type==-2 then pos=temp_stock1.locked_sell; end;
return pos/temp_stock_info.lot_size
end
end
Периодически при пробегании по всему портфелю бумаг возвращает nil на существующие в портфеле бумаги. Иногда. Раз в 3-5 минут. Почему такое может происходить? параметры переданы верно. Бумага в портфеле есть, но иногда getDepoEx её не видит. Какие есть скрытые особенности у getDepoEx, из за чего бы она могла выдавать nil на реально существующую бумагу в портфеле?
-- Получает текущую чистую позицию по инструменту
function GetTotalPos(stock_id,firm_id,client_code_id,account_id,pos_type)
local temp_stock1=getDepoEx(firm_id, client_code_id,stock_id, account_id, 2)
local temp_stock_info=getSecurityInfo(GetClassBySec(stock_id),stock_id)
if temp_stock1==nil then
message (temp_stock_info.name..' nilll ');
sleep(1000);
return nil;
else
local pos=temp_stock1.currentbal+temp_stock1.locked_buy;
if pos_type==0 then pos=temp_stock1.currentbal; end;
if pos_type==1 then pos=temp_stock1.currentbal+temp_stock1.locked_buy; end;
if pos_type==2 then pos=temp_stock1.locked_buy; end;
if pos_type==-1 then pos=temp_stock1.currentbal+temp_stock1.locked_sell; end;
if pos_type==-2 then pos=temp_stock1.locked_sell; end;
return pos/temp_stock_info.lot_size
end
end
Периодически при пробегании по всему портфелю бумаг возвращает nil на существующие в портфеле бумаги. Иногда. Раз в 3-5 минут. Почему такое может происходить? параметры переданы верно. Бумага в портфеле есть, но иногда getDepoEx её не видит. Какие есть скрытые особенности у getDepoEx, из за чего бы она могла выдавать nil на реально существующую бумагу в портфеле?