Convert a position's product (dry run by default)
convert_positionConvert the margin product of an open position, such as MIS to NRML, with a dry-run preview by default before sending a live request.
Instructions
Convert the margin product of an open position, for example MIS to NRML or NRML to MIS. DRY RUN BY DEFAULT: with dry_run=true (the default) nothing is sent; the answer shows the exact request, the position found in get_positions, every safety check and, when live trading is enabled and the checks pass, a confirmation_token. To convert, repeat the identical call with dry_run=false and that token.
A conversion places no order and adds no exposure, so it does not count toward the daily order count or the daily value. It is still checked: the new product must be allowed, and the converted quantity's notional (quantity x multiplier x last_price from get_positions) must be within the per-order cap. If the position is not found, its value is unknown and the conversion cannot be sent live. Moving a position out of MIS keeps it open past the end of the day and needs the full margin of the new product. Returns true when sent.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"exchange": "<exchange>",
"tradingsymbol": "<tradingsymbol>",
"transaction_type": "<transaction_type>",
"position_type": "<position_type>",
"quantity": "<quantity>",
"old_product": "<old_product>",
"new_product": "<new_product>"
},
"name": "convert_position"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| dry_run | No | true (default): validate and preview only, nothing is sent. false: send it live, which needs live trading enabled on the server and the confirmation_token from a dry run | |
| exchange | Yes | exchange of the position: NSE, BSE, NFO, BFO, CDS, BCD, MCX | |
| quantity | Yes | quantity to convert (MCX/CDS/BCD: lots) | |
| new_product | Yes | the margin product to convert to | |
| old_product | Yes | the position's current margin product | |
| position_type | Yes | overnight: carried over from a previous day. day: opened today | |
| tradingsymbol | Yes | e.g. INFY, NIFTY25NOVFUT | |
| transaction_type | Yes | the position's side: BUY for a long position, SELL for a short one | |
| confirmation_token | No | the confirmation_token returned by a dry run of this exact call (single use) |