> For the complete documentation index, see [llms.txt](https://docs.iexexchanger.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.iexexchanger.com/guide/kursy/istochniki/kursy-iz-faila/formaty-failov-i-pravila-podgotovki-dannykh.md).

# Форматы файлов и правила подготовки данных

Перед использованием модуля **«Парсер курсов» — «Курсы из файла»** необходимо подготовить файл с курсами в одном из поддерживаемых форматов.

Система автоматически скачивает файл по указанной ссылке, обрабатывает его содержимое, выполняет необходимые вычисления и обновляет курсы в обменном пункте.

***

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

Система поддерживает следующие форматы файлов:

<table><thead><tr><th width="364.1328125">Возможность</th><th>TXT</th><th>CSV</th><th>JSON</th></tr></thead><tbody><tr><td>Простые значения</td><td>Да</td><td>Да</td><td>Да</td></tr><tr><td>Математические формулы</td><td>Да</td><td>Да</td><td>Да</td></tr><tr><td>Проценты</td><td>Да</td><td>Да</td><td>Да</td></tr><tr><td>Ссылки на другие пары</td><td>Да</td><td>Нет</td><td>Нет</td></tr><tr><td>Алиасы</td><td>Да</td><td>Нет</td><td>Нет</td></tr><tr><td>Несколько пар в одной строке</td><td>Да</td><td>Нет</td><td>Нет</td></tr><tr><td>Автоматический расчёт обратных курсов</td><td>Да</td><td>Нет</td><td>Нет</td></tr><tr><td>Комментарии</td><td>Да</td><td>Нет</td><td>Нет</td></tr></tbody></table>

Для большинства проектов рекомендуется использовать формат TXT, так как он предоставляет максимальную гибкость и поддерживает все возможности файлового парсера.

***

## Общие требования к файлам

| Параметр                  | Значение                        |
| ------------------------- | ------------------------------- |
| Максимальный размер файла | 2 МБ                            |
| Кодировка                 | UTF-8                           |
| Поддерживаемые форматы    | TXT, CSV, JSON                  |
| Тип ссылки                | Публичная HTTP или HTTPS ссылка |
| Пустой файл               | Не допускается                  |

Если файл не соответствует указанным требованиям, система не сможет обработать его содержимое.

***

## Правила именования валютных пар

Каждая валютная пара должна иметь корректное название.

Правильные примеры:

```
BTC - USDT
USD - RUB
ETH - BTC
```

Допускаются:

* латинские буквы;
* цифры;
* символ подчёркивания `_`.

Примеры:

```
USDT_TRC20
RUB1
BTC
```

Ограничения:

* название должно начинаться с латинской буквы;
* допускаются только латинские буквы, цифры и символ подчёркивания;
* максимальная длина каждой части пары — 10 символов.

***

## TXT-файл

TXT является основным и наиболее функциональным форматом.

Он поддерживает:

* фиксированные значения;
* математические выражения;
* проценты;
* ссылки на другие пары;
* алиасы;
* несколько пар в одной строке;
* автоматическое создание обратных курсов.

***

## Простые значения

Самый простой способ указать курс.

Пример:

```
USD - RUB : 91.6
BTC - USDT : 61500
ETH - USDT : 2500
```

***

## Несколько пар в одной строке

Можно присвоить одно значение сразу нескольким парам.

Пример:

```
BTC - USDT, ETH - USDT : 61500
```

После обработки обе пары получат одинаковое значение.

***

## Математические выражения

Поддерживаются следующие операции:

<table><thead><tr><th width="156.5234375">Операция</th><th>Символ</th></tr></thead><tbody><tr><td>Сложение</td><td>+</td></tr><tr><td>Вычитание</td><td>-</td></tr><tr><td>Умножение</td><td>*</td></tr><tr><td>Деление</td><td>/</td></tr><tr><td>Скобки</td><td>( )</td></tr></tbody></table>

Пример:

```
USD - RUB : (90 + 2) * 1.01
```

***

## Использование процентов

Система поддерживает работу с процентами.

Примеры:

```
USD - RUB : 90 + 2%
BTC - USDT : 61500 - 1%
BTC - RUB : 61500 * 98.5%
```

Пример удержания комиссии 1.5%:

```
BTC - RUB : 61500 * 98.5%
```

***

## Использование других пар

Одна валютная пара может использовать значение другой пары.

Пример:

```
USD - RUB : 91.6
EUR - RUB : (USD - RUB) * 1.08
```

После обработки система автоматически рассчитает значение EUR относительно RUB.

***

## Автоматический расчёт обратных курсов

Для получения обратного курса можно использовать существующую пару.

Пример:

```
USD - RUB : 91.6
RUB - USD : (USD - RUB)
```

Система автоматически определит обратную пару и рассчитает её значение.

Результат:

| Пара      | Значение |
| --------- | -------- |
| USD - RUB | 91.6     |
| RUB - USD | 0.010917 |

***

## Алиасы

Алиасы позволяют использовать короткие имена вместо длинных выражений.

Пример:

```
MAIN = BTC - USDT
BTC - USDT : 61500
ETH - USD : (MAIN) - 2000
```

В данном примере вместо полного названия пары используется короткое имя MAIN.

***

## Комментарии

В TXT-файлах можно использовать комментарии.

Поддерживаются следующие варианты:

```
# комментарий
; комментарий
// комментарий
```

Комментарии полностью игнорируются системой и используются только для удобства оформления файла.

***

## Полноценный пример TXT-файла

```
# Основные курсы
USD - RUB : 91.6
BTC - USDT : 61500
ETH - USDT : 2500

# Обратный курс
RUB - USD : (USD - RUB)

# Алиас
MAIN = BTC - USDT

# Производные курсы
ETH - USD : (MAIN) - 59000
BTC - RUB : (BTC - USDT) * (USD - RUB)

# Комиссия
BTC - RUB CLIENT : (BTC - RUB) * 98.5%
```

***

## CSV-файл

CSV используется для хранения курсов в табличном формате.

Каждая строка должна содержать две колонки:

1. Валютная пара.
2. Значение курса.

Пример:

```csv
BTC - USDT,61500
ETH - USD,(BTC - USDT) - 2000
USD - RUB,91.6
TRX - USD,(BTC - USDT) * 0.85
```

***

## JSON-файл

JSON используется для структурированного хранения данных.

Пример:

```json
{
  "BTC - USDT": 61500,
  "ETH - USD": "(BTC - USDT) - 2000",
  "USD - RUB": 91.6,
  "TRX - USD": "(BTC - USDT) * 0.85 + 1.5%"
}
```

Каждый ключ представляет собой валютную пару, а значение содержит курс или формулу для его расчёта.

***

## Что поддерживается

<table><thead><tr><th width="472.8515625">Возможность</th><th>Поддерживается</th></tr></thead><tbody><tr><td>Простые значения</td><td>Да</td></tr><tr><td>Формулы</td><td>Да</td></tr><tr><td>Проценты</td><td>Да</td></tr><tr><td>Ссылки на другие пары</td><td>Да</td></tr><tr><td>Алиасы</td><td>Да</td></tr><tr><td>Несколько пар в одной строке</td><td>Да</td></tr><tr><td>Автоматический расчёт обратных курсов</td><td>Да</td></tr><tr><td>Комментарии</td><td>Да</td></tr></tbody></table>

***

## Что не поддерживается

Следующие конструкции не будут обработаны системой или приведут к ошибке:

| Пример                      | Причина                            |
| --------------------------- | ---------------------------------- |
| BTC = RUB                   | Неверный формат валютной пары      |
| 123 - BTC                   | Название должно начинаться с буквы |
| Файлы более 2 МБ            | Превышен допустимый размер         |
| Кодировка отличная от UTF-8 | Не поддерживается                  |
| Внутренние ссылки сервера   | Не допускаются                     |
| Циклические зависимости     | Невозможно выполнить расчёт        |

***

## Скорость обработки файлов

Для повышения производительности система скачивает каждый файл только один раз за цикл обновления.

Даже если один источник содержит десятки или сотни курсов, файл будет загружен один раз, после чего все значения будут использованы для обновления связанных курсов.

Это позволяет существенно снизить нагрузку на сервер и ускорить обновление данных.

***

## Как начать использовать курсы из файла

{% stepper %}
{% step %}

### Создайте файл

Создайте файл с курсами в одном из поддерживаемых форматов.

Например:

```
USD - RUB : 91.6
BTC - USDT : 61500
```

{% endstep %}

{% step %}

### Разместите файл

Загрузите файл на сервер или в облачное хранилище.

Пример ссылки:

```
https://example.com/rates.txt
```

Ссылка должна быть прямой и доступной без авторизации.
{% endstep %}

{% step %}

### Добавьте источник

Перейдите в раздел: **«Парсер курсов» — «Курсы из файла»**

Создайте новый источник и укажите ссылку на файл.
{% endstep %}

{% step %}

### Добавьте необходимые курсы

Создайте курсы, названия которых полностью совпадают с названиями внутри файла.
{% endstep %}

{% step %}

### Используйте курсы

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

* в направлениях обмена;
* в формулах;
* в других связанных разделах системы.
  {% endstep %}
  {% endstepper %}

## Рекомендации

Для стабильной работы рекомендуется:

* использовать формат TXT;
* использовать кодировку UTF-8;
* не превышать размер файла 2 МБ;
* использовать понятные названия валютных пар;
* периодически проверять доступность файла;
* использовать комментарии для сложных файлов;
* группировать связанные курсы по логическим блокам.

При соблюдении данных рекомендаций система сможет максимально быстро и корректно обрабатывать ваши курсы.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.iexexchanger.com/guide/kursy/istochniki/kursy-iz-faila/formaty-failov-i-pravila-podgotovki-dannykh.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
