Skip to content

Терминальный клиент (TUI) для торговли ценными бумагами на бирже.

License

Notifications You must be signed in to change notification settings

updevru/finam-terminal

Repository files navigation

Go Go Report Card License GitHub release (latest by date) Go Version

Finam Terminal

Finam Terminal — это терминальный интерфейс (TUI) для торговли и просмотра рыночных данных через API брокера Финам. Приложение написано на Go и работает прямо в консоли.

Установка

Готовые бинарные файлы

Вы можете скачать скомпилированные файлы для вашей операционной системы со страницы Releases:

  • Windows (amd64)
  • Linux (amd64)
  • macOS (Intel & Apple Silicon)

Просто скачайте файл, переименуйте его в finam-terminal (если нужно) и запустите в терминале.

С помощью Docker

Приложение доступно в GitHub Container Registry:

docker pull ghcr.io/updevru/finam-terminal:latest
docker run -it --rm ghcr.io/updevru/finam-terminal:latest

Сборка из исходного кода

Требуется Go 1.24+.

# Установка зависимостей
go mod tidy

# Сборка исполняемого файла
go build -o finam-terminal.exe main.go

# Запуск
./finam-terminal.exe

Настройка и получение доступа

Для работы с терминалом вам понадобятся:

  1. Брокерский счет (или демо-счет).
  2. API Токен.

Полезные ссылки:

Вставьте полученный токен в экран настройки приложения, и он будет сохранен локально (в ~/.finam-cli/.env).

Возможности

  • 🚀 Автоматическая начальная настройка.
  • 📊 Просмотр портфеля и списка счетов.
  • 📈 Отображение котировок в реальном времени.
  • 📝 Возможность совершать сделки.

Для разработчиков

Структура проекта

  • main.go — Точка входа.
  • api/ — Клиент для взаимодействия с Finam Trade API (gRPC).
  • ui/ — Компоненты интерфейса (TUI на базе tview).
  • config/ — Управление конфигурацией.
  • models/ — Общие структуры данных.
  • conductor/ — Документация и планы разработки (Conductor Framework).

Переменные окружения

Конфигурация хранится в файле .env (в папке проекта или в домашней директории пользователя ~/.finam-cli/.env).

Переменная Описание Значение по умолчанию
FINAM_API_TOKEN Токен доступа к API
FINAM_GRPC_ADDR Адрес gRPC сервера api.finam.ru:443

Тестирование

Запуск всех тестов:

go test ./...

Проверка покрытия кода:

go test -coverprofile=coverage.out ./...
go tool cover -func=coverage.out

Разработка с Gemini и Conductor

Этот проект использует Gemini CLI и расширение Conductor для планирования и реализации задач.

  • Conductor — это фреймворк для управления состоянием проекта и планирования треков (задач) в папке conductor/.
  • Все крупные изменения должны сопровождаться обновлением соответствующих спецификаций (spec.md) и планов (plan.md).

Основные команды для работы:

  • Создание и описание задачи:
    /conductor:newTrack "Описание задачи"
  • Реализация созданной задачи:
    /conductor:implement

About

Терминальный клиент (TUI) для торговли ценными бумагами на бирже.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages