Подскажите пожалуйста не работает getDepoEx, выдает nil, хотя в табл. лимитов по бумагам, бумаги есть, правда почему то указаны в количестве акций, а не в количестве лотов. getMoneyEx - работает нормально все верно выдает. Попробовал getDepo и getMoney, в этом случае getMoney опять же выдает все верно, а getDepo в полях указывает нули (depo_current_balance=0, depo_limit_available=0 и т. д. ). Таблицы лимитов созданы и открыты. tbl_depo=getDepoEx ("фирма" , "код клиента" , "код бумаги" , " счет депо", 2) tbl_depo=getDepoEx ("NC0007900000" , "21455" , "GAZP" , " L01+00000F00", 2) Версия quik 6.17.0.58
Не хотелось бы заграмаждать ветку , но если в кратце этот код выдает ошибку в основной программе, я его переписал в простейшую - только он и вывод полученной табл. в файл и там и там одна и та же ошибка выдает nil причем повторяю рядом выполняется getMoneyEx он выдает все верно ?
juriy163 S пишет: Может причина какая то в самой табл. лимитов ?
Боюсь что если бы это было действительно так, было бы гораздо больше обращений по данной проблеме. Проблема именно в Вашем коде, и пробел это только доказывает. Выложите копию куска кода в котором Вы работаете с функцией getDepoEx
juriy163 S пишет: Может причина какая то в самой табл. лимитов ?
Боюсь что если бы это было действительно так, было бы гораздо больше обращений по данной проблеме. Проблема именно в Вашем коде, и пробел это только доказывает. Выложите копию куска кода в котором Вы работаете с функцией getDepoEx
--============================================================================== --function table.val_to_str ( v )
-------------------------------------------------------------------------------------------------------- --function table.key_to_str ( k )
------------------------------------------------------------------------------------------------------ -- Преобразование таблицы или массива в текстовое представление в соответствии с синтаксисом языка lua
--function table.tostring( tbl )
------------------------------------------------------------------------------------------------------ -- Сохранение таблицы или массива в файл
приведенный выше пример работает на валютном рынке, в реальном квике, для этого пишу вот так: t=getDepoEx('MC0139600000','00000FX','USD000000TOD','MB0139600999',0)
но! не работает в QUIK JUNIOR. t=getDepoEx('MB1000100000','11154','USD','RTOD',0) значение 'RTOD' беру из колонки "Счет депо", а 'USD' - из колонки "Код бумаги", ну т.е. из тех же колонок, что и в рабочем квике.
может кто-нибудь знает, как правильно вызывать эту функцию из демо-квика?
Николай написал: приведенный выше пример работает на валютном рынке, в реальном квике, для этого пишу вот так: t=getDepoEx('MC0139600000','00000FX','USD000000TOD','MB0139600999',0)
но! не работает в QUIK JUNIOR. t=getDepoEx('MB1000100000','11154','USD','RTOD',0) значение 'RTOD' беру из колонки "Счет депо", а 'USD' - из колонки "Код бумаги", ну т.е. из тех же колонок, что и в рабочем квике.
может кто-нибудь знает, как правильно вызывать эту функцию из демо-квика?
Ниже прикладываем пример использования getDepoEx для Вашего фондового счета в QUIK Junior. В случае с Валютным рынком необходимо заменить фирму, инструмент и счет депо взяв их из таблицы лимитов по бумагам.
Код
function main()
local res = getDepoEx('NC0011100000', '11154', 'SBER', 'NL0011100043', 0)
message("Текущий остаток="..res.currentbal,1)
end
Здравствуйте. Подскажите плиз, что может быть не так. Написал функцию для получения объема из таблицы "Позиция по инструментам". При начале работы работает несколько циклов, после чего Quik-демо зависает. Проверил: входящие параметры поступают, функция возвращает значения, но в один прекрасный момент при получении local table происходит зависание Quik. Код ниже.
Код
function get_depo_ex(Firm_, ClientCode_, sec_code_, AccountNumber_)
--Возвращает из таблицы "Позиция по инструментам" позицию в лотах, если Buy то volume > 0, если Sell то volume < 0, если позы нет то 0
local volume = 0
--local lot_size = ArrayAll[I][7][2][1] --размер лота по инструменту
local limit_kind_ = 2
if QUIK_LOGIN == DEMO_LOGIN then limit_kind_ = 0 end
local table = getDepoEx(Firm_, ClientCode_, sec_code_, AccountNumber_, limit_kind_)
--if table and lot_size then volume = table.currentbal / lot_size end
if table then volume = table.currentbal end
return volume --позицию в лотах, если Buy то volume > 0, если Sell то volume < 0, если позы нет то 0
--Пример: local volume = get_depo_ex(ArrayAll[i][6], ArrayAll[i][4], ArrayAll[i][2], ArrayAll[i][5])
--Получили из таблицы "Позиция по инструментам" позицию в лотах, если Buy то volume > 0, если Sell то volume < 0, если позы нет то 0
end
Просим Вас сообщить используемую версию Рабочего места QUIK, а также предоставить полный код программы для анализа. Вы можете прислать запрошенную информацию на нашу почту quiksupport@arqatech.com, указав в письме ссылку на данную тему форума.