CHANGELOG

Что нового в Finam Terminal

Что изменилось в терминале от версии к версии, своими словами: какие экраны и возможности появились и что перестало работать неправильно. В списке только версии, которые уже опубликованы и доступны для скачивания. У каждой версии есть ссылка на её релиз с файлами сборок.

Как поставить терминал или обновить его до текущей версии — в разделе про установку.

v0.17.0 Текущая версия

Вкладка Analytics с разбором портфеля, сделок и выплат

Релиз на GitHub

Что нового

  • Пятая вкладка Analytics. Четыре экрана, переключаются цифрами 1–4: «Обзор», «Сделки», «Деньги», «Выплаты». Раньше вкладок было четыре. Клавиша P листает период на экранах «Сделки» и «Деньги»: 1М → 3М → 1Г → YTD → «Всё». Период отсекает уже загруженную историю, обращений к брокеру это не стоит, YTD отсчитывается от местной полуночи, а не от полуночи UTC. См. «Аналитика портфеля».
  • «Обзор» — из чего собран портфель и сколько он стоит сейчас. Состав по типам бумаг, валютам и секторам с долями и барами; стоимость на начало дня и на текущий момент, результат дня и результат по открытым позициям; загрузка маржи, запас до маржин-колла, плечо и гарантийное обеспечение по фьючерсам; доля трёх крупнейших позиций; результат с открытия счёта. Панель «Валюты» даёт по строке на валюту — сумму в своей валюте, курс и время курса: CNY 1 500.00 × 12.5300 · 14:05. Курс старше 12 часов подписывается жёлтым «курс на 06.09 17:30». Экран собран из данных, которые терминал уже держит: своих запросов к брокеру у него нет, цифры обновляются вместе с остальным экраном раз в 5 секунд.
  • «Сделки» — реализованный результат периода, сопоставленный по FIFO. Крупно: итог, доля прибыльных сделок и профит-фактор. Ниже — число сделок, средняя прибыль и средний убыток, лучшая и худшая сделка, таблица по инструментам. Первая загрузка истории и обновление по R рисуют одну полосу прогресса с процентом внутри; раньше на её месте стояли счётчики над пустыми рамками, и экран выглядел сломанным. См. «История сделок».
  • «Деньги» — что за период пришло на счёт и что ушло. Вводы, выводы, комиссии, налоги, выплаты, сделки и переводы бумаг — барами относительно самого крупного потока. Рядом результат с открытия счёта, годовая доходность (XIRR) и Индекс МосБиржи за тот же период.
  • «Выплаты» — дивиденды, купоны, амортизации и оферты по открытым длинным позициям, с итогами на ближайшие 30 и 90 дней. См. «Облигации».

Что исправлено

  • Облигации в портфеле стоили примерно в сто раз меньше. Цена облигации — это процент от номинала, а терминал считал её ценой бумаги: десять ЯНДЕКС1Р1 по 100.72 давали 1 007.20 вместо 10 072. Теперь облигация оценивается через номинал, и итог «Обзора» сходится с капиталом по данным брокера с точностью до НКД — раньше расхождение доходило до 13%. См. «Облигации».
  • Валюта в денежных колонках. Value, Daily P&L и Unreal P&L по позиции в другой валюте выводятся с кодом валюты — 2516.80 USD. В профиле облигации Face Value показывал 1000.0 % на любой бумаге, теперь там валюта номинала — 200000.0 USD. См. «Профиль инструмента».
  • Заблокированные активы. Терминал узнаёт их по списку инструментов, загруженному при старте, без единого дополнительного запроса. В колонке Value вкладки «Позиции» вместо суммы стоит BLOCKED, а под итогом «Обзора» появляется строка заблокировано: N · X RUB по цене брокера. Раньше такая бумага попадала в итог по цене брокера: на реальном счёте состав портфеля показывал 2 266 при капитале 83. К тому же один заблокированный инструмент в подписке останавливал поток котировок целиком и без сообщения об ошибке — хватало открыть его профиль из поиска. См. «Позиции» и «Аналитика портфеля».
  • Колонка Value вместо N/A. Пока живая котировка не пришла, подставляется цена брокера. «Позиции» и «Обзор» считают стоимость одинаково, поэтому в оценке одной и той же бумаги они не расходятся.
  • «Выплаты» делили рублёвые выплаты на два итога. Купон и дивиденд в рублях приходили от брокера в разном написании и считались как разные валюты.
