Исходный код
Исходный код приложения можно скачать из 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 - загрузка котировок активов от ММВБ