Skip to main content

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 → TradingOrders.

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 & controls
  1. Total — number of orders in the current view (respects filters).

  2. Filter — opens the advanced filter panel (see §4).

  3. + Add — opens the create-order form (see §5).

  4. Table — sortable columns; actions appear on each row (see §3.3).

Column Customization

The Orders table supports dynamic column visibility customization.

Users can choose which columns are visible in the table.

Accessing Column Customization
In the Orders page header area, click:

Customize columns
(or the column settings icon, depending on UI design).

This opens a dropdown panel listing all available table columns.

Available Columns
The customization panel includes all columns currently rendered in the Orders table, including but not limited to:

  1. ID

  2. Client

  3. Asset ID

  4. Symbol

  5. Side

  6. Type

  7. Price

  8. Quantity

  9. Lot volume

  10. Margin quantity

  11. Status

  12. Swap

  13. Commission

  14. Created at

  15. Updated at

  16. Executed at (UTC)

  17. Actions

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.

Table overview

Columns (typical)

Column Meaning
ID Unique order identifier (sortable).
Client Client email/UID.
Asset ID Trading account or portfolio identifier used to route/settle.
Symbol Instrument/pair (e.g., BTC/USDT).
Side BUY or SELL.
Type Order type (e.g., MARKET; others may be enabled by setup).
Price For market orders, the execution/last-known; for limit/stop, the requested price.
Quantity Order size in instrument units or lots.
Lot volume Base unit size applied to the order (from pair config).
Margin quantity Margin/leverage factor applied at creation (often equals the pair’s margin ratio).
Status OPEN or CLOSE.
Swap Swap accumulated or configured for this order (if applicable).
Created at Timestamp when the order was created (sortable).
Updated at Timestamp of the last modification (sortable).
Executed at (UTC) Timestamp when the order was executed by the trading engine in UTC (sortable).
Actions Row-level operations (edit, link/copy, close/cancel, etc.).

Notes:
Visible columns can vary by environment/role.
Values respect the pair’s price precision and lot rules defined in Configurations.

Sorting: Click the header of sortable columns (e.g., ID, Type, Price, Quantity, Status, Created at, Updated at, Executed at (UTC)) to toggle ascending/descending.

Row actions (common)

  1. Edit — open the edit panel for the selected order (see §6).

  2. Copy/Link — copy a deep link to this order (for ops tickets, chats).

  3. Close/Cancel — request order closure/cancellation where policy allows (open orders only).

Filtering & searching

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

Fields:

  1. Created date — range filter (Start dateEnd 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. SideBUY or SELL.

  8. Type — e.g., MARKET (others if configured).

  9. StatusOPEN or CLOSE.

  10. Margin — toggle to show only margin-enabled orders if your instance differentiates.

Click Save in the filter panel to apply.

Creating an order

Click + Add to open the create-order form (exact fields vary by enabled order types).

Common fields:

  1. Client / Asset ID — who and which trading account the order belongs to.

  2. Symbol — target instrument/pair.

  3. SideBUY or SELL.

  4. Type — typically MARKET; other types (e.g., LIMIT) may be available depending on configuration.

  5. Price — required for limit/stop; informational/locked for market orders.

  6. Quantity — number of units/lots. Enforced against pair Lot volume.

  7. Stop loss / Take profit — optional risk controls.

  8. Swap long / Swap short — visible when applicable to the instrument.

Business rules at create:
Trading calendar — if a non-trading window (weekend/holiday) applies to the symbol’s time zone, the order is blocked.
Margin check — pre-trade validation must pass:

margin = (lot * price) / margin_ratio

Then the account’s free balance must meet or exceed the pair’s Margin requirement (%) of the collateral. If insufficient, creation is rejected with an insufficient-margin error.
Precision & 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.

Editable fields (typical):
Price — for pending/limit orders (market orders may be read-only).
Quantity — within policy limits and available margin.
Swap long / Swap short — where policy allows manual override.
Stop loss / Take profit — risk parameters adjustable by risk team.

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 & 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 notifications:
When a trader’s available balance declines toward critical levels, the platform issues staged warnings:

  1. At 20% of 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.

This mechanism helps users take corrective action before forced liquidation.

Closing / canceling an order

Close a position from the row actions when 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 & 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. StatusOPEN (active) or CLOSE (closed/exited).