# Stable pool

## Overview <a href="#overview" id="overview"></a>

Previously, the inconvenience of navigating between decentralized exchanges (DEX) and centralized exchanges (CEX) was a necessity to engage in spot and perpetual trading. That changes today. Welcome to Navigator Exchange, where we offer a seamless experience encompassing both spot and perpetual trading functionalities. With Crypto pool and Stable pool operating concurrently, they facilitate two distinct liquidity pools, each presenting its unique advantages.

<table><thead><tr><th width="253">Features</th><th>Crypto pool</th><th>Stable pool</th></tr></thead><tbody><tr><td>Trading</td><td>Spot and perpetual </td><td>Perpetual</td></tr><tr><td>Available trading assets</td><td>Blue-chip tokens and stablecoins</td><td>Crypto, Forex, and Commodities</td></tr><tr><td>Liquidity pool</td><td>Single pool with many assets including blue-chip tokens and stablecoins</td><td>Single pool with stablecoins only</td></tr><tr><td>Exchange balance</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span></td><td><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span></td></tr><tr><td>Data Price Feeds</td><td>Chainlink</td><td>Pyth</td></tr><tr><td>Collateral</td><td>Blue-chip tokens or stablecoins</td><td>Stablecoins only</td></tr><tr><td>Can choose collateral and output token?</td><td><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span></td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span></td></tr><tr><td>Min. Collateral</td><td>10 USD</td><td>10 USD</td></tr><tr><td>Max. Leverage</td><td>Up to 100x</td><td>Up to 100x</td></tr><tr><td>Position fees</td><td>0.15%</td><td>0.08%</td></tr><tr><td>Number of trade for one asset at a same time</td><td>1</td><td>Unlimited</td></tr><tr><td>Trailing stop</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span></td><td><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span></td></tr><tr><td>Order types</td><td>Market, Limit</td><td>Market, Limit, Stop Market, Stop Limit</td></tr><tr><td>Liquidation</td><td>Can be partial or whole position</td><td>Whole position only</td></tr><tr><td>Referral</td><td>Rebates are accumulated and distributed manually</td><td>Rebates are accrued and automatically distributed from every trades made by referees</td></tr></tbody></table>

***

## Positions

{% hint style="info" %}
The Navigator vault contract is entirely backed by the USDC stablecoin. The platform infrastructure was built to accept a variety of other stable assets, but is currently only supporting the bridged USDC asset to simplify collateral and liquidity deposits. By funding an exchange wallet, users can gain access to USD on the platform.
{% endhint %}

Traders can manage account balance risk by using an optional percent slider rather than inputting a collateral amount. For example if a user has 10,000 USD in free collateral and types in 2.00% then they will put up 200 USD collateral into the position.

Navigator  offers the following order types to open a new position:

* **Market:** Order will fill near the current mark price. The difference between where the order is executed and the current mark price is determined by any <mark style="color:blue;">artificial slippage</mark> and/or execution delay due to <mark style="color:blue;">keepers</mark>.
* **Limit:** Order will fill at selected limit price or better. For longs, if limit price is set above mark price, then the order is treated as a market order. For shorts, if the limit price is set below mark price then the order is treated as a market order.
* **Stop Market:** A market order will be activated when price reaches the stop price. Stop price must be placed above mark price for longs and below mark price for shorts. If not the order will be triggered as a market order.
* **Stop Limit:** A limit order will be activated when the price reaches the stop price. Stop price must be placed above mark price for longs and below mark price for shorts. If not the order will be triggered as a market order.

**Mark Price:** This will show the price of the asset at the current moment in time.

**Liquidation Price:** This will show the asset price at which the position will be liquidated. If the mark price of the asset goes beyond this point (lower in case of a Long position, higher in case of a Short position), it will automatically close the position and the majority of the collateral used for the position will be lost. Please take note that the liquidation price can fluctuate as funding fees are deducted from your collateral throughout the duration of the open position.

**Setting a TP/SL at Position Creation:** An option is provided during opening of a new position to enter a TP and/or SL that is automatically set to fully close 100% of the position at the given trigger price for each. It is possible to manually enter a percent amount for each which will auto populate the corresponding price level at which the TP/SL is triggered.

**Front-running Protection**

To protect users and the exchange from front-running, both keepers and an artificial slippage mechanism have been introduced.

**Keepers**

When a trader opens a new position via market order, the order first goes into a pending state.

Navigator maintains keeper nodes that monitor pending orders and validates positions before each order is executed at the latest oracle price.

**Artificial Slippage**

This new mechanism will simulate an order book by adding a slippage percentage to each order that is proportional to the vault utilization and position size.

Each index token will have its own slippage factor that will be a function of the tokens historical volatility, that of which is most often correlated to depth of market.

$$
deltaPercent =  slippageFactor \* \frac{2 \times totalOI + posSize}{2 \times vaultTVL}
$$

