Giter Club home page Giter Club logo

ttextension's Introduction

Tinkoff Trader Chrome Extension

Portfolio

Оглавление

  1. Описание
  2. Инструкция по установке
  3. Получение токена
  4. Подсчёт средней цены
  5. Отображение портфеля
  6. Отображение сделок
  7. Отображение комиссий
  8. Предложения по улучшению
  9. Поддержать проект

Описание

Tinkoff Trader Chrome Extension - это расширение для браузера Chrome (и других, основанных на движке Chromium: Яндекс.Браузер, Opera, и т.д.), которое добавляет некоторые возможности, которых нет в Web-Терминале и мобильном приложении Тинкофф.Инвестиции.

Список возможностей:

  • удобное компактное отображение текущего портфеля с основной информацией в любое время
  • подсчёт и отображение зафиксированной прибыли или убытка по каждой позиции и в сумме
    • подсчёт и отображение зафиксированной прибыли или убытка за торговый день
    • подсчёт и отображение зафиксированной прибыли или убытка по каждой сделке с учётом комиссии
  • правильный подсчёт средней цены акции по сделкам (подробнее см. в Подсчёт средней цены)
    • опциональная возможность замены значений в столбцах 'Средняя', 'Доход' и 'Доход, %' на странице Web-Терминала
    • опциональная возможность добавления столбца 'Зафиксировано' на странице Web-Терминала (в разработке)
  • детальное отображение сделок по каждой позиции (см. Отображение сделок)
  • подсчёт суммарной брокерской, маржинальной комиссии и платы за обслуживание счёта
  • подсчёт суммарных выплаченных дивидендов акций и купонов по облигациям
  • отображение нулевых (закрытых) позиций для учёта прибыли и отслеживания текущей цены
  • поддерживается ИИС (индивидуальный инвестиционной счёт)

Запланировано:

  • фильтрация таблицы позиций
  • отображение активных и отложенных заявок и их потенциальную прибыль
  • отображение всех позиций с конвертацией в выбранную валюту
  • ваши предложения и пожелания

Инструкция по установке

Данное расширение находится в стадии разработке и ещё не опубликовано в магазин расширений Chrome.
Установить расширение можно вручную с помощью режима разработчика:

  1. Скачайте исходный код из репозитория (зелёная кнопка Code, затем Download ZIP), распакуйте архив
  2. Откройте в браузере страницу chrome://extensions/
  3. Включите Режим разработчика (переключатель в правом верхнем углу)
  4. Нажмите на кнопку Загрузить распакованное расширение и укажите путь к папке

ChromeExtensions

Обновление до последней версии

В этом репозитории всегда хранится последняя версия расширения.
Чтобы своевременно получать уведомления о новых версиях этого расширения вы можете нажать кнопку Watch в правом верхнем углу.

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


Получение токена

