Тинькофф инвестиции перевод такого типа невозможен код ошибки

Ошибки банка Тинькофф. Коды, причины, решение проблем

Коды ошибок с ответом «Повторите попытку позже» – 100, 103, 1013, 1030, 1034, 1089, 1096. Их разницу может понять только ИТ-специалист банка, а для простых клиентов коды означают невозможность попасть в финансовый личный кабинет. При появлении подобных сбоев пользователь видит сообщение системы «произошла ошибка, повторите попытку позже». Стоит внять совету и немного потерпеть. Чуть позже сбой решится технической службой и приложение снова станет доступно для клиентов Тинькофф. Однако, ожидание иногда стоит реальных денег. Так и произошло с одним из клиентов данного банка.

Он зарегистрировался в клубе акционеров Тинькофф, сразу после этого получил в подарок акции на 2,5 тысячи рублей и, конечно, возрадовался. При попытке продать ценные бумаги, чтобы получить награду, клиент узнал, что столкнулся с проблемами. А именно в приложении появился сбой с уведомлением «произошла ошибка, повторите попытку позже» и техническая служба помочь не смогла.

Как оказалось, для продажи акций Тинькофф необходимо иметь их пластиковую карту, а подаренные ценные бумаги «сгорают» также быстро, как появляются. В результате конфуза приложение недоступно из-за ошибки, а на сайте зарегистрироваться невозможно из-за отсутствия карты.

Как выйти из проблемной ситуации каждый решает сам:

Если часто пользоваться услугами данного банка, потребуется больше информации об ошибках и их кодах:

Источник

Ошибка при оплате картой Тинькофф — что делать?

код ошибки тинькофф банк

В последнее время покупатели все чаще рассчитываются в различных магазинах и торговых сетях при помощи банковской карты. Однако иногда происходят ситуации, когда в терминале отражается ошибка, в результате чего провести платеж невозможно. В настоящем обзоре подробно описаны основные причины появления ошибки при оплате картой Тинькоff и способы их устранения.

Почему бесконтактная оплата по Тинькофф не работает

Можно перечислить несколько распространенных ошибок, при которых невозможно бесконтактным способом произвести оплату при помощи карты Тинькофф:

Ошибка «11070» — означает сбой аутентификации 3d-secure. Такая проблема может возникнуть по одной из следующих причин: был неправильно указан одноразовый код, необходимый для подтверждения платежа, или же истек период, для введения в соответствующем поле (обычно дается не более 5 минут).

Ошибка «4405» — такой цифровой ответ расшифровывается, как отказ в проведении платежа. Операция может быть запрещена или прервана. Существует несколько причин для появления такой проблемы:

    при проведении платежа пользователь ввел неверный пин-код; прервано соединение между терминалом и банком; отсутствие на счету необходимой суммы; некорректная настройка оборудования; в системе произошел внутренний сбой; операция была заблокирована банком по причине возникновения подозрений в реализации мошеннических схем; неисправность самого термина, через который производится платеж.

Ошибка «57» — означает невозможность проведения той или иной транзакции конкретным платежным средством Тинькофф. К примеру, картами MasterCard невозможно провести платеж через терминал РЖД.

Как устранить проблему?

Решить проблему со сбоем платежа, проводимого при помощи карты Тинькофф, позволят следующие полезные рекомендации:

    Первым делом нужно проверить баланс и убедиться, что на счету есть необходимая сумма, так как в случае отсутствия денег, система также будет выдавать ошибку (это можно сделать по телефону или же через интернет-банк). Если платеж не проходит, то необходимо уточнить, принимается ли конкретная карта соответствующим терминалом. Возможно, проблема на стороне платежной системы. Если причина в этом, то для проведения операции следует использовать другую карту. Также необходимо связаться с сотрудниками банка и уточнить, не было ли платежное средство заблокировано. Если карта недавно оформлена, то есть вероятность того, что для использования необходима активация платежного средства. В этом случае также необходимо позвонить в банк. При вводе пин-кода для подтверждения операции обязательно следует проверить правильность. Если после нескольких попыток карта оказалась заблокирована, то для ее разблокировки необходимо связаться со службой поддержки финансового учреждения, в котором было оформление. Если планируется при помощи карты оплатить крупную покупку, то рекомендуется заранее проверить, активирована ли опция 3d Secure.

Таким образом, существует много факторов, вызывающих ошибку 4405 при оплате картой Тинькофф и другие виды сбоев. Если следовать приведенным выше рекомендациям, то во многих случаях проблему удается решить самостоятельно. Если же эффекта нет, то единственный выход — обращение в банк.

Видео-инструкция

код ошибки тинькофф банк

Автор финансового блога, эксперт в области инвестиций

Источник

У Тинькофф Банка не сбой — код ошибки

код ошибки тинькофф банк

В 15:41 сбой в приложении Тинькофф банка замечен сбой с кодом ошибки по сведениям в веб-сайта DownDetector больше 2 тыс. человек оставили претензию на работу банка в этот час

Ранее у Тинькофф Банка случались сбои, но это не затрагивало сразу все приложении. В сегодняшнем сбое приняло участие и переводы и «Тинькофф Инвестиции»

код ошибки тинькофф банк

Трудности появлялись у житедей С-Петербурга, Столицы, Казани, Екатеринбурга, Cочи. По состоянию на 16:06, поступило больше5 тыс. претензий.

«Сейчас есть неувязка со входом в приложение, в пределах 1000 пользователей с ней уже столкнулись. Мы ее обнаружилии практически сразу чиним, извините», — рассказывают в сообщении отдела связи с общественностью Тинькофф журналистам.

Уполномоченный Тинькофф Банка подтвердил РБК, что существует проблема со входом в приложения Тинькофф Банка и «Тинькофф Инвестиций». По последним сведениям Банка, сбой затронул несколько тыс.юзеров, его сулят убратьв обозримом будущем.

На 19:00 сбой Банка не устранен

россия, данные, facebook, реклама, twitter, после, москва, бизнес, российский, из-за, произошел, причину, яндекс, вконтакте, регистрация, сообщили, другие, отправить, купить, тиньков, компании, карты, рынок, служба, раз, личный, telegram, слов, редакции, ситуации, экономика, покупать, отвечают, представитель, обновлено, неполадки, пожалуйста, авторизации, подтвердили, часть, город, месяц, узнайте, потом, поиск, пресс, ошибка, политика, спасибо, минут, торгов, ждал

Источник

Ошибка при пополнении средств на карту Тинкофф

Являюсь в течение долгого времени клиентом Тинькофф банка (далее Т). Уже лет 7, наверное. Банк всегда был олицетворением надежности, заботы о клиентах и эмпатии. У меня никогда не было мыслей о смене банка, как минимум, в качестве эмитента кредитной карты.

Трачу в среднем около 100 тысяч в месяц в грейс периоде. Привлекала четкость и удобство пополнения карты. Делаю это только с одной карты всегда, дебетовой карты С.

Звоню стандартно в Т, там подтверждают, что было 2 операции, одна из них заблокирована С, посоветовали обратиться туда. Там же сказали, что было 3 (три) операции всего, 2 списания, и одна блокировка! Звоню в Т опять, 2 (два!) часа общаюсь бесполезными фразами, повторяя одно и то же. Регистрируют обращения, на которые ответ приходит в течение 3 минут о том, что «операция заблокирована». На мои слова о том, что С сообщает, что было 3 транзакции не реагируют. В качестве справки предоставляют только баланс счета, что, на мой взгляд является «филькиной грамотой» в этом случае. Долго ругался, чтобы мне предоставили, хотя бы результат обращения.

Я не знаю, кто виноват в данной ситуации. Т или С. Но, как минимум, то, что Т снимает с себя всю ответственность, обходясь стандартными ответами, футболя от специалиста к специалисту, не проявив ни малейшего желания разобраться в ситуации. А это, на минуточку, 30 тысяч, для кого то копейки, а для кого то месячная зарплата. Есть же межбанковские запросы?

Наверное, общение с Т заканчиваю, с болезнью Олега все пошло не туда, куда надо.

В С я сделаю такое же, там оставлю ссылку на этот пост, если удастся отредактировать этот, то оставлю тут ссылку на пост в С.

Не хочу быть пострадавшим, когда два банка «ни в чем не виноваты».

Источник

Не работает интернет банк Тинькофф сегодня – причины и что делать?

Клиенты коммерческой финансовой структуры столкнулись с такой неисправностью, как неполадки с мобильным приложением. Неполадки возникают и со стороны личного кабинета на официальном сайте компании. Что нужно предпринять, когда не работает Тинькофф?

Почему не работает мобильный банк Тинькофф – причины

Причины сбоя сотрудники компании не уточняют. Единственное уточнение – работа карточных счетов и вкладов не нарушена. Как правило, неполадки возникают ежегодно и исправно устраняются в кратчайшие сроки.

Причины могут быть различными. Чаще всего речь идет об использовании устаревшей версии приложения. Возможно мобильное устройство подверглось вирусным атакам. Проще всего удалить приложение и скачать новое через App Store или Google Play. Пользуйтесь только официальными источниками. В противном случае можно столкнуться с мошенническими махинациями.

Что делать, если проблема с интернет банком?

При возникновении технических неполадок, отсутствует возможность выполнять ряд действий:

Когда не работает интернет банк Тинькофф сегодня, то никакие действия с личным счетом провести через онлайн не получится. На устранение проблемы может понадобиться определенный промежуток времени. Следует воспользоваться альтернативными способами проведения транзакций или иных действий.

Почему не работает сайт Тинькофф

Существует несколько причины, по которым перестает функционировать личный кабинет на официальном сайте компании:

Также существуют другие причины, справиться с которыми без помощи сотрудников финансовой структуры не получится. При появлении каких-либо неполадок, следует обратиться в службу поддержки клиентов по телефону.

Тинькофф банк проблемы в 2021 году

Если возникли проблемы с Тинькофф банком, то можно попробовать решить проблему самостоятельно. Для этого обновляем страницу или перезагружаем приложение. Перезапускаем браузер или открываем сайт в другом браузере. Если эти действия не помогает справиться с проблемой, то пробуем перезагрузить роутер или же переключить мобильный интернет.

Можно попробовать войти на сайт или в приложение с другого устройства. Если при этом все исправно работает, то проблема в вашем ПК или смартфоне. Можно попробовать прописать DNS сервер – 8.8.8.8. или же обратиться за помощью в сервисный центр Tinkoff по тел.: 8(800)755-11-10.

Сотрудники компании помогут разобраться с любой технической или информационной проблемой. На бесплатной основе будет предоставлена исчерпывающая консультация.

Источник

Содержание

  1. Ошибка выполнения запроса в Тинькофф Инвестиции — что значит и как исправить?
  2. Что означает?
  3. Как исправить ошибку выполнения запроса?
  4. Видео-инструкция
  5. Проблемы с совершением операций через приложение Тинькофф-инвестиции
  6. Что недоговаривают Тинькофф Инвестиции. Вытаскиваем все данные по портфелю через API в большую таблицу Excel
  7. Описание проблемы
  8. Поиск решения
  9. Знакомство с API
  10. Знакомство с Python
  11. Структура программы
  12. Структура таблицы
  13. — Позиции
  14. — Операции
  15. — Аналитика
  16. Заключение

Ошибка выполнения запроса в Тинькофф Инвестиции — что значит и как исправить?

Иногда пользователи Тинькофф Инвестиции при попытке выполнить определенную операцию со своим брокерским счетом, сталкиваются с такой проблемой, как ошибка выполнения запроса. В связи с этим возникает вопрос, как устранить в Тинькофф Инвестиции ошибку и из-за чего проблема может появиться. Попробуем в этом детально разобраться.

Что означает?

