Skip to content

Import Open Trade

MngImportOpenTrade

Description: Imports an already open market position into the local trading runtime.
This method is intended for account migration, platform transition, or manual dealer-assisted transfer of open positions from another trading platform.

The imported position is created in state TS_OPEN_RESTORED.

Unlike MngOpenTrade, this method:

  • does not validate available free margin before import
  • allows explicitly provided commission and storage
  • preserves the imported open_price and open_time
  • is designed for restored external positions, not for opening a new trade at the current market

Access Control

🛡️ Access Level Required: SESSION_ADMIN, SESSION_MANAGER, SESSION_DEALER


Endpoint

This method is routed internally as MngImportOpenTrade.


Request Parameters

Name Type Required Description
login int Yes User login ID
cmd int Yes Market command only: OP_BUY=0 or OP_SELL=1
volume int Yes Trade volume in minimal lots
symbol string Yes Trading symbol
open_price double Yes Imported open price
open_time int64 Yes Imported open timestamp
order int No Imported order identifier. If omitted, the server reserves a new order ID
sl double No Imported Stop Loss
tp double No Imported Take Profit
digits int No Symbol precision override. If omitted, symbol digits are used
reason int No Trade source reason. Defaults to TR_REASON_DEALER
commission double No Imported commission value. Preserved as provided
storage double No Imported swap/storage value. Preserved as provided
magic int No Optional magic number
comment string No Optional trade comment
gw_order int No Optional external gateway order identifier
gw_source string No Optional external gateway source/provider
gw_uuid string No Optional external gateway UUID
last_swap_time int64 No Optional imported last swap accrual time. If omitted, open_time is used
__access object Yes Access object with type field

Request Example

{
  "login": 123456,
  "cmd": 0,
  "volume": 1000,
  "symbol": "EURUSD",
  "open_price": 1.08425,
  "open_time": 1713206400,
  "commission": -12.5,
  "storage": -3.75,
  "comment": "Imported from legacy platform",
  "gw_source": "mt4",
  "gw_uuid": "a7d6d7d4-5a8a-4cb5-9f73-b5c9e5f7d111",
  "__access": {
    "type": 2
  }
}

Response Semantics

If the request is accepted:

  • the payload passed validation
  • account, symbol, group, and lot-step checks passed
  • the position was accepted as an imported open trade
  • account margin snapshot was updated immediately
  • the imported trade was queued into runtime processing

The response should be treated as an acknowledgment object.


Response Parameters

Name Type Description
imported bool Always true on successful acknowledgment
order int Imported or reserved order identifier
login int Target account login
symbol string Imported symbol
cmd int Imported market command
volume int Imported volume
state int Imported runtime state, TS_OPEN_RESTORED
commission double Imported commission value
storage double Imported storage/swap value

Response Example

{
  "imported": true,
  "order": 1002456,
  "state": 2,
  "login": 123456,
  "symbol": "EURUSD",
  "cmd": 0,
  "volume": 1000,
  "commission": -12.5,
  "storage": -3.75
}

Error Responses

Validation Error

{
  "error": "INVALID_DATA",
  "message": "open_time is required"
}

Incorrect Command

{
  "error": "RET_TRADE_INCORRECT_CMD",
  "message": "Order command is incorrect"
}

Incorrect Symbol or Account

{
  "error": "RET_NOT_FOUND",
  "message": "Record not found"
}

Duplicate Order

{
  "error": "RET_TRADE_EXIST",
  "message": "Trade exist"
}

Notes

  • The method supports only open market positions.
  • Pending orders are not supported by this import flow.
  • The imported position is stored as TS_OPEN_RESTORED.
  • The imported trade is created without free margin validation.
  • commission and storage are not recalculated if provided explicitly.
  • Current floating profit, close_price, margin_rate, and margin_initial are calculated by the server during import.
  • If order is omitted, the server allocates a new order ID.