def close_all_orders(): try: # close mis trades position = pd.DataFrame(kite.positions()['net']) positive_trades = position.loc[(position['quantity'] > 0) & (position['product'] == 'MIS')] negative_trades = position.loc[(position['quantity'] < 0) & (position['product'] == 'MIS')] for index, row in positive_trades.iterrows(): kite.place_order(variety=kite.VARIETY_REGULAR, exchange=row['exchange'], tradingsymbol=row['tradingsymbol'], transaction_type= kite.TRANSACTION_TYPE_SELL, quantity=row['quantity'], product=kite.PRODUCT_MIS, order_type=kite.ORDER_TYPE_MARKET) for index, row in negative_trades.iterrows(): quantity = row['quantity'] * -1 kite.place_order(variety=kite.VARIETY_REGULAR, exchange=row['exchange'], tradingsymbol=row['tradingsymbol'], transaction_type= kite.TRANSACTION_TYPE_BUY, quantity=quantity, product=kite.PRODUCT_MIS, order_type=kite.ORDER_TYPE_MARKET) # close bo co trades orders = pd.DataFrame(kite.orders()) bo_trades = orders.loc[(orders['variety'] == 'bo') & (orders['status'] == 'TRIGGER PENDING')] co_trades = orders.loc[(orders['variety'] == 'co') & (orders['status'] == 'TRIGGER PENDING')] for index, row in bo_trades.iterrows(): kite.exit_order(order_id=row['order_id'], variety=kite.VARIETY_BO) for index, row in co_trades.iterrows(): kite.exit_order(order_id=row['order_id'], variety=kite.VARIETY_CO) # close pending trades trigger_pending_orders = orders.loc[(orders['status'] == 'TRIGGER PENDING' ) & (orders['product'] == 'MIS')] open_orders = orders.loc[(orders['status'] == 'OPEN') & (orders['product'] == 'MIS')] for index, row in trigger_pending_orders.iterrows(): kite.cancel_order(variety = row['variety'], order_id = row['order_id']) for index, row in open_orders.iterrows(): kite.cancel_order(variety = row['variety'], order_id = row['order_id']) except Exception as e: print(e)