При возникновении ошибки такого типа система не отвечает на запрос, посылаемый пользователем. Проявляться это может в виде следующих сбоев:

    В приложении Тинькофф Инвестиции не открывается история совершенных операций, а также невозможно посмотреть данные по портфелю. При переходе в соответствующий раздел может появиться сообщение с предложением попробовать зайти позже. Возникновение проблем при попытке приобрести валюту. Согласно отзывам пользователей, при отправке такого запроса могут появляться следующие сообщения: «ошибка создания запроса» или «Поручение было отклонено. Пожалуйста, попробуйте совершить сделку меньшего объема». Произвольное выставление стоп-заявок в то время, когда пользователь не совершал какие-либо операции в личном кабинете. Отсутствие информации о рыночной цене ценной бумаги. В этом случае провести сделку по купле такого финансового инструмента не получится. Также к ошибке выполнения запроса можно отнести ситуацию, когда пользователь пытался приобрести ценную бумагу, однако сделка не совершалась. При этом деньги на счете оказались заморожены.

Таким образом, пользователи Тинькофф Инвестиции периодически сталкиваются с разными проявлениями ошибки выполнения запроса. К сбоям, которые не были упомянуты выше, также можно отнести нулевую цену акций или же неправильное отражение системой стоимости ценных бумаг.

Как исправить ошибку выполнения запроса?

При возникновении ошибки выполнения запроса порядок действий по ее устранению будет зависеть от характера сбоя. Попав в подобную ситуацию, можно предпринять следующие меры:

    Войти в приложение спустя некоторое время. К примеру, такую рекомендацию дали сотрудники брокера Тинькофф, когда у некоторых пользователей пропал доступ к истории операций и портфелю ценных бумаг. В этом случае достаточно было просто немного подождать, после чего еще раз попробовать открыть недоступный раздел. Если же проблема связана с произвольным выставлением стоп-заявок, неправильным отражением стоимости акций, отсутствием рыночной цены ценной бумаги или с другими аналогичными видами сбоев, то в этом случае придется обращаться в службу поддержки брокера.

Необходимо написать сообщение, подробно изложив в нем суть возникшей проблемы. Если в результате ошибки запроса пользователь потерял деньги, то ему также следует включить в письмо требование о компенсации суммы, потерянной по причине некорректной работы приложения Тинькофф Инвестиции.

В целом, видно из отзывов пользователей, работающих в приложении Тинькофф Инвестиции, что ошибка выполнения запросов, различные сбои и баги — здесь достаточно частое явление. И если временное отсутствие доступа к той или иной операции, можно переждать, то потерю денег из-за нерабочей системы невозможно оставить без внимания. В последнем случае необходимо добиваться компенсации убытков, понесенных по вине брокера.

Видео-инструкция

Источник

Проблемы с совершением операций через приложение Тинькофф-инвестиции

Я пользуюсь картой Тинькофф блек около года. 3 недели назад открыл брокерский счет и скачал приложение Тинькофф инвестиции. Прошел обучающий курс, после чего завел туда небольшую сумму и начал покупать разные недорогие бумаги.

В выходные 21-22 ноября решил сконвертировать доллары с дебетовой карты в евро и рубли. Так как делать это выгоднее через брокерский счет, то решил провести операцию там. В понедельник 23 ноября, сразу после открытия торгов, перевел желаемую сумму в долларах на брокерский счет. Но при попытке продать их, получал ошибку с текстом — «Ошибка создания заявки. [GW] «Скорректированное значение НПР1 меньше 0. Непокрытая позиция по неликвидному инструменту». «

После примерно 10 неудачных попыток, перевел деньги обратно на карту Тинькофф блек и конвертировал там по менее выгодному курсу.

Спустя примерно час, зашел в приложение тинькофф инвестиции и увидел там непонятные цифры в графе доллары — была минусовая сумма, равная той, которую я пытался конвертировать. А в графе рубли — сумму, которую я бы получил в результате конвертации.

Написал в чат поддержки и получил ответ, что у них технические проблемы и они уже устранены. Я перезапустил приложение, но по прежнему видел эти цифры. Снова написал в поддержку, но не получал ответ примерно 2 часа.

После этого я позвонил через приложение в поддержку. Сотрудник банка сказал мне, что я каким-то образом совершил сделку — шорт на то количество долларов, которое я пытался продать. Я не понимаю как это могло случиться. Я никогда не включал опцию маржинальной торговли. Сотрудник банка посоветовал мне закрыть сделку самому, купив нужное количество долларов, а он составит обращение для рассмотрения ситуации.

После завершения разговора, пробую купить необходимое количество долларов, но мне не хватает денег на счете, пришлось его пополнить. Но даже после пополнения я не смог купить доллары и получил туже самую ошибку, как на скриншоте выше. Снова позвонил в поддержку, но это не принесло никаких результатов. Сами они сделку закрыть не могут, просили ждать ответа на обращение. Номинально до 26го Ноября, но заверили, что сделают все возможное, чтобы решить проблемы быстро.

Спустя какое-то время получил сообщение от девушки в чате, что есть проблемы на их стороне, они их решают и она тоже порекомендовала мне выкупить доллары. Но я по прежнему не мог это сделать, постоянно получая ошибку. Она тоже заверила меня, что они ответят и решат мою ситуацию как можно скорее.

Сегодня утром, 24 ноября после открытия торгов я смог выкупить доллары обратно, заплатив при этом комиссию брокеру. Несмотря на обещания трех сотрудников банка, что мое обращение будет быстро рассмотрено, на момент написания отзыва — 19.00 24 Ноября я не получил никаких ответов, объяснений или компенсаций от банка.

Подведу итог — я не смог совершить сделку по продаже валюты через брокерский счет и потерял на этом деньги из-за разницы в курсах. Банк непонятным образом(скорее всего из-за технической ошибки) оформил операцию по заключению мною сделки на шорт без моего ведома. Отменить эту сделку я не мог практически сутки. Ни через приложение — выкупив доллары обратно, ни через звонки в поддержку.

В итоге спустя сутки смог выкупить позицию, но пришлось заплатить комиссию банку. Несмотря на то, что трое сотрудников заверили меня, что вопрос будет решен быстро, вопрос не был решен в течение двух рабочих дней. Оба обращения, созданные сотрудниками банка до сих пор не рассмотрены. После этой ситуации я всерьез думаю о смене брокера и изучаю возможные варианты на рынке. О дальнейшем развитии ситуации расскажу в комментариях.

Источник

Что недоговаривают Тинькофф Инвестиции. Вытаскиваем все данные по портфелю через API в большую таблицу Excel

Тинькофф Инвестиции — популярный российский брокер с передовым клиентским приложением для мобильных устройств и браузеров. Приложение призвано упростить процесс торговли и снизить порог входа в инвестиции до такого минимума, чтобы захватить максимально широкую аудиторию.

Однако, когда инвестиции приобретают серьёзный характер, инвестору нужны точные и подробные данные по его портфелю, в частности, для оценки эффективности инвестирования. И вот здесь с приложением возникают неоднозначности.

Описание проблемы

Рассмотрю на примере своего портфеля (не ИИС) в мобильном приложении. (С даты публикации приложение может обновиться).

На главном экране видим ободряющие значения:

У меня здесь сразу возникают вопросы:

Каким образом была посчитана эта зелёная сумма и 12,21%? Причём, несколько дней назад у меня было что-то около +17%, потом я зафиксировал одну бумагу с профитом, стоимость портфеля почти не изменилась, а вот этот зелёный «общий процент» сразу упал до 12,21.

За всё время — это за несколько лет инвестиций? Ещё есть опция: за сегодня. А какой процент у меня, например, за год?

Мой портфель почти полностью в иностранных бумагах и USD. Каким образом это было переведено в рубли: по курсу ЦБ или по рынку?

Сколько от этой суммы у меня реально останется после уплаты налогов и комиссий, если я продам весь портфель и выведу деньги?

Заходим в раздел Портфельная аналитика, и находим там уже другие значения:

Почему на главной странице было +955 644, а здесь почти на 2 миллиона больше?

Кстати, здесь уже можно посмотреть результаты за год, приложение выводит сумму, но не процент.

Пока всё выглядит весьма оптимистично, открываю профиль в Пульсе.

Вот это результат! Посмотрим по-подробнее.

Здесь приведены результаты по месяцам. За 4 месяца текущего года +6,67%, а если посмотреть на 2020 год, там у меня +31,41%. Для сравнения, если не ошибаюсь, S&P 500 за 2020 год вырос на 16,26%. Не совсем понимаю, как я мог его так обогнать, если только дело не в курсовой разнице. В любом случае, это не вяжется с обозначенными на главном экране +12,21% за всё время, т.к. 2019 и 2018 года тоже зелёные. В общем, не понятно, как и в какой валюте они считают, надо разбираться.

Поиск решения

Чтобы внести больше ясности в процесс инвестирования, сделать этот процесс более осознанным, мне нужно:

Разобраться, как вычисляются значения, отображаемые в мобильном приложении

Выяснить реальные показатели эффективности портфеля

Узнать общие суммы налога и комиссий, которые я уплатил за всё время

Вычислить сумму, которую я могу вывести со счёта, после уплаты налогов при продаже портфеля

Это особенно актуально в свете того, что портфель у меня, в основном, валютный, а налог считается в рублях относительно официального курса на день покупки актива. Поскольку я начал покупать бумаги несколько лет назад, когда USD был гораздо дешевле, налог при фиксации прибыли может оказаться огромным сюрпризом и съесть существенную часть отображаемой на главном экране суммы.

Собрать все возможные данные по портфелю и визуализировать их в удобной для меня форме, такой как таблица Excel, с которой я смогу дальше работать средствами самого Excel или Google Sheets.

Есть вариант пытать персонального менеджера и службу поддержки, но переписка с ними бывает утомительна, и они не помогут с визуализацией данных. Лучше написать программное средство, чтобы формировать результат в удобной для меня форме и делать это автоматически.

Здесь на выручку приходит Tinkoff API — средство для разработчиков ПО, позволяющее взаимодействовать с Тинькофф Инвестициями автоматизированными средствами.

Проблема только в том, что я не программист и с банковскими API раньше не работал. Видимо, пришла пора попробовать.

Знакомство с API

Находим официальную страницу Open API от Тинькофф:

На странице предлагаются SDK: Java, C#, Go, NodeJS.

Приведены и неофициальные: Python @daxartio,Python @Awethon, Python @Fatal1ty, PHP, Ruby.

Ничего из того, что я умею. В основном, я делал DIY проекты на Arduino-подобных контроллерах с WiFi, проектировал и заказывал для своих электронных устройств печатные платы, делал небольшие одностраничные WEB-интерфейсы и телеграм-боты для взаимодействия с этими устройствами. Т.е., в основном я работал с железом и писал прошивки на Arduino Wiring (на основе C++).

Из представленного списка мне больше всего импонировал Python, я писал на нём что-то на уровне print(‘Hello World’) и давно хотел познакомиться поглубже. Поэтому, я решил, что буду делать проект с Тинькофф API на Python.

Это сильно помогло мне продвинуться на начальном этапе: понять, как получать данные с API.

Если коротко, работает это так:

Устанавливаем и настраиваем его на своей машине

Устанавливаем через PIP библиотеку tinvest

Открываем редактор кода, например Idle, импортируем установленную библиотеку:

Создаём объект для дальнейшей работы с API:

В my_token выше подставлем свой API key, который получаем в личном кабинете брокера.

Я не стал пробовать в демо-счёте, сразу указал API своего реального портфеля.

Создаём объект с позициями портфеля:

positions = client.get_portfolio() Это сложный массив, который содержит информацию по каждой бумаге.

Создаём объект с операциями. Здесь указывается дата начала инвестирования и текущая дата в определённом формате.

operations = client.get_operations(from_=account_data[‘start_date’], to=account_data[‘now_date’])

Получаем рыночные курсы валют (понадобятся для дальнейших расчётов):

