open_forward_tradewriteOwner-scopedPlace an order on one of the user's active forward-testing accounts. This moves a real position on that demo account. A market order fills at the last completed 1-minute close, the same series the server settles against, so no price is sent for one; a limit order rests at the given price until the server fills it. Stops, targets and stop-outs are then handled server-side every minute.
| Param | Type | Req. | Description |
|---|---|---|---|
| accountId | string | yes | The forward account id (from get_forward_accounts). |
| symbol | string | yes | Instrument symbol, e.g. EURUSD. |
| side | string | yes | long or short. |
| size | number | yes | Position size in lots. |
| orderType | string | no | market (default) or limit. |
| price | number | no | Resting price. Required for a limit order, ignored for a market order. |
| stopLoss | number | no | Stop-loss price. |
| takeProfit | number | no | Take-profit price. |
| takeProfitLadder | array | no | Scale-out ladder: [{ price, pct }], adding up to at most 100%. |
| breakEvenTrigger | number | no | Reaching this price moves the stop to entry, once. |
Example prompts
- “Go long half a lot of EURUSD on my forward account, stop at 1.08.”
- “Put a limit buy on gold at 2380 with a 20 dollar stop.”
Example call
{ "name": "open_forward_trade", "arguments": { "accountId": "7c1d2e3f-4a5b-6c7d-8e9f-0a1b2c3d4e5f", "symbol": "EURUSD", "side": "long", "size": 0.5, "stopLoss": 1.08, "takeProfit": 1.09 } }