Для доступа к информации о портфеле используется токен авторизации OpenAPI

  1. Зайдите в свой аккаунт на https://tinkoff.ru/
  2. Перейдите в раздел Инвестиции, откройте Настройки
  3. Функция Подтверждение сделок кодом должна быть отключена
  4. Создайте новый токен в разделе Токены Tinkoff Invest API (https://www.tinkoff.ru/invest/settings/api/)
  5. Выберите Все счета и Полный доступ (В настоящее время токены с доступом только для чтения и токены на субсчета не поддерживаются в текущей версии Tinkoff Investment Open API, см. issue #30)
  6. Скопируйте токен и сохраните его в надёжном месте. Токен отображается только один раз, просмотреть его позже не получится. Тем не менее можно выпускать неограниченное количество токенов.

Отозвать токен OpenAPI можно на странице https://id.tinkoff.ru/account


Подсчёт средней цены

Проблема: На текущий момент в Тинкофф средняя цена рассчитывается по принципу FIFO (first input first output), а зафиксированная прибыль вовсе не отображается, что доставляет большое количество неудобств при частичной продаже позиций, т.к. средняя цена занижается, и потом даже может быть отображено, что позиция находится в прибыли, а на самом деле это может быть не так.

Допустим было две сделки покупки: 1 акция по 10$ и ещё 1 акции по 5$, средняя цена 7.5$, пускай сейчас эта акция стоит 8$ за шт., продаём 1 акцию за 8$, т.е. фиксируем прибыль в 0.5$ (без учёта комиссий), у нас остаётся 1 акция, считаем что её средняя цена по прежнему 7.5$, а не 5$ как это делает Тинькофф. Если цена этой акции опустится до 7$, то у нас будет потенциальный убыток в 0.5$, что в сумме с зафиксированной прибылью даст 0, а в Тинькофф будет отображаться потенциальная прибыль в 2$, что немного сбивает с толку. (подробнее см. здесь)

Решение: В этом расширении средняя цена рассчитывается по сделкам открытия (и усреднения) позиции, как это и предлагается в идее выше. Например, для торговли "в лонг" учитываются только сделки покупки.


Отображение портфеля

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

Описание столбцов

PortfolioAdd

  • Asset - название актива
    • нажатие на кнопку "+" в шапке таблицы откроет модальное окно добавления позиции, которой нет в списке (например, чтобы можно было видеть текущую цену или посмотреть сделки по этой позиции)
    • нажатие на кнопку фильтрации откроет модальное окно фильтрации списка позиций (в разработке)
    • нажатие средней кнопки мыши на иконке актива откроет в новой вкладке страницу описания на сайте Тинькофф
  • Count - текущее количество
  • Average - средняя цена
  • Price - текущая цена на бирже
  • Cost - стоимость (количество × цена)
  • Expected - ожидаемая прибыль или убыток
  • Fixed - зафиксированная прибыль или убыток (All - за всё время, Day - за текущий торговый день)

В последней строке таблицы отображается ссылка на таблицу комиссий (Operations) и суммарная прибыль.
При наведении на сумму отобразится подсказка, отображающая суммы по каждой валюте. Нажатие на на сумму переключит валюту отображения (доллары, рубли, евро и т.д.)

PortfolioTotal


Отображение сделок

Можно посмотреть детальную информацию о сделке в таблице сделок, щелкнув на строку позиции в портфеле.
После загрузки и просчёта сделок будет отображена таблица со сделками и подытоживающая строка, в которой отображается суммарная комиссия и суммарная прибыль (или убыток) по данному активу.

Fills

Описание столбцов

  • № - порядковый номер сделки по выбранному активу
  • Date & Time - дата и время операции
  • Dir - направление сделки (покупка или продажа)
  • Price - цена за одну единицу актива
  • Qnt - количество
  • Payment - стоимость (цена × количество)
  • Fee - комиссия
  • Cur - текущее количество в портфеле
  • Average - средняя цена
  • Position - текущая стоимость (текущее количество × средняя цена)
  • Fixed P&L - зафиксированная прибыль или убыток

Отображение суммарной комиссии за обслуживание и других операций

Чтобы увидеть таблицу нажмите на ссылку Operations в последней строке таблицы портфеля.

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

  • ServiceCommission - плата за обслуживание счёта (может быть не совсем точной из-за разницы курса)
  • MarginCommission - комиссия за маржинальную торговлю

Operations

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


Предложения по улучшению, идеи, ошибки

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

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

Об обнаруженных ошибках вы можете написать в Issues. Идее и предложения пишите тоже туда.


Поддержать проект

Если вам понравилось расширение и вы хотите выразить благодарность, вы можете оставить пожертвование: https://www.tinkoff.ru/sl/7y1GbjXh4FL

QRCodeDonate

Буду рад, если это расширение помогло сэкономить время и деньги не только мне но и вам! 😊

ttextension's People

Contributors

ya-erm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

bubliks nvm

ttextension's Issues

Фильтр позиций

• Только видимые / видимые + скрытые
• Рублевые / долларовые / все
• Только не нулевые / все

Подсчёт суммарной комиссии

Добавить подсчёт суммарной комиссии по всем сделкам за всё время.

Например, для ИИС это можно сделать вот такой командой:

Object.entries(TTApi.portfolios[1].operations)
    .map(kv=> 
        kv[1]
            .filter(x => x.operationType == "BrokerCommission")
            .reduce((r, i) => r + i.payment, 0))
     .reduce((r, i) => r + i, 0)

Или вот так, с помощью вложенного объекта commission:

Object.entries(TTApi.portfolios[1].operations)
    .map(kv => 
        kv[1]
            .filter(x => ["Buy", "Buycard", "Sell"].includes(x.operationType))
            .reduce((r, i) => r + (i.commission?.value ?? 0), 0))
     .reduce((r, i) => r + i, 0)

В идеале сумма должна быть одинаковой

Подсчет P&L за день (сессию)

Можно ли попросить добавить переключатель этой для фичи? Хорошо бы еще, чтобы результаты за сессию (с 10:00 до 02:00) отображались не только в порфолио, но и в статистике по конкретной бумаге

Спасибо за труды, расширение экономит много времени!

Налоговый отчёт и финансовые результаты по всем инструментам

Раньше, скачивая налоговый отчёт, можно было там увидеть финансовый результат по каждому инструменту за выбранный год, включая текущий. Но теперь тинёк убрал этот функционал. Можно ли реализовать этот функционал в расширении, подтягивая историю сделок по API?

Вижу примерно так:

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

Добавить поддержку токенов с доступом только на чтение и токенов для отдельных субсчетов

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

Не учитывать валюту

Добавить в настройках возможность не учитывать в итогах валюту в колонках expected и fixed:

image

Донаты

Добавить ссылку на донаты для автора. Расширение много раз спасало во время активной торговли своей альтернативой подсчету средней из терминала.

RDS.A

Нельзя просмотреть историю этой бумаги, отображает общий портфель, при клике на вкладку "RDS.A"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.