Example #1
0
    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
Example #2
0
    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
Example #3
0
    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
Example #4
0
    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
Example #5
0
    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