Exemple #1
0
    def onPosition(self, position):
        """
        仓位信息回报

        Args:
            position(fxdayu.vt.vtData.VtPositionData):
        """
        position_ = VtAdapter.transform(position)
        event = PositionEvent(position_, topic=position_.symbol)
        self.eventEngine.event_queue.put(event)
Exemple #2
0
    def onTrade(self, trade):
        """
        订单执行回报

        Args:
            trade(fxdayu.vt.vtData.VtTradeData):
        """
        execution = VtAdapter.transform(trade)
        execution.account = self.context.account.id
        event = ExecutionEvent(execution)
        self.eventEngine.event_queue.put(event)
Exemple #3
0
    def subscribe_contract(self, contract):
        """

        Args:
            contract(fxdayu.event.ContractData):

        Returns:
            None
        """
        req = VtAdapter.transform(contract)
        return self.subscribe(req)
Exemple #4
0
    def onError(self, error):
        """
        错误回报

        Args:
            error(fxdayu.vt.vtData.VtErrorData):

        Returns:
            None
        """
        error = VtAdapter.transform(error)
        self.eventEngine.event_queue.put(ErrorEvent(error))
Exemple #5
0
    def onLog(self, log):
        """
        记录日志

        Args:
            log(fxdayu.vt.vtData.VtLogData):

        Returns:
            None
        """
        log_ = VtAdapter.transform(log)
        self.eventEngine.event_queue.put(LogEvent(log_))
Exemple #6
0
    def onAccount(self, account):
        """
        账户信息回报

        Args:
            account(fxdayu.vt.vtData.VtAccountData):

        Returns:
            None
        """
        account_ = VtAdapter.transform(account)
        event = AccountEvent(account_, topic=account_.gateway)
        self.eventEngine.event_queue.put(event)
Exemple #7
0
    def onTick(self, tick):
        """
        市场深度行情推送

        Args:
            tick(fxdayu.vt.vtData.VtTickData)

        Returns:
            None
        """
        tick_ = VtAdapter.transform(tick)
        event = TickEvent(tick_, topic=tick_.symbol)
        self.eventEngine.event_queue.put(event)
Exemple #8
0
    def send_order(self, order):
        """

        Args:
            order(fxdayu.models.order.OrderReq):
        Returns:

        """
        vt_order = VtAdapter.transform(order)
        vt_order_id = self.sendOrder(vt_order)
        self._order_map_fx2vn[order.clOrdID] = vt_order_id
        self._order_map_vn2fx[vt_order_id] = order.clOrdID
        order.gateway, _ = vt_order_id.split(".")
Exemple #9
0
    def onOrder(self, order):
        """
        订单回报

        Args:
            order(fxdayu.vt.vtData.VtOrderData):
        """
        order_status = VtAdapter.transform(order)
        order_status.clOrdID = self._order_map_vn2fx.get(
            order_status.clOrdID, "")
        # TODO 过滤掉不在本次发出的订单
        order_status.account = self.context.account.id
        event = OrderStatusEvent(order_status, topic=order_status.gClOrdID)
        self.eventEngine.event_queue.put(event)
Exemple #10
0
    def cancel_order(self, cancel):
        """

        Args:
            cancel(fxdayu.models.order.CancelReq):

        Returns:

        """
        cancel.orderID = self._order_map_fx2vn.get(cancel.orderID, "")
        if cancel.orderID:
            gateway, cancel.orderID = cancel.orderID.split(".")
            cancel_req = VtAdapter.transform(cancel)
            self.cancelOrder(cancel_req)
        else:
            pass  # warning