# Страховка курса

### Применение страховки курса

{% hint style="success" %}
**Страховочный курс, при корректной настройке, может быть полезен**:\
\- **при временной приостановки сервиса, который передает курсы в парсер**. К примеру, в случае, если биржа или любой другой сервис уходит на технические работы и курсы могут не обновляться. \
\- **при использовании парсера конкуренции**. К примеру, для того чтобы указать какой максимальный курс вы готовы отдать клиенту и какое действие будет произведено с направлением, если итоговый курс будет больше чем ваш максимально указанный курс, который вы готовы отдать клиенту (то есть сработает страховка курса)
{% endhint %}

### Алгоритм работы функционала

<details>

<summary>Определение переменных</summary>

**inAmount** - Сумма обмена отдаем&#x20;

**outAmount** - Сумма обмена получаем&#x20;

**outFeeAmount** - значение "Сумма комиссии"&#x20;

**FeePercent** - значение "Процент комиссии"&#x20;

**discount** - значение "DISCOUNT FOR AMOUNT" в настройках направления - шаг "Комиссии"&#x20;

**discountRate** - значение "DISCOUNT FOR AMOUNT" разделить на 100, то есть в %&#x20;

**feeRate** - значение "Процент комиссии" разделить на 100, то есть в %.&#x20;

**in:out** (курс из основного парсера либо курс указанный вручную в настройка направления)&#x20;

**rate** - курс обмена с учетом процента комиссии, но без учета суммы комиссий&#x20;

**RateFrom:RateTo** ( курс, указанный в страховке. К примеру, 1:39 (он может быть ручным либо из парсера)&#x20;

**defaultPercent** - тоже самое, что и значение "Процент комиссиии" только для страховочного курса. Задействуется только когда срабатывает страховка курса.&#x20;

**maxLimitPercent** - %, определяющий верхний лимит актуального курса по отношению к курсу, который указан в страховке курса.

</details>

#### Формула расчета курса обмена

```
feeRate = FeePercent / 100 
in = in + (in * feeRate) 
discountRate = discount / 100 
in = in - (in * discountRate) 
rate (курс обмена с учетом процента комиссии) = out / in
```

#### Формула расчета страховочного курса

{% code fullWidth="false" %}

```
Текущий курс страховки = RateTo / RateFrom - defaultPercent 
Курс страхования = Текущий курс страховки + maxLimitPercent.
```

{% endcode %}

#### **Варианты работы страховки курса**

{% hint style="info" %}
**Если Курс обмена с учетом процента комиссии** ≥ **Курса страхования -> срабатывает страховка курса и в зависимости от действия (action)**:&#x20;

а) Для “**Установить значение по умолчанию**” будет использоваться значение “Текущий курс страховки” в качестве актуального курса&#x20;

б) Для “**Максимальный курс**” будет использоваться значение “Курс страхования” в качестве актуального курса&#x20;

в) Для “**Отключить направление**” будет отключаться направление.

\
То есть страховка курса срабатывает когда **окончательный курс обмена (курс из парсера основного - (минус) процент комиссии) становится** ≥ **чем курс страхования (текущий курс страховки минус процент комиссии (defaultPercent)) на значение maxLimitPercent %.** \
По сути, в поле "Max limit difference percent" мы указываем насколько мы допускаем отклонение rate от курса страхования.
{% endhint %}

