Limit Price Protection in Orders
-
Dear SmartAPI Users,
In compliance with the recent exchange circulars, We are introducing Limit Price Protection, i.e. LPP in our ordering system. This will add as an additional check to save you from getting stuck in erroneous trades and comply the the exchange mandate for protection of retail investors.
Here are the relevant circulars:
Because of these changes, you'll receive messages like
"message":"Order price is beyond the Limit Price Protection range defined by the exchange. Please increase the stop loss limit price above <$LPPPrice>" "message": "Difference between limit price and trigger price for SL Limit Order is beyond the exchange’s Permissible range of <$Price Range>. Consider reducing the limit price below <$LimitPrice>"
The permissible limit for each instrument is determined using a specific formula considering the trigger price, X% variation, and a minimum absolute range (in ₹) depending on the type of instrument. For further details on how the permissible range is calculated, please refer to the circulars mentioned above.
Difference between limit price and trigger price for SL Limit Order is beyond the exchange’s Permissible range of <$Price Range>. Consider reducing the limit price below <$LimitPrice>
This will affect
STOPLOSS_LIMIT
ordersAny incoming limit order placed beyond LPP range shall automatically be rejected by the Exchange as below:
Buy order price > High LPP limitSell order price < Low LPP limit
Order price is beyond the Limit Price Protection range defined by the exchange. Please increase the stop loss limit price above < $LPPPrice >
This will affect
LIMIT
andSTOPLOSS_LIMIT
Orders.These changes will be rolled out soon our systems and hence we advise you not to get alarmed by these new rejection messages received in response and understand them. We urge you to go through the circulars given above.
The response from
placeorder
API will be like this:{ "status": false, "message": "Order price is beyond the Limit Price Protection range defined by the exchange. Please increase the stop loss limit price above < 421.30 >", "errorcode": "AB1007", "data": { "script": "BANKNIFTY03JUL2451300CE", "orderid": null, "uniqueorderid": "bf525811-bf98-4974-9120-b173cb05e12f" } }
Please note that the order response will only have
uniqueorderid
, theorderid
key will have null value.HTTP Status code will be 200, but the response will have
"status":false
The
errorcode
returned will beAB1007
.This change is going across all Angel Platforms, hence will be applicable on all, i.e. SmartAPI, Web and Mobile platforms.
We hope this enhanced check simplifies your trading journey and helps you trade better.
Thank you.
Regards
SmartAPI Team -
@Moderator_1 , I am trying to send the request body like below
{ "variety":"STOPLOSS", "tradingsymbol":"SBIN-EQ", "transactiontype":"BUY", "exchange":"NSE", "ordertype":"STOPLOSS_LIMIT", "producttype":"DELIVERY", "duration":"DAY", "price":"818", "squareoff":"800", "stoploss":"800", "quantity":"1" }
Note : symbolToken already added.
As of today's date SBIN price is 812.1 rupees.
Now I am getting response as below{ "status": false, "message": "Difference between limit price and trigger price for SL Limit Order is beyond the exchange’s Permissible range of < 1.50 >. Consider setting the limit price to < 1.50 > or lower", "errorcode": "AB1007", "data": { "script": "SBIN-EQ", "orderid": null, "uniqueorderid": "15ea8c49-c973-47dd-80ef-2251c134bd8b" } }
can you please help me understand, where I have done the mistake ?