CHANGELOG

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

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

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

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. Таймфрейм переключается клавишами 14: 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-ключ и сохраняет его локально, чтобы вводить ключ каждый раз не приходилось. См. «Установка».
  • Интерфейс подстраивается под размер окна терминала при изменении его размеров.

Куда дальше