$$
executionPrice =\begin{cases} markPrice \times (1 + deltaPercent) &\text{if } LONG \ markPrice \times (1 - deltaPercent) &\text{if } SHORT\end{cases}
$$

For example, assume a market order to long BTC at 30,000 with a deltaPercent of 0.05% is placed. In this case the order would execute at a price of 30,015.

Upon order confirmation of a new position users can also manually enter the max slippage that they are willing to accept as shown in the red box. The order will only execute if the execution price is less than the current mark price plus/minus (if long/short) the slippage percent entered here.

***

## Profit, Loss, and ROI

**Realized Profit and Losses**

Realized Profit and Loss (rPnL) are used to convey a position's total profit/ loss that has been resolved (paid or received). This includes all accumulated paid fees, such as the Open Position Fee, and is calculated as follows for each $$i$$ of all $$N$$partial closes.

$$
rPnL = paidFees + \sum\_{i=1}^N \begin{cases} (closePrice\_i - avgEntryPrice\_i)\times posQty\_i &\text{if } LONG \ (avgEntryPrice\_i - closePrice\_i)\times posQty\_i &\text{if } SHORT\end{cases}
$$

**Unrealized Profit and Losses**

Unrealized Profit and Loss (uPnL) track the profit or loss of an open position, taking into account all unpaid accrued fees.

$$
uPnL = accruedFees +  \begin{cases} (markPrice - avgEntryPrice)\times posQty &\text{if } LONG \ (avgEntryPrice - markPrice)\times posQty &\text{if } SHORT\end{cases}
$$

Note: Paid fees and/or accrued fees can be either negative (losses to trader) or positive (profits to trader) which occurs in cases where the funding rate is negative (ie: Short position when LongOI > ShortOI).

**Return on Investment (ROI)**

Return on Investment is used to establish how profitable a given trade is, and is a key metric in showcasing a trader's ability during competitions. We use the following calculation to determine position ROI for rPnL where max collateral is determined by the greatest number the collateral has reached for the position up until the time of each partial $$i$$ rPnL.

$$
ROI (rPnL) = \sum\_{i=1}^N rPnl\_i/maxCollateral\_i
$$

The ROI for uPnL is simply calculated as follows:

$$
ROI (uPnL) =  uPnl/positionCollateral
$$

***

## Increase Collateral/ Leverage

The Increase Collateral and Leverage features offer users a dynamic solution to liquidity utilization and risk management. With this feature, users can add collateral via the Position Menu, which will decrease leverage and thus push out the liquidation price if that is a concern.

Contrarily, Increasing Leverage will result in a tighter liquidation price but can free up the collateral for other positions if desired. This function can be found in Edit collateral Modal\_Withdraw.

<figure><img src="/files/Zu08zOHzL342ALUTgqpO" alt=""><figcaption><p>Modal Increase Collateral</p></figcaption></figure>

<figure><img src="/files/L7NTW4yEoskRirUdzLpw" alt=""><figcaption><p>Modal Edit Collateral_Withdraw</p></figcaption></figure>

***

## Add to Position

Users have the ability to use free collateral to increase the net value of their open position. Doing so increases their position size and adjusts their average entry price closer to mark price but does not change the leverage applied. This action also lowers the liquidation risk.

This function can be found in Modal Edit Collateral\_Deposit

<figure><img src="/files/Gvd0JfdM6EQOhWf95pHT" alt=""><figcaption><p>Modal Edit Collateral_Deposit</p></figcaption></figure>

***

## Close Position

Users can partially or fully close a position via market order by selecting the Close option using the three dots each row of the Positions table, or simply by clicking on the position in the Open Positions Dashboard. Once this option is selected a new pop up window will appear that shows all details of a trade , allowing users to select what % of the position they would like to close.

Profits from the trade will be paid in USD on the exchange. Users can use USD as collateral for another position or redeem it for USDC (1:1).

***

## Edit Triggered Orders

Adapting to market conditions requires trading prowess, but also the right tools for the task. We've improved upon our position management, now allowing user's to edit their open orders. This includes the ability to edit open TP, SL, and Trailing Stop orders via the Open Orders panel below the chart.

**Triggered Orders**

Triggered orders are orders created to execute when certain conditions are met. Orders may apply to a new position or impact an existing pending order.&#x20;

## **Unlinked Orders - Creating a New Position**

### Limit Order

<table><thead><tr><th>INITIAL CONDITION</th><th width="234.33333333333331">ORDER TRIGGER CONDITION (LONG)</th><th>ORDER TRIGGER CONDITION (SHORT)</th></tr></thead><tbody><tr><td>Limit Price &#x3C; Mark Price</td><td>Mark Price = Limit Price</td><td>Placed as Market Order</td></tr><tr><td>Limit Price > Mark Price</td><td>Placed as Market Order</td><td>Mark Price = Limit Price</td></tr></tbody></table>

<figure><img src="/files/Aqxs1YSwluYsju1Cs41Y" alt=""><figcaption></figcaption></figure>

