コード例 #1
0
    def onRspQryTradingAccount(self, data: dict, error: dict, reqid: int,
                               last: bool):
        """"""
        if "AccountID" not in data:
            return

        account = AccountData(
            accountid=data["AccountID"],
            balance=round(data["Balance"], 3),
            pre_balance=round(data['PreBalance'], 3),  #上个交易日总资金
            available=round(data["Available"], 3),  #可用资金
            commission=round(data['Commission'], 3),  #手续费
            margin=round(data['CurrMargin'], 3),  #账户保证金
            close_profit=round(data['CloseProfit'], 3),  #平仓盈亏
            position_profit=round(data['PositionProfit'], 3),  #持仓盈亏
            frozen=round(
                data["FrozenMargin"] + data["FrozenCash"] +
                data["FrozenCommission"], 3),  #冻结资金
            date=str(datetime.now().date()),
            time=str(datetime.now().time()),
            gateway_name=self.gateway_name,
        )
        try:
            account.percent = round(account.margin / account.balance,
                                    3) * 100  #资金使用率
        except ZeroDivisionError:
            account.percent = 0

        self.gateway.on_account(account)
コード例 #2
0
    def on_query_account(self, data: dict, request: Request) -> None:
        """"""
        if self.check_error(data, "查询账户"):
            return
        
        for d in data["data"]["responseBody"]:
            account = AccountData(
                accountid=self.open_account,
                balance=d["currentBalance"] / 100,
                pre_balance=d["beginBalance"] / 100,
                available=d["canUseBalance"] / 100,
                frozen=d["forbidBalance"] / 100,
                commission=d["payFee"] / 100,
                margin=(d["lxExDepositBanlance"] + d["lxPreDepositBanlance"]) / 100,
                date=str(datetime.now().date()),
                time=str(datetime.now().time()),
                gateway_name=self.gateway_name,
            )

            try:
                account.percent = round(1 - account.available / account.balance,3) * 100      #资金使用率
            except ZeroDivisionError:
                account.percent = 0

            self.gateway.on_account(account)