Сергей С. (Автор тем)

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

Страницы: 1
Момент реального зачисления USD
 
Добрый день.

Столкнулся с проблемой. Чтобы купить актив за USD, надо купить эти самые USD. Раньше момент зачисления USD в портфель ловил функцией:
getMoneyEx(Firm_ID, Client_code, "EQTV", "USD", 1).currentbal.
Эта функция работает и сейчас, и показывает, что USD зачислены. Но при попытке на следующем этапе купить актив за USD выпадает сообщение об ошибке: "Скорректированное значение НПР1 - меньше 0". Это говорит о том, что деньги еще не зачислены. И действительно, если зайти вручную в режим покупки, то через 1-2-3 сек появляется доступное количество для покупки - 0 становится 1 прямо на глазах.
При этом, если не заходить в ручном режиме в диалог покупки актива, а пользоваться функцией:
_qty, _comiss = CalcBuySell(_market_buy, _ticker_buy, Client_code, Account, 0, true, true)
то эта функция будет возвращать _qty = 0 ВЕЧНО !!!!!!
Кстати, функция getBuySellInfo(Firm_ID, Client_code, _market_buy, ticker_buy, 0).can_buy тоже возвращает 0 постоянно и в течение бесконечного времени.
Как определить момент реального зачисления USD в портфель?
Задержка при зачислении бумаг
 
Проблема такая: при первой покупке бумаг происходит задержка между отправкой транзакции на покупку и фактическим зачислением в портфель. Эта задержка составляет примерно 5 секунд. При последующих покупках этой же бумаги такой большой задержки нет.
Но стоит переключиться на покупку другой бумаги - все повторяется: при первой покупке снова задержка >5 сек, при последующих покупках задержка стандартная.
Как измерял задержку:
Старт: os.clock() перед sendTransaction()
Окончание: изменение os.clock() после tonumber(getDepoEx(<Firm_ID>, <Client_code>, <ticker_buy>, <Account>, 2).currentbal) > 1
Страницы: 1
Наверх