course_usd = client.get_market_orderbook(figi=’BBG0013HGFT4′, depth=20

course_eur = client.get_market_orderbook(figi=’BBG0013HJJ31′, depth=20)

И чтобы в нашей будущей таблице появились не только бумаги, но и валюты кэшем, запросим и их тоже:

Данные можно выводить сразу же через print , например:

for pos in positions.payload.positions:

Но наша цель — это Excel таблица. Для её формирования я выбрал библиотеку XlsxWriter:

Файлик с excel появляется в папке с программной. Если файл с таким названием уже есть в папке — он перезапишется. Поэтому, я сделал, чтобы в названии файла была текущая дата, так удобно потом сравнивать отчёты за разные дни / месяцы:

ecxelFileName = ‘tinkoffReport_’ + today + ‘.xlsx’

Так, на этом этапе, у меня получилась небольшая программка, создающая таблицу с базовой информацией по бумагам, получаемой по API, а именно:

Наименование, тикер, валюта бумаги, количество бумаг, средняя цена покупки, ожидаемая выручка.

Из имеющихся данных простой арифметикой высчитывались: текущая рыночная цена одного лота и суммарная стоимость всей позиции.

Писалось всё в Idle, выглядело как-то так: (НЕ ПОВТОРЯТЬ!)

НЕ ПОВТОРЯТЬ

Подглядывая в проекты других разработчиков на Python, я тогда ещё мало что понимал, но было очевидным, что их проекты пишутся совсем по-другому, и мне придётся менять структуру в корне.

Я решил переписать всё заново, как положено, и в более удобной среде разработки.

Знакомство с Python

В качестве более продвинутой среды, ребята с работы посоветовали PyCharm.

С ним дело пошло гораздо продуктивнее, среда автоматически дрессирует писать в соответствии с PEP8 (стандарт оформления кода).

Общие знания по Python я брал из своего любимого справочника: https://www.w3schools.com/

Просто прошерстил все его статьи по питону сверху вниз, и потом периодически обращался за подробностями.

Вообще, чисто субъективно, мне этот язык сразу понравился. Порадовала краткость путей решения задач. Сложилось впечатление, что если просто нужно, чтобы что-то заработало, оно здесь заработает в два счёта, без лишних заморочек. Гуглится всё элементарно, по крайней мере, на моём уровне сложности. Чаще всего, решения находил на https://stackoverflow.com/

Структура программы

Я решил разбить проект на 3 модуля (файлика .py) и отдельный файлик .txt с данными аккаунта.

Модуль main.py — основной модуль программы, который мы запускаем. В нём создаются классы объектов, происходят вычисления и формируются объекты, заполняясь полученными данными. Парсит только курсы валют по разным датам с API ЦБ РФ.

Модуль data_parser.py — содержет всего две функции, первая парсит данные аккаунта из текстового файла, а вторая из Тинькофф Инвестиций и больше программа к этому не возвращается.

Модуль excel_builder.py — большой модуль, который ничего не считает, только берёт данные из main.py и строит огромную красивую таблицу.

Структура таблицы

— Позиции

В левой части таблицы выводится информация по текущему портфелю:

Параметры (базовые, из API):

name — название бумаги

ticker — тикер

balance — количество бумаг в портфеле

currency — валюта

ave.price — средняя цена покупки в валюте

exp.yield — ожидаемая прибыль с продажи (без учёта налогов и комиссий)

Тут, кстати, стало понятно, откуда взялась сумма 955 644 руб (+12,21%) на главном экране приложения — это как раз и есть суммарный exp.yield в рублях по рыночному курсу.

Параметры, посчитанные на основе базовых:

market price — текущая рыночная цена одной бумаги (ave.price + exp.yield)

% change — процент изменения стоимости актива (market_price / ave.price) * 100) — 100)

market value — текущая рыночная стоимость всей позиции (market_price * balance)

market value RUB — рыночная стоимость всей позиции в пересчёте на рубли по текущему рыночному (не ЦБ) курсу

ave. % — среднее арифметическое всех % change. Сейчас я понимаю, что это бесполезный параметр. Надо было считать по-другому, возможно исправлю в следующих версиях программы.

total value: — рыночная стоимость портфеля в рублях (сумма всех market value RUB)

Как видим из скриншота, total value составляет 8 782 836, что близко к значению на главном экране приложения: 8 782 160р, но не соответствует ему точь-в-точь. Отклонение составляет 0,0077%. Не существенно, но чем вызвано, я не совсем понимаю. Если есть идеи по исправлению — напишите, пожалуйста, в комментариях.

Дальше — интереснее!

Сразу после блока с рыночными ценами, располагается самый сложный, с точки зрения расчётов, блок: стоимость активов по ЦБ и расчёт ожидаемого налога при продаже.

CB value RUB — стоимость позиции в рублях по курсу ЦБ на сегодня.

Внизу считается сумма, которая у меня составила 8 749 045 — это оценка стоимости моего портфеля, с точки зрения ЦБ, и она отличается от рыночной стоимости на 33 791 руб, что вполне нормально.

ave.buy in RUB — средняя стоимость покупки в рублях по курсу ЦБ на дату покупки. Это важный параметр для последующего расчёта налога.

Сложность в том, что бумага могла приобретаться частями, в разные дни, а могла частично продаваться. Здесь действует такое правило, что первой продаётся та бумага, которая первой покупалась.

Чтобы решить эту задачу, я придумал сделать для каждой позиции упорядоченный список (массив). Программа пробегает по всем операциям покупки, находя операции с figi данной бумаги, и каждая покупка добавляет в список количество ячеек, соответствующее количеству приобретённых бумаг. Каждая ячейка содержит значение, соответствующее цене покупки в рублях по курсу ЦБ на дату операции. А каждая продажа удаляет нужное количество ячеек из начала списка. Затем считается среднее значение по оставшимся ячейкам, так получается средняя цена покупки в рублях по курсу ЦБ.

Был небольшой подвох, связанный с тем, что в списке операций от Tinkoff API есть не только выполненные, но и нулевые операции, которые пришлось отсеивать.

Чтобы API ЦБ РФ не решил, что мы его ддосим, я поставил небольшую задержку. В итоге, всё считается как надо, но этот этап обрабатывается ощутимо медленно. Чтобы обработались мои 15 позиций и 430 операций, приходится ждать около 1 минуты.

Наверняка это можно как-то оптимизировать, но, в принципе, мы не торопимся.

Разобравшись с самым сложным этапом, можно составить следующие колоночки:

sum.buy in RUB — сумма покупки позиции в рублях по курсу ЦБ (ave.buy in RUB * balance)

Внизу считается сумма, которая составила 7 178 123 — на такую сумму, по мнению ЦБ, я приобрёл текущие активы.

tax base — налоговая база (sum.buy in RUBCB value RUB)

expected tax — ожидаемый налог по ставке 13%, который нам насчитают, если продать бумагу сейчас.

Внизу получилась сумма: 207 145 руб. — такой налог будет удержан, если я продам весь портфель сейчас.

— Операции

Справа от раздела с позициями, выводим колоночки со всем типами операций, которые может нам предоставить Tinkoff API. Их много, на один скриншот не влезают, но на большом мониторе помещается:

Под каждой колоночкой считается сумма. Это как раз то, что нам не покажет брокер. И здесь есть кое-что интересное.

Теперь мы можем сравнить сумму внесённых средств и сумму выведенных (в переводе на рубли по курсу ЦБ)

Ещё можно посчитать сумму всех купонов и дивидендов, а также, внимание:

все комиссии, уплаченные брокеру, и все налоги, удержанные брокером!

Итак, вот мы получили и разложили перед глазами все имеющиеся данные.

Теперь можно сделать из них выводы.

— Аналитика

Я впихнул этот маленький раздел прямо под таблицей с позициями.

Investing period — период инвестирования с даты, которую мы указали в текстовом файлике до сегодняшней даты. По идее, должен пригодиться для последующих расчётов эффективности инвестирования.

Кстати, что касается дат, я не учитывал часовые пояса, и это может где-то выплыть.

PayIn — PayOut — разница между внесёнными на счёт средствами и выведенными по курсу ЦБ на дату операции. У меня это получилось 5 843 172 руб — столько средств я задонатил на свой счёт.

Commissions payed — сумма всех комиссий, уплаченных брокеру. У меня она составила 17 315 руб, из которых 2200 руб — это 2% побор за участие в IPO Сегежа, в которое я впутался пару дней назад. Если не принимать его во внимание, то за всё время я заплатил всего около 15 000 руб комиссий, что, я считаю, достаточно мало. На тарифе Премиум при покупке $1000 я плачу всего 18,22 руб комиссии.

Кстати, из-за появления в портфеле позиции «Сегежа» в первый день после IPO программа не могла выполниться и выдавала ошибку. На следующий день по бумаге с API стали приходить нормальные данные и программа снова заработала.

Taxes payed — сумма налогов, уплаченных брокером только в российский бюджет. Налог с дивидендов, уплаченный в других странах, здесь не учитывается, его надо заказывать отдельной справкой в личном кабинете.

Если что, форма W8BEN, у меня, на данный момент, по некоторым причинам, не действует.

Итого, в российский бюджет я уже уплатил 117 631 руб, и, как было посчитано выше, мне предстоит уплатить ещё порядка 207К, если я зафиксирую портфель сейчас.

Здесь ещё раз уточню: налог считается в рублях, и если мы купили бумагу за $100 при курсе ЦБ 60р за доллар, а через год, когда доллар стал стоить 80р, продали эту бумагу за те же $100, мы должны будем заплатить налог 260р за счёт курсовой разницы, потому что, с точки зрения ЦБ, мы купили бумагу за 6000р, а продали за 8000р, хотя ни одного $ мы не заработали.

Clean portfolio — стоимость нашего портфеля по текущему рыночному курсу за вычетом предстоящего налога. Это те деньги, которые мы реально сможем вывести, если зафиксируем весь портфель сейчас. Сюда ещё можно накинуть комиссию брокера, но она варьируется, и я не стал её хардкодить. Навскидку, если у меня портфель примерно $116000 и тариф Премиум, комиссия за продажу всех активов получится где-то примерно 2000р. И ещё почти столько же, если я захочу поменять в рубли. Если не ошибаюсь, в Тинькофф Инвестициях комиссия на всё одинаковая.

Profit — сумма, которую мы заработаем при фиксации портфеля сегодня. Считается как Clean portfolio — (PayIn — PayOut), т.е., полученные средства, очищенные от налогов, минус вложенные средства. У меня получилась сумма 2 732 519, что похоже на сумму «Доход за всё время» из раздела «Портфельная аналитика» в мобильном приложении, только за вычетом налога 207К. Расхождение около 2500 руб. Не знаю, насколько это здесь существенно.

В общем-то, это пока всё, что я сделал.

Заключение

Осталась неподсчитанной эффективность вложений. Мы знаем точный период инвестирования, знаем профит. Однако, сложность в том, что вложенные средства не были зачислены разово, а поступали на счёт периодически, разными суммами, а иногда выводились. Для расчёта эффективности инвестирования нужно что-то вроде формулы XIRR в Excel, но я пока не сообразил, как вкрутить её в эту программу. Если у вас есть идеи на этот счёт — поделитесь, пожалуйста.

Зато, мы разобрались, откуда получаются значения, приводимые в клиентском приложении.

Также, мы узнали суммы комиссий и налогов, как уплаченные, так и ожидаемые.

Нашли реальную сумму, которую сможем вывести со счёта при фиксации портфеля, после удержания налогов.

А главное: получили возможность одним кликом собирать все данные по портфелю со всеми операциями в одну большую таблицу Excel, с которой дальше можем работать средствами самого Excel, можем экспортировать в Google Sheets, или просто сохранить как архив для анализа в будущем.

