def cancel_order(self, order_id, order_type=None): """ Method executes cancelling_order according to it's order type. return response. """ order = False if not 'session_token' in self.__dict__: raise ApiValueError( "Please invoke 'generate_session2_fa' function first") if order_type is None or order_type == 'O': order = ks_api_client.OrderApi(self.api_client).cancel_order( self.consumer_key, self.session_token, order_id) elif order_type == 'NO': order = ks_api_client.NormalOrderApi( self.api_client).cancel_normal_order(self.consumer_key, self.session_token, order_id) elif order_type == 'SMO': order = ks_api_client.SuperMultipleOrderApi( self.api_client).cancel_sm_order(self.consumer_key, self.session_token, order_id) elif order_type == 'SORO': order = ks_api_client.SmartOrderRoutingApi(self.api_client).cancel_sor_order(self.consumer_key,\ self.session_token, order) elif order_type == 'MTFO': order = ks_api_client.MarginTradingApi(self.api_client).cancel_mtf_order(self.consumer_key, \ self.session_token, order) else: raise TypeError("Provided order type is invalid.") return order
def place_order(self, order_type, instrument_token, transaction_type, \ quantity, price, disclosed_quantity = 0,trigger_price = 0 , tag = "string", \ validity ="GFD", variety = "REGULAR", product = None, smart_order_routing = None): """ Method executes placing_orders according to it's order type. return response. """ place_order = None if not 'session_token' in self.__dict__: raise ApiValueError("Please invoke 'session_2fa' function first") if order_type == "O": order = NewOrder(instrumentToken = instrument_token, tag = tag, transactionType = transaction_type,\ variety = variety, quantity = quantity, price = price, disclosedQuantity = disclosed_quantity,\ validity = validity, triggerPrice = trigger_price, product = product,smartOrderRouting = smart_order_routing) place_order = ks_api_client.OrderApi( self.api_client).place_new_order(self.consumer_key, self.session_token, order) elif order_type == 'N': order = NewNormalOrder(instrumentToken = instrument_token, tag = tag, transactionType = transaction_type,\ variety = variety, quantity = quantity, price = price, disclosedQuantity = disclosed_quantity,\ validity = validity, triggerPrice = trigger_price) place_order = ks_api_client.NormalOrderApi( self.api_client).place_new_normal_order( self.consumer_key, self.session_token, order) elif order_type == 'SM': order = NewSMOrder( instrumentToken = instrument_token, tag = tag, transactionType = transaction_type,\ variety = variety, quantity = quantity, price = price, disclosedQuantity = disclosed_quantity, \ validity = validity, triggerPrice = trigger_price) place_order = ks_api_client.SuperMultipleOrderApi(self.api_client).place_new_sm_order(self.consumer_key,\ self.session_token, order) elif order_type == 'SOR': order = NewSOROrder( instrumentToken = instrument_token, tag = tag, transactionType = transaction_type,\ variety = variety, quantity = quantity, price = price, validity = validity, disclosedQuantity = disclosed_quantity,triggerPrice = trigger_price ) place_order = ks_api_client.SmartOrderRoutingApi(self.api_client).place_new_sor_order(self.consumer_key,\ self.session_token, order) elif order_type == 'MTF': order = NewMTFOrder(instrumentToken = instrument_token, tag = tag, transactionType = transaction_type,\ variety = variety, quantity = quantity, price = price, disclosedQuantity = disclosed_quantity, \ validity = validity, triggerPrice = trigger_price) place_order = ks_api_client.MarginTradingApi(self.api_client).place_new_mtf_order(self.consumer_key, \ self.session_token, order) elif order_type == 'MIS': order = NewMISOrder(instrumentToken = instrument_token, tag = tag, transactionType = transaction_type,\ variety = variety, quantity = quantity, price = price, disclosedQuantity = disclosed_quantity,\ validity = validity, triggerPrice = trigger_price) place_order = ks_api_client.MISOrderApi( self.api_client).place_new_mis_order(self.consumer_key, self.session_token, order) else: raise TypeError( "Provided order type is invalid, use either of O(Order), N(Normal Order), SM(Super Multiple Order), SOR(Smart Order Routing), MTF(Margin Tading Facility) or MIS" ) return place_order
def cancel_order(self, order_id): """ Method executes cancelling_order return response. """ order = False if not 'session_token' in self.__dict__: raise ApiValueError("Please invoke 'session_2fa' function first") order = ks_api_client.OrderApi(self.api_client).cancel_order( self.consumer_key, self.session_token, order_id) return order
def modify_order(self, order_id, price, quantity, disclosed_quantity, trigger_price, validity): """ Method executes modifying_orders return response. """ if not 'session_token' in self.__dict__: raise ApiValueError("Please invoke 'session_2fa' function first") modify_order = ExistingOrder(orderId = order_id, disclosedQuantity = disclosed_quantity, price = price,\ quantity = quantity, triggerPrice = trigger_price,validity = validity) modified_order_res = ks_api_client.OrderApi( self.api_client).modify_order(self.consumer_key, self.session_token, modify_order) return modified_order_res
def modify_order(self, order_id, disclosed_quantity = 0, price = 0,\ quantity = 1, trigger_price = 0,order_type = None): """ Method executes modifying_orders according to it's order type. return response. """ if not 'session_token' in self.__dict__: raise ApiValueError( "Please invoke 'generate_session2_fa' function first") if order_type is None or order_type == 'O': modify_order = ExistingOrder(orderId = order_id, disclosedQuantity = disclosed_quantity, price = price,\ quantity = quantity, triggerPrice = trigger_price) modified_order_res = ks_api_client.OrderApi( self.api_client).modify_order(self.consumer_key, self.session_token, modify_order) elif order_type == 'NO': modify_order = ExistingNormalOrder(orderId = order_id, disclosedQuantity = disclosed_quantity, price = price,\ quantity = quantity, triggerPrice = trigger_price) modified_order_res = ks_api_client.NormalOrderApi( self.api_client).modify_normal_order(self.consumer_key, self.session_token, modify_order) elif order_type == 'SMO': modify_order = ExistingSMOrder(orderId = order_id, disclosedQuantity = disclosed_quantity, price = price,\ quantity = quantity, triggerPrice = trigger_price) modified_order_res = ks_api_client.SuperMultipleOrderApi( self.api_client).modify_sm_order(self.consumer_key, self.session_token, modify_order) elif order_type == 'SORO': modify_order = ExistingSOROrder(orderId = order_id, disclosedQuantity = disclosed_quantity, price = price,\ quantity = quantity, triggerPrice = trigger_price) modified_order_res = ks_api_client.SmartOrderRoutingApi(self.api_client).modify_sor_order(self.consumer_key,\ self.session_token, modify_order) elif order_type == 'MTFO': modify_order = ExistingMTFOrder(orderId = order_id, disclosedQuantity = disclosed_quantity, price = price,\ quantity = quantity, triggerPrice = trigger_price) modified_order_res = ks_api_client.MarginTradingApi(self.api_client).modify_mtf_order(self.consumer_key, \ self.session_token, modify_order) else: raise TypeError("Provided order type is invalid.") return modified_order_res