Help center
Live trading through Dhan
Exactly how ChartMath places, changes and closes your orders at Dhan, and what every rejection means. Each answer has its own link, so you can share the one you need.
No order without a stop loss
Every entry leaves with a stop and a target attached. There is no path through ChartMath that puts you in a position with nothing protecting it.
Nothing happens without your tap
We never place, modify or cancel an order you did not ask for. No automatic orders, no averaging down, no re-entries.
A. How ChartMath places your orders
What happens when I tap buy?
Your order goes to Dhan as a super order. The entry, the stop loss and the target are placed together, in one instruction, not one after the other.
The two exits are linked (OCO, one cancels the other). When your target fills, the stop is pulled. When your stop fills, the target is pulled. You are never left holding a position with nothing protecting it, and you never have to remember to cancel the other side yourself.
The same three levels show up in the app and in your Dhan order book, so the two always agree.
Will ChartMath ever place an order I did not ask for?
No. ChartMath never places, modifies or cancels an order you did not ask for. Every order starts with your explicit tap.
- No automatic orders, ever.
- No averaging down into a losing position.
- No re-entries after an exit.
- Nothing that fires while you are away from the app.
This is a hard product guarantee, not a default you have to hunt down and switch off. The only orders that act for you are the stop loss and the target you attached to the trade yourself, and they do exactly what you set them to do.
Why does every order have a stop loss?
Because a position with no stop is not a trade, it is a hope. ChartMath does not place an order without a stop loss, ever.
That is a product principle, not a default you can switch off. Every entry leaves with a stop and a target attached, so your worst case is a number you chose before the order reached the exchange, not something you discover later.
You pick the levels. We just refuse to send the order without them.
How is my quantity decided?
ChartMath sizes the trade from your capital, so no single trade can take an outsized share of your account. Position sizing is not optional here, it happens on every trade.
Your capital is split into blocks(20 by default). One trade gets one block's budget, and the quantity is simply how many shares fit in that budget at the current price.
You can change the number of blocks. More blocks means smaller trades, fewer blocks means larger ones. The floor is 10 blocks, so one trade can never be worth more than a tenth of your capital.
If a share costs more than one block's budget, not even one share fits. The order is refused rather than quietly resized to something you did not intend:
price (375.25) exceeds trade budget (360.77), cannot buy even 1 unit
Two fixes: lower your number of blocks so each trade gets a larger budget, or pick a stock whose share price fits the budget you have.
Why does my market order show as Limit in Dhan?
Orders placed through Dhan's API are booked by Dhan as Limit at the live price, even when they are placed as market orders. Dhan's own app shows "Market" only for orders placed inside Dhan itself.
So the label is cosmetic, and it is on Dhan's side. The order behaves like a market order and fills like one, immediately, at the best available price. ChartMath shows it as Market, because that is what it is.
Nothing is wrong with your order, and there is nothing to fix.
Intraday, Delivery and MTF: which product type applies?
- Intraday (MIS): opened and closed the same day. Any intraday position still open near the close is squared off by the broker, so do not plan to hold one overnight.
- Delivery (CNC): the shares are delivered to your account and you can hold them as long as you like.
- MTF: margin trading. Dhan has to activate margin trading on your account before an MTF order will go through (see MTF rejections).
Shorts are intraday only, because India's cash market does not allow a delivery short. More on that in can I short a stock.
B. Changing an open order
What does Convert to market do?
It gets your working limit order filled now, at the market.
Dhan's API cannot change an order's type after it is placed, so there is no way to literally turn a limit order into a market order. ChartMath does the thing that behaves the same: it reprices your limit through the live price (about 0.5 percent through it, and always at least one tick). For a buy the new price sits above the live price, for a sell it sits below. Either way the order is immediately fillable, and it fills like a market order, at the best available price.
Nothing else about the trade changes. Same order id, same stop loss, same target.
Because it is a market fill, the price you get is the market's price at that instant, which can differ from the price you were looking at when you tapped.
If no live price can be read at that moment, the convert is refused rather than guessed. Try again in a moment. For the other refusal, see why was my convert refused.
Can I move my target or stop after placing the order?
While the entry is still working (not yet filled): you can move the target and the stop, and you can cancel the whole order. Changing the entry price on a live order is not supported yet, so if the entry level is what you want to change, cancel and place again.
After the entry fills: the entry price is history and cannot be changed, but the target and the stop stay editable for as long as the position is open. Move either one and ChartMath updates that leg at Dhan, keeping the OCO link between them intact.
One thing to know: if you move a level to a price that sits between your entry and the current price, that level would trigger the moment it reaches the exchange. ChartMath treats it as a close at market instead, and says so, rather than pretending it is a resting order.
Why was my convert to market refused?
The market has already moved past your own exit. A market entry would fill beyond the target (or the stop) you set for this trade, which means opening a position that is already past the point where you wanted out. ChartMath refuses instead of putting you there. Move the level that is in the way, or cancel the order.
No live price is readable. The convert needs a live price to reprice through, and it will not invent one. Try again in a moment.
The order is no longer working. Only a working order can be converted. One that has already filled, been cancelled or been rejected has nothing left to convert.
C. Closing a position
What does Close at market do?
It closes your open position now, using your own exit orders.
ChartMath moves your existing stop loss and target onto the live price, one tick either side of it. One of those two orders is then immediately fillable, so it fills, and the position is closed at the best available price.
The reason for doing it this way is protection. Your exits are never removed to make room for a new order, so there is no moment in the middle of the close where the position is sitting there unprotected.
In some cases the exits are replaced by a direct market close instead. The app tells you when that happens, and this answer explains it.
Why does my position sit in Closing for a few seconds?
Closing normally resolves in seconds. While it does, the trade shows as Closing, which means the instruction is with the exchange and ChartMath is waiting for the fill to come back through the order book.
What is happening in that window, each step a round trip:
- your exits are repriced onto the live price
- the exchange fills one of them
- the other is cancelled by the OCO link
- the position and the trade state are refreshed from Dhan's order book
Your position is protected the whole time, because it is your own stop and target doing the closing.
A close that stays in Closing well past a few seconds is worth a look in your Dhan order book. It usually means the exchange refused something, a price band for example. If that keeps happening, write to us.
What does "Exit orders replaced by a market close" mean?
It means your close took the other of the two paths.
Normally a close at market works by repricing your own stop and target onto the live price. Sometimes that path is not available, for instance when there is no usable exit leg left to reprice. ChartMath then cancels the exits and sends a plain market order in the opposite direction of your position, which closes it at the best available price.
The outcome is the same. The app names the path it took so that your Dhan order book makes sense when you read it later. You do not need to do anything.
D. Rejections and errors
"Rate Not Within Ckt Limit": why was my price rejected?
The exchange sets a price band around the previous close for every stock, roughly plus or minus 10 percent for many of them, and it will not accept an order priced outside that band. When that happens the exchange rejects the order and names the band:
Rate Not Within Ckt Limit 1242.50 To 1503.80
Those two numbers are the permitted range for that stock right now, so ChartMath passes them straight through instead of flattening them into a generic price error. Bring your price inside the range and place again.
On a stock that is locked at the top or the bottom of its band, there may be no acceptable price on the side you want to trade. Waiting is then the only option.
Rejection reasons in the app read as plain sentences, so you should not have to decode broker error codes to find out what went wrong.
Why can I not place an intraday order near the close?
Intraday (MIS) orders are blocked near the close, around 3:15pm IST. The exchange's own words:
Intraday orders cannot be placed at this time
An intraday position has to be closed the same day, and at that hour there is not enough session left to open one, so a fresh intraday order would be squared off almost as soon as it filled.
What you can do: place it as a delivery (CNC) order if you are willing to hold the position, or wait for the next session.
Any intraday position you are already holding is squared off by the broker before the close. That square off is the broker's, not a ChartMath order.
"Price exceeds trade budget, cannot buy even 1 unit"
price (375.25) exceeds trade budget (360.77), cannot buy even 1 unit
Your capital is split into blocks, and one trade gets one block's budget. Here, one share of this stock costs more than that budget, so there is no quantity that fits. ChartMath refuses the order rather than sizing it to something you did not intend.
Two fixes:
- lower your number of blocks, so each trade gets a bigger budget (the floor is 10 blocks)
- pick a stock whose share price fits your current per-trade budget
Full mechanics in how is my quantity decided.
Why was my MTF order rejected?
MTF (margin trading) has to be activated on your Dhan account before it can be used. Until it is, MTF orders are rejected.
This is a Dhan-side approval, not a ChartMath setting, so we cannot switch it on for you. Activate margin trading with Dhan, then place the order again.
If you do not actually need margin for this trade, place it as Intraday (MIS) or Delivery (CNC) instead and it will go through.
The app says my order was already cancelled
This happens when your cancel and an exchange rejection cross each other. The exchange had already ended the order's life before your cancel landed, so there was nothing left to cancel.
ChartMath treats that as done rather than showing you an error, because the outcome you asked for (this order is not working any more) is the outcome you have. Nothing is left pending at the exchange, and no new order was placed.
Refresh the trade and the state will read correctly.
Can I short a stock?
Yes, but intraday only.
India's cash market does not allow a delivery short: you cannot sell shares you do not own and carry that position overnight. So a short in ChartMath is always an intraday (MIS) trade, closed the same day.
If you set a short up as a delivery trade, ChartMath refuses it in the app before it ever reaches the exchange, so you get a clear message instead of a broker rejection. Switch the product type to Intraday and place it again.
As with any intraday position, an open short is squared off by the broker before the close if you have not closed it yourself.
E. Your Dhan account and connection
How do I connect and reconnect my Dhan account?
You connect your Dhan account by logging in at Dhan from the ChartMath app. Dhan hands back an access token, and that token is what lets ChartMath place the orders you ask for.
That token expires periodically, roughly daily, per Dhan's policy. When it does, the app tells you the connection needs attention and you reconnect by logging in at Dhan again. It takes a few seconds.
An expired token blocks new orders. Your existing stop loss and target sit with the exchange, not with us, so they stay live and keep working even while the connection is down.
If you plan to trade a session, reconnect before it starts rather than while you are chasing a setup.
What can ChartMath do with my Dhan account, and what can it not do?
What we do
- place, modify and cancel only the orders you initiated in ChartMath
- read your order book and positions, so the app can show you the true state of your trades
What we never do
- move money. We cannot withdraw or transfer funds.
- touch holdings you did not trade through ChartMath. Shares you bought elsewhere are not ours to sell.
- place an order you did not ask for. See the authorization guarantee.
How are my orders routed to Dhan?
Orders from ChartMath reach Dhan over a dedicated secure route registered for your account. Dhan requires order placement to arrive over a known, registered route, which is a SEBI requirement, and it is set up once for your account when you connect.
Nothing is needed from you, and it does not change how you place orders.
If the route is ever not recognised, orders are refused with a clear message rather than being retried blindly. That one is on us to fix, not something your order or your login can change, so write to us if you see it.
Something not covered here, or an order that did not behave the way this page says?
Write to usLooking for something else? Try the general FAQ.
This page covers live trading through Dhan. Market orders fill at the market's price, not a guaranteed price. ChartMath is an educational tool and does not give buy or sell recommendations, and you make your own trading decisions.