В планах сделать оконную версию программы с интерфейсом в виде приложения .exe для тех, кто не хочет возиться с установкой Python на свою машину, и при этом ещё не боится вводить данные своего аккаунта в приложение неизвестного разработчика (я бы, наверно, не рискнул).

Это мой первый проект на Python и первая публикация на Хабре.

Надеюсь, информация окажется полезной для улучшения взаимодействия с приложениями Тинькофф, работы с API и разработки подобных программ, а также поспособствует более осознанному инвестированию, а следовательно, повысит ваше благосостояние. Благодарю, что дочитали до конца.

Источник

Содержание

  1. Ошибка выполнения запроса в Тинькофф Инвестиции — что значит и как исправить?
  2. Что означает?
  3. Как исправить ошибку выполнения запроса?
  4. Видео-инструкция
  5. Проблемы с совершением операций через приложение Тинькофф-инвестиции
  6. Что недоговаривают Тинькофф Инвестиции. Вытаскиваем все данные по портфелю через API в большую таблицу Excel
  7. Описание проблемы
  8. Поиск решения
  9. Знакомство с API
  10. Знакомство с Python
  11. Структура программы
  12. Структура таблицы
  13. — Позиции
  14. — Операции
  15. — Аналитика
  16. Заключение

Ошибка выполнения запроса в Тинькофф Инвестиции — что значит и как исправить?

Иногда пользователи Тинькофф Инвестиции при попытке выполнить определенную операцию со своим брокерским счетом, сталкиваются с такой проблемой, как ошибка выполнения запроса. В связи с этим возникает вопрос, как устранить в Тинькофф Инвестиции ошибку и из-за чего проблема может появиться. Попробуем в этом детально разобраться.

Что означает?

При возникновении ошибки такого типа система не отвечает на запрос, посылаемый пользователем. Проявляться это может в виде следующих сбоев:

    В приложении Тинькофф Инвестиции не открывается история совершенных операций, а также невозможно посмотреть данные по портфелю. При переходе в соответствующий раздел может появиться сообщение с предложением попробовать зайти позже. Возникновение проблем при попытке приобрести валюту. Согласно отзывам пользователей, при отправке такого запроса могут появляться следующие сообщения: «ошибка создания запроса» или «Поручение было отклонено. Пожалуйста, попробуйте совершить сделку меньшего объема». Произвольное выставление стоп-заявок в то время, когда пользователь не совершал какие-либо операции в личном кабинете. Отсутствие информации о рыночной цене ценной бумаги. В этом случае провести сделку по купле такого финансового инструмента не получится. Также к ошибке выполнения запроса можно отнести ситуацию, когда пользователь пытался приобрести ценную бумагу, однако сделка не совершалась. При этом деньги на счете оказались заморожены.

Таким образом, пользователи Тинькофф Инвестиции периодически сталкиваются с разными проявлениями ошибки выполнения запроса. К сбоям, которые не были упомянуты выше, также можно отнести нулевую цену акций или же неправильное отражение системой стоимости ценных бумаг.

Как исправить ошибку выполнения запроса?

При возникновении ошибки выполнения запроса порядок действий по ее устранению будет зависеть от характера сбоя. Попав в подобную ситуацию, можно предпринять следующие меры:

    Войти в приложение спустя некоторое время. К примеру, такую рекомендацию дали сотрудники брокера Тинькофф, когда у некоторых пользователей пропал доступ к истории операций и портфелю ценных бумаг. В этом случае достаточно было просто немного подождать, после чего еще раз попробовать открыть недоступный раздел. Если же проблема связана с произвольным выставлением стоп-заявок, неправильным отражением стоимости акций, отсутствием рыночной цены ценной бумаги или с другими аналогичными видами сбоев, то в этом случае придется обращаться в службу поддержки брокера.

Необходимо написать сообщение, подробно изложив в нем суть возникшей проблемы. Если в результате ошибки запроса пользователь потерял деньги, то ему также следует включить в письмо требование о компенсации суммы, потерянной по причине некорректной работы приложения Тинькофф Инвестиции.

В целом, видно из отзывов пользователей, работающих в приложении Тинькофф Инвестиции, что ошибка выполнения запросов, различные сбои и баги — здесь достаточно частое явление. И если временное отсутствие доступа к той или иной операции, можно переждать, то потерю денег из-за нерабочей системы невозможно оставить без внимания. В последнем случае необходимо добиваться компенсации убытков, понесенных по вине брокера.

Видео-инструкция

Источник

Проблемы с совершением операций через приложение Тинькофф-инвестиции

Я пользуюсь картой Тинькофф блек около года. 3 недели назад открыл брокерский счет и скачал приложение Тинькофф инвестиции. Прошел обучающий курс, после чего завел туда небольшую сумму и начал покупать разные недорогие бумаги.

В выходные 21-22 ноября решил сконвертировать доллары с дебетовой карты в евро и рубли. Так как делать это выгоднее через брокерский счет, то решил провести операцию там. В понедельник 23 ноября, сразу после открытия торгов, перевел желаемую сумму в долларах на брокерский счет. Но при попытке продать их, получал ошибку с текстом — «Ошибка создания заявки. [GW] «Скорректированное значение НПР1 меньше 0. Непокрытая позиция по неликвидному инструменту». «

После примерно 10 неудачных попыток, перевел деньги обратно на карту Тинькофф блек и конвертировал там по менее выгодному курсу.

Спустя примерно час, зашел в приложение тинькофф инвестиции и увидел там непонятные цифры в графе доллары — была минусовая сумма, равная той, которую я пытался конвертировать. А в графе рубли — сумму, которую я бы получил в результате конвертации.

Написал в чат поддержки и получил ответ, что у них технические проблемы и они уже устранены. Я перезапустил приложение, но по прежнему видел эти цифры. Снова написал в поддержку, но не получал ответ примерно 2 часа.

После этого я позвонил через приложение в поддержку. Сотрудник банка сказал мне, что я каким-то образом совершил сделку — шорт на то количество долларов, которое я пытался продать. Я не понимаю как это могло случиться. Я никогда не включал опцию маржинальной торговли. Сотрудник банка посоветовал мне закрыть сделку самому, купив нужное количество долларов, а он составит обращение для рассмотрения ситуации.

После завершения разговора, пробую купить необходимое количество долларов, но мне не хватает денег на счете, пришлось его пополнить. Но даже после пополнения я не смог купить доллары и получил туже самую ошибку, как на скриншоте выше. Снова позвонил в поддержку, но это не принесло никаких результатов. Сами они сделку закрыть не могут, просили ждать ответа на обращение. Номинально до 26го Ноября, но заверили, что сделают все возможное, чтобы решить проблемы быстро.

Спустя какое-то время получил сообщение от девушки в чате, что есть проблемы на их стороне, они их решают и она тоже порекомендовала мне выкупить доллары. Но я по прежнему не мог это сделать, постоянно получая ошибку. Она тоже заверила меня, что они ответят и решат мою ситуацию как можно скорее.

Сегодня утром, 24 ноября после открытия торгов я смог выкупить доллары обратно, заплатив при этом комиссию брокеру. Несмотря на обещания трех сотрудников банка, что мое обращение будет быстро рассмотрено, на момент написания отзыва — 19.00 24 Ноября я не получил никаких ответов, объяснений или компенсаций от банка.

Подведу итог — я не смог совершить сделку по продаже валюты через брокерский счет и потерял на этом деньги из-за разницы в курсах. Банк непонятным образом(скорее всего из-за технической ошибки) оформил операцию по заключению мною сделки на шорт без моего ведома. Отменить эту сделку я не мог практически сутки. Ни через приложение — выкупив доллары обратно, ни через звонки в поддержку.

В итоге спустя сутки смог выкупить позицию, но пришлось заплатить комиссию банку. Несмотря на то, что трое сотрудников заверили меня, что вопрос будет решен быстро, вопрос не был решен в течение двух рабочих дней. Оба обращения, созданные сотрудниками банка до сих пор не рассмотрены. После этой ситуации я всерьез думаю о смене брокера и изучаю возможные варианты на рынке. О дальнейшем развитии ситуации расскажу в комментариях.

Источник

Что недоговаривают Тинькофф Инвестиции. Вытаскиваем все данные по портфелю через API в большую таблицу Excel

Тинькофф Инвестиции — популярный российский брокер с передовым клиентским приложением для мобильных устройств и браузеров. Приложение призвано упростить процесс торговли и снизить порог входа в инвестиции до такого минимума, чтобы захватить максимально широкую аудиторию.

Однако, когда инвестиции приобретают серьёзный характер, инвестору нужны точные и подробные данные по его портфелю, в частности, для оценки эффективности инвестирования. И вот здесь с приложением возникают неоднозначности.

Описание проблемы

Рассмотрю на примере своего портфеля (не ИИС) в мобильном приложении. (С даты публикации приложение может обновиться).

На главном экране видим ободряющие значения:

У меня здесь сразу возникают вопросы:

Каким образом была посчитана эта зелёная сумма и 12,21%? Причём, несколько дней назад у меня было что-то около +17%, потом я зафиксировал одну бумагу с профитом, стоимость портфеля почти не изменилась, а вот этот зелёный «общий процент» сразу упал до 12,21.

За всё время — это за несколько лет инвестиций? Ещё есть опция: за сегодня. А какой процент у меня, например, за год?

Мой портфель почти полностью в иностранных бумагах и USD. Каким образом это было переведено в рубли: по курсу ЦБ или по рынку?

Сколько от этой суммы у меня реально останется после уплаты налогов и комиссий, если я продам весь портфель и выведу деньги?

Заходим в раздел Портфельная аналитика, и находим там уже другие значения:

Почему на главной странице было +955 644, а здесь почти на 2 миллиона больше?

Кстати, здесь уже можно посмотреть результаты за год, приложение выводит сумму, но не процент.

Пока всё выглядит весьма оптимистично, открываю профиль в Пульсе.

Вот это результат! Посмотрим по-подробнее.

Здесь приведены результаты по месяцам. За 4 месяца текущего года +6,67%, а если посмотреть на 2020 год, там у меня +31,41%. Для сравнения, если не ошибаюсь, S&P 500 за 2020 год вырос на 16,26%. Не совсем понимаю, как я мог его так обогнать, если только дело не в курсовой разнице. В любом случае, это не вяжется с обозначенными на главном экране +12,21% за всё время, т.к. 2019 и 2018 года тоже зелёные. В общем, не понятно, как и в какой валюте они считают, надо разбираться.

Поиск решения

Чтобы внести больше ясности в процесс инвестирования, сделать этот процесс более осознанным, мне нужно:

Разобраться, как вычисляются значения, отображаемые в мобильном приложении

Выяснить реальные показатели эффективности портфеля

Узнать общие суммы налога и комиссий, которые я уплатил за всё время

Вычислить сумму, которую я могу вывести со счёта, после уплаты налогов при продаже портфеля

Это особенно актуально в свете того, что портфель у меня, в основном, валютный, а налог считается в рублях относительно официального курса на день покупки актива. Поскольку я начал покупать бумаги несколько лет назад, когда USD был гораздо дешевле, налог при фиксации прибыли может оказаться огромным сюрпризом и съесть существенную часть отображаемой на главном экране суммы.

Собрать все возможные данные по портфелю и визуализировать их в удобной для меня форме, такой как таблица Excel, с которой я смогу дальше работать средствами самого Excel или Google Sheets.

Есть вариант пытать персонального менеджера и службу поддержки, но переписка с ними бывает утомительна, и они не помогут с визуализацией данных. Лучше написать программное средство, чтобы формировать результат в удобной для меня форме и делать это автоматически.

Здесь на выручку приходит Tinkoff API — средство для разработчиков ПО, позволяющее взаимодействовать с Тинькофф Инвестициями автоматизированными средствами.

Проблема только в том, что я не программист и с банковскими API раньше не работал. Видимо, пришла пора попробовать.

Знакомство с API

Находим официальную страницу Open API от Тинькофф:

