You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Had a problem with the bot returning spurious wallet values after the March 23rd site maintenance. Support couldn't help but I eventually found the issue.
The funds() function in ws_thread.py looks like this:
def funds(self):
return self.data['margin'][0]
It just returns whatever is first in the list of currencies returned in data. But after the March 23rd site update this might not be XBt, for instance I was getting spurious data because the first in the list was actually BMEx. Here's the actual margin currency data returned by ws.
As you can see, BMEx is returned first, XBt second, so funds() returns BMEx holdings instead of XBt holdings.
In my own code I changed it to the following. It suits my purposes for now but you might want to do something different.
#was returning erroneous data if XBt wasn't the first currency returned in self.data['margin']
#will now look for XBt and exit if it can't find it.
def funds(self):
#return self.data['margin'][0]
for o in self.data['margin']:
if o['currency']=='XBt':
return o
self.logger.info('ERROR: ws_thread.py cannot find XBt in margin data.')
sleep(5)
self.exit()
sys.exit(1)
The text was updated successfully, but these errors were encountered:
Had a problem with the bot returning spurious wallet values after the March 23rd site maintenance. Support couldn't help but I eventually found the issue.
The funds() function in ws_thread.py looks like this:
It just returns whatever is first in the list of currencies returned in data. But after the March 23rd site update this might not be XBt, for instance I was getting spurious data because the first in the list was actually BMEx. Here's the actual margin currency data returned by ws.
'margin': [
{'account': xxxxxxxxxx, 'currency': 'BMEx', 'riskLimit': 9223372036854775807, 'amount': 12082210, 'prevRealisedPnl': 0, 'grossComm': 0, 'grossOpenCost': 0, 'grossOpenPremium': 0, 'grossExecCost': 0, 'grossMarkValue': 0, 'riskValue': 0, 'initMargin': 0, 'maintMargin': 0, 'targetExcessMargin': 0, 'realisedPnl': 0, 'unrealisedPnl': 0, 'walletBalance': 12082210, 'marginBalance': 12082210, 'marginLeverage': 0.0, 'marginUsedPcnt': 0.0, 'excessMargin': 12082210, 'availableMargin': 12082210, 'withdrawableMargin': 12082210, 'timestamp': '2023-03-28T03:50:00.855Z'},
{'account': xxxxxxxxxx, 'currency': 'XBt', 'riskLimit': 1000000000000, 'amount': 20000, 'prevRealisedPnl': -3444113, 'grossComm': 0, 'grossOpenCost': 0, 'grossOpenPremium': 0, 'grossExecCost': 0, 'grossMarkValue': 0, 'riskValue': 0, 'initMargin': 0, 'maintMargin': 0, 'targetExcessMargin': 0, 'realisedPnl': 0, 'unrealisedPnl': 0, 'walletBalance': 20000, 'marginBalance': 20000, 'marginLeverage': 0.0, 'marginUsedPcnt': 0.0, 'excessMargin': 20000, 'availableMargin': 20000, 'withdrawableMargin': 20000, 'timestamp': '2023-03-24T01:03:11.565Z'}]
As you can see, BMEx is returned first, XBt second, so funds() returns BMEx holdings instead of XBt holdings.
In my own code I changed it to the following. It suits my purposes for now but you might want to do something different.
The text was updated successfully, but these errors were encountered: