Use the following python code to convert the Zerodha order book to a dataframe.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
from kiteconnect import KiteConnect from kiteconnect import KiteTicker import pandas as pd import time import datetime access_token = open("access_token.txt",'r').read() key_secret = open("api_key.txt",'r').read().split() kite = KiteConnect(api_key=key_secret[0]) kite.set_access_token(access_token) #creating orders dataframe orders = kite.orders() orders_df = pd.DataFrame(orders) |
Once you create the DataFrame, you’ll note that it has the following fields:
(I have provided some sample values to help you understand them)
- Index : This starts from 0 and increments by 1
- account_id : This is your account id (alpha-numeric)
- placed_by : This is your account id
- order_id : 15 digit numeric character
- exchange_order_id : 16 digit numeric character
- parent_order_id : None
- status : COMPLETE / etc.
- status_message : None
- status_message_raw : None
- order_timestamp : 2025-05-02 14:24:58
- exchange_update_timestamp : 2025-05-02 14:24:58
- exchange_timestamp : 2025-05-02 14:24:58
- variety : regular
- modified : False
- exchange : NFO
- tradingsymbol : NIFTY2550824200PE
- instrument_token : 9881346
- order_type : MARKET
- transaction_type : BUY / SELL
- validity : DAY
- validity_ttl : 0
- product : MIS
- quantity : 75 (This is the ordered quantity)
- disclosed_quantity : 0
- price : 0
- trigger_price : 0
- average_price : 127.55 (This is the price at which the order was executed be that be buy or sell)
- filled_quantity : 75 (This the actual quantity that was executed)
- pending_quantity : 0
- cancelled_quantity : 0
- market_protection : 0
- meta : {}
- tag : None
- guild : 01XoMy73mJub4XT
Fetching Order Details
|
1 |
print(orders_df.loc[len(orders_df.index)-1, "quantity"]) |
This will fetch you the latest quantity from the order book.
Just replace “quantity” with other variable and you can fetch whatever you want.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
print(orders_df.loc[len(orders_df.index)-1, "account_id"]) print(orders_df.loc[len(orders_df.index)-1, "placed_by"]) print(orders_df.loc[len(orders_df.index)-1, "order_id"]) print(orders_df.loc[len(orders_df.index)-1, "exchange_order_id"]) print(orders_df.loc[len(orders_df.index)-1, "parent_order_id"]) print(orders_df.loc[len(orders_df.index)-1, "status"]) print(orders_df.loc[len(orders_df.index)-1, "status_message"]) print(orders_df.loc[len(orders_df.index)-1, "status_message_raw"]) print(orders_df.loc[len(orders_df.index)-1, "order_timestamp"]) print(orders_df.loc[len(orders_df.index)-1, "exchange_update_timestamp"]) print(orders_df.loc[len(orders_df.index)-1, "exchange_timestamp"]) print(orders_df.loc[len(orders_df.index)-1, "variety"]) print(orders_df.loc[len(orders_df.index)-1, "modified"]) print(orders_df.loc[len(orders_df.index)-1, "exchange"]) print(orders_df.loc[len(orders_df.index)-1, "tradingsymbol"]) print(orders_df.loc[len(orders_df.index)-1, "instrument_token"]) print(orders_df.loc[len(orders_df.index)-1, "order_type"]) print(orders_df.loc[len(orders_df.index)-1, "transaction_type"]) print(orders_df.loc[len(orders_df.index)-1, "validity"]) print(orders_df.loc[len(orders_df.index)-1, "product"]) print(orders_df.loc[len(orders_df.index)-1, "quantity"]) print(orders_df.loc[len(orders_df.index)-1, "disclosed_quantity"]) print(orders_df.loc[len(orders_df.index)-1, "price"]) print(orders_df.loc[len(orders_df.index)-1, "trigger_price"]) print(orders_df.loc[len(orders_df.index)-1, "average_price"]) print(orders_df.loc[len(orders_df.index)-1, "filled_quantity"]) print(orders_df.loc[len(orders_df.index)-1, "pending_quantity"]) print(orders_df.loc[len(orders_df.index)-1, "cancelled_quantity"]) print(orders_df.loc[len(orders_df.index)-1, "market_protection"]) print(orders_df.loc[len(orders_df.index)-1, "meta"]) print(orders_df.loc[len(orders_df.index)-1, "tag"]) print(orders_df.loc[len(orders_df.index)-1, "guild"]) |