На странице предлагаются SDK: Java, C#, Go, NodeJS.

Приведены и неофициальные: Python @daxartio,Python @Awethon, Python @Fatal1ty, PHP, Ruby.

Ничего из того, что я умею. В основном, я делал DIY проекты на Arduino-подобных контроллерах с WiFi, проектировал и заказывал для своих электронных устройств печатные платы, делал небольшие одностраничные WEB-интерфейсы и телеграм-боты для взаимодействия с этими устройствами. Т.е., в основном я работал с железом и писал прошивки на Arduino Wiring (на основе C++).

Из представленного списка мне больше всего импонировал Python, я писал на нём что-то на уровне print(‘Hello World’) и давно хотел познакомиться поглубже. Поэтому, я решил, что буду делать проект с Тинькофф API на Python.

Это сильно помогло мне продвинуться на начальном этапе: понять, как получать данные с API.

Если коротко, работает это так:

Устанавливаем и настраиваем его на своей машине

Устанавливаем через PIP библиотеку tinvest

Открываем редактор кода, например Idle, импортируем установленную библиотеку:

Создаём объект для дальнейшей работы с API:

В my_token выше подставлем свой API key, который получаем в личном кабинете брокера.

Я не стал пробовать в демо-счёте, сразу указал API своего реального портфеля.

Создаём объект с позициями портфеля:

positions = client.get_portfolio() Это сложный массив, который содержит информацию по каждой бумаге.

Создаём объект с операциями. Здесь указывается дата начала инвестирования и текущая дата в определённом формате.

operations = client.get_operations(from_=account_data[‘start_date’], to=account_data[‘now_date’])

Получаем рыночные курсы валют (понадобятся для дальнейших расчётов):

course_usd = client.get_market_orderbook(figi=’BBG0013HGFT4′, depth=20

course_eur = client.get_market_orderbook(figi=’BBG0013HJJ31′, depth=20)

И чтобы в нашей будущей таблице появились не только бумаги, но и валюты кэшем, запросим и их тоже:

Данные можно выводить сразу же через print , например:

for pos in positions.payload.positions:

Но наша цель — это Excel таблица. Для её формирования я выбрал библиотеку XlsxWriter:

Файлик с excel появляется в папке с программной. Если файл с таким названием уже есть в папке — он перезапишется. Поэтому, я сделал, чтобы в названии файла была текущая дата, так удобно потом сравнивать отчёты за разные дни / месяцы:

ecxelFileName = ‘tinkoffReport_’ + today + ‘.xlsx’

Так, на этом этапе, у меня получилась небольшая программка, создающая таблицу с базовой информацией по бумагам, получаемой по API, а именно:

Наименование, тикер, валюта бумаги, количество бумаг, средняя цена покупки, ожидаемая выручка.

Из имеющихся данных простой арифметикой высчитывались: текущая рыночная цена одного лота и суммарная стоимость всей позиции.

Писалось всё в Idle, выглядело как-то так: (НЕ ПОВТОРЯТЬ!)

НЕ ПОВТОРЯТЬ

Подглядывая в проекты других разработчиков на Python, я тогда ещё мало что понимал, но было очевидным, что их проекты пишутся совсем по-другому, и мне придётся менять структуру в корне.

Я решил переписать всё заново, как положено, и в более удобной среде разработки.

Знакомство с Python

В качестве более продвинутой среды, ребята с работы посоветовали PyCharm.

С ним дело пошло гораздо продуктивнее, среда автоматически дрессирует писать в соответствии с PEP8 (стандарт оформления кода).

Общие знания по Python я брал из своего любимого справочника: https://www.w3schools.com/

Просто прошерстил все его статьи по питону сверху вниз, и потом периодически обращался за подробностями.

Вообще, чисто субъективно, мне этот язык сразу понравился. Порадовала краткость путей решения задач. Сложилось впечатление, что если просто нужно, чтобы что-то заработало, оно здесь заработает в два счёта, без лишних заморочек. Гуглится всё элементарно, по крайней мере, на моём уровне сложности. Чаще всего, решения находил на https://stackoverflow.com/

Структура программы

Я решил разбить проект на 3 модуля (файлика .py) и отдельный файлик .txt с данными аккаунта.

Модуль main.py — основной модуль программы, который мы запускаем. В нём создаются классы объектов, происходят вычисления и формируются объекты, заполняясь полученными данными. Парсит только курсы валют по разным датам с API ЦБ РФ.

Модуль data_parser.py — содержет всего две функции, первая парсит данные аккаунта из текстового файла, а вторая из Тинькофф Инвестиций и больше программа к этому не возвращается.

Модуль excel_builder.py — большой модуль, который ничего не считает, только берёт данные из main.py и строит огромную красивую таблицу.

Структура таблицы

— Позиции

В левой части таблицы выводится информация по текущему портфелю:

Параметры (базовые, из API):

name — название бумаги

ticker — тикер

balance — количество бумаг в портфеле

currency — валюта

ave.price — средняя цена покупки в валюте

exp.yield — ожидаемая прибыль с продажи (без учёта налогов и комиссий)

Тут, кстати, стало понятно, откуда взялась сумма 955 644 руб (+12,21%) на главном экране приложения — это как раз и есть суммарный exp.yield в рублях по рыночному курсу.

Параметры, посчитанные на основе базовых:

market price — текущая рыночная цена одной бумаги (ave.price + exp.yield)

% change — процент изменения стоимости актива (market_price / ave.price) * 100) — 100)

market value — текущая рыночная стоимость всей позиции (market_price * balance)

market value RUB — рыночная стоимость всей позиции в пересчёте на рубли по текущему рыночному (не ЦБ) курсу

ave. % — среднее арифметическое всех % change. Сейчас я понимаю, что это бесполезный параметр. Надо было считать по-другому, возможно исправлю в следующих версиях программы.

total value: — рыночная стоимость портфеля в рублях (сумма всех market value RUB)

Как видим из скриншота, total value составляет 8 782 836, что близко к значению на главном экране приложения: 8 782 160р, но не соответствует ему точь-в-точь. Отклонение составляет 0,0077%. Не существенно, но чем вызвано, я не совсем понимаю. Если есть идеи по исправлению — напишите, пожалуйста, в комментариях.

Дальше — интереснее!

Сразу после блока с рыночными ценами, располагается самый сложный, с точки зрения расчётов, блок: стоимость активов по ЦБ и расчёт ожидаемого налога при продаже.

CB value RUB — стоимость позиции в рублях по курсу ЦБ на сегодня.

Внизу считается сумма, которая у меня составила 8 749 045 — это оценка стоимости моего портфеля, с точки зрения ЦБ, и она отличается от рыночной стоимости на 33 791 руб, что вполне нормально.

ave.buy in RUB — средняя стоимость покупки в рублях по курсу ЦБ на дату покупки. Это важный параметр для последующего расчёта налога.

Сложность в том, что бумага могла приобретаться частями, в разные дни, а могла частично продаваться. Здесь действует такое правило, что первой продаётся та бумага, которая первой покупалась.

Чтобы решить эту задачу, я придумал сделать для каждой позиции упорядоченный список (массив). Программа пробегает по всем операциям покупки, находя операции с figi данной бумаги, и каждая покупка добавляет в список количество ячеек, соответствующее количеству приобретённых бумаг. Каждая ячейка содержит значение, соответствующее цене покупки в рублях по курсу ЦБ на дату операции. А каждая продажа удаляет нужное количество ячеек из начала списка. Затем считается среднее значение по оставшимся ячейкам, так получается средняя цена покупки в рублях по курсу ЦБ.

Был небольшой подвох, связанный с тем, что в списке операций от Tinkoff API есть не только выполненные, но и нулевые операции, которые пришлось отсеивать.

Чтобы API ЦБ РФ не решил, что мы его ддосим, я поставил небольшую задержку. В итоге, всё считается как надо, но этот этап обрабатывается ощутимо медленно. Чтобы обработались мои 15 позиций и 430 операций, приходится ждать около 1 минуты.

Наверняка это можно как-то оптимизировать, но, в принципе, мы не торопимся.

Разобравшись с самым сложным этапом, можно составить следующие колоночки:

sum.buy in RUB — сумма покупки позиции в рублях по курсу ЦБ (ave.buy in RUB * balance)

Внизу считается сумма, которая составила 7 178 123 — на такую сумму, по мнению ЦБ, я приобрёл текущие активы.

tax base — налоговая база (sum.buy in RUBCB value RUB)

expected tax — ожидаемый налог по ставке 13%, который нам насчитают, если продать бумагу сейчас.

Внизу получилась сумма: 207 145 руб. — такой налог будет удержан, если я продам весь портфель сейчас.

— Операции

Справа от раздела с позициями, выводим колоночки со всем типами операций, которые может нам предоставить Tinkoff API. Их много, на один скриншот не влезают, но на большом мониторе помещается:

Под каждой колоночкой считается сумма. Это как раз то, что нам не покажет брокер. И здесь есть кое-что интересное.

Теперь мы можем сравнить сумму внесённых средств и сумму выведенных (в переводе на рубли по курсу ЦБ)

Ещё можно посчитать сумму всех купонов и дивидендов, а также, внимание:

все комиссии, уплаченные брокеру, и все налоги, удержанные брокером!

Итак, вот мы получили и разложили перед глазами все имеющиеся данные.

Теперь можно сделать из них выводы.

— Аналитика

Я впихнул этот маленький раздел прямо под таблицей с позициями.

Investing period — период инвестирования с даты, которую мы указали в текстовом файлике до сегодняшней даты. По идее, должен пригодиться для последующих расчётов эффективности инвестирования.

Кстати, что касается дат, я не учитывал часовые пояса, и это может где-то выплыть.

PayIn — PayOut — разница между внесёнными на счёт средствами и выведенными по курсу ЦБ на дату операции. У меня это получилось 5 843 172 руб — столько средств я задонатил на свой счёт.

Commissions payed — сумма всех комиссий, уплаченных брокеру. У меня она составила 17 315 руб, из которых 2200 руб — это 2% побор за участие в IPO Сегежа, в которое я впутался пару дней назад. Если не принимать его во внимание, то за всё время я заплатил всего около 15 000 руб комиссий, что, я считаю, достаточно мало. На тарифе Премиум при покупке $1000 я плачу всего 18,22 руб комиссии.

Кстати, из-за появления в портфеле позиции «Сегежа» в первый день после IPO программа не могла выполниться и выдавала ошибку. На следующий день по бумаге с API стали приходить нормальные данные и программа снова заработала.

Taxes payed — сумма налогов, уплаченных брокером только в российский бюджет. Налог с дивидендов, уплаченный в других странах, здесь не учитывается, его надо заказывать отдельной справкой в личном кабинете.

Если что, форма W8BEN, у меня, на данный момент, по некоторым причинам, не действует.

Итого, в российский бюджет я уже уплатил 117 631 руб, и, как было посчитано выше, мне предстоит уплатить ещё порядка 207К, если я зафиксирую портфель сейчас.

Здесь ещё раз уточню: налог считается в рублях, и если мы купили бумагу за $100 при курсе ЦБ 60р за доллар, а через год, когда доллар стал стоить 80р, продали эту бумагу за те же $100, мы должны будем заплатить налог 260р за счёт курсовой разницы, потому что, с точки зрения ЦБ, мы купили бумагу за 6000р, а продали за 8000р, хотя ни одного $ мы не заработали.

Clean portfolio — стоимость нашего портфеля по текущему рыночному курсу за вычетом предстоящего налога. Это те деньги, которые мы реально сможем вывести, если зафиксируем весь портфель сейчас. Сюда ещё можно накинуть комиссию брокера, но она варьируется, и я не стал её хардкодить. Навскидку, если у меня портфель примерно $116000 и тариф Премиум, комиссия за продажу всех активов получится где-то примерно 2000р. И ещё почти столько же, если я захочу поменять в рубли. Если не ошибаюсь, в Тинькофф Инвестициях комиссия на всё одинаковая.

