This API function is useful for exiting from an open bracket or cover order position. APIs are available in AmiBroker, MetaTrader, Excel, Java, C#, Python, HTTP REST.
Api function to exit from a bracket or cover order position on Supports leading Indian Stock Brokers.
When you place a bracket or cover order (also called as parent order) & it gets executed; you can see one or many child orders being generated. These will be your stoploss and/or target orders.
This function accepts a parent order id, and cancels it’s children. Here is the workflow
- Find all stoploss child orders
- Cancel them
This is what happens after stoploss child orders are cancelled.
- It’s respective target order is cancelled by your stock broker (in case of a bracket order)
- The position is squared off at market price by your stock broker
You will find same observation if you are doing this directly on your trading platform. Hence cancel child order function is also referred to as exit bracket or cover order function.
Signature
/*
* Cancels child orders of a bracket or cover order.
* This function is useful for exiting from bracket and cover order.
* Pass the account & id you received after placing a bracket or cover order.
*/
function cancelOrderChildren(account, id)
/*
* Cancels or exits from order. This function is useful for exiting from bracket and cover order.
* If the order is OPEN, it will be cancelled. If it is executed, system will cancel it's child orders;
* which will result in exiting the position.
* Pass account & id you received after placing a bracket or cover order.
*/
function cancelOrExitOrder(account, id)
Example
orderId = placeBracketOrder(AT_ACCOUNT,
AT_EXCHANGE, AT_SYMBOL, "BUY",
"LIMIT", AT_QUANTITY, buyPrice,
defaultTriggerPrice(), 5, 3, 1, True);
// You can save this orderId in a static variable
saveStaticVariableText(AT_ACCOUNT, "ORDER_ID", orderId);
// Somewhere later in your code,
// when you want to exit this order
// Read orderId from static variable
orderId = readStaticVariableText(AT_ACCOUNT, "ORDER_ID");
// Exit the order
cancelOrderChildren(AT_ACCOUNT, orderId);
Signature
/*
* Cancels child orders of a bracket or cover order.
* This function is useful for exiting from bracket and cover order.
* Pass the account & id you received after placing a bracket or cover order.
* Returns true on success.
*/
bool cancelOrderChildren(string account, string id)
/*
* Cancels or exits from order. This function is useful for exiting from bracket and cover order.
* If the order is OPEN, it will be cancelled. If it is executed, system will cancel it's child orders;
* which will result in exiting the position.
* Pass account & id you received after placing a bracket or cover order.
*/
bool cancelOrExitOrder(string account, string id)
Example
string orderId = placeBracketOrder(AT_ACCOUNT,
AT_EXCHANGE, AT_SYMBOL, BUY, LIMIT, 1,
192, 0.0, 5, 3, 1, true);
// You can even store the orderId
// in a static variable
// Somewhere later in your code,
// when you want to exit this order
cancelOrderChildren(AT_ACCOUNT, orderId);
Signature
/**
* Used for exiting an open Bracket order or Cover order position. Cancels the
* child orders for the given parent order.
*
* @param pseudoAccount pseudo account
* @param platformId platform id (id given to order by trading platform)
* @return true on success, false otherwise
*/
IOperationResponse<Boolean> cancelChildOrdersByPlatformId(
String pseudoAccount, String platformId);
Example
// Places an order
final IOperationResponse<String> response = autotrader
.placeBracketOrder("ACC_NAME", "NSE", "SBIN",
TradeType.BUY, OrderType.LIMIT,
10, 180.5f, 0f, 5f, 2.5f, 1f);
// Read order id
String orderId = null;
if (response.success()) {
orderId = response.getResult();
} else {
final String errorMessage = response.getMessage();
}
// Somewhere later in your code
// Exit the order
autotrader.cancelChildOrdersByPlatformId("ACC_NAME", orderId);
Signature
/// <summary>
/// Used for exiting an open Bracket order or Cover order position. Cancels the
/// child orders for the given parent order. For more information, please see
/// <a href=
/// "https://stocksdeveloper.in/documentation/api/cancel-child-orders/">api
/// docs</a>.
/// </summary>
/// <param name="pseudoAccount"> pseudo account </param>
/// <param name="platformId"> platform id (id given to order by trading platform) </param>
/// <returns> <code>true</code> on success, <code>false</code> otherwise </returns>
IOperationResponse<bool?> CancelChildOrdersByPlatformId(
string pseudoAccount, string platformId);
Example
// Places an order
IOperationResponse<string> response =
autotrader.PlaceBracketOrder("ACC_NAME",
"NSE", "SBIN", TradeType.BUY, OrderType.LIMIT,
10, 180.5f, 0f, 5f, 2.5f, 1f);
// Read order id
string orderId = null;
if (response.Success())
{
orderId = response.Result;
}
else
{
string errorMessage = response.Message;
}
// Somewhere later in your code
// Exit the order
IOperationResponse<bool?> response =
autoTrader.CancelChildOrdersByPlatformId(
"XX1234", "200831000170161");
if(response.Success()) {
Console.WriteLine("Result: {0}", response.Result);
}
else {
Console.WriteLine("Message: {0}", response.Message);
}
Signature
def cancel_child_orders_by_platform_id( \
self, pseudo_account, platform_id):
Example
response = autotrader.cancel_child_orders_by_platform_id( \
'XX1234', '201007000448051')
if response.success():
print("Result: {0}".format(response.result))
else:
print("Message: {0}".format(response.message))
Example
curl https://api.stocksdeveloper.in/trading/cancelChildOrdersByPlatformId \
-H "api-key: <your_api_key>" \
-d "pseudoAccount=ACC_NAME" \
-d "platformId=<order_id>"
Response
{
"result":true,
"error":null,
"message":null,
"status":true,
"commandId":"6d4b5738-c1aa-4623-b0c5-8df779e0f44d"
}
Signature
Public Function CancelOrderChildren(PseudoAccount As String, _
OrderId As String) As Boolean
Example
Dim OrderId As String
OrderId = PlaceBracketOrder("ACC_NAME", _
"NSE", "SBIN", "BUY", "LIMIT", 1, _
200.55, 0, 3, 2, 1)
' Somewhere later in your code,
' when you want to exit this order
' Exit the order
CancelOrderChildren("ACC_NAME", OrderId);
Postman is widely used tool for API testing. We have provided below a collection of all of our APIs in postman collection format. Click postman collection to know more about how to use it.
Parameters
AmiBroker, Excel, MetaTrader
- account – pseudo account
- orderId – publisherId (parent orderId given by placeOrder*() function)
Java, HTTP, C#, Python
- account – pseudo account
- orderId – platformId (parent orderId given by placeOrder*() function)
Return value
AmiBroker, Excel, MetaTrader
This function sends a exit bracket or cover order position request to AutoTrader Desktop Client. On successful submission, it will return True, otherwise False
Java, HTTP, C#, Python
Returns a response object, with result being True on success, False otherwise.
The type of the return value is Boolean.