I’ve recently encountered an issue with Super Orders that I hadn’t seen before, and it’s starting to concern me.
In cases where the position does not move in the intended direction, instead of exiting via a stop-loss market order, I’m seeing a sell limit order being placed. Because of this, the price has already moved beyond my stop-loss level before execution, leading to larger-than-expected losses.
This has happened twice in the last couple of sessions, and it has directly cost me money. Prior to this, I’ve used Super Orders extensively and never faced this behavior, which makes me suspect that something may have changed in how these orders are being handled on the backend.
Has anyone else experienced something similar recently?
Also, could the team clarify if there have been any changes to the execution logic of stop-loss in Super Orders?
Would appreciate any insights or confirmation on this.
Hi @Vishal_Singh, this can happen in scenarios where the bid-ask spread is very wide or there is extreme volatility in the contract.
In Super Orders, once the stop-loss or target is triggered, the order is sent as a market order. However, the exchange can apply Market Price Protection (MPP) limits (for example 5% or 10% depending on the scrip). When this happens, the market order may get converted into a limit order within that protection range.
To review your specific trades in detail, we request you to write to us at help@dhan.co, and our team will assist you further.
I had already raised this issue with your team on a call yesterday, but I have yet to receive any resolution.
The scrips in question were fairly liquid (Groww), and the price moved only about 1% beyond the stop-loss level. Even considering the 5% MPP, the order should have been executed. However, this has now occurred in two consecutive sessions, which makes it important to understand what is going wrong.
What’s more concerning is that I have previously used Super Orders in relatively illiquid scrips without facing this issue.
This is becoming a significant problem for me, as I’m now forced to constantly monitor my positions during market hours to ensure execution, which defeats the purpose of using such order types.
I would appreciate a prompt investigation and resolution.
@Mohseen_Usmani Could you please check with your tech team if there have been any recent changes to the Super Order execution logic? I observed the same issue again today.
This time, I clearly saw the stop-loss order converting into a stop limit order when it reach my trigger price, which suggests there may have been a change in how Super Orders are being handled at backend.
I also have a screen recording of this behavior. I’ll process it and share it shortly for your reference.
Hi @Vishal_Singh, as checked you are placing orders via API, due to recent changes in regulatory framework, market orders will now be treated as limit order. you can read a detailed post on this - Now Live: API Regulatory Changes on DhanHQ
Even when placing the order through the API, the stop-loss should not be converted into a limit order. A stop-loss serves a specific purpose, and converting it into a limit order defeats that purpose entirely.
Same issue and well said the whole purpose of SL makes no sense with this change. Please let me know in case you find any solution for this.? This is happening for me in executions as well as it doesn’t fills the whole order qty. or gets stuck in orders as the orders placed via API’s are converting into Limit Orders now which is a very big problem and they say 5-10% MPP on API market orders but I have seen even if price jumps with 1-2% it is not placing orders as it was working previously before this change.
Looking forward for a solution in case anyone finds it?
There’s another issue with how the stop-loss behaves. Suppose I buy at 101 and place a stop-loss at 100. When the price hits 100, the stop-loss gets triggered and is converted into a limit order at 100.1(just an example). This doesn’t make sense.
If anything, once the trigger at 100 is hit, the order should convert to a price below 100 (like 99.xx) to ensure quick execution. Converting it to a price above the trigger essentially guarantees that the order may never execute, defeating the purpose of a stop-loss.
Can you elaborate here with any example or share order details over DM? Will get this checked.
@Vishal_Singh Will check this scenario. If it is a stop-loss for a long position, it should take the limit price as stated by you. Also, will recommend using stop loss limit order for the time being while we check this.