v0.16.0

Вкладка «Индекс» с составом индекса МосБиржи

Релиз на GitHub

Что нового

  • Четвёртая вкладка «Индекс». Показывает состав индекса МосБиржи (IMOEX): тикер, название, цена, изменение за сессию — абсолютное и в процентах (Chg и Chg%), вес бумаги в индексе и объём торгов. Список отсортирован по весу, от самой крупной бумаги к самой мелкой. Раньше вкладок было три. См. «Индекс МосБиржи».
  • Вкладка не зависит от выбранного счёта. Список один и тот же при любом счёте в левой панели, переключаться на другой счёт ради него не нужно.
  • Заявка и профиль прямо из списка. Enter открывает профиль инструмента, A — окно «Новая заявка» с торговым лотом этой бумаги. См. «Профиль инструмента» и «Торговля».
  • Котировки всего списка в реальном времени. Цены и изменение по бумагам индекса пересчитываются по мере сделок на бирже, дополнительных запросов к брокеру это не стоит. Брокер ограничил частоту обращений — автообновление выключается до конца сеанса, в статус-баре появляется сообщение, обновление по клавише R продолжает работать.
  • Закрытие профиля возвращает в ту же вкладку. Выделенная строка остаётся на месте. Раньше после Esc фокус всегда уходил во вкладку «Позиции», даже если профиль открывали из «Истории» или «Заявок».

Что исправлено

  • Пробуждение компьютера после сна. Сессия успевала истечь, и терминал переставал получать данные от брокера до конца сеанса. Теперь срок сессии отслеживается напрямую: проверка идёт раз в 30 секунд, повторная авторизация — за 2 минуты до истечения.
  • Цены по части позиций в большом портфеле. На весь пакет запросов отводилось 30 секунд, и бумаги в конце списка оставались со старыми цифрами. Теперь у каждого запроса свой срок.
  • Задержка после обрыва потока котировок. Короткий сбой связи на работавшем потоке стоил до 30 секунд без обновления цен, теперь — 1 секунду.
  • Ошибки загрузки данных. Вместо технического текста от gRPC с перемешанными английскими и русскими словами выводится «Ошибка при загрузке данных от брокера. Попробуйте обновить позже.» Сообщения об ошибке при выставлении заявки не изменились: там брокер называет причину, по которой заявку не приняли.
v0.15.0

Терминал сам обновляется до новой версии

Релиз на GitHub
  • Значок ⚡ v0.15.0 в шапке. Рядом с номером установленной версии загорается номер доступной. Проверка идёт в фоне раз в сутки, окон поверх торгового интерфейса не появляется. См. «Обновление программы».
  • Предложение обновиться при запуске. До основного экрана появляется окно с кнопками «Обновить и перезапустить» и «Продолжить». По умолчанию выбрано «Продолжить», его же даёт Esc. Раньше обновление означало повторный запуск скрипта установки вручную.
  • Обновление по клавише U. Открывает то же окно в любой момент, в русской раскладке — клавиша Г. Если установлена последняя версия, в статус-баре появится сообщение «Установлена последняя версия».
  • Проверка контрольной суммы SHA256. Скачанный файл сверяется с суммой, опубликованной в релизе. Сумма не совпала — файл удаляется, установленная версия остаётся нетронутой. Ошибка обновления не мешает торговать: терминал продолжает работу в текущей версии.
  • В Docker и сборках из исходников проверок нет. Версия там отображается как dev, сравнивать не с чем: ни значка, ни диалога не появляется. Образ обновляется прежней командой docker pull.
v0.14.0

Котировки в реальном времени и торговый лот в заявке

