# Trading



# 1. Trading: Overview

The **Trading** section is the control center for configuring tradable instruments and running day-to-day trading operations. It provides the baseline market calendar, price/fee/margin parameters, operational price adjustments, order management, and client-level overrides—so risk, pricing, and execution behave consistently across the platform.

**What it includes**

1. [Configurations](https://wiki.wi.services/books/wifox-business-core-solution-wbcs/page/3-trading-configurations) – Define instrument families and trading pairs: active state, spread (pips), swaps, commission, margin requirement, leverage (margin ratio), lot volume, price precision, timezone; manage **weekends/holidays** and bulk **import/export**.
2. [Price deltas](https://wiki.wi.services/books/wifox-business-core-solution-wbcs/page/4-trading-price-deltas) – Schedule temporary price offsets (in pips) for a symbol/pair over a time window; the adjusted price is published and used for execution during the window.
3. [Orders](https://wiki.wi.services/books/wifox-business-core-solution-wbcs/page/5-trading-orders) – View, filter, create, edit, and close client orders; enforce trading calendar and margin checks; adjust price/quantity, stop-loss, take-profit, and (where allowed) swap overrides.
4. [Trading groups](https://wiki.wi.services/books/wifox-business-core-solution-wbcs/page/6-trading-trading-groups) – Create client segments (e.g., VIP, Watchlist) with parameter **overrides** at family or symbol level (commission, swaps, margin ratio, etc.); assign and **order** groups per client with inheritance and fallback to base pair configuration.

# 2. Trading: Use Cases

**Use Case #1: Launching a New Trading Pair**  
Ops adds a new instrument under **Trading → Configurations**. They pick the symbols group (e.g., Crypto), click **+ Add symbol**, and set *Active*, *Spread (pips)*, *Commission (pips)*, *Margin requirement (%)*, *Margin ratio (leverage)*, *Lot volume*, *Price precision*, and *Timezone*. From that moment, margin checks, pricing, and calendar rules apply consistently to the pair, and it becomes available to Orders.

**Use Case #2: Scheduling Market Closures (Weekends/Holidays)**  
Risk defines a recurring non-trading window under **Weekends**. They choose a base timestamp, set **Repeat** (week/month/year), and optional work hours. For instruments with their own **Timezone**, the closure is evaluated in that zone. During the window no ticks are published and no orders are accepted for the affected instruments.

**Use Case #3: Running a Controlled Price Simulation**  
For a short demo or QA scenario, an admin opens **Price deltas** and clicks **+ Add**. They select a symbol, set **From/To**, and enter a **Pips** offset (positive to push price up, negative to pull it down). While active, the venue shows and executes at the adjusted price. Chaining minute-long deltas produces stepwise ramps without touching fees or spreads.

**Use Case #4: Risk-Adjusting a Live Order**  
A risk manager filters **Orders** to a client’s open market positions, opens **Edit**, and updates **Stop loss** and **Take profit** (and, if policy allows, **Price/Quantity**). On save, validations enforce precision/step and re-check margin using the pair’s effective parameters (including any Trading Group overrides). The audit log records before/after values and the user.

**Use Case #5: VIP Segmentation with Trading Groups**  
A client starts trading high notional daily. Ops goes to **Trading groups** to create a *VIP* group with **Commission=0** and a higher **Margin ratio**, then assigns it to the client on **Clients → Trading Groups**. If the client later also needs a *Watchlist* group, ops adds it and drags the groups to set precedence. Resolution applies settings from the first group; missing fields cascade to the next group, then to the base pair configuration.

# 3. Trading: Configurations

The **Configurations** page defines market availability and all instrument/pair parameters used by pricing, margin checks, execution, and risk. It is the primary setup area for symbols in **Crypto, Commodities, Forex, Stocks, Indices**.

**Who uses this:** Admins and Risk Managers (edit); Traders and Read-only users (view).  
**Key actions:** Add weekends/holidays, add time zones, add/edit symbols and pair parameters, import/export settings.

##### Finding the page

Left nav → **Trading** → **Configurations**.

You’ll see:

1. **Settings by symbols group**: Settings by symbols group: group chips (Crypto, Commodities, Forex, Stocks, Indices) + Search.
2. **Weekends** panel with **+ Add weekend**.
3. A toolbar on the right: **Import**, **Export**, **+ Add symbol**, **+ Add timezone**.
4. A table of trading pairs with status and parameters.

##### Group switcher &amp; search

The All tab displays all trading symbols across every group in a single view.  
The All tab is selected by default when opening the page.

Group chips filter the table to a specific symbols family (e.g., Crypto).

**Search…** finds symbols/pairs and names:  
– In All tab: across the full symbols list.  
– In a specific group: only within that group.

##### Weekends

This block holds **non-trading windows** (regular weekends or recurring holidays). When a weekend rule applies, the platform **does not stream ticks** and **does not accept orders** for the target instruments.

1. Button: **+ Add weekend** (opens the create dialog, see §3.1).
2. Weekend rules are evaluated in UTC at storage, but **applied according to the pair’s Time zone** (see §2.5 and §4) per the transcript.

##### Toolbar (right side)

1. **Import**: bulk upload of symbol/pair parameters (see §5).
2. **Export**: download current table as CSV/JSON for auditing or migration.
3. **+ Add symbol**: create a new tradable pair entry (see §3.2).
4. **+ Add timezone**: register a trading time zone selectable by symbols (see §3.3).

##### Trading pairs table

Columns include:

<div class="_tableContainer_1rjym_1" id="bkmrk-column-meaning-activ"><div class="group w-fit _tableWrapper_1rjym_13 flex flex-col-reverse" tabindex="-1"><table class="w-fit min-w-(--thread-content-width)" data-end="3241" data-start="2210"><thead data-end="2230" data-start="2210"><tr data-end="2230" data-start="2210"><th data-col-size="sm" data-end="2219" data-start="2210">Column</th><th data-col-size="md" data-end="2230" data-start="2219">Meaning</th></tr></thead><tbody data-end="3241" data-start="2241"><tr data-end="2293" data-start="2241"><td data-col-size="sm" data-end="2254" data-start="2241">**Active**</td><td data-col-size="md" data-end="2293" data-start="2254">On/Off toggle for trading the pair.</td></tr><tr data-end="2340" data-start="2294"><td data-col-size="sm" data-end="2307" data-start="2294">**Symbol**</td><td data-col-size="md" data-end="2340" data-start="2307">Pair code (e.g., `BTC/USDT`).</td></tr><tr data-end="2384" data-start="2341"><td data-col-size="sm" data-end="2352" data-start="2341">**Name**</td><td data-col-size="md" data-end="2384" data-start="2352">Human-readable display name.</td></tr><tr><td>**Trading hours**</td><td>Time period when the pair is available for trading.</td></tr><tr data-end="2659" data-start="2576"><td data-col-size="sm" data-end="2589" data-start="2576">**Spread**</td><td data-col-size="md" data-end="2659" data-start="2589">Bid/Ask difference in **pips** (controls minimum price advantage).</td></tr><tr data-end="3031" data-start="2955"><td data-col-size="sm" data-end="2977" data-start="2955">**Price precision**</td><td data-col-size="md" data-end="3031" data-start="2977">Number of decimal places the price uses/rounds to.</td></tr><tr data-end="3125" data-start="3032"><td data-col-size="sm" data-end="3049" data-start="3032">**Lot volume**</td><td data-col-size="md" data-end="3125" data-start="3049">Base unit size for the pair (e.g., 1; in FX a “lot” may map to 100,000).</td></tr><tr data-end="3177" data-start="3126"><td data-col-size="sm" data-end="3156" data-start="3126">**Created at / Updated at**</td><td data-col-size="md" data-end="3177" data-start="3156">Audit timestamps.</td></tr><tr><td>**Minimum volume**

</td><td>Minimum allowed trade volume for the pair.</td></tr><tr data-end="3241" data-start="3178"><td data-col-size="sm" data-end="3192" data-start="3178">**Actions**</td><td data-col-size="md" data-end="3241" data-start="3192">✏️ Edit, ⛭ other pair-level tools if enabled.</td></tr></tbody></table>

</div></div>**How to work with the table:**

1. Click a column header where it is possible to sort table data in ascending or descending order.
2. Select symbols using checkboxes in the table, including the header checkbox to select all rows, and apply bulk updates to Lot Size and Min Volume for multiple symbols at once.
3. Tick the star icon near the symbol to mark it as Top and add it to favorites.
4. Use the edit button to change settings for the specific symbol.

##### Dialogs and forms

**Add weekend** (non-trading rule)  
Opens from **+ Add weekend**.

**Fields:**

1. **Timestamp**: base date/time (UTC storage; UI presents local or selected TZ).
2. **Repeat**: `week`, `month`, or `year` (recurring weekend/holiday).
3. **Work from / Work to**: intraday window that is **allowed** to trade on the repeated date; outside of it, the market is closed.

Typical weekend rule: set a timestamp on the target weekend day, `Repeat=week`, and leave **Work from/to** empty to block the full day(s); or specify partial work hours for special sessions.

**Validation &amp; rules**

1. The defined window applies to instruments in the current group or (if your instance supports targeting) to selected symbols/pairs.
2. Overlapping rules are permitted; the **most restrictive** outcome wins.
3. When a pair has its own **Timezone**, the engine evaluates the “closed” period in that TZ.

##### Add symbol (create trading pair)

Opens from **+ Add symbol**.

**Fields:**

1. **Symbol** *(select)* – required (e.g., `BTC/USDT`).
2. **Active** *(toggle)* – enable trading.
3. **Name** – display name (e.g., *“Bitcoin vs USDT”*).
4. **Swap long / Swap short** – overnight fee long/short (pips).
5. **Order calculation type** – present in UI, **do not use** (per transcript).
6. **Spread** – bid/ask difference (pips).
7. **Margin requirement (%)** – collateral percent required.
8. **Commission** – per-order fee (pips).
9. **Margin ratio** – leverage; used in margin formula.
10. **Lot volume** (per symbol) – lot size is configured separately for each symbol. This makes it possible to calibrate trade volume efficiency across instruments. Use larger lots for Forex pairs or other low-volatility instruments so user trade quantities remain meaningful.
11. **Symbol configuration enhancements: Name** — a human-readable label for the trading pair, also used for text-based search.  
    **Minimal Lot Volume** — ensures users cannot trade with volumes below a defined threshold, validated as `user_quantity * lot_volume >= minimal_lot_volume`.
12. **Timezone** – select IANA TZ (affects weekends).

**Validation:** Numeric fields must be non-negative; `Margin ratio > 0`; `Lot volume > 0`.  
Keep **Spread/Swap/Commission** consistent with the pair’s minimum price step/precision.  
**Name** 1–64 chars.

**Save** to add the pair to the table.

#### Edit symbol

Click **✏️ Edit** in Actions. All fields as above are editable.  
Changes apply immediately for pricing/margin checks.

##### Add timezone

Opens from **+ Add timezone**.

**Timezone**: selectable list of IANA zones (e.g., `Africa/Abidjan`).

**Usage:** Once added, the time zone becomes available in the **Timezone** selector for symbols/pairs.

##### User configuration groups

Configuration groups bundle parameters such as **swap**, **commission**, and **margin**, and may apply either to specific pairs or to entire trading groups.

Groups can then be assigned directly to users. When a user belongs to multiple groups, the system applies the groups in the defined priority order.

This enables flexible business policies, such as:

1. Creating **VIP groups** with minimal commissions and enhanced leverage.
2. Assigning **Watchlist groups** with extremely high commissions or stricter margin settings for accounts suspected of cheating or arbitrage.

Groups are maintained and edited by Admins and Risk Managers. Traders and read-only users cannot change group assignments.

##### Margin logic 

Used by pre-trade checks to ensure account collateral is sufficient.

**Formula:**

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-margin-%3D-%28lot-%2A-pric"><div class="overflow-y-auto p-4" dir="ltr">`<span class="hljs-attr">margin</span> = (lot * price) / margin_ratio`</div></div>`lot` — number of units/lots requested by the order.  
`price` — current price of the instrument.  
`margin_ratio` — leverage factor (e.g., 1000).

The platform then enforces **Margin requirement (%)** against this collateral.  
If available balance is less than required, **order creation is blocked**.

> Notes:
> 
> Commission and spread are accounted for by pricing/risk components.  
> Rounding follows **Price precision** and pair’s minimal step.

##### Import / Export

**Import** lets you bulk create/update pairs.

1. **Format**: CSV or JSON (project-standard schema).
2. **Mode**: *Validate only* (dry run) or *Upsert* (create new + update existing).
3. **CSV replace behavior:** trading configurations for symbols can now be imported and exported in **CSV** format. If a configuration already exists for a symbol, the imported row will **replace** the existing configuration. This simplifies migration and setup processes.
4. **Mapping**: Source columns → fields (`Symbol`, `Active`, `Name`, `Swap long`, `Swap short`, `Spread`, `Margin requirement`, `Commission`, `Margin ratio`, `Lot volume`, `Timezone`, optional `Price precision`).
5. **Report**: A per-row success/error log after the run.

**Export** downloads the current, filtered table (CSV/JSON) including audit timestamps (**Created at**, **Updated at**). Useful for versioning and reviews.

##### Operational notes &amp; best practices 

1. **Do not document or rely on “Order calculation type”**—it’s a placeholder.
2. **Spread** and **Swap** are configured in **pips**; ensure Price precision matches your minimum step so UI and risk math align.
3. **Lot volume** calibrates user-visible quantities to meaningful exposure (e.g., FX often defines 1 lot = 100,000; in crypto/equities, use pair-specific units).
4. **Timezone** at pair level controls how the weekend/holiday rules apply for that instrument (U.S. equities vs. crypto, etc.).
5. If you need to **simulate market shapes** for testing, use **Price deltas** (separate page) in short intervals to create stepwise up/down patterns; Configurations simply defines the baseline parameters and trading calendar.

##### Audit &amp; security

Every create/update/delete in **Configurations** is written to the audit log with user, timestamp, and before/after values (reflected by **Created at / Updated at** columns).  
Only users with **Admin/Risk Manager** roles can change pair parameters and weekends; others are read-only.

##### Glossary

1. **Pip (Point)** — minimal price increment used for spreads, swaps, commissions.
2. **Spread** — `Ask − Bid`, quoted in pips.
3. **Swap** — overnight fee for carrying positions to the next session.
4. **Margin requirement (%)** — minimum collateral percent that must be free to open a trade.
5. **Margin ratio (Leverage)** — factor controlling exposure vs. collateral.
6. **Lot volume** — base unit size for quantity on the pair.
7. **Price precision** — number of decimals used for price display and rounding.
8. **Weekend/Holiday rule** — non-trading window; blocks ticks and order intake for targets.

# 4. Trading: Price Deltas

<article class="text-token-text-primary w-full focus:outline-none scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]" data-scroll-anchor="true" data-testid="conversation-turn-16" data-turn="assistant" data-turn-id="request-68c54225-933c-8327-a25e-7da1a4e28929-47" dir="auto" id="bkmrk-the-price-deltas-mod" tabindex="-1">The **Price deltas** module schedules **temporary price offsets (in pips)** for a chosen **Symbol/Pair** over a defined **time window**. While a delta is active, the platform **publishes** the adjusted price and **executes** orders against it. All users see and trade on the shifted price for that symbol during the window.

**Typical uses**

<div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:40rem] thread-sm:[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="7b0f22e6-dbac-4cc5-9f35-ffefbb3e4463" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">1. Staging and simulation for demos or QA.
2. Short operational adjustments, including stepwise ramps by chaining minute windows.
3. Temporary mitigation of third-party feed anomalies.

</div></div></div></div></div></div>##### Finding the page

Left navigation → **Trading** → **Price deltas**.

##### Page layout &amp; controls

<div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:40rem] thread-sm:[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="7b0f22e6-dbac-4cc5-9f35-ffefbb3e4463" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">1. **Settings by symbols group**: Filter the list to **Crypto, Commodities, Forex, Stocks, Indices**.
2. **Total**: Count of deltas in the current view.
3. **Search**: Free-text filter by Symbol.
4. **+ Add**: Opens the **Add delta price** dialog.
5. **Active:** Displays current price deltas that are applied now or in the future.
6. **History:** Displays previous price deltas and past changes.

</div></div></div></div></div></div>**Table columns**

<div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:40rem] thread-sm:[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="7b0f22e6-dbac-4cc5-9f35-ffefbb3e4463" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">1. **Symbol** — target pair, e.g., `BTC/USDT`.
2. **From date** — start of the effective window (DD/MM/YYYY hh:mm).
3. **To date** — end of the window.
4. **Value** — delta in price units or pips (positive or negative).
5. **Actions** — edit (available for active price deltas) or delete.

</div></div></div></div></div></div>Columns support sorting where indicated.

##### Creating a delta

Click **+ Add** to open the form.

**Fields**

<div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:40rem] thread-sm:[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="7b0f22e6-dbac-4cc5-9f35-ffefbb3e4463" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">1. **Symbol** *(required)*: Select a single pair.
2. **From** *(required)*: Start timestamp.
3. **To** *(required)*: End timestamp.
4. **Value** (required): Integer or decimal value entered in pips or price units; positive raises price, negative lowers it.

</div></div></div></div></div></div></article>##### Symbol Display Format

In the Symbol dropdown, instruments are displayed using a two-line format for clarity and consistency across the platform.

Each option shows:

Line 1 — Symbol code (e.g., EURUSD, BTC/USDT)  
Line 2 — Human-readable instrument name (e.g., Euro vs US Dollar, Bitcoin / US Dollar)

Example:

> EURUSD  
> Euro vs US Dollar
> 
> BTC/USDT  
> Bitcoin / US Dollar

This format matches the display behavior used in:

1. Orders → Add Order
2. Trading Groups
3. Trading → Configurations

The two-line format improves readability and reduces symbol selection errors.

**Creating a delta → Fields: Offset value and interval** — you can specify a positive or negative price offset for a chosen pair. The minimum supported interval is **1 minute**, ensuring precise short-term adjustments.

**Creating a delta → Behavior:** Offsets apply to the **full candle** within the defined window. This includes short 1-minute bars, allowing fine-grained control.

<p class="callout info">**Note:** Chaining multiple 1-minute windows with small positive or negative offsets creates smooth shifts, visible ramps, or even “pump-and-dump” patterns for testing and demonstrations.</p>

<article class="text-token-text-primary w-full focus:outline-none scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]" data-scroll-anchor="true" data-testid="conversation-turn-16" data-turn="assistant" data-turn-id="request-68c54225-933c-8327-a25e-7da1a4e28929-47" dir="auto" id="bkmrk-behavior%3A-when-the-c" tabindex="-1">**Behavior:**

When the current time is within `[From, To)`, the system **adds the delta** to the symbol’s price stream and trades at the **adjusted** price.  
Example: market 905; **+1000 pips** → 915; **−1000 pips** → 895.  
The offset applies to the **whole bar (full candle)** within the window.  
Chaining short windows (e.g., 1-minute intervals) with modest pips produces visible step patterns.

**Validation:**

<div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:40rem] thread-sm:[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="7b0f22e6-dbac-4cc5-9f35-ffefbb3e4463" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">1. `From < To`.
2. `Pips` must be numeric (decimals supported).
3. Conversion from pips to price respects the instrument’s minimum tick/precision; sub-tick results are rounded by instrument rules.

</div></div></div></div></div></div>**Overlaps &amp; priority:** Multiple deltas may overlap for the same symbol. Platform policy is **last applied wins**, unless your instance defines an explicit priority rule. Prefer non-overlapping windows for deterministic behavior.

**Save** to persist the rule.

##### Managing deltas

**Delete**: removes the rule immediately. If it was active, price reverts to the unadjusted stream.  
**Audit**: creating and deleting deltas are logged with user, timestamp, and parameters.

##### Interaction with other Trading settings

**Spread, Commission, Swaps** from **Configurations** still apply **after** the delta; the delta shifts the **base price**, not fees.  
**Weekends/Holidays**: if a non-trading window closes the market, deltas have no effect during the closure; they resume if still within time when trading reopens.  
**Timezone**: deltas are stored/evaluated in UTC; coordinate any time conversions with the symbol’s trading hours if needed.

##### Best practices

<div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:40rem] thread-sm:[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="7b0f22e6-dbac-4cc5-9f35-ffefbb3e4463" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">1. Use **short windows** (1–5 min) for tests; chain them to shape controlled ramps.
2. Record **reason/issue ticket** in your ops notes whenever applying a production delta.
3. Avoid overlaps unless you explicitly rely on the latest-wins behavior.
4. Coordinate with **Risk** before applying large negative deltas to liquid markets.
5. Keep a ready **rollback** step (e.g., planned delete at hand).

</div></div></div></div></div></div>##### Examples

<div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:40rem] thread-sm:[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-5" data-message-author-role="assistant" data-message-id="7b0f22e6-dbac-4cc5-9f35-ffefbb3e4463" data-message-model-slug="gpt-5-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px]"><div class="markdown prose dark:prose-invert w-full break-words light markdown-new-styling">1. **Month-long uplift**  
    `Symbol=SOL/USDT`, `From=01/09 00:00`, `To=30/09 00:00`, `Pips=+3333` → continuous positive offset for the month.
2. **Five-minute demo staircase**  
    Create 5 consecutive 1-minute windows on `BTC/USDT` with `Pips=+200` each to show a clear step-up pattern.
3. **Temporary offset for feed issue**  
    `ETH/USDT`, `From=24/10 00:00`, `To=28/10 00:00`, `Pips=+111.0` to neutralize a known pricing discrepancy during that period.

</div></div></div></div></div></div>##### Limitations &amp; notes

Deltas affect **only** the targeted symbol; crosses or synthetics require their own deltas.  
Historical OHLC may reflect adjusted prices for “as-traded” storage; confirm your data policy.  
Monitoring is recommended for unusually large or long-lived deltas.  
Candle data and historical OHLC records are stored **per broker**. Changes in price or trading settings for one broker do not affect others. Historical as-traded data reflects only the broker’s own feed.

<div class="text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)"><div class="[--thread-content-max-width:40rem] thread-sm:[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn" tabindex="-1"><div class="flex min-h-[46px] justify-start">  
</div><div class="mt-3 w-full empty:hidden"><div class="text-center">  
</div></div></div></div></article>

# 5. Trading: Orders

The **Orders** page is the operational workspace for viewing, filtering, creating, and editing client orders. It surfaces key fields required by risk, pricing, and execution, and enforces margin and trading-calendar rules from **Configurations**.

The table includes sortable timestamps for creation, execution (UTC), and last update to support audit and operational review.


##### Finding the Page

Left navigation → **Trading** → **Orders**.


##### Orders Visibility and Permission Enforcement

Order visibility strictly follows role permissions defined in the **Roles** module.

The Orders page does not apply UI-only hiding.  
All visibility rules are enforced server-side.  
Only authorized orders are returned by the backend API.

**Visibility Rules** An order is visible to a manager only if it satisfies **all applicable permission checks**:

**1. Project Permission** If the role allows:  
**Projects → View all**→ Orders from all projects are visible.

If the role allows:  
**Projects → View own**→ Only orders belonging to projects assigned to the manager are visible.

**2. Desk Permission** If the role allows:  
**Desks → View all**→ Orders from all desks are visible.

If the role allows:  
**Desks → View own**→ Only orders linked to desks assigned to the manager are visible.

**3. Client Permission** If the role allows:  
**Clients → View all**→ Orders from all clients are visible.

If the role allows:  
**Clients → View own**→ Only orders where the client is assigned to the manager are visible.

**Combined Permission Logic (Critical)** An order must pass:

(project visibility)  
AND  
(desk visibility)  
AND  
(client visibility)

If any check fails, the order is not returned by the system.

**Full-Access Roles** Roles with global permissions (e.g., Admin) are not restricted and can view all orders.


##### Orders in Client Profile

Inside a client profile (Clients → select client → Orders tab), orders are separated into two tabs:

1. **Open Orders** — displays only active (OPEN) orders for the selected client.
2. **Close Orders** — displays only closed (CLOSE) orders for the selected client.

Behavior:  
Orders are automatically filtered by the selected client.  
**Open Orders is active by default.** Total count reflects only that client’s orders within the selected tab.  
All table sorting and timestamp columns remain available.


##### Page Layout &amp; Controls

1. **Total** — number of orders in the current view (respects filters).
2. **Filter** — opens the advanced filter panel.
3. **+ Add** — opens the create-order form.
4. **Table** — sortable columns; actions appear on each row.


##### Column Customization

The Orders table supports dynamic column visibility customization.

Users can choose which columns are visible in the table.

**Accessing Column Customization** To do this, in the **Filters** window, click on **Customize columns** and choose the required columns.

This opens a dropdown panel listing all available table columns.

**[![customization of columns.png](https://wiki.wi.services/uploads/images/gallery/2026-05/scaled-1680-/customization-of-columns.png)](https://wiki.wi.services/uploads/images/gallery/2026-05/customization-of-columns.png)**

The column list is dynamically derived from the table configuration and always reflects the current implementation.

New columns added in future releases will automatically appear in this list.

**Visibility Behavior** When a column is toggled:

1. Visibility updates immediately.
2. No page reload is required.
3. Table re-renders automatically.
4. Sorting and filtering remain functional for visible columns.

Hidden columns:

1. Are not rendered in the DOM.
2. Do not affect row alignment.
3. Do not break layout or scroll behavior.

**Mandatory Column Rule** At least one column must remain visible.  
The system prevents hiding all columns.  
If mandatory columns are defined (e.g., Actions or ID), their toggle will be disabled.  
If no mandatory columns are defined, the system blocks hiding the last visible column.

**Persistence** Column visibility preferences:

1. Are saved per user.
2. Persist after page reload.
3. Remain consistent across sessions.

If new columns are introduced in future updates:  
They default to visible.

**Table Integrity** Column customization does not affect:

1. Pagination
2. Filtering
3. Sorting
4. Row actions
5. Order editing
6. Layout stability

The table layout remains stable when:

1. All columns are visible.
2. Only one column is visible.
3. Many columns are hidden.


##### Working with Table

The Orders table displays key information about trading orders and may include different columns, depending on the current configuration and enabled system features.

<div class="_tableContainer_1rjym_1" id="bkmrk-column-meaning-id-un"></div>To **sort the data,** click the header of any sortable column, such as ID, Swap, Commission, Quantity, Status, Price, etc., to sort the table in ascending or descending order.

In the footer of the Orders table, there is a quick summary of the current table data. These metrics update automatically when users apply filters, use fast filters, sort the table, change pages, or reload the data.

**Row actions (common)**

1. **Edit:** Open the edit panel for the selected order. Editing is available for both open and closed orders.
2. **Clone:** Create a new order using the selected order’s details as a prefilled template. All fields are automatically filled with the values from the original order, and the user can change them if needed before creating the new order. This action is available only for open orders.
3. **Reopen:** Reopen a previously closed order as a new active order. A new order ID is assigned, while data from the original order is used as the basis for the new order. Before reopening, the system checks whether the margin requirements are met. This action is available only for closed orders.
4. **Close/Cancel:** Request order closure/cancellation where policy allows (open orders only).
5. **Delete:** Delete the selected order from the list. This action is available for both open and closed orders, not only for non-executed orders. When an order is deleted, the account balance is recalculated and restored based on the order’s reserved margin and profit/loss value.


##### Filtering &amp; Searching

Open **Filter** to combine multi-criteria searches. All filters are optional; applying them updates **Total** and the table.

[![Filtering general.png](https://wiki.wi.services/uploads/images/gallery/2026-05/scaled-1680-/filtering-general.png)](https://wiki.wi.services/uploads/images/gallery/2026-05/filtering-general.png)

**Fields:**

1. **Created date:** Range filter (`Start date` → `End date`)
2. **Updated date:** Range filter (Start date → End date)
3. **Executed date (UTC):** Range filter based on execution timestamp recorded in UTC
4. **Client (Email, UID):** Single-select from known clients
5. **Asset ID:** Narrow by account/portfolio identifier
6. **Symbol:** Instrument/pair
7. **Side** — `BUY` or `SELL`
8. **Type** — e.g., `MARKET` (others if configured)
9. ****Type of Closure:**** Stop, Take profit, Liquidation, Closed by client, Closed by manager
10. **Margin:** Toggle to show only margin-enabled orders if your instance differentiates

Click **Save** in the filter panel to apply.

You can also save selected filters and quickly reuse them the next time you open the Orders table. To do this:

- Select the required filters
- Click **Create view**
- Enter the name
- Click **Submit**

##### [![Fast filters.png](https://wiki.wi.services/uploads/images/gallery/2026-05/scaled-1680-/fast-filters.png)](https://wiki.wi.services/uploads/images/gallery/2026-05/fast-filters.png)


##### Creating an Order

Click **+ Add** to open the form for creating a **New order** (exact fields vary by enabled order types).

[![Create order.png](https://wiki.wi.services/uploads/images/gallery/2026-05/scaled-1680-/create-order.png)](https://wiki.wi.services/uploads/images/gallery/2026-05/create-order.png)

Common fields:

1. Client / Asset ID
2. Symbol
3. Side
4. Volume
5. Limit order
6. Static used margin
7. Commission
8. Accumulated swap
9. Long or Short swap rate
10. Stop loss / Take profit
11. Order in past

After selecting Order in past you have to fill Execution date &amp; time and Opening price.

In the Buy/Sell modal, the system also displays the trading conditions (Calculation type, Lot size, Leverage) and the working hours for the selected trading pair. These hours are based on the trading schedule configured for the symbol.

**Business rules at create:**

**Trading calendar:** The system checks the symbol’s trading schedule and time zone before creating an order. If the symbol is in a non-trading window, such as a weekend or holiday, order creation is blocked.

**Margin check:** The system runs pre-trade margin validation before creating an order:

> **Margin = Contract Size × Volume × Price / Stored Leverage**

Then the account’s free balance must meet or exceed the pair’s Margin requirement (%) of the collateral. If it is insufficient, creation is rejected with an insufficient-margin error. The minimum margin level required to open an order is 40%.

**Precision &amp; steps:** Price and quantity must align with the pair’s precision/minimum step.

Submit the form to place the order. On success, the order appears in the table.

##### Editing an Order

Select **Edit** on a row to open the side panel. Choose **Buy** or **Sell** operation, then define the required settings in the editable fields:

[![Editing order.png](https://wiki.wi.services/uploads/images/gallery/2026-05/scaled-1680-/editing-order.png)](https://wiki.wi.services/uploads/images/gallery/2026-05/editing-order.png)

- Volume
- Limit order
- Static used margin
- Commission
- Accumulated swap
- Long swap rate
- Take profit
- Stop loss
- Execution date &amp; time
- Opening price

Click **Update the Order** to apply all changes.

Managers have extended control over open orders:  
**Order Price Adjustment** – ability to modify the opening price of an order to increase or decrease profitability.  
**User PnL Overview** – aggregate PnL across all open trades for quick monitoring and reaction.  
**Margin Adjustment** – managers can manually add or subtract a static margin value (positive or negative) in the relevant currency, increasing or decreasing the locked margin.

**Validation &amp; behavior:**

All edits are re-validated against precision, lot size, and margin availability.  
If the instrument is in a non-trading window, actions may be restricted.  
Saving applies changes immediately; the audit log records before/after values with user and timestamp.

**Margin call and Stop out notifications:**

When a trader’s available balance approaches a critical level, the platform sends staged warnings. It is a custom setting configurable for each client. For example:

1. At 30% of the required margin, an early warning is sent to the user.
2. If the balance falls below 10%, one or more open positions are liquidated automatically according to platform policy.

Notifications are sent to both the user and the assigned manager. This mechanism helps users take corrective action before forced liquidation.

##### Closing/Canceling an Order

**Close** a position from the row actions when the status is `OPEN`.  
**Cancel** applies to unfilled pending orders (if such types are enabled).  
System enforces trading-calendar rules and available liquidity; resulting fills, and residuals are reflected back in the table.


##### Interaction with Other Trading Settings

1. **Configurations → Trading pairs**: `Spread`, `Commission`, `Swap`, `Margin requirement (%)`, `Margin ratio`, `Lot volume`, and `Timezone` drive order pricing, fees, and margin checks.
2. **Configurations → Weekends/Holidays**: when active for a symbol’s time zone, order creation and execution are blocked.
3. **Price deltas**: if active for a symbol, orders execute against the **adjusted** price stream during the delta window.


##### Quote Storage Optimization

Performance improvements have been implemented to optimize the storage and retrieval of price quotes. These optimizations reduce memory usage and improve throughput during high-frequency trading without altering user-facing workflows.


##### Audit &amp; Security

Every create, edit, and close/cancel event is written to the audit log with user, time, and before/after payloads.  
Permissions are role-based; elevated edits (e.g., manual margin or swap overrides) are restricted to risk/admin roles.


##### Monitoring, Health Check, and Logging

Comprehensive monitoring and statistics have been added across all trading platform services to ensure stable operations.

1. **Health checks** provide continuous status indicators for each subsystem.
2. **Centralized logging** aggregates events and errors into a unified store for faster issue identification.
3. **Statistics dashboards** support performance analysis and proactive incident detection.

These features strengthen system stability and shorten troubleshooting time without requiring user intervention.


##### Examples

1. **Filter to open market buys for a specific client this week**  
    Set **Created date** to the current week, **Client** to the email/UID, **Side=BUY**, **Type=MARKET**, **Status=OPEN**, then **Save**.
2. **Create a market buy on BTC/USDT**  
    Choose **Client/Asset ID**, set **Symbol=BTC/USDT**, **Side=BUY**, **Type=MARKET**, **Quantity=1**. Submit. The system runs margin checks using the pair’s **Margin ratio** and **Margin requirement (%)**.
3. **Adjust stop loss / take profit**  
    Open **Edit** on the order, set **Stop loss** and **Take profit** to desired levels consistent with instrument precision, then **Save**. Changes are audited.


##### Glossary (Orders)

1. **Market order** — executes immediately at the best available price.
2. **Limit order** — posts at a specified price; fills when price is reached.
3. **Swap** — overnight fee for carrying a position to the next session (long/short specific).
4. **Lot volume** — base quantity unit defined per pair.
5. **Margin requirement (%)** — minimum collateral percent required to open/maintain a position.
6. **Margin ratio (leverage)** — factor used in the margin formula to compute required collateral.
7. **Status** — `OPEN` (active) or `CLOSE` (closed/exited).

# 6. Trading: Trading Groups

Trading Groups define leverage and trading parameter overrides for clients registered within the system.

<p class="callout warning">Trading Groups are the single source of truth for leverage.  
Symbols and Trading Pairs do not define or influence leverage in any margin, execution, or risk calculation.</p>

##### Finding the Page  


Left navigation → Trading → Trading groups

##### Page Layout &amp; Controls

**+ Add** — Opens the Add Trading Group form.

**Search Field —** Allows users to search for trading groups by entering relevant keywords or identifiers.

**Total** — Shows the number of trading groups displayed in the table.

##### Locked Leverage Groups

The system includes 5 predefined, locked **Trading Groups**:

1. Leverage 1:10
2. Leverage 1:100
3. Leverage 1:200
4. Leverage 1:400
5. Leverage 1:500

These groups:

1. Can be modified or deleted
2. Can define category-level overrides
3. Are available for assignment to any client

On account creation: The system automatically assigns a trading group, which is marked as default.

##### **Creating a Trading Group** 

Click **+ Add**

[![Add trading group 1.png](https://wiki.wi.services/uploads/images/gallery/2026-05/scaled-1680-/add-trading-group-1.png)](https://wiki.wi.services/uploads/images/gallery/2026-05/add-trading-group-1.png)

**General Section**

- **Name:** Full descriptive name
- **Leverage:** Defines the base leverage for the group

> Example:  
> 1:10  
> 1:100  
> 1:400

- **Swap Long**: Defines the swap value applied to long positions
- **Swap Short**: Defines the swap value applied to short positions
- **Commission**: Commission value applied to trades
- **Active (toggle):** If disabled, the group remains stored but cannot be used for new assignments.

Click **Save**

##### Group Configuration Overrides

To add specific values for **Symbols** and **Symbol groups** for the trading group, select the group from the **Trading groups** table and choose one of the actions you need: **add Symbol** or **Symbol group**.

[![Trading groups overrides.png](https://wiki.wi.services/uploads/images/gallery/2026-05/scaled-1680-/trading-groups-overrides.png)](https://wiki.wi.services/uploads/images/gallery/2026-05/trading-groups-overrides.png)

You may define overrides for the following **Symbol groups**:

1. Forex
2. Crypto
3. Commodities
4. Stocks
5. Indices

**Example**:

- Group: Forex
- Swap Long: -3.5
- Swap Short: 1.2
- Leverage 1:200
- Commission: 0.05

*\*Example values are provided for demonstration purposes only*

To define configurations for specific **Symbols** (trading pairs) like BTC/USDT, ETH/BTC, or NEO/USDT, set configurations for each field:

**Example:**

- Symbol: BTC/USDT
- Swap Long: -0.16
- Swap Short: 0.5
- Leverage 1:200
- Commission: 0.05

*\*Example values are provided for demonstration purposes only.*

If no override exists, the group applies the default configurations.

**What Trading Groups Can Override**

Trading Groups may override:

1. Commission
2. Swap long
3. Swap short
4. Category-level leverage

They do NOT override:

1. Price feeds
2. Tick size
3. Contract size
4. Trading hours
5. Weekend rules
6. Price deltas

The following is no longer supported:

1. Margin ratio defined on Symbols
2. Leverage defined in Trading → Configurations
3. Multiple group stacking for leverage resolution

<p class="callout info">**Leverage resolution is strictly:** Account → Trading Group → Category Override → Effective Leverage</p>


#####  

##### Assigning Trading Group to an Account

When a new client is created inside our system, it automatically assigns the trading group marked as default.

This group serves as the initial trading configuration for all newly registered accounts and defines leverage, swaps, and commission settings. Values for specific Symbols or Symbol Groups are not defined by default.

The assigned **Trading Group** can be changed manually later if the client requires different trading conditions.

To change the **Default group**:

1\. Choose the client in the **Clients** module that requires changes

[![Clients (trading groups).png](https://wiki.wi.services/uploads/images/gallery/2026-05/scaled-1680-/clients-trading-groups.png)](https://wiki.wi.services/uploads/images/gallery/2026-05/clients-trading-groups.png)

**2.** Click **Edit** on the right side of the table

**[![Edit client (trading groups).png](https://wiki.wi.services/uploads/images/gallery/2026-05/scaled-1680-/edit-client-trading-groups.png)](https://wiki.wi.services/uploads/images/gallery/2026-05/edit-client-trading-groups.png)**

3\. Select **Trading Groups** in the table header

**[![Trading groups 3.png](https://wiki.wi.services/uploads/images/gallery/2026-05/scaled-1680-/trading-groups-3.png)](https://wiki.wi.services/uploads/images/gallery/2026-05/trading-groups-3.png)**

4\. Click **Replace** and select the required option from the drop-down list

**[![Trading groups 1.png](https://wiki.wi.services/uploads/images/gallery/2026-05/scaled-1680-/trading-groups-1.png)](https://wiki.wi.services/uploads/images/gallery/2026-05/trading-groups-1.png)**

5\. Click **Save**

You can also add values for specific **Symbols** or **Symbol Groups** within this **Default group**. For example, if you need to add custom values for crypto trades, open the window with the current values for the **Default group** and click Add to configure settings.

[![Overrides2.png](https://wiki.wi.services/uploads/images/gallery/2026-05/scaled-1680-/overrides2.png)](https://wiki.wi.services/uploads/images/gallery/2026-05/overrides2.png)

Then:

1. In the window that opens, select the required category from the drop-down menu.
2. Assign values for Swap Long, Swap Short, Leverage, and Commission.
3. Save the changes.

In this way, you can define all required specific settings.

##### Hierarchy of Values

When the client initiates a buy or sell trade, the system determines which value configuration to use as follows:

- First, it checks whether specific values are predefined at the **Symbol level**.
- If no Symbol-level values are defined, the system checks the **Symbol Group level**.
- If no specific values are configured at either the Symbol or **Symbol Group** level, the system applies the default settings from the assigned **Trading Group**.

This creates the following hierarchy for applying value configurations:

**Symbol → Symbol Group → Trading Group**

##### Changing the Default group to the Priority group

If your client requires specific configurations for **Symbols** or **Symbol Groups**, you can change their default Trading Group to the Priority Group.

Follow these steps:

[![Prioritize trading group.png](https://wiki.wi.services/uploads/images/gallery/2026-05/scaled-1680-/prioritize-trading-group.png)](https://wiki.wi.services/uploads/images/gallery/2026-05/prioritize-trading-group.png)

1. Choose the client in the Clients module that requires changes
2. Click Edit on the right side of the table
3. Select Trading Groups in the table header
4. Click + Prioritize Trading Group and select the required option from the drop-down list
5. Click Save
6. In the Priority Group Settings window, choose a specific Symbol Group or Symbol and set the required values

In this case, the hierarchy for applying configurations will be as follows:

1. Symbols in the Priority Group
2. Symbol Groups in the Priority Group
3. Symbols in the Default Group
4. Symbol Groups in the Default Group
5. Default configurations of the Trading Group

The system must always have one active Trading Group assigned to each client before trading is allowed.

Multiple group ordering logic is no longer used for leverage.

##### **Specifics of Changing Trading Group** 

If the account has open positions, a modal appears:

> Recalculate margin for current open positions?  
> Yes / No

**If "Yes" Selected**

1. All open positions are recalculated using new effective leverage
2. Margin requirement updates immediately
3. Liquidation levels adjust accordingly

**If "No" Selected**

1. Existing positions keep original leverage and margin
2. New orders use the new Trading Group leverage
3. Stored leverage on positions remains unchanged


##### Position Leverage Storage

At order execution:

1. Effective leverage is calculated
2. That leverage is stored on the Position
3. It becomes immutable

Stored leverage is used for:

1. Margin maintenance
2. Liquidation checks
3. Risk monitoring
4. PnL exposure logic

If Trading Group changes later and "No recalculation" was selected:  
Existing positions continue using stored leverage.

##### Leverage Architecture

**Core Principle** Leverage is resolved exclusively through Trading Groups.  
Symbols and Trading Pairs never define leverage.

**Effective Leverage Resolution** When an order is placed:

<div class="relative w-full mt-4 mb-1" id="bkmrk-effective-leverage-%3D"><div class=""><div class="relative"><div class=""><div class="">1. System reads the account’s Trading Group
2. System checks for an instrument category override
3. If override exists → use override leverage
4. If no override exists → use group default leverage

</div></div></div></div></div>> Effective Leverage =  
> Category Override (if exists)  
> else Group Default Leverage

The effective leverage is:

1. Applied during margin validation
2. Stored on the Position at execution
3. Used later for liquidation and risk logic


#####  

##### Margin Calculation

> Margin is calculated using stored leverage on the position:  
> **Margin = Contract Size × Volume × Price / Stored Leverage**

For example:

1. Contract Size = 100,000
2. Volume = 0.1 lot
3. Price = 1.1000
4. Stored Leverage = 100

Calculation:

- Margin = 100,000 × 0.1 × 1.1000 / 100
- Margin = 110
- So, the required margin is 110.

The system does not read leverage from:

1. Symbol
2. Trading pair configuration
3. Historical group values

Only stored leverage is authoritative.

#####  

##### Editing &amp; Deleting Groups

**Edit** Open the form → Modify values → Save.

Changes affect:

1. New orders immediately
2. Existing positions only if recalculation was selected

**Delete** Deleting a group:

1. Removes it from availability
2. Does not delete historical stored leverage on positions

Locked default groups cannot be deleted.

**Interaction With Trading Configuration** Trading → Configurations remains baseline for:

1. Symbol setup
2. Contract size
3. Trading hours
4. Swap defaults (if not overridden)
5. Commission defaults (if not overridden)

Leverage is never read from Trading pairs.

**Best Practices**

1. Use predefined leverage groups whenever possible.
2. Avoid excessive category overrides unless required by risk policy.
3. Review open positions before changing leverage for large accounts.
4. Use clear and descriptive Names. Label is generated automatically.
5. Document internal criteria for assigning leverage tiers.

#####  

##### Glossary

**Trading Group**  
Container defining leverage and trading parameter overrides for clients.

**Default Leverage**  
Base leverage defined at group level.

**Category Override**  
Optional leverage rule for instrument family.

**Effective Leverage**  
Leverage resolved at order execution.

**Stored Leverage**  
Immutable leverage saved on a Position at creation time.