Dim (Автор тем)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
некорректная работа getDepoEx, "плавающая ошибка"
 
Добрый день!

Подскажите, в чём может быть причина некорректного срабатывания getDepoEx при запросе числа лотов в портфеле.
Версия 9.7.1.10, Windows 10.

Код:

local result=getDepoEx(firmid, C_CODE , key, Account, 2)

if result~=nil and result~=0
and result.currentbal~=nil
and result.awg_position_price~=nil
then
    lotsnumber=result.currentbal
    pos_price=result.awg_position_price
else lotsnumber=0 pos_price=0
end
if lotsize~=0 then lotsnumber=lotsnumber/lotsize end

d[25][77]=lotsnumber
d[25][89]=pos_price

 set_cell(t_id, k, 12, tostr(d25][77]))

Цена позиции считывается всегда корректно, а объем позиции в половине случаев корректно передаётся, но часто (в половине случаев) возвращается 1/10 или 1/100 объема.

Например вот результаты последовательных запусков скрипта в течение одной минуты (корректная позиция у PHOR = 3 лота):

3 ..  3 ... 0.3 ... 0.03 ... 3 ...  0.3

на прошлой версии квика всё также было. Через getDepo такая же история. Ситуация наблюдается и во время торговой сессии и в выходные.

Можно ли понять, в чём причина ошибка или каким-то другим способом получить портфель и быть уверенным в корректном значении?

Есть, конечно вариант, держать постоянно в портфеле 1 лот какой-нибудь бумаги и по его значению определять корректирующий коэффициент для всего портфеля, но мне такой вариант не очень нравится.

И ещё, подскажите пожалуйста, чтобы не создавать вторую тему, есть ли поле у какой-нибудь таблицы, с помощью которой можно определить остаток денег, свободных для торговли:
например,
депозит 1000 рублей, в лонге в бумагах 500, в шорте -200; по какому запросу можно получить 300 (средства, доступные для открытия новых позиций без залезания в плечи).

Спасибо большое!
Страницы: 1
Наверх