Релиз на GitHub
  • Котировки активного счёта приходят потоком. Колонка Value во вкладке «Позиции» пересчитывается по мере сделок на бирже. Раньше цена по каждой позиции запрашивалась отдельным вызовом раз в 5 секунд. Колонки AvgPrice, Current, Daily P&L и Unreal P&L приходят от брокера вместе с позициями и обновляются прежними 5 секундами. См. «Позиции».
  • В открытом профиле инструмента котировки тоже потоковые. Свечной график обновляется отдельно, раз в 5 секунд. По остальным счетам цены обновляются раз в 5 секунд, как раньше. См. «Профиль инструмента».
  • Возврат к опросу при обрыве потока. Пропала сеть — терминал сам переходит на опрос раз в 5 секунд, данные продолжают обновляться. Когда связь восстанавливается, поток подхватывается обратно.
  • Строка Trade Lot в торговых параметрах профиля. Это лот, по которому брокер считает объём заявки. На него же умножается количество, введённое в окне «Новая заявка» — подпись к полю выглядит как Lots (size - 10). Раньше в подписи стоял справочный Lot Size, а строки Trade Lot в профиле не было. Брокер не сообщает торговый лот — строка не выводится, используется Lot Size. См. «Торговля».
v0.13.0

Календари корпоративных действий и НКД по облигациям

Релиз на GitHub

Что нового

  • Календари корпоративных действий в профиле инструмента. По акциям — секции Dividends (дата закрытия реестра и размер дивиденда на акцию) и Splits (коэффициент конвертации и новый размер лота). По облигациям — Coupons, Amortization и Offers. В каждой секции до 3 прошлых и 3 будущих событий; если событий больше, в конце появляется …. Разбор полей — в разделах «Профиль инструмента» и «Облигации в терминале».
  • Колонка НКД во вкладке «История». По сделкам с облигациями видно накопленный купонный доход с валютой, например 12.34 RUB. По остальным инструментам колонка пустая. См. «История сделок».
  • Маркер ↳ во вкладке «Заявки». Сработавшая стоп-заявка порождает биржевую заявку — теперь порождённая показывается прямо под родительской с отступом и маркером. См. «Заявки».
  • Новый формат API-ключа. Ключи выдаются на api.finam.ru/tokens/ и выглядят как короткая строка tapi_sk_... вместо прежней длинной. Старые ключи помечены как Legacy и продолжают работать. Порядок первого запуска — в разделе «Установка».
  • Сессия продлевается сама. Терминал держит открытым канал обновления сессионного токена вместо повторной авторизации по таймеру и восстанавливает его после обрыва связи.

Что исправлено

  • Запуск. Терминал больше не останавливается на загрузке счетов с ошибкой Token is invalid or malformed.
  • Первое подключение. Оно занимало около 12 секунд и упиралось в таймаут. Теперь проходит за доли секунды.
  • Обрыв сессии в середине работы. Срок жизни сессии определялся неверно, и терминал мог перестать получать данные, не успев продлить её. Теперь срок берётся от брокера.
v0.12.1

Исправлена сборка Docker-образа

Релиз на GitHub
  • Docker-образ. Сборочный образ обновлён до Go 1.26 — в v0.12.0 сам терминал перешёл на эту версию языка, а образ собирался прежним компилятором. Изменение касается только запуска в Docker: в интерфейсе ничего не поменялось, и обновляться с v0.12.0 ради него не нужно.
v0.12.0

Подробности по фьючерсам, опционам и облигациям в профиле

Релиз на GitHub
  • Отдельный блок параметров под тип бумаги в профиле инструмента. У фьючерса — Contract (размер контракта) и Expiry (дата экспирации), у опциона к ним добавляется Strike (цена исполнения), у облигации — Face Value (номинал с валютой). У акций блока нет. См. «Профиль инструмента».
  • Open Int. в секции котировок. Открытый интерес показывается по фьючерсам и опционам, когда значение не равно нулю.
  • Версия сборки в шапке терминала. Раньше на её месте стояло фиксированное значение — теперь видно, какая версия запущена, и её можно сверить с этой страницей.
  • Терминал переведён на Go 1.26. На интерфейс это не влияет.
v0.11.0

Стоп-лосс, тейк-профит и управление заявками

Релиз на GitHub

