Metadata-Version: 2.4
Name: zipfinam
Version: 0.1.1
Summary: Ziplime data source add-on for Russian market (Finam/MOEX) via gRPC
Project-URL: Homepage, https://github.com/vyacheslav/zipfinam
Project-URL: Repository, https://github.com/vyacheslav/zipfinam
License: MIT
Keywords: algotrading,backtesting,finam,grpc,moex,russia,trading,ziplime
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Financial and Insurance Industry
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Office/Business :: Financial
Classifier: Topic :: Office/Business :: Financial :: Investment
Requires-Python: <4.0,>=3.12
Requires-Dist: aiocache>=0.12.0
Requires-Dist: asyncclick>=8.0.0
Requires-Dist: googleapis-common-protos<2.0.0,>=1.65.0
Requires-Dist: grpcio<2.0.0,>=1.67.0
Requires-Dist: polars>=1.0.0
Requires-Dist: structlog>=24.0.0
Requires-Dist: ziplime<2.0.0,>=1.11.11
Description-Content-Type: text/markdown

# zipFinam

**zipFinam** — дополнение к библиотеке [ziplime](https://github.com/Limex-com/ziplime) для работы с российским рынком (MOEX/ММВБ) через gRPC API.

## Установка

```bash
pip install zipfinam
```

## Быстрый старт

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

```bash
export GRPC_TOKEN=ваш_токен
export GRPC_SERVER_URL=grpcserver.example.com:443
```

### Загрузка данных инструментов (активов)

```python
from zipfinam import GrpcAssetDataSource
from ziplime.assets.services.asset_service import AssetService

asset_source = GrpcAssetDataSource.from_env()
asset_service = AssetService(data_source=asset_source)

await asset_service.ingest_assets(clear_asset_db=True)
```

### Загрузка исторических данных

```python
import datetime
from zipfinam import GrpcDataSource
from ziplime.data.services.bundle_service import BundleService

data_source = GrpcDataSource.from_env()

await ingest_market_data(
    bundle_name="my_bundle",
    data_source=data_source,
    symbols=["SBER@MISX", "LKOH@MISX", "GAZP@MISX"],
    frequency=datetime.timedelta(days=1),
    date_from=datetime.datetime(2024, 1, 1, tzinfo=datetime.timezone.utc),
    date_to=datetime.datetime(2024, 12, 31, tzinfo=datetime.timezone.utc),
)
```

### Запуск бэктеста

```python
from zipfinam import GrpcDataSource

data_source = GrpcDataSource.from_env()

# используйте стандартный API ziplime для запуска симуляций
```

## Конфигурация

| Переменная окружения  | Описание                        | Обязательная |
|-----------------------|---------------------------------|:------------:|
| `GRPC_TOKEN`          | Токен авторизации gRPC API      | Да           |
| `GRPC_SERVER_URL`     | Адрес gRPC сервера (host:port)  | Да           |
| `GRPC_MAXIMUM_THREADS`| Макс. число параллельных запросов | Нет        |

## Поддерживаемые таймфреймы

| Частота     | Константа         |
|-------------|-------------------|
| 1 минута    | `TIME_FRAME_M1`   |
| 5 минут     | `TIME_FRAME_M5`   |
| 15 минут    | `TIME_FRAME_M15`  |
| 30 минут    | `TIME_FRAME_M30`  |
| 1 час       | `TIME_FRAME_H1`   |
| 4 часа      | `TIME_FRAME_H4`   |
| 1 день      | `TIME_FRAME_D`    |
| 1 неделя    | `TIME_FRAME_W`    |
| 1 месяц     | `TIME_FRAME_MN`   |
| Квартал     | `TIME_FRAME_QR`   |

## Требования

- Python >= 3.12
- [ziplime](https://github.com/Limex-com/ziplime) >= 1.11.11

## Лицензия

MIT
