Order placed on NSE executed on BSE

vijoeyz
vijoeyz edited June 2020 in Python client
I have noticed that for all of the CNC orders placed on NSE, some have been executed on BSE!!

Please check my holdings retrieved using kite.holdings(). You'll notice some are on BSE; for example: SIEMENS on BSE, and ADANIGAS on NSE.

I always use instruments (tradingsymbol) retrieved from NSE. See:
instruments = kite_client.instruments(exchange = "NSE")
and, I always place buy CNC orders on NSE:
        order_id = kite_client.place_order(                                  \
exchange = kite_client.EXCHANGE_NSE, \
tradingsymbol = symbol, \
transaction_type = kite_client.TRANSACTION_TYPE_BUY, \
product = kite_client.PRODUCT_CNC, \
order_type = order_type, \
quantity = quantity, \
price = price, \
disclosed_quantity = disclosed_quantity, \
variety = kite_client.VARIETY_REGULAR, \
validity = kite_client.VALIDITY_DAY, \
tag = tag)
and, sell orders on NSE:
        order_id = kite_client.place_order(                                  \
exchange = kite_client.EXCHANGE_NSE, \
tradingsymbol = symbol, \
transaction_type = kite_client.TRANSACTION_TYPE_SELL, \
product = kite_client.PRODUCT_CNC, \
order_type = order_type, \
quantity = quantity, \
price = price, \
disclosed_quantity = disclosed_quantity, \
variety = kite_client.VARIETY_REGULAR, \
validity = kite_client.VALIDITY_DAY, \
tag = tag)
Why does this happen?

Also, does it cost to buy on one exchange and sell it on another?

@sujith
  • rakeshr
    @vijoeyz
    We show exchange based on the higher price. You can go through this article.
  • vijoeyz
    vijoeyz edited June 2020
    Okay!! So, is this not arbitration?

    So, do I calculate my trading cost as per https://zerodha.com/charges#tab-equities ? There are no additional charges buying on one exchange and selling on another?
  • rakeshr
    @vijoeyz
    So, do I calculate my trading cost as per https://zerodha.com/charges#tab-equities ? There are no additional charges buying on one exchange and selling on another?
    The exchange field shown for each holding is best to sell benefit scenario. But, you can always place sell order on any exchange you desire, and charges will be levied accordingly.
  • vijoeyz
    vijoeyz edited June 2020
    So can exchange field of holdings change multiple times between NSE and BSE during the day? Therefore, in order to determine the exchange at run-time , do I need to fetch holdings just before placing the sell order?
  • rakeshr
    @vijoeyz
    So can exchange field of holdings change multiple times between NSE and BSE during the day?
    No, these are EOD based.
    Therefore, in order to determine the exchange at run-time , do I need to fetch holdings just before placing the sell order?
    Change in holding exchange assignment is EOD based, not real-time. If you are looking for similar functionality in real-time, you can create function at your end, that accepts symbol/token in real-time and return exchange with a higher price for that symbol use Quote/Websocket APIs to compute the same. Then you can place an order on the given exchange.
  • vijoeyz
    Thank you, @rakeshr.
This discussion has been closed.