Profit — сумма, которую мы заработаем при фиксации портфеля сегодня. Считается как Clean portfolio — (PayIn — PayOut), т.е., полученные средства, очищенные от налогов, минус вложенные средства. У меня получилась сумма 2 732 519, что похоже на сумму «Доход за всё время» из раздела «Портфельная аналитика» в мобильном приложении, только за вычетом налога 207К. Расхождение около 2500 руб. Не знаю, насколько это здесь существенно.

В общем-то, это пока всё, что я сделал.

Заключение

Осталась неподсчитанной эффективность вложений. Мы знаем точный период инвестирования, знаем профит. Однако, сложность в том, что вложенные средства не были зачислены разово, а поступали на счёт периодически, разными суммами, а иногда выводились. Для расчёта эффективности инвестирования нужно что-то вроде формулы XIRR в Excel, но я пока не сообразил, как вкрутить её в эту программу. Если у вас есть идеи на этот счёт — поделитесь, пожалуйста.

Зато, мы разобрались, откуда получаются значения, приводимые в клиентском приложении.

Также, мы узнали суммы комиссий и налогов, как уплаченные, так и ожидаемые.

Нашли реальную сумму, которую сможем вывести со счёта при фиксации портфеля, после удержания налогов.

А главное: получили возможность одним кликом собирать все данные по портфелю со всеми операциями в одну большую таблицу Excel, с которой дальше можем работать средствами самого Excel, можем экспортировать в Google Sheets, или просто сохранить как архив для анализа в будущем.

В планах сделать оконную версию программы с интерфейсом в виде приложения .exe для тех, кто не хочет возиться с установкой Python на свою машину, и при этом ещё не боится вводить данные своего аккаунта в приложение неизвестного разработчика (я бы, наверно, не рискнул).

Это мой первый проект на Python и первая публикация на Хабре.

Надеюсь, информация окажется полезной для улучшения взаимодействия с приложениями Тинькофф, работы с API и разработки подобных программ, а также поспособствует более осознанному инвестированию, а следовательно, повысит ваше благосостояние. Благодарю, что дочитали до конца.

Источник

Содержание

  1. Ошибка выполнения запроса в Тинькофф Инвестиции — что значит и как исправить?
  2. Что означает?
  3. Как исправить ошибку выполнения запроса?
  4. Видео-инструкция
  5. Проблемы с совершением операций через приложение Тинькофф-инвестиции
  6. Что недоговаривают Тинькофф Инвестиции. Вытаскиваем все данные по портфелю через API в большую таблицу Excel
  7. Описание проблемы
  8. Поиск решения
  9. Знакомство с API
  10. Знакомство с Python
  11. Структура программы
  12. Структура таблицы
  13. — Позиции
  14. — Операции
  15. — Аналитика
  16. Заключение

Ошибка выполнения запроса в Тинькофф Инвестиции — что значит и как исправить?

Иногда пользователи Тинькофф Инвестиции при попытке выполнить определенную операцию со своим брокерским счетом, сталкиваются с такой проблемой, как ошибка выполнения запроса. В связи с этим возникает вопрос, как устранить в Тинькофф Инвестиции ошибку и из-за чего проблема может появиться. Попробуем в этом детально разобраться.

Что означает?

При возникновении ошибки такого типа система не отвечает на запрос, посылаемый пользователем. Проявляться это может в виде следующих сбоев:

    В приложении Тинькофф Инвестиции не открывается история совершенных операций, а также невозможно посмотреть данные по портфелю. При переходе в соответствующий раздел может появиться сообщение с предложением попробовать зайти позже. Возникновение проблем при попытке приобрести валюту. Согласно отзывам пользователей, при отправке такого запроса могут появляться следующие сообщения: «ошибка создания запроса» или «Поручение было отклонено. Пожалуйста, попробуйте совершить сделку меньшего объема». Произвольное выставление стоп-заявок в то время, когда пользователь не совершал какие-либо операции в личном кабинете. Отсутствие информации о рыночной цене ценной бумаги. В этом случае провести сделку по купле такого финансового инструмента не получится. Также к ошибке выполнения запроса можно отнести ситуацию, когда пользователь пытался приобрести ценную бумагу, однако сделка не совершалась. При этом деньги на счете оказались заморожены.

Таким образом, пользователи Тинькофф Инвестиции периодически сталкиваются с разными проявлениями ошибки выполнения запроса. К сбоям, которые не были упомянуты выше, также можно отнести нулевую цену акций или же неправильное отражение системой стоимости ценных бумаг.

Как исправить ошибку выполнения запроса?

При возникновении ошибки выполнения запроса порядок действий по ее устранению будет зависеть от характера сбоя. Попав в подобную ситуацию, можно предпринять следующие меры:

    Войти в приложение спустя некоторое время. К примеру, такую рекомендацию дали сотрудники брокера Тинькофф, когда у некоторых пользователей пропал доступ к истории операций и портфелю ценных бумаг. В этом случае достаточно было просто немного подождать, после чего еще раз попробовать открыть недоступный раздел. Если же проблема связана с произвольным выставлением стоп-заявок, неправильным отражением стоимости акций, отсутствием рыночной цены ценной бумаги или с другими аналогичными видами сбоев, то в этом случае придется обращаться в службу поддержки брокера.

Необходимо написать сообщение, подробно изложив в нем суть возникшей проблемы. Если в результате ошибки запроса пользователь потерял деньги, то ему также следует включить в письмо требование о компенсации суммы, потерянной по причине некорректной работы приложения Тинькофф Инвестиции.

В целом, видно из отзывов пользователей, работающих в приложении Тинькофф Инвестиции, что ошибка выполнения запросов, различные сбои и баги — здесь достаточно частое явление. И если временное отсутствие доступа к той или иной операции, можно переждать, то потерю денег из-за нерабочей системы невозможно оставить без внимания. В последнем случае необходимо добиваться компенсации убытков, понесенных по вине брокера.

Видео-инструкция

Источник

Проблемы с совершением операций через приложение Тинькофф-инвестиции

Я пользуюсь картой Тинькофф блек около года. 3 недели назад открыл брокерский счет и скачал приложение Тинькофф инвестиции. Прошел обучающий курс, после чего завел туда небольшую сумму и начал покупать разные недорогие бумаги.

В выходные 21-22 ноября решил сконвертировать доллары с дебетовой карты в евро и рубли. Так как делать это выгоднее через брокерский счет, то решил провести операцию там. В понедельник 23 ноября, сразу после открытия торгов, перевел желаемую сумму в долларах на брокерский счет. Но при попытке продать их, получал ошибку с текстом — «Ошибка создания заявки. [GW] «Скорректированное значение НПР1 меньше 0. Непокрытая позиция по неликвидному инструменту». «

После примерно 10 неудачных попыток, перевел деньги обратно на карту Тинькофф блек и конвертировал там по менее выгодному курсу.

Спустя примерно час, зашел в приложение тинькофф инвестиции и увидел там непонятные цифры в графе доллары — была минусовая сумма, равная той, которую я пытался конвертировать. А в графе рубли — сумму, которую я бы получил в результате конвертации.

Написал в чат поддержки и получил ответ, что у них технические проблемы и они уже устранены. Я перезапустил приложение, но по прежнему видел эти цифры. Снова написал в поддержку, но не получал ответ примерно 2 часа.

После этого я позвонил через приложение в поддержку. Сотрудник банка сказал мне, что я каким-то образом совершил сделку — шорт на то количество долларов, которое я пытался продать. Я не понимаю как это могло случиться. Я никогда не включал опцию маржинальной торговли. Сотрудник банка посоветовал мне закрыть сделку самому, купив нужное количество долларов, а он составит обращение для рассмотрения ситуации.

После завершения разговора, пробую купить необходимое количество долларов, но мне не хватает денег на счете, пришлось его пополнить. Но даже после пополнения я не смог купить доллары и получил туже самую ошибку, как на скриншоте выше. Снова позвонил в поддержку, но это не принесло никаких результатов. Сами они сделку закрыть не могут, просили ждать ответа на обращение. Номинально до 26го Ноября, но заверили, что сделают все возможное, чтобы решить проблемы быстро.

Спустя какое-то время получил сообщение от девушки в чате, что есть проблемы на их стороне, они их решают и она тоже порекомендовала мне выкупить доллары. Но я по прежнему не мог это сделать, постоянно получая ошибку. Она тоже заверила меня, что они ответят и решат мою ситуацию как можно скорее.

Сегодня утром, 24 ноября после открытия торгов я смог выкупить доллары обратно, заплатив при этом комиссию брокеру. Несмотря на обещания трех сотрудников банка, что мое обращение будет быстро рассмотрено, на момент написания отзыва — 19.00 24 Ноября я не получил никаких ответов, объяснений или компенсаций от банка.

Подведу итог — я не смог совершить сделку по продаже валюты через брокерский счет и потерял на этом деньги из-за разницы в курсах. Банк непонятным образом(скорее всего из-за технической ошибки) оформил операцию по заключению мною сделки на шорт без моего ведома. Отменить эту сделку я не мог практически сутки. Ни через приложение — выкупив доллары обратно, ни через звонки в поддержку.

В итоге спустя сутки смог выкупить позицию, но пришлось заплатить комиссию банку. Несмотря на то, что трое сотрудников заверили меня, что вопрос будет решен быстро, вопрос не был решен в течение двух рабочих дней. Оба обращения, созданные сотрудниками банка до сих пор не рассмотрены. После этой ситуации я всерьез думаю о смене брокера и изучаю возможные варианты на рынке. О дальнейшем развитии ситуации расскажу в комментариях.

Источник

Что недоговаривают Тинькофф Инвестиции. Вытаскиваем все данные по портфелю через API в большую таблицу Excel

Тинькофф Инвестиции — популярный российский брокер с передовым клиентским приложением для мобильных устройств и браузеров. Приложение призвано упростить процесс торговли и снизить порог входа в инвестиции до такого минимума, чтобы захватить максимально широкую аудиторию.

Однако, когда инвестиции приобретают серьёзный характер, инвестору нужны точные и подробные данные по его портфелю, в частности, для оценки эффективности инвестирования. И вот здесь с приложением возникают неоднозначности.

Описание проблемы

Рассмотрю на примере своего портфеля (не ИИС) в мобильном приложении. (С даты публикации приложение может обновиться).

На главном экране видим ободряющие значения:

У меня здесь сразу возникают вопросы:

Каким образом была посчитана эта зелёная сумма и 12,21%? Причём, несколько дней назад у меня было что-то около +17%, потом я зафиксировал одну бумагу с профитом, стоимость портфеля почти не изменилась, а вот этот зелёный «общий процент» сразу упал до 12,21.

За всё время — это за несколько лет инвестиций? Ещё есть опция: за сегодня. А какой процент у меня, например, за год?

Мой портфель почти полностью в иностранных бумагах и USD. Каким образом это было переведено в рубли: по курсу ЦБ или по рынку?

Сколько от этой суммы у меня реально останется после уплаты налогов и комиссий, если я продам весь портфель и выведу деньги?

Заходим в раздел Портфельная аналитика, и находим там уже другие значения:

Почему на главной странице было +955 644, а здесь почти на 2 миллиона больше?

Кстати, здесь уже можно посмотреть результаты за год, приложение выводит сумму, но не процент.

Пока всё выглядит весьма оптимистично, открываю профиль в Пульсе.

Вот это результат! Посмотрим по-подробнее.

Здесь приведены результаты по месяцам. За 4 месяца текущего года +6,67%, а если посмотреть на 2020 год, там у меня +31,41%. Для сравнения, если не ошибаюсь, S&P 500 за 2020 год вырос на 16,26%. Не совсем понимаю, как я мог его так обогнать, если только дело не в курсовой разнице. В любом случае, это не вяжется с обозначенными на главном экране +12,21% за всё время, т.к. 2019 и 2018 года тоже зелёные. В общем, не понятно, как и в какой валюте они считают, надо разбираться.