Что нового

  • Стоп-лосс, тейк-профит и связанная пара SL+TP. В окне создания заявки к рыночной и лимитной добавились защитные заявки; в паре SL+TP исполнение одной отменяет вторую. Поля цены меняются под выбранный тип, условие срабатывания подставляется само. См. «Торговля».
  • Отмена и редактирование заявки прямо из терминала. Во вкладке «Заявки»: Delete или X — отменить, E — изменить. Оба действия спрашивают подтверждение. См. «Заявки».
  • Таблица заявок стала подробнее. Появились условие срабатывания, лимитная и стоп-цена, срок действия и раздельные колонки исполненного и оставшегося количества.
  • Список счетов в две строки. Сверху номер счёта, снизу эквити и дневной P&L с цветовой индикацией. Колонка с типом счёта убрана. См. «Обзор интерфейса».
  • Разряды в денежных суммах разделены пробелом: 1 234 567.89.

Что исправлено

  • Статусы заявок. Статусы стоп-лосса и тейк-профита показывались неверно.
  • Цена в форме заявки. Она подставляется из текущей котировки инструмента — раньше поле открывалось пустым.
v0.10.1

Видно, когда счёт не загрузился

Релиз на GitHub
  • Индикатор ошибки у счёта. Если данные по счёту не пришли от брокера, счёт помечается в списке. Раньше на его месте молча оставались старые цифры.
  • Портфель не пропадает при временной ошибке API. Данные позиций сохраняются, эквити и P&L продолжают обновляться.
  • Подробная запись в логе по каждой ошибке обращения к API: метод, параметры запроса, код и текст ответа. Такой лог можно приложить к обращению в поддержку брокера.
v0.10.0

Профиль инструмента и свечной график

Релиз на GitHub
  • Профиль инструмента на весь экран. Открывается клавишей Enter на позиции и P на результате поиска. Внутри — характеристики бумаги, котировки, торговые параметры и расписание торговых сессий. См. «Профиль инструмента».
  • Свечной график в профиле. Японские свечи символами Юникода, зелёные вверх и красные вниз, подписи времени по оси X. Таймфрейм переключается клавишами 1–4: M5, H1, D, W.
  • Даты в местном часовом поясе. Во вкладках «История» и «Заявки» время показывается по часам компьютера, а не в UTC.
v0.9.0

Вкладки «История» и «Заявки», количество в лотах

Релиз на GitHub
  • Вкладки в основной области. К позициям добавились «История» сделок и «Заявки», переключение — Tab и стрелки ← / →. См. «История сделок» и «Заявки».
  • Количество в лотах. Лоты используются во всех таблицах и в формах покупки и закрытия позиции; рядом показываются размер лота и стоимость, которая пересчитывается при вводе. См. «Торговля».
  • Названия инструментов вместо тикеров. В таблицах и заголовках окон выводится «Sberbank», а не SBER; если название не пришло от брокера, остаётся тикер.
v0.8.1

Окно поиска инструментов

Релиз на GitHub
  • Поиск по тикеру или названию. Открывается клавишей S из любого экрана и занимает всю ширину окна. Из найденного инструмента можно сразу перейти к созданию заявки. См. «Поиск инструментов».
v0.8.0

Лицензия и документация проекта

Релиз на GitHub
  • У проекта появилась лицензия Apache 2.0, правила участия в разработке и история версий в репозитории.
  • На работу терминала релиз не влияет: интерфейс и торговые функции не менялись.
v0.7.1

Исправлены файлы сборок в релизе

Релиз на GitHub
  • Готовые файлы для скачивания. В v0.7.0 они собрались с ошибкой. Возможности терминала те же, но ставить нужно v0.7.1 или новее — как это сделать, описано в разделе «Установка».
v0.7.0

Первый публичный релиз — портфель и заявки

Релиз на GitHub
  • Портфель на весь экран. Список торговых счетов слева, таблица открытых позиций справа; позиции с нулевым количеством скрываются. См. «Позиции».
  • Заявки Market и Limit, а также закрытие открытой позиции отдельным окном. См. «Торговля».
  • Мастер первого запуска. Терминал спрашивает API-ключ и сохраняет его локально, чтобы вводить ключ каждый раз не приходилось. См. «Установка».
  • Интерфейс подстраивается под размер окна терминала при изменении его размеров.

Куда дальше