def _update_asset(self, data): """ Asset update. Args: data: asset data. Returns: None. """ assets = {} for item in data["data"]: symbol = item["symbol"].upper() total = float(item["margin_balance"]) free = float(item["margin_available"]) locked = float(item["margin_frozen"]) if total > 0: assets[symbol] = { "total": "%.8f" % total, "free": "%.8f" % free, "locked": "%.8f" % locked } if assets == self._assets: update = False else: update = True info = { "platform": self._platform, "account": self._account, "assets": assets, "timestamp": tools.get_cur_timestamp_ms(), "update": update } asset = Asset(**info) self._assets = asset
def _update_asset(self, data): """ Asset update. Args: data: asset data. Returns: None. """ assets = {} for item in data["data"]: symbol = item["symbol"].upper() total = float(item["margin_balance"]) free = float(item["margin_available"]) locked = float(item["margin_frozen"]) premium_frozen = float(item.get("premium_frozen", 0)) premium_in = float(item.get("premium_in", 0)) premium_out = float(item.get("premium_out", 0)) delta = float(item.get("delta", 0)) gamma = float(item.get("gamma", 0)) theta = float(item.get("theta", 0)) vega = float(item.get("vega", 0)) option_value = float(item["option_value"]) if total > 0: assets[symbol] = { "total": "%.8f" % total, "free": "%.8f" % free, "locked": "%.8f" % locked, "premium_frozen": "%.8f" % premium_frozen, "premium_in": "%.8f" % premium_in, "premium_out": "%.8f" % premium_out, "delta": "%.8f" % delta, "gamma": "%.8f" % gamma, "theta": "%.8f" % theta, "vega": "%.8f" % vega, "option_value": "%.8f" % option_value } if assets == self._assets: update = False else: update = True if hasattr(self._assets, "assets") is False: info = { "platform": self._platform, "account": self._account, "assets": assets, "timestamp": tools.get_cur_timestamp_ms(), "update": update } asset = Asset(**info) self._assets = asset SingleTask.run(self._asset_update_callback, copy.copy(self._assets)) else: for symbol in assets: self._assets.assets.update({symbol: assets[symbol]}) self._assets.timestamp = tools.get_cur_timestamp_ms() SingleTask.run(self._asset_update_callback, copy.copy(self._assets))
def _update_asset(self, data): """ Asset update. Args: data: asset data. Returns: None. """ assets = {} for item in data["data"]: symbol = item["margin_account"].upper() total = float(item["margin_balance"]) #free = float(item["margin_available"]) locked = float(item["margin_frozen"]) + float( item["margin_position"]) free = total - locked if total > 0: assets[symbol] = { "total": "%.8f" % total, "free": "%.8f" % free, "locked": "%.8f" % locked } if assets == self._assets: update = False else: update = True if hasattr(self._assets, "assets") is False: info = { "platform": self._platform, "account": self._account, "assets": assets, "timestamp": tools.get_cur_timestamp_ms(), "update": update } asset = Asset(**info) self._assets = asset SingleTask.run(self._asset_update_callback, copy.copy(self._assets)) else: for symbol in assets: self._assets.assets.update({symbol: assets[symbol]}) self._assets.timestamp = tools.get_cur_timestamp_ms() SingleTask.run(self._asset_update_callback, copy.copy(self._assets))
async def on_event_asset_update(self, asset: Asset): """ 资产更新 """ print("on_event_asset_update") print(asset.__str__())