Функции обратного вызова

Сообщаем ошибки связанные с работой программы.
Ответить
Евгений
Сообщения: 58
Зарегистрирован: 06 июл 2020, 18:35

Функции обратного вызова

Сообщение Евгений »

Подскажите почему могут возникать ошибки при получении параметров например в функции OnAllTrade при получении параметров инструмента стратегии

Например вот получаю в OnAllTrade:

local s, t = iS.f.getSecParams(index)
local candles0 = iS.f.getCandles(t.Strategy.Mts.price_chart, 4, offset)

Ошибка. На дальнейшую работу вроде не влияет но постоянно появляются.
При этом они часто разные, но все находятся в OnAllTrade
3339: attempt to index a nil value (local 'candles0')

Аватара пользователя
Александр
Модератор
Сообщения: 42
Зарегистрирован: 18 июн 2020, 23:19

Re: Функции обратного вызова

Сообщение Александр »

Здравствуйте!

Проверьте входные параметры для функции: identifier, count, offset

Функция iS.f.getCandles возвращает nil в случаях:
  • не задан параметр count или его тип не число;
  • по заданному идентификатору не удалось получить число линий или их количество равно 0;
  • число доступных свечек индикатора за минусом count и offset меньше 0;
  • внутренняя функция QUIK getCandlesByIndex вернула пустую таблицу или число свечек в таблице не равно count.
В общем случае запрашивать данные с графика в функции обратного вызова OnAllTrade нецелесообразно, т.к. данные на графике значительно запаздывают от данных в OnAllTrade и получаемая с графика информация оказывается неактуальной.

Ответить