https://github.com/kiberdruzhinnik/go-exchange-api
Прокладка для получения данных с MOEX и SPBEX для использования с Portfolio Performance.
https://github.com/kiberdruzhinnik/go-exchange-api
api moex portfolio-performance spbex
Last synced: 6 months ago
JSON representation
Прокладка для получения данных с MOEX и SPBEX для использования с Portfolio Performance.
- Host: GitHub
- URL: https://github.com/kiberdruzhinnik/go-exchange-api
- Owner: kiberdruzhinnik
- Created: 2023-12-16T15:42:45.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2026-01-01T16:34:06.000Z (6 months ago)
- Last Synced: 2026-01-06T22:16:20.830Z (6 months ago)
- Topics: api, moex, portfolio-performance, spbex
- Language: Go
- Homepage:
- Size: 7.02 MB
- Stars: 6
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# go-exchange-api
Проект для получения данных с бирж MOEX и SPBEX для использования с [Portfolio-Performance](https://www.portfolio-performance.info/).
## Видео об этом
[](https://www.youtube.com/watch?v=L4K1NdUF1Ic)
## Ограничения
Для биржи Moex требуется использовать Redis для кеширования истории цен. Также для нее данные запаздывают на 20 минут относительно торгов.
## Как развернуть
Проще всего использовать `docker`:
```bash
docker compose up -d
```
```yaml
version: '3'
services:
redis-cache:
image: redis:7-alpine
volumes:
- redis:/data
healthcheck:
test: [ "CMD-SHELL", "redis-cli ping | grep PONG" ]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
exchange-api:
image: ghcr.io/kiberdruzhinnik/go-exchange-api:latest
environment:
EXCHANGE_API_REDIS: redis://redis-cache:6379/0
ports:
- 8080:8080/tcp
depends_on:
- redis-cache
healthcheck:
test: [ "CMD-SHELL", "./healthcheck" ]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
volumes:
redis:
```
## Как проверить
```bash
curl http://localhost:8080/moex/sber | jq
```

Вместо биржи `moex` также можно использовать `spbex`.
## Как настроить Portfolio Performance
Во вклакде `All Securities` нажимаем знак `⊕`, а затем `Empty instrument`.

На вкладке `Security Master Data` заполняем название актива, бумагу и тикер.

На вкладке `Historical Quotes` выбираем `Provider: JSON` и заполняем поля:
```params
Feed URL: http://localhost:8080/moex/{TICKER}
Path to Date: [*].date
Path to Close: [*].close
Path to Day's Low: [*].low
Path to Day's High: [*].high
Path to Volume: [*].volume
```

Результат:
