def on_account(self, d): """ 处理账号资金信息 可以用资金,冻结资金,总资金 :param d: :return: """ accountid = str(d["account"]) account = self.accounts.get(accountid, None) if not account: account = AccountData(accountid=accountid, gateway_name=self.gateway_name) self.accounts[accountid] = account # 总金额(xbt) account.balance = float(d.get("marginBalance", account.balance)) / 1000000000 # 可用xbt account.available = float(d.get("availableMargin", account.available)) / 1000000000 # 冻结 xbt account.frozen = account.balance - account.available # 备注名 user_id = self.user_id # 删除数据 o_money = Money.delete().where(Money.money_user_id == user_id, Money.money_accountid == accountid) o_money.execute() # 执行指令 # 插入数据库 o_money = Money().insert(money_user_id=user_id, money_balance=account.balance, money_available=account.available, money_frozen=account.frozen, money_accountid=accountid) o_money.execute() # 执行
def on_account(self, d): """""" accountid = str(d["account"]) account = self.accounts.get(accountid, None) if not account: account = AccountData(accountid=accountid, gateway_name=self.gateway_name) self.accounts[accountid] = account account.balance = d.get("marginBalance", account.balance) account.available = d.get("availableMargin", account.available) account.frozen = account.balance - account.available self.gateway.on_account(copy(account))
def on_wallet(self, data): """""" if str(data[0]) == "exchange": accountid = str(data[1]) account = self.accounts.get(accountid, None) if not account: account = AccountData( accountid=accountid, gateway_name=self.gateway_name, ) account.balance = float(data[2]) account.available = 0.0 account.frozen = 0.0 self.gateway.on_account(copy(account))
def on_query_account(self, data, request): """""" for acc in data: account_id = str(acc["currency"]) account = self.accounts.get(account_id, None) if not account: account = AccountData(accountid=account_id, gateway_name=self.gateway_name) self.accounts[account_id] = account account.balance = float(acc.get("balance", account.balance)) account.available = float(acc.get("available", account.available)) account.frozen = float(acc.get("hold", account.frozen)) self.gateway.on_account(copy(account))
def on_wallet(self, data): """""" # Exchange Mode if not self.margin and str(data[0]) != "exchange": return # Margin Mode elif self.margin and str(data[0]) != "margin": return accountid = str(data[1]) account = self.accounts.get(accountid, None) if not account: account = AccountData( accountid=accountid, gateway_name=self.gateway_name, ) account.balance = float(data[2]) account.available = 0.0 account.frozen = 0.0 self.gateway.on_account(copy(account))