Здравствуйте! Подскажите выскочила ошибка: "attempt to index a nil value" на строчку: "if getFuturesLimit(FIRM, ACCOUNT, 0, "SUR").cbplplanned==nil then"
Евгений написал: Подскажите выскочила ошибка: "attempt to index a nil value" на строчку: "if getFuturesLimit(FIRM, ACCOUNT, 0, "SUR").cbplplanned==nil then"Вроде как раз на nil проверяю.
У вас getFuturesLimit(FIRM, ACCOUNT, 0, "SUR") равно nil, а его индексировать нельзя.
Евгений написал: Подскажите выскочила ошибка: "attempt to index a nil value" на строчку: "if getFuturesLimit(FIRM, ACCOUNT, 0, "SUR").cbplplanned==nil then"Вроде как раз на nil проверяю.
У вас getFuturesLimit(FIRM, ACCOUNT, 0, "SUR") равно nil, а его индексировать нельзя.
if getFuturesLimit(FIRM, ACCOUNT, 0, "SUR")==nil then break end
if getFuturesLimit(FIRM, ACCOUNT, 0, "SUR").cbplplanned==nil then break end
Ругается на строчку if getFuturesLimit(FIRM, ACCOUNT, 0, "SUR").cbplplanned==nil then
Не вызывайте функцию два раза, сохраните результат в локальную переменную. Странно конечно, похоже почему-то при первом вызове результат нормальный, а при втором - nil
Еще ньанс: Данная ошибка выскочила всего 1 раз за год бесперебойной работы скрипта. Хотелось бы узнать причину или как побороть данную ошибку, чтобы срипт не вылетал с ошибкой.
Еще ньанс: Данная ошибка выскочила всего 1 раз за год бесперебойной работы скрипта..
Сразу бы это сказали...
Цитата
Евгений написал: Хотелось бы узнать причину или как побороть данную ошибку, чтобы срипт не вылетал с ошибкой.
Вероятно при первой проверке getFuturesLimit вернул таблицу, а при второй у брокера что-нибудь глюкнуло, и getFuturesLimit вернул nil Надо было закинуть результат getFuturesLimit в переменную и ее уже проверять
Еще ньанс: Данная ошибка выскочила всего 1 раз за год бесперебойной работы скрипта..
Сразу бы это сказали...
Цитата
Евгений написал: Хотелось бы узнать причину или как побороть данную ошибку, чтобы срипт не вылетал с ошибкой.
Вероятно при первой проверке getFuturesLimit вернул таблицу, а при второй у брокера что-нибудь глюкнуло, и getFuturesLimit вернул nil Надо было закинуть результат getFuturesLimit в переменную и ее уже проверять
А может быть такое, что Квик что-то меняет в своей таблице, а скрипт в это время читает это поле? Помню, в районе quik2dde.ru упоминаемый мною kalikazandr писал, что такое возможно, якобы, даже неполный кусок изменяемой Квиком строки можно прочитать. Или это байки алготрейдеров?
Евгений написал: Еще ньанс: Данная ошибка выскочила всего 1 раз за год бесперебойной работы скрипта. Хотелось бы узнать причину или как побороть данную ошибку, чтобы срипт не вылетал с ошибкой.
Мысль посетила, совсем не уверен: вроде бы эта функция задействует библиотеку расчёта лимитов брокера, которая по идее обновляется даже если вы квик не обновляете, т.к. правила расчёта на бирже меняются. А она может в теории или сглючить, вдруг даже полезть в сеть за данными и не получить их (например двойной запрос воспринят как ддос). По какой-то же причине юзеры жалуются на тормоза при выставлении заявок на срочном рынке...