Beispiel #1
0
    def on_order_rejected(self, d: OesRspMsgBodyT):
        """"""
        error_code = d.rptMsg.rptHead.ordRejReason
        error_string = error_to_str(error_code)
        data: OesOrdRejectT = d.rptMsg.rptBody.ordRejectRsp
        if not data.origClSeqNo:
            try:
                i = self._order_manager.get_order(data.clSeqNo)
            except KeyError:
                return  # rejected order created by others, don't need to care.

            vt_order = i.vt_order
            if vt_order == Status.ALLTRADED:
                return

            vt_order.status = Status.REJECTED

            self.gateway.on_order(copy(vt_order))
            self.gateway.write_log(
                f"Order: {vt_order.vt_symbol}-{vt_order.vt_orderid} Code: {error_code} Rejected: {error_string}"
            )
        else:
            self.gateway.write_log(
                f" withdrawals failure , order number : {data.origClSeqNo}。 the reason :{error_string}"
            )
Beispiel #2
0
    def on_order_rejected(self, d: OesRspMsgBodyT):
        """"""
        error_code = d.rptMsg.rptHead.ordRejReason
        error_string = error_to_str(error_code)
        data: OesOrdRejectT = d.rptMsg.rptBody.ordRejectRsp
        if not data.origClSeqNo:
            try:
                i = self._order_manager.get_order(data.clSeqNo)
            except KeyError:
                return  # rejected order created by others, don't need to care.

            vt_order = i.vt_order
            if vt_order == Status.ALLTRADED:
                return

            vt_order.status = Status.REJECTED

            self.gateway.on_order(copy(vt_order))
            self.gateway.write_log(
                f"Order: {vt_order.vt_symbol}-{vt_order.vt_orderid} Code: {error_code} Rejected: {error_string}")
        else:
            self.gateway.write_log(f"撤单失败,订单号: {data.origClSeqNo}。原因:{error_string}")