Skip to content

MngOpenTradesList

Opens the same market position for a list of trading accounts. The method is a bulk coordinator over the standard manager open-trade flow: every account is validated independently and every accepted trade passes through the normal trade pipeline, including execution routing.

The command accepts between 1 and 100 unique account logins. An error for one account does not stop processing the remaining accounts.

Access control

The command is available to manager, administrator, and dealer sessions. For every login, the server independently verifies account visibility, brand/group scope, and dealer trade-write access.

Request parameters

Name Type Required Description
logins int[] Yes Between 1 and 100 unique positive account logins
cmd int Yes Market command: OP_BUY=0 or OP_SELL=1
volume int Yes Position volume in server integer volume units
symbol string Yes Internal trading symbol
sl double Yes Stop Loss; use 0 when it is not set
tp double Yes Take Profit; use 0 when it is not set
open_price double No Optional requested opening price
open_time int64 No Optional opening timestamp
comment string No Comment copied to every generated trade
__access object Yes Session access object injected by the server transport

Request example

{
  "command": "MngOpenTradesList",
  "extID": "bulk-open-1",
  "data": {
    "logins": [2000001, 2000002, 2000003],
    "cmd": 0,
    "volume": 100,
    "symbol": "EURUSD",
    "sl": 0,
    "tp": 0,
    "comment": "Manager bulk operation"
  }
}

Response parameters

Name Type Description
total int Number of requested accounts
accepted int Number of accepted open-trade requests
rejected int Number of rejected accounts
results object[] Independent result for every login, in request order

Each successful result contains login, accepted=true, reserved order, and the accepted trade state. When routing creates a dealer request, the result also contains dealer_request_id.

Each failed result contains login, accepted=false, http_code, and the available error and message fields.

Response example

{
  "extID": "bulk-open-1",
  "status": 200,
  "data": {
    "total": 3,
    "accepted": 2,
    "rejected": 1,
    "results": [
      {
        "login": 2000001,
        "accepted": true,
        "order": 1249001,
        "state": 1
      },
      {
        "login": 2000002,
        "accepted": false,
        "error": "RET_TRADE_DISABLED",
        "message": "Trade disabled",
        "http_code": 400
      },
      {
        "login": 2000003,
        "accepted": true,
        "order": 1249002,
        "state": 1
      }
    ]
  }
}

Validation and execution semantics

  • An empty list or more than 100 logins returns 400 INVALID_DATA.
  • A non-integer or non-positive login returns 400 INVALID_DATA.
  • Duplicate logins reject the complete request with 400 DUPLICATE_LOGIN to prevent accidental duplicate positions.
  • Only market orders are supported by this method.
  • A 200 response describes batch processing, not final execution. An item with accepted=true has entered the standard trade lifecycle and must be tracked by its order through trade events or trade query methods.
  • Routing, dealer, gateway, and internal-execution rules are evaluated for each generated trade separately.

See also MngOpenTrade and the common Trade Request Lifecycle.