Instrument Master


Referring to discussion "Orders - WebSocket / PostBack - Open Questions"

You pointed at the com.zerodhatech.kiteconnect.utils.Constants class for all the constants (String literals) used in the API's JSON payloads.

However, I see that there is no mention of Options in Instrument Segments.

/** Instruments segments. */
public static final String INSTRUMENTS_SEGMENTS_EQUITY = "equity";
public static final String INSTRUMENTS_SEGMENTS_COMMODITY = "commodity";
public static final String INSTRUMENTS_SEGMENTS_FUTURES = "futures";
public static final String INSTRUMENTS_SEGMENTS_CURRENCY = "currency";

  • gautamsatpathy
    How to determine is an Instrument is of a particular type:
    • Equity Stock -> segment = "equity"
    • Equity Future -> Segment = "futures"
    • Equity Options?
    • Index Future -> Segment = "futures". No way to determine that this is an Index Future and not a Stock Future other than comparing the Trading Symbol to the list of Traded Index Futures in NSE & BSE.
    • Index Options?
    • Currency Future -> Segment = "futures" or "currency"?
    • Currency Option?
    • Commodity Future -> Segment = "futures" or "commodity"?
    • Commodity Option?
  • gautamsatpathy

    From this list of values for Exchange, are we to assume that all Currency Instruments are under CDS?
    /** Exchanges. */
    public static final String EXCHANGE_NSE = "NSE";
    public static final String EXCHANGE_BSE = "BSE";
    public static final String EXCHANGE_NFO = "NFO";
    public static final String EXCHANGE_BFO = "BFO";
    public static final String EXCHANGE_MCX = "MCX";
    public static final String EXCHANGE_CDS = "CDS";
  • gautamsatpathy

    Confused between CNC and NRML. Are they interchangeable?
    /** Product types. */
    public static final String PRODUCT_MIS = "MIS";
    public static final String PRODUCT_CNC = "CNC";
    public static final String PRODUCT_NRML = "NRML";
  • sujith
    Instruments segments are obsolete, it was used in margins data API. You can use the new margins calculation API.
    Kite Connect API supports CDS and BCD exchange for currency instruments. You can check all the values in the instruments master file.
    CNC is for equity delivery and NRML is for non-equity overnight or longterm product. It is not interchangeable. These are basic trading questions. I would suggest placing few orders on Kite web and app to know the process and other nuances of the trading platform.
  • gautamsatpathy
    :) Thanks.

    Basic Trading Questions? Broker specific Terminology and String Literals used in code?

    I know my way around Kite Web. I scoured it again to look for instances where NRML appears in the UI. What I did not do is drop in to Browser Developer Mode to look at the HTTP Request / Response.

    I would suggest that you create and maintain better documentation. Of course, you are a Brokerage and not a Software Product Development House no matter how many times you utter HiTech.

    And be polite in the forums. We are paying for your service. Act accordingly.
  • Matti
    Hey Gautam, no Zerodha representative would want to offend a paying customer (or anybody else!).

    When @sujith pointed out topics to understand definitions of terms like CNC/NRML, or how to determine if a position is long or short, or what Average Traded Price signifies, do not belong on this forum, it is because this forum is for tech-related queries that users of the API may face.

    For the more generic questions, answers are available on our Support Portal since these would be the same for users of the APIs or the Kite app.

    For example, the distinction between CNC, NRML, and MIS is answered on our support portal here. The reason this isn't explained within the API doc is because the API doc isn't where these terms should be defined, considering they're largely standardised industry terms.

    And even if you were to look at the Kite app, these terms appear on the order form itself. There would have been no need to look at HTTP requests to understand these.

    So, while I, or any other representative of Zerodha, don't mean to offend you, we would still request you to refrain from posting such queries on this forum as this is not the right place for these questions and it pollutes other users' feeds.
  • gautamsatpathy
    Thank you @Matti for responding.

    But I don't know if you see the contradictions in your response.

    KiteConnect is an API. It is a specialized Software Product that allows a Software Developer to connect to the Broker's, Zerodha's, Servers.

    As a software product, it must have proper documentation for each and every aspect.

    And here it fails. Zerodha does a fairly decent job of documentation but it is not enough. The very fact that each and every person here is being pointed at FAQs, collections of older articles, Support pages, etc., for material that should be covered in the API documentation itself should immediately tell you that you have a problem.

    As are your twin assumptions that every person here will automatically know that the String Literals used in Kite Web UI will also be used for HTTP GET & POST Requests and that they will also know to go looking for this information across a huge web site, gleaning nuggets of information from disparate web pages and Assume that they will be exactly the same in the API. By what stretch of the imagination can you make such assumptions???

    Again, there are gaps in the documentation which will force the developer to actually execute an action to understand. Does Zerodha assume that I will build a SHORT Position in BANKNIFTY F&O, hold it over multiple days, add and subtract from that position to clearly understand the Holdings & Positions API?

    I am afraid your user's feeds in this forum will continue to be polluted by other users till your fix your documentation.
  • Matti
    There are no contradictions, Gautam. The documentation does not need to describe non-technical elements that you interact with when using the APIs. Also, usage of the APIs is contingent on knowing the underlying platform.

    Your ask of having all of these terms explained in the technical API documentation is akin to saying a car's user manual also needs to explain driving to the reader. That isn't reasonable.

    As for polluting the forum, this is a moderated forum and moderators can clean up the feed if needed.
This discussion has been closed.