Simple Invest App

Приложения для учета сделок

Исходный код

Исходный код приложения можно скачать из github.com

Исходные коды содержат

  • Каталог gui - набор html файлов web интерфейса приложения
  • Каталог install-db - содержит пустую базу, ее можно взять для использования и перенести в удобное место
  • Каталог utils - содержит различные утилиты для загрузки данных в базу
  • app.go - исходный код приложения
  • first_start.go - исходный код, помогающий заполнить первоначальные настройки приложения

Необходимые библиотеки golang

  • github.com/mattn/go-sqlite3
  • github.com/gorilla/mux

Запуск приложения

Для запуска необходимо переместить пустую базу для работы в удобное место, для запуска приложения нужно указывать с какой базой оно будет работать. В качестве примера рассмотрим, что база будет расположена в каталоге с:\temp с именем default.db

Для начала необходимо запустить first_start.go


go run first_start.go -db c:\temp\default.db
						

Необходимо заполнить три параметра

  • Рабочий каталог - в этом каталоге должен расположен быть каталог gui. Например если перенести каталог gui c:\temp, то настройка будет c:\temp\
  • Порт, на котором будет работать приложение - любой свободный и удобный для вас порт
  • Движение комиссий в сделке - если установлено значение 1, то при создание транзакций по сделке, комиссия будет связана с каждой сделкой. При значение 0 подразумевается, что вся комиссия списывается одной транзакций за день

После обновления настроек можно запустить приложение


go run app.go -db c:\temp\default.db
						

Описание веб приложения

Возможности приложения:

  • Ведение справочной информации - активы, портфели, валюты, котировки, курсы валюта
  • Учет сделок - отражение сделок с учетом отложенного фактического движения активов и денежных средств
  • Учет неторгорвых операций - отражение движений активов и денежных средств как ввод-вывод

Описание таблиц БД

portfolios

Таблица для хранения списка портфелей

  • id - идентификатор таблицы (автоинкремент
  • name - имя портфеля
  • broker - брокер

currencies

Таблица для хранения списка валют

  • code - код валюты, числовой
  • name - имя валюты
  • metal - признак драгметалла

assets

Таблица для хранения списка активов

  • id - идентификатор таблицы (автоинкремент)
  • name - имя актива
  • grn_code - номер государственной регистрации актива
  • isin - isin актива
  • type - тип актива
  • ticker - тикер актива
  • curr - валюта номинал актива

currency_rates

Таблица для хранения курсов валюта

  • id - идентификатор таблицы (автоинкремент)
  • date_rate - дата курса
  • currency - валюта
  • rate - курс

asset_quotes

Таблица для хранения котировок актива

  • id - идентификатор таблицы (автоинкремент)
  • date_quote - дата котировки
  • asset - идентификатор актива из таблицы assets
  • currency - валюта котировки
  • open - котировка open
  • min - котировка min
  • max - котировка max
  • close - котировка close
  • accint - НКД на дату котировки, в валюте

deals

Таблица для хранения сделок

  • id - идентификатор таблицы (автоинкремент)
  • number - номер сделки
  • date_deal - дата сделки
  • date_exec - дата исполнения сделки (дата движения актива/денежных средств по сделке)
  • asset - идентификатор актива из таблицы assets
  • direction - направление сделки
  • qty - количество актива
  • price_curr - валюта цены сделки
  • price - цена сделки
  • amount - сумма сделки
  • accint - НКД сделки
  • broker_comm_curr - валюта комиссии брокера
  • broker_comm - комиссия брокера
  • portfolio -идентификатор портфеля из таблицы portfolios

asset_transactions

Таблица для хранения движений актива

  • id - идентификатор таблицы (автоинкремент)
  • date_tx - дата операции с активом
  • asset - идентификатор актива из таблицы assets
  • portfolio -идентификатор портфеля из таблицы portfolios
  • qty - количество актива
  • deal_id - идентификатор сделки из таблица deals (если nontrade = 0)
  • nontrade - признак операции с активом (когда deal_id = 0)
  • comment - комментарий к операции

money_transactions

Таблица для хранения движений денежных средств

  • id - идентификатор таблицы (автоинкремент)
  • date_tx - дата операции с активом
  • portfolio - идентификатор портфеля из таблицы portfolios
  • curr - валюта операции
  • deal_id - идентификатор сделки из таблица deals (если nontrade = 0)
  • nontrade - признак операции с денежными средствами (когда deal_id = 0)
  • comment - комментарий к операции

Описание дополнительных утилит

  • cbr_rates.py - загрузка курсов валюта от ЦБ РФ
  • moex_quotes.py - загрузка котировок активов от ММВБ