Поиск решения

Чтобы внести больше ясности в процесс инвестирования, сделать этот процесс более осознанным, мне нужно:

Разобраться, как вычисляются значения, отображаемые в мобильном приложении

Выяснить реальные показатели эффективности портфеля

Узнать общие суммы налога и комиссий, которые я уплатил за всё время

Вычислить сумму, которую я могу вывести со счёта, после уплаты налогов при продаже портфеля

Это особенно актуально в свете того, что портфель у меня, в основном, валютный, а налог считается в рублях относительно официального курса на день покупки актива. Поскольку я начал покупать бумаги несколько лет назад, когда USD был гораздо дешевле, налог при фиксации прибыли может оказаться огромным сюрпризом и съесть существенную часть отображаемой на главном экране суммы.

Собрать все возможные данные по портфелю и визуализировать их в удобной для меня форме, такой как таблица Excel, с которой я смогу дальше работать средствами самого Excel или Google Sheets.

Есть вариант пытать персонального менеджера и службу поддержки, но переписка с ними бывает утомительна, и они не помогут с визуализацией данных. Лучше написать программное средство, чтобы формировать результат в удобной для меня форме и делать это автоматически.

Здесь на выручку приходит Tinkoff API — средство для разработчиков ПО, позволяющее взаимодействовать с Тинькофф Инвестициями автоматизированными средствами.

Проблема только в том, что я не программист и с банковскими API раньше не работал. Видимо, пришла пора попробовать.

Знакомство с API

Находим официальную страницу Open API от Тинькофф:

На странице предлагаются SDK: Java, C#, Go, NodeJS.

Приведены и неофициальные: Python @daxartio,Python @Awethon, Python @Fatal1ty, PHP, Ruby.

Ничего из того, что я умею. В основном, я делал DIY проекты на Arduino-подобных контроллерах с WiFi, проектировал и заказывал для своих электронных устройств печатные платы, делал небольшие одностраничные WEB-интерфейсы и телеграм-боты для взаимодействия с этими устройствами. Т.е., в основном я работал с железом и писал прошивки на Arduino Wiring (на основе C++).

Из представленного списка мне больше всего импонировал Python, я писал на нём что-то на уровне print(‘Hello World’) и давно хотел познакомиться поглубже. Поэтому, я решил, что буду делать проект с Тинькофф API на Python.

Это сильно помогло мне продвинуться на начальном этапе: понять, как получать данные с API.

Если коротко, работает это так:

Устанавливаем и настраиваем его на своей машине

Устанавливаем через PIP библиотеку tinvest

Открываем редактор кода, например Idle, импортируем установленную библиотеку:

Создаём объект для дальнейшей работы с API:

В my_token выше подставлем свой API key, который получаем в личном кабинете брокера.

Я не стал пробовать в демо-счёте, сразу указал API своего реального портфеля.

Создаём объект с позициями портфеля:

positions = client.get_portfolio() Это сложный массив, который содержит информацию по каждой бумаге.

Создаём объект с операциями. Здесь указывается дата начала инвестирования и текущая дата в определённом формате.

operations = client.get_operations(from_=account_data[‘start_date’], to=account_data[‘now_date’])

Получаем рыночные курсы валют (понадобятся для дальнейших расчётов):

course_usd = client.get_market_orderbook(figi=’BBG0013HGFT4′, depth=20

course_eur = client.get_market_orderbook(figi=’BBG0013HJJ31′, depth=20)

И чтобы в нашей будущей таблице появились не только бумаги, но и валюты кэшем, запросим и их тоже:

Данные можно выводить сразу же через print , например:

for pos in positions.payload.positions:

Но наша цель — это Excel таблица. Для её формирования я выбрал библиотеку XlsxWriter:

Файлик с excel появляется в папке с программной. Если файл с таким названием уже есть в папке — он перезапишется. Поэтому, я сделал, чтобы в названии файла была текущая дата, так удобно потом сравнивать отчёты за разные дни / месяцы:

ecxelFileName = ‘tinkoffReport_’ + today + ‘.xlsx’

Так, на этом этапе, у меня получилась небольшая программка, создающая таблицу с базовой информацией по бумагам, получаемой по API, а именно:

Наименование, тикер, валюта бумаги, количество бумаг, средняя цена покупки, ожидаемая выручка.

Из имеющихся данных простой арифметикой высчитывались: текущая рыночная цена одного лота и суммарная стоимость всей позиции.

Писалось всё в Idle, выглядело как-то так: (НЕ ПОВТОРЯТЬ!)

НЕ ПОВТОРЯТЬ

Подглядывая в проекты других разработчиков на Python, я тогда ещё мало что понимал, но было очевидным, что их проекты пишутся совсем по-другому, и мне придётся менять структуру в корне.

Я решил переписать всё заново, как положено, и в более удобной среде разработки.

Знакомство с Python

В качестве более продвинутой среды, ребята с работы посоветовали PyCharm.

С ним дело пошло гораздо продуктивнее, среда автоматически дрессирует писать в соответствии с PEP8 (стандарт оформления кода).

Общие знания по Python я брал из своего любимого справочника: https://www.w3schools.com/

Просто прошерстил все его статьи по питону сверху вниз, и потом периодически обращался за подробностями.

Вообще, чисто субъективно, мне этот язык сразу понравился. Порадовала краткость путей решения задач. Сложилось впечатление, что если просто нужно, чтобы что-то заработало, оно здесь заработает в два счёта, без лишних заморочек. Гуглится всё элементарно, по крайней мере, на моём уровне сложности. Чаще всего, решения находил на https://stackoverflow.com/

Структура программы

Я решил разбить проект на 3 модуля (файлика .py) и отдельный файлик .txt с данными аккаунта.

Модуль main.py — основной модуль программы, который мы запускаем. В нём создаются классы объектов, происходят вычисления и формируются объекты, заполняясь полученными данными. Парсит только курсы валют по разным датам с API ЦБ РФ.

Модуль data_parser.py — содержет всего две функции, первая парсит данные аккаунта из текстового файла, а вторая из Тинькофф Инвестиций и больше программа к этому не возвращается.

Модуль excel_builder.py — большой модуль, который ничего не считает, только берёт данные из main.py и строит огромную красивую таблицу.

Структура таблицы

— Позиции

В левой части таблицы выводится информация по текущему портфелю:

Параметры (базовые, из API):

name — название бумаги

ticker — тикер

balance — количество бумаг в портфеле

currency — валюта

ave.price — средняя цена покупки в валюте

exp.yield — ожидаемая прибыль с продажи (без учёта налогов и комиссий)

Тут, кстати, стало понятно, откуда взялась сумма 955 644 руб (+12,21%) на главном экране приложения — это как раз и есть суммарный exp.yield в рублях по рыночному курсу.

Параметры, посчитанные на основе базовых:

market price — текущая рыночная цена одной бумаги (ave.price + exp.yield)

% change — процент изменения стоимости актива (market_price / ave.price) * 100) — 100)

market value — текущая рыночная стоимость всей позиции (market_price * balance)

market value RUB — рыночная стоимость всей позиции в пересчёте на рубли по текущему рыночному (не ЦБ) курсу

ave. % — среднее арифметическое всех % change. Сейчас я понимаю, что это бесполезный параметр. Надо было считать по-другому, возможно исправлю в следующих версиях программы.

total value: — рыночная стоимость портфеля в рублях (сумма всех market value RUB)

Как видим из скриншота, total value составляет 8 782 836, что близко к значению на главном экране приложения: 8 782 160р, но не соответствует ему точь-в-точь. Отклонение составляет 0,0077%. Не существенно, но чем вызвано, я не совсем понимаю. Если есть идеи по исправлению — напишите, пожалуйста, в комментариях.

Дальше — интереснее!

Сразу после блока с рыночными ценами, располагается самый сложный, с точки зрения расчётов, блок: стоимость активов по ЦБ и расчёт ожидаемого налога при продаже.

CB value RUB — стоимость позиции в рублях по курсу ЦБ на сегодня.

Внизу считается сумма, которая у меня составила 8 749 045 — это оценка стоимости моего портфеля, с точки зрения ЦБ, и она отличается от рыночной стоимости на 33 791 руб, что вполне нормально.

ave.buy in RUB — средняя стоимость покупки в рублях по курсу ЦБ на дату покупки. Это важный параметр для последующего расчёта налога.

Сложность в том, что бумага могла приобретаться частями, в разные дни, а могла частично продаваться. Здесь действует такое правило, что первой продаётся та бумага, которая первой покупалась.

Чтобы решить эту задачу, я придумал сделать для каждой позиции упорядоченный список (массив). Программа пробегает по всем операциям покупки, находя операции с figi данной бумаги, и каждая покупка добавляет в список количество ячеек, соответствующее количеству приобретённых бумаг. Каждая ячейка содержит значение, соответствующее цене покупки в рублях по курсу ЦБ на дату операции. А каждая продажа удаляет нужное количество ячеек из начала списка. Затем считается среднее значение по оставшимся ячейкам, так получается средняя цена покупки в рублях по курсу ЦБ.

Был небольшой подвох, связанный с тем, что в списке операций от Tinkoff API есть не только выполненные, но и нулевые операции, которые пришлось отсеивать.

Чтобы API ЦБ РФ не решил, что мы его ддосим, я поставил небольшую задержку. В итоге, всё считается как надо, но этот этап обрабатывается ощутимо медленно. Чтобы обработались мои 15 позиций и 430 операций, приходится ждать около 1 минуты.

Наверняка это можно как-то оптимизировать, но, в принципе, мы не торопимся.

Разобравшись с самым сложным этапом, можно составить следующие колоночки:

sum.buy in RUB — сумма покупки позиции в рублях по курсу ЦБ (ave.buy in RUB * balance)

Внизу считается сумма, которая составила 7 178 123 — на такую сумму, по мнению ЦБ, я приобрёл текущие активы.

tax base — налоговая база (sum.buy in RUBCB value RUB)

expected tax — ожидаемый налог по ставке 13%, который нам насчитают, если продать бумагу сейчас.

Внизу получилась сумма: 207 145 руб. — такой налог будет удержан, если я продам весь портфель сейчас.

— Операции

Справа от раздела с позициями, выводим колоночки со всем типами операций, которые может нам предоставить Tinkoff API. Их много, на один скриншот не влезают, но на большом мониторе помещается:

Под каждой колоночкой считается сумма. Это как раз то, что нам не покажет брокер. И здесь есть кое-что интересное.

Теперь мы можем сравнить сумму внесённых средств и сумму выведенных (в переводе на рубли по курсу ЦБ)

Ещё можно посчитать сумму всех купонов и дивидендов, а также, внимание:

все комиссии, уплаченные брокеру, и все налоги, удержанные брокером!

Итак, вот мы получили и разложили перед глазами все имеющиеся данные.

Теперь можно сделать из них выводы.

— Аналитика

Я впихнул этот маленький раздел прямо под таблицей с позициями.

Investing period — период инвестирования с даты, которую мы указали в текстовом файлике до сегодняшней даты. По идее, должен пригодиться для последующих расчётов эффективности инвестирования.

Кстати, что касается дат, я не учитывал часовые пояса, и это может где-то выплыть.

PayIn — PayOut — разница между внесёнными на счёт средствами и выведенными по курсу ЦБ на дату операции. У меня это получилось 5 843 172 руб — столько средств я задонатил на свой счёт.

Commissions payed — сумма всех комиссий, уплаченных брокеру. У меня она составила 17 315 руб, из которых 2200 руб — это 2% побор за участие в IPO Сегежа, в которое я впутался пару дней назад. Если не принимать его во внимание, то за всё время я заплатил всего около 15 000 руб комиссий, что, я считаю, достаточно мало. На тарифе Премиум при покупке $1000 я плачу всего 18,22 руб комиссии.

Кстати, из-за появления в портфеле позиции «Сегежа» в первый день после IPO программа не могла выполниться и выдавала ошибку. На следующий день по бумаге с API стали приходить нормальные данные и программа снова заработала.

Taxes payed — сумма налогов, уплаченных брокером только в российский бюджет. Налог с дивидендов, уплаченный в других странах, здесь не учитывается, его надо заказывать отдельной справкой в личном кабинете.

Если что, форма W8BEN, у меня, на данный момент, по некоторым причинам, не действует.

Итого, в российский бюджет я уже уплатил 117 631 руб, и, как было посчитано выше, мне предстоит уплатить ещё порядка 207К, если я зафиксирую портфель сейчас.

Здесь ещё раз уточню: налог считается в рублях, и если мы купили бумагу за $100 при курсе ЦБ 60р за доллар, а через год, когда доллар стал стоить 80р, продали эту бумагу за те же $100, мы должны будем заплатить налог 260р за счёт курсовой разницы, потому что, с точки зрения ЦБ, мы купили бумагу за 6000р, а продали за 8000р, хотя ни одного $ мы не заработали.

Clean portfolio — стоимость нашего портфеля по текущему рыночному курсу за вычетом предстоящего налога. Это те деньги, которые мы реально сможем вывести, если зафиксируем весь портфель сейчас. Сюда ещё можно накинуть комиссию брокера, но она варьируется, и я не стал её хардкодить. Навскидку, если у меня портфель примерно $116000 и тариф Премиум, комиссия за продажу всех активов получится где-то примерно 2000р. И ещё почти столько же, если я захочу поменять в рубли. Если не ошибаюсь, в Тинькофф Инвестициях комиссия на всё одинаковая.

Profit — сумма, которую мы заработаем при фиксации портфеля сегодня. Считается как Clean portfolio — (PayIn — PayOut), т.е., полученные средства, очищенные от налогов, минус вложенные средства. У меня получилась сумма 2 732 519, что похоже на сумму «Доход за всё время» из раздела «Портфельная аналитика» в мобильном приложении, только за вычетом налога 207К. Расхождение около 2500 руб. Не знаю, насколько это здесь существенно.

В общем-то, это пока всё, что я сделал.

Заключение

Осталась неподсчитанной эффективность вложений. Мы знаем точный период инвестирования, знаем профит. Однако, сложность в том, что вложенные средства не были зачислены разово, а поступали на счёт периодически, разными суммами, а иногда выводились. Для расчёта эффективности инвестирования нужно что-то вроде формулы XIRR в Excel, но я пока не сообразил, как вкрутить её в эту программу. Если у вас есть идеи на этот счёт — поделитесь, пожалуйста.

Зато, мы разобрались, откуда получаются значения, приводимые в клиентском приложении.

Также, мы узнали суммы комиссий и налогов, как уплаченные, так и ожидаемые.

Нашли реальную сумму, которую сможем вывести со счёта при фиксации портфеля, после удержания налогов.

А главное: получили возможность одним кликом собирать все данные по портфелю со всеми операциями в одну большую таблицу Excel, с которой дальше можем работать средствами самого Excel, можем экспортировать в Google Sheets, или просто сохранить как архив для анализа в будущем.

В планах сделать оконную версию программы с интерфейсом в виде приложения .exe для тех, кто не хочет возиться с установкой Python на свою машину, и при этом ещё не боится вводить данные своего аккаунта в приложение неизвестного разработчика (я бы, наверно, не рискнул).

Это мой первый проект на Python и первая публикация на Хабре.

Надеюсь, информация окажется полезной для улучшения взаимодействия с приложениями Тинькофф, работы с API и разработки подобных программ, а также поспособствует более осознанному инвестированию, а следовательно, повысит ваше благосостояние. Благодарю, что дочитали до конца.

Источник

ошибка-приложения-тинькофф-инвестиции

Время чтения статьи ⏳ 2 мин.

Иногда пользователи Тинькофф Инвестиции при попытке выполнить определенную операцию со своим брокерским счетом, сталкиваются с такой проблемой, как ошибка выполнения запроса. В связи с этим возникает вопрос, как устранить в Тинькофф Инвестиции ошибку и из-за чего проблема может появиться. Попробуем в этом детально разобраться.

Что означает?

При возникновении ошибки такого типа система не отвечает на запрос, посылаемый пользователем. Проявляться это может в виде следующих сбоев:

  • В приложении Тинькофф Инвестиции не открывается история совершенных операций, а также невозможно посмотреть данные по портфелю. При переходе в соответствующий раздел может появиться сообщение с предложением попробовать зайти позже.
  •   Возникновение проблем при попытке приобрести валюту. Согласно отзывам пользователей, при отправке такого запроса могут появляться следующие сообщения: «ошибка создания запроса» или «Поручение было отклонено. Пожалуйста, попробуйте совершить сделку меньшего объема».
  • Произвольное выставление стоп-заявок в то время, когда пользователь не совершал какие-либо операции в личном кабинете.
  • Отсутствие информации о рыночной цене ценной бумаги. В этом случае провести сделку по купле такого финансового инструмента не получится.
  • Также к ошибке выполнения запроса можно отнести ситуацию, когда пользователь пытался приобрести ценную бумагу, однако сделка не совершалась. При этом деньги на счете оказались заморожены.

Когда деньги нужны срочно

Если деньги нужны срочно. оформите кредитную карту Tinkoff Drive. Получить прямо сегодня можно здесь.

Тинькофф DRIVE [credit_cards][sale]

Таким образом, пользователи Тинькофф Инвестиции периодически сталкиваются с разными проявлениями ошибки выполнения запроса. К сбоям, которые не были упомянуты выше, также можно отнести нулевую цену акций или же неправильное отражение системой стоимости ценных бумаг.

Как исправить ошибку выполнения запроса?

При возникновении ошибки выполнения запроса порядок действий по ее устранению будет зависеть от характера сбоя. Попав в подобную ситуацию, можно предпринять следующие меры:

  • Войти в приложение спустя некоторое время. К примеру, такую рекомендацию дали сотрудники брокера Тинькофф, когда у некоторых пользователей пропал доступ к истории операций и портфелю ценных бумаг. В этом случае достаточно было просто немного подождать, после чего еще раз попробовать открыть недоступный раздел.
  • Если же проблема связана с произвольным выставлением стоп-заявок, неправильным отражением стоимости акций, отсутствием рыночной цены ценной бумаги или с другими аналогичными видами сбоев, то в этом случае придется обращаться в службу поддержки брокера.

Тинькофф DRIVE [credit_cards][sale]

Необходимо написать сообщение, подробно изложив в нем суть возникшей проблемы. Если в результате ошибки запроса пользователь потерял деньги, то ему также следует включить в письмо требование о компенсации суммы, потерянной по причине некорректной работы приложения Тинькофф Инвестиции.

В целом, видно из отзывов пользователей, работающих в приложении Тинькофф Инвестиции, что ошибка выполнения запросов, различные сбои и баги — здесь достаточно частое явление. И если временное отсутствие доступа к той или иной операции, можно переждать, то потерю денег из-за нерабочей системы невозможно оставить без внимания. В последнем случае необходимо добиваться компенсации убытков, понесенных по вине брокера.

Следующее для прочтения

Тинькофф Инвестиции: как зарегистрироваться и начать зарабатывать

Видео-инструкция

Тинькофф Банк

Удобство приложения, сайта

Отзыв проверен

Проблема решена

Добрый день!

29.03.2023 продал акции на брокерском счете, вывел их на дебетовую карту и через личный кабинет пытался перевести денежные средства себе в Сбербанк и дочке по номеру телефона. Выскакивала ошибка, что перевод невозможен.

Я обратился в службу поддержки, на что спустя сутки был дан следующий ответ: «У банка есть подозрения, что переводы по данным реквизитам могут осуществляться в незаконных целях. Перевод на эти реквизиты невозможен, обратитесь к получателю платежа».

На мой вопрос, к кому я должен обратиться, если получатель я сам, мне ответ не дали. Почему мои действия носят незаконный характер, тоже не ответили. Не сослались ни на статьи закона, ни на выдержки из договора с Банком. После предоставления такой «отписки» обращение закрыли.

Я вновь обратился с тем, чтобы решить эту проблему, т.к. фактически не могу пользоваться своими же средствами на дебетовой карте, на что мне сказали опять ждать. Сотрудники службы поддержки предоставляют шаблонные ответы ежедневно и никак не помогают помочь решить проблему. Ни по каким другим реквизитам я не могу вывести деньги со своей карты, то есть Банк безосновательно не дает распоряжаться своими деньгами.

Тинькофф Банк

Тинькофф Банк

2023-04-05T15:07:23+03:00

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

Ваши операции отклоняла наша система мониторинга, посчитав их подозрительными. Это не значит, что операции были вне закона, нам не стоило использовать такие формулировки. Простите, пожалуйста, тут вмешался человеческий фактор.

Мы исправили ситуацию, вы можете повторить операции. За наши ошибки зачислили бонус вам на счет. Больше не подведем!

user-876813387139

2023-03-31T16:00:24+03:00

Спустя час после публикации отзыва получен ответ от службы поддержки Тинькофф о том, что ситуация исправлена и теперь можно осуществлять переводы. Отзывы творят чудесаулыбка


Отзыв о Тинькофф банке

Оценка

5

Проверяется

Заказал дебетовую карту с дизайном , все понятно было написано и объяснили плюсы и минусы в чате . Курьер приехал через 3 дня ( в воскресенье) .
Объяснили все про подписку…
Читать полностью

28.06.2023

Быстрое решение проблем

Оценка

5

Проверяется

Здравствуйте. Хочу сказать спасибо сотруднику службы поддержки банка Олегу с
добавочным номером 439044 за быстрое решение возникшей проблемы. Все могут ошибаться, важно, чтобы…
Читать полностью

28.06.2023

Быстро решили вопрос

Оценка

5

Проверяется

Потеряла я значит карту, при перевыпуске Олег мне предложил бесплатный вариант Миши Мост. Екатерина сообщила, что она платная, но я не расстроилась и решила обычную выбрать. Но…
Читать полностью

28.06.2023

Тинькофф, ты — СУПЕРбанк!

Оценка

5

Проверяется

Очень оперативно сотрудники банка откликнулись на запрос в чате и помогли решить вопрос, не смотря на позднее время суток. Передавая информацию от сотрудника к сотрудника…
Читать полностью

27.06.2023

Лолита 475215 лучшая

Оценка

5

Проверяется

Прекрасная девушка с хорошим чувством юмора, все решили очень очень быстро и без лишней суеты!❤️ Лолита, Лолочка, Люля дай Бог тебе здровья, счастья, любви и успехов. Пусть все…
Читать полностью

27.06.2023

Ошибочное оформление деб.карты «Тинькофф — Union Pay»

Оценка

5

Проверяется

Хотел оформить дебетовую карту «Тинькофф — Union Pay» на другого человека, но в приложении не было сказано, либо я не увидел, что такая карта будет привязана к…
Читать полностью

27.06.2023

Очень крутые и оперативные!

Оценка

5

Проверяется

Зашла в не знакомый сайт по ссылке, где якобы идет розыгрыш денег…попросили ввести номер карты чтобы закинуть выйграш (обычно я где попало не ввожу номер карты, но так как у меня…
Читать полностью

27.06.2023

  • Технология интел смарт саунд oed ошибка код 10
  • Тинькофф инвестиции ошибка сегодня
  • Технология intel r smart sound oed ошибка код 10 lenovo
  • Тинькофф инвестиции ошибка приложения
  • Технологические ошибки интраоперационного периода проявляющиеся после операции