Skip to main content

PlaceOrder

Places an order on a CrossTrade-connected NinjaTrader account.

Write Action

PlaceOrder mutates an account. The agent's prompt must require explicit human confirmation before this is called. Treat it like signing a check.

PropertyValue
Required scopemcp:trade
RiskHigh. Can produce real fills on a live account.
Side effectsCreates a new order in NT8.

When an agent should use it

  • Only after a state check (accounts, positions, orders) and an explicit user confirmation.
  • When the user has stated account, instrument, side, quantity, and order type.
  • Never autonomously based on natural-language intuition alone.

When an agent should not use it

  • During journal review or research workflows.
  • When the user has not confirmed.
  • On a funded account if the firm rules forbid automation. Check the prop firm learn pages.
  • On the account that holds your primary trading capital during agent experimentation.

Parameters

{
"account": "Sim101",
"instrument": "MES 06-26",
"side": "Buy",
"type": "Limit",
"quantity": 1,
"limit_price": 5230.00,
"tif": "Day"
}

type accepts Market, Limit, Stop, StopLimit. tif accepts Day, Gtc, Ioc, Fok per NT8 conventions.

Response shape

{
"order_id": "abc-123",
"status": "Submitted",
"account": "Sim101",
"instrument": "MES 06-26",
"side": "Buy",
"type": "Limit",
"quantity": 1,
"limit_price": 5230.00
}

Example user prompt

On Sim101, place a buy limit for 1 MES 06-26 at 5230.00, day order.
Confirm the order_id and status afterward.

The agent should restate the action and wait for confirmation before submitting.

Example tool call

{
"name": "PlaceOrder",
"arguments": {
"account": "Sim101",
"instrument": "MES 06-26",
"side": "Buy",
"type": "Limit",
"quantity": 1,
"limit_price": 5230.00,
"tif": "Day"
}
}

Common errors

SymptomLikely causeFix
Rejected: max contractsAccount is at or above the configured limit.Reduce quantity. Do not retry blindly.
Rejected: daily loss lockoutFirm-level lockout fired.Stop trading. Do not retry.
Rejected: instrument not subscribedSubscription or expiration issue.Verify with MarketInfo.
account_not_foundTypo or disconnected account.Call ListAccounts.

Safe workflow placement

ListAccounts → GetConnections → GetAccountSummary → GetWatermarks
→ ListPositions → ListOrders → explicit user confirm → PlaceOrder
→ GetOrder / GetOrderStatus

After PlaceOrder, call GetOrder to verify the order_id and status. Do not assume submission means filled.