Open Mefodyev opened 1 year ago
Думаю, что это ошибка API и ее надо регистрировать тут: https://github.com/Tinkoff/investAPI/issues
@HiHat хочу поднять тот же вопрос. Ошибку не регал, т.к. она на время уходила. Сейчас кол-во инструментов в портфеле увеличилось и она вернулась. По моим наблюдениям, суть во времени выполнения запроса (~30 секунд). С портфелями, где инструментов мало, или запрос идет менее 30 секунд, все в порядке:
Но если их много и запрос длится больше 30 секунд, то выполняется с ошибкой:
И причина с предпоследним невыполненным шагом (не дождался конца):
В документации их API не лазил, не знаю правильно ли описанное мной поведение. Уточняю на всякий случай, ошибка только(?) на их стороне и о ней тоже надо сообщать сюда? https://github.com/Tinkoff/investAPI/issues
Я когда-то делал для своих целей форк без оформления тут, где решал проблему за счет кэширования инструментов (большой портфель не может обработаться, т.к. там на каждый элемент заново идёт обращение в тинёк о получении его характеристик). Т.е. решить можно только за счёт того, что если "сегодня" функцию еще не вызывал, то нужно будет запустить функцию несколько раз, чтобы кэш заполнился и 30 секунд хватало. Вечером выложу кусок, может кто-то из вас интегрирует (или сам закодит)
Я когда-то делал для своих целей форк без оформления тут, где решал проблему за счет кэширования инструментов (большой портфель не может обработаться, т.к. там на каждый элемент заново идёт обращение в тинёк о получении его характеристик). Т.е. решить можно только за счёт того, что если "сегодня" функцию еще не вызывал, то нужно будет запустить функцию несколько раз, чтобы кэш заполнился и 30 секунд хватало. Вечером выложу кусок, может кто-то из вас интегрирует (или сам закодит)
Будем благодарны, если поделитесь примером! Почитал немного об ограничениях обхода лимита на время выполнения за 30 секунд и способах обхода, но пока не придумал как лучше реализовать!
В документации их API не лазил, не знаю правильно ли описанное мной поведение. Уточняю на всякий случай, ошибка только(?) на их стороне и о ней тоже надо сообщать сюда? https://github.com/Tinkoff/investAPI/issues
Нет, похоже при больших портфелях происходит слишком много запросов к API и срабатывает ограничение на 23.5 секунды, которое скрипт пытается подождать, но его ожидание прерывается средой GAS, т.к. на бесплатном тарифе функция должна выполнятся не более чем за 30 секунд. Надеюсь найдём способ как оптимизировать скрипт и обойти ограничения API и среды GAS!
При подготовке информации по портфелю, по каждому инструменту через API запрашивается его тикер. Можно сделать быстрый вариант вывода портфеля, где будут только FIGI инструментов! :)
При подготовке информации по портфелю, по каждому инструменту через API запрашивается его тикер. Можно сделать быстрый вариант вывода портфеля, где будут только FIGI инструментов! :)
Нет, не вариант, смысл вывода всего портфеля был в возможности построить детализированную сводную таблицу со всей нужной инфой. Сама по себе фига никакого бизнес-смысла не несёт. Либо (правда проблему это не решит), можно сделать урезанный вариант getportfolio без кол-ва бумаг, ср. цены покупки, ст-ти покупки, нкд, и валюта три раза почему-то возвращается.
Я когда-то делал для своих целей форк без оформления тут, где решал проблему за счет кэширования инструментов (большой портфель не может обработаться, т.к. там на каждый элемент заново идёт обращение в тинёк о получении его характеристик). Т.е. решить можно только за счёт того, что если "сегодня" функцию еще не вызывал, то нужно будет запустить функцию несколько раз, чтобы кэш заполнился и 30 секунд хватало. Вечером выложу кусок, может кто-то из вас интегрирует (или сам закодит)
HiHat уже сделал кэширование инструментов по фигам, значит выхода два:
ЗЫЖ Обратите внимание, что фиги есть далеко не у всех инструментов, и надо наверное переходить на Uid
В общем пока реализовано только кеширование получения имен инструментов по FIGI. На больших портфелях может работать не с первого раза (пока кэш не наполниться). Позже, возможно, придумаем, как обойти ограничение в 30 секунд на выполнение функций.
Вызов TI_GetPortfolio() периодически возвращает
Exception: Request failed for https://invest-public-api.tinkoff.ru returned code 429 (строка 271).
Не могу уловить порядок воспроизведения ошибки, возникает от случая к случаю. В круглых скобках ссылаюсь на номер счета из другого листа в виде
=TI_GetPortfolio('Счета'!A2)
. Если писать в скобках сам номер, не поможет. Все подгрузится, только если из формулы убрать "=" и вставить заново. Причем, с обычным счетом портфолио подгружается сразу, а с ИИС падает чаще. Остальные функции работают корректно.Хочется чтоб при открытии документа все погружалось сразу, без вмешательства в ячейки. Возможно, я что-то настроил не до конца. Подскажите пож. нормально ли это и как избавиться от ошибки.