Compare commits
2 Commits
9dda0e8b4a
...
a6f9e74ee1
Author | SHA1 | Date | |
---|---|---|---|
a6f9e74ee1 | |||
b8b39ea8d3 |
@ -16,3 +16,9 @@ def get_balance_hook(user_id, user_name, account_id, account_name, balance):
|
||||
"balance": balance,
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
def convert_open_trades(open_trades):
|
||||
"""
|
||||
Convert a list of open trades into a list of Trade-like objects.
|
||||
"""
|
||||
|
@ -151,10 +151,17 @@ class OANDAExchange(BaseExchange):
|
||||
return response
|
||||
|
||||
def close_all_positions(self):
|
||||
# all_positions = self.get_all_positions()
|
||||
|
||||
# for position in all_positions["itemlist"]:
|
||||
# print("POS ITER", position)
|
||||
r = positions.PositionClose(accountID=self.account_id)
|
||||
response = self.call(r)
|
||||
return response
|
||||
all_positions = self.get_all_positions()
|
||||
responses = []
|
||||
for position in all_positions:
|
||||
side = position["side"]
|
||||
symbol = position["symbol"]
|
||||
data = {
|
||||
f"{side}Units": "ALL",
|
||||
}
|
||||
r = positions.PositionClose(
|
||||
accountID=self.account_id, instrument=symbol, data=data
|
||||
)
|
||||
response = self.call(r)
|
||||
responses.append(response)
|
||||
return responses
|
||||
|
@ -32,6 +32,11 @@ class ElasticMock:
|
||||
|
||||
|
||||
class LiveBase:
|
||||
@classmethod
|
||||
def tearDownClass(cls):
|
||||
cls.account.client.close_all_positions()
|
||||
super(LiveBase, cls).tearDownClass()
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super(LiveBase, cls).setUpClass()
|
||||
|
@ -78,3 +78,8 @@ class LiveTradingTestCase(ElasticMock, LiveBase, TestCase):
|
||||
|
||||
if not found:
|
||||
self.fail("Could not find the trade in the list of open trades")
|
||||
|
||||
def test_convert_open_trades(self):
|
||||
"""
|
||||
Test converting open trades response to Trade-like format.
|
||||
"""
|
||||
|
Loading…
Reference in New Issue
Block a user