コード例 #1
0
    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
コード例 #2
0
    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))
コード例 #3
0
    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))
コード例 #4
0
 async def on_event_asset_update(self, asset: Asset):
     """ 资产更新
     """
     print("on_event_asset_update")
     print(asset.__str__())