Begin implementing get all open trades

This commit is contained in:
Mark Veidemanis 2022-12-22 07:20:49 +00:00
parent b818e7e3f5
commit a18c150fe2
Signed by: m
GPG Key ID: 5ACFCEED46C0904F
3 changed files with 67 additions and 0 deletions

View File

@ -218,6 +218,10 @@ class BaseExchange(ABC):
def get_all_positions(self): def get_all_positions(self):
pass pass
@abstractmethod
def get_all_open_trades(self):
pass
@abstractmethod @abstractmethod
def close_position(self, side, symbol): def close_position(self, side, symbol):
pass pass

View File

@ -129,6 +129,10 @@ class OANDAExchange(BaseExchange):
items.append(item) items.append(item)
return items return items
def get_all_open_trades(self):
r = trades.OpenTrades(accountID=self.account_id)
return self.call(r)
def close_position(self, side, symbol): def close_position(self, side, symbol):
data = { data = {
f"{side}Units": "ALL", f"{side}Units": "ALL",

View File

@ -492,6 +492,65 @@ class Trade(BaseModel):
guaranteedExecutionFee: str guaranteedExecutionFee: str
quoteGuaranteedExecutionFee: str quoteGuaranteedExecutionFee: str
halfSpreadCost: str halfSpreadCost: str
# takeProfitOrder: TakeProfitOrder | None
takeProfitOrder: dict | None
stopLossOrder: dict | None
trailingStopLossOrder: dict | None
{
"trades": [
{
"id": "14480",
"instrument": "EUR_USD",
"price": "1.06345",
"openTime": "2022-12-22T08:57:10.459593310Z",
"initialUnits": "100",
"initialMarginRequired": "2.9226",
"state": "OPEN",
"currentUnits": "100",
"realizedPL": "0.0000",
"financing": "0.0000",
"dividendAdjustment": "0.0000",
"unrealizedPL": "-0.0158",
"marginUsed": "2.9228",
}
],
"lastTransactionID": "14480",
}
class OpenTrades(BaseModel):
trades: list[Trade]
lastTransactionID: str
OpenTradesSchema = {
"itemlist": (
"trades",
[
{
"id": "tradeID",
"instrument": "instrument",
"price": "price",
"openTime": "openTime",
"initialUnits": "initialUnits",
"initialMarginRequired": "initialMarginRequired",
"state": "state",
"currentUnits": "currentUnits",
"realizedPL": "realizedPL",
"financing": "financing",
"dividendAdjustment": "dividendAdjustment",
"unrealizedPL": "unrealizedPL",
"marginUsed": "marginUsed",
"takeProfitOrder": "takeProfitOrder",
"stopLossOrder": "stopLossOrder",
"trailingStopLossOrder": "trailingStopLossOrder",
}
],
),
"lastTransactionID": "lastTransactionID",
}
class HomeConversionFactors(BaseModel): class HomeConversionFactors(BaseModel):