При [**срабатывании страховочного курса**](#user-content-fn-1)[^1] в админ панеле, направление окрашивается в красный цвет и отображается страховочный курс.

<details>

<summary>Пример 1 - Страховка не срабатывает</summary>

* Для направления указан курс обмена "Автоматически": из парсера whitebit (BTC-USDT, USDT-USD), курс из парсера (in:out) 1:34256.00.
* Процент комиссии (FeePercent): 7&#x20;
* Значение "DISCOUNT FOR AMOUNT (discount): 0
* В страховке курса указан тип "Автоматически": парсер kraken (BTC-USD), курс из страховочного парсера (RateFrom:RateTo) 1:34090.
* Значение "Default percent" (defaultPercent): 7
* Значение "Max limit difference percent" (maxLimitPercent): 1.1
* Action выбран "Установить значение по умолчанию"

feeRate = FeePercent / 100 = 7/100 = 0.07 \
in = in + (in \* feeRate) = 1 + (1*0.07)=1.07* \
*discountRate = discount / 100 = 0* \
*in = in - (in \* discountRate) = 1.07 - (1.07*0) = 1.07 \
RATE (окончательный курс обмена)= out / in = 34256.00/1.07= 32014.9533

ЕСЛИ RATE ≥ Курс страхования -> срабатывает страховка курса \
\
Текущий курс страховки = RateTo/RateFrom-defaultPercent = 34090 / 1 - 7% = 31703.7\
Курс страхования = Текущий курс страховки + maxLimitPercent = 31703.7 + 1.1% = 1 : 32052.4407

Rate (32014.9533) < Курса страхования (32052.4407) -> **страховка курса не срабатывает и клиент будет видеть курс с учетом процента комиссии, а именно 32014.9533**

</details>

<details>

<summary>Пример 2 - Страховка срабатывает / Action: Установить значение по умолчанию</summary>

* Для направления указан курс обмена "Автоматически": из парсера whitebit (BTC-USDT, USDT-USD), курс из парсера (in:out) 1:36256.00.
* Процент комиссии (FeePercent): 7&#x20;
* Значение "DISCOUNT FOR AMOUNT (discount): 0
* В страховке курса указан тип "Автоматически": парсер kraken (BTC-USD), курс из страховочного парсера (RateFrom:RateTo) 1:34090.
* Значение "Default percent" (defaultPercent): 7
* Значение "Max limit difference percent" (maxLimitPercent): 1.1
* Action выбран "Установить значение по умолчанию"

feeRate = FeePercent / 100 = 7/100 = 0.07 \
in = in + (in \* feeRate) = 1 + (1*0.07)=1.07* \
*discountRate = discount / 100 = 0* \
*in = in - (in \* discountRate) = 1.07 - (1.07*0) = 1.07\
RATE (окончательный курс обмена)= out / in = 36256.00/1.07= 33884.1121

ЕСЛИ RATE ≥ Курс страхования -> срабатывает страховка курса \
\
Текущий курс страховки = RateTo/RateFrom-defaultPercent = 34090 / 1 - 7% = 31703.7 // этот курс будет установлен если выбрано "Установить курс по умолчанию". То есть курс будет 1:31703.7\
Курс страхования = Текущий курс страховки + maxLimitPercent = 31703.7 + 1.1% = 1 : 32052.4407

Rate (33884.1121) > Курса страхования (32052.4407) -> **страховка курса срабатывает и клиент будет видеть текущий курс страховки, а именно 31703.7**

</details>

<details>

<summary>Пример 3 - Страховка срабатывает / Action: Максимальный курс </summary>

* Для направления указан курс обмена "Автоматически": из парсера whitebit (BTC-USDT, USDT-USD), курс из парсера (in:out) 1:34256.00.
* Процент комиссии (FeePercent): 7&#x20;
* Значение "DISCOUNT FOR AMOUNT (discount): 0
* В страховке курса указан тип "Автоматически": парсер kraken (BTC-USD), курс из страховочного парсера (RateFrom:RateTo) 1:34090.
* Значение "Default percent" (defaultPercent): 7
* Значение "Max limit difference percent" (maxLimitPercent): 0.35
* Action выбран "Максимальный курс"

feeRate = FeePercent / 100 = 7/100 = 0.07 \
in = in + (in \* feeRate) = 1 + (1*0.07)=1.07* \
*discountRate = discount / 100 = 0* \
*in = in - (in \* discountRate) = 1.07 - (1.07*0) = 1.07 \
RATE (окончательный курс обмена)= out / in = 34256.00/1.07= 32014.9533

ЕСЛИ RATE ≥ Курс страхования -> срабатывает страховка курса \
\
Текущий курс страховки = RateTo/RateFrom-defaultPercent = 34090 / 1 - 7% = 31703.7\
Курс страхования = Текущий курс страховки + maxLimitPercent = 31703.7 + 0.35% = 1 : 31814.6629 \
\
Rate (32014.9533) > Курса страхования (31814.6629) -> **страховка курса срабатывает и клиент будет видеть Курс страхования, а именно** 31814.6629

</details>

<details>

<summary>Пример 4 - Страховка срабатывает / Action: Отключить направление</summary>

* Для направления указан курс обмена "Вручную": (in:out) 1:41.37
* Процент комиссии (FeePercent): 4
* Значение "DISCOUNT FOR AMOUNT (discount): 0
* В страховке курса указан тип "Вручную": (RateFrom:RateTo) 1:42.08
* Значение "Default percent" (defaultPercent): 8
* Значение "Max limit difference percent" (maxLimitPercent): 1.1
* Action выбран "Отключить направление"

feeRate - FeePercent / 100 = 4 / 100 = 0.04

in = in + (in \* feeRate) = 1 + (1 \* 0.04) = 1.04 \
discountRate = discount / 100 = 0 / 100 = 0\
\&#xNAN;*in = in - (in \* discountRate) = 1.04 - (1.04\*0) = 1.04* \
RATE = out / in = 41.37 / 1.04 = 39.778

ЕСЛИ RATE ≥ Курс страхования -> срабатывает страховка курса&#x20;

Текущий курс страховки = manualRateTo/manualRateFrom-defaultPercent = 42.08 / 1 - 8% = 38.7136 \
Курс страхования = Текущий курс страховки + maxLimitPercent = 38.7136 + 1.1% = 39.139

RATE (39.778) > Курса страхования (39.139) -> **сработает страховка курса и направление будет отключено**.

</details>

[^1]: ![](https://3272217808-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKMtUdLxlDooDfKq13Is6%2Fuploads%2F7yPu7GrS3p3ngK7RSjC2%2Fimage.png?alt=media\&token=6b7652bc-f4e3-4891-988a-a02deec66736)


---

# Agent Instructions: 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:

```
GET https://manual.boxexchanger.net/obmen/napravlenie/strakhovka-kursa.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