### Stop Order

| INITIAL CONDITION       | ORDER TRIGGER CONDITION (LONG) | ORDER TRIGGER CONDITION (SHORT) |
| ----------------------- | ------------------------------ | ------------------------------- |
| Stop Price < Mark Price | Placed as Market Order         | Mark Price = Stop Price         |
| Stop Price > Mark Price | Mark Price = Stop Price        | Placed as Market Order          |

<figure><img src="/files/PcuNVqCec6OAQyEcKmya" alt=""><figcaption></figcaption></figure>

### Stop Limit Order

| INITIAL CONDITION       | LIMIT ORDER ACTIVATION CONDITION (LONG) | LIMIT ORDER ACTIVATION CONDITION (SHORT) |
| ----------------------- | --------------------------------------- | ---------------------------------------- |
| Stop Price < Mark Price | Placed as Market Order                  | Mark Price = Stop Price                  |
| Stop Price > Mark Price | Mark Price = Stop Price                 | Placed as Market Order                   |

In the case where the limit order is activated (Mark Price = Stop Price) then the following table will apply.

<table><thead><tr><th width="237.33333333333331">INITIAL CONDITION</th><th>ORDER TRIGGER CONDITION (LONG)</th><th>ORDER TRIGGER CONDITION (SHORT)</th></tr></thead><tbody><tr><td>Stop Price &#x3C; Limit Order</td><td>Placed as Market Order</td><td>Mark Price = Limit Price</td></tr><tr><td>Stop Price > Limit Order</td><td>Mark Price = Limit Price</td><td>Placed as Market Order</td></tr></tbody></table>

<figure><img src="/files/9teTWxOwszjVJ08dWCxs" alt=""><figcaption></figcaption></figure>

## Linked Orders to an Open Position

### Percent vs Quantity for Closing a Position

When closing a position the user must enter the percent of the position to close for each order type. They can also manually type in an asset quantity to close, however this will auto populate the percent field based on the current position size.  It is important to recognize that Navigator utilizes the percent amount, rather than quantity, to determine how much of the position will get closed when a linked order is triggered.

For example, assume there is an existing 2.00 WETH long position with two take profits set; \
The first at 1300.00 for 80% (shown initially as qty 1.60 WETH)\
The second at 1350.00 for 50% (shown initially as qty 1.00 WETH)

Now let's say the user adds another 0.50 WETH to this position prior to the price reaching 1300.00 making their total position size = 2.50 WETH. &#x20;

When the price reaches 1300.00, the first take profit will trigger, closing 80% of the position (=2.00 WETH) resulting in a new position size of 0.50 WETH.  When the price reaches 1350.00, the second take profit will trigger, closing 50% of this existing position (=0.25 WETH).  Notice that, since percent takes precedence, the initial quantities shown are irrelevant if there are any changes to the overall position size before the linked order is triggered.&#x20;

{% hint style="danger" %}
**To fully close a position, you must always set a trigger to 100%**
{% endhint %}

### Take Profit / Stop Loss Order

| INITIAL CONDITION        | ORDER TRIGGER CONDITION (LONG) | ORDER TRIGGER CONDITION (SHORT) |
| ------------------------ | ------------------------------ | ------------------------------- |
| Take Profit < Mark Price | n/a                            | Mark Price = Take Profit        |
| Take Profit > Mark Price | Mark Price = Take Profit       | n/a                             |
| Stop Loss < Mark Price   | Mark Price = Stop Loss         | n/a                             |
| Stop Loss > Mark Price   | n/a                            | Mark Price = Stop Loss          |

<figure><img src="/files/CTS4x17mPmAGeC3nnw9M" alt=""><figcaption></figcaption></figure>

### Trailing Stop Order

<table><thead><tr><th width="214.33333333333331">INITIAL CONDITION</th><th width="271">ORDER TRIGGER CONDITION (LONG)</th><th>ORDER TRIGGER CONDITION (SHORT)</th></tr></thead><tbody><tr><td>Trailing Stop as X %</td><td>Mark Price drops X% from High</td><td>Mark Price rises X% from Low</td></tr><tr><td>Trailing Stop as X Amt</td><td>Mark Price drops X from High</td><td>Mark Price rises X from Low</td></tr></tbody></table>

<figure><img src="/files/Ic22Mf7uYEz0vSvQJIxl" alt=""><figcaption></figcaption></figure>

> For a Long position order:&#x20;
>
> When initiating a Trailing Stop order, the Trailing Stop price will always be lower than the Market Price. After a successful order placement, as the Market Price rises, the Trailing Stop price will also increase with the predetermined price gap. When the Market Price begins to decline, the Trailing Stop price remains static, and the order is executed when the Market Price is equal to or smaller than the Trailing price.
>
> The logic of the Trailing Stop Order for Short positions operates in the reverse manner.


---

# 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://docs.navigator.exchange/trade/isolated-margin/stable-pool.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.
