Check exchange name and remove redundant code, use IOC orders for OANDA

This commit is contained in:
Mark Veidemanis 2022-11-10 07:20:28 +00:00
parent 40f6330a13
commit bf863f43b2
Signed by: m
GPG Key ID: 5ACFCEED46C0904F
3 changed files with 4 additions and 53 deletions

View File

@ -43,7 +43,7 @@ class OANDAExchange(BaseExchange):
# "price": "1.5000", - added later # "price": "1.5000", - added later
"stopLossOnFill": {"timeInForce": "GTC", "price": str(trade.stop_loss)}, "stopLossOnFill": {"timeInForce": "GTC", "price": str(trade.stop_loss)},
"takeProfitOnFill": {"price": str(trade.take_profit)}, "takeProfitOnFill": {"price": str(trade.take_profit)},
"timeInForce": "GTC", "timeInForce": "IOC",
"instrument": trade.symbol, "instrument": trade.symbol,
"units": str(amount), "units": str(amount),
"type": trade.type.upper(), "type": trade.type.upper(),

View File

@ -7,24 +7,6 @@ from core.util import logs
log = logs.get_logger(__name__) log = logs.get_logger(__name__)
def get_balance(account):
account_info = account.client.get_account()
cash = account_info["equity"]
try:
return float(cash)
except ValueError:
return False
def get_market_value(account, symbol):
try:
position = account.client.get_position(symbol)
return float(position["market_value"])
except APIError:
return False
def execute_strategy(callback, strategy): def execute_strategy(callback, strategy):
cash_balance = strategy.account.client.get_balance() cash_balance = strategy.account.client.get_balance()
log.debug(f"Cash balance: {cash_balance}") log.debug(f"Cash balance: {cash_balance}")
@ -35,6 +17,9 @@ def execute_strategy(callback, strategy):
base = callback.base base = callback.base
quote = callback.quote quote = callback.quote
direction = hook.direction direction = hook.direction
if callback.exchange != account.exchange:
log.error("Market exchange differs from account exchange.")
return
if account.exchange == "alpaca": if account.exchange == "alpaca":
if quote not in ["usd", "usdt", "usdc", "busd"]: if quote not in ["usd", "usdt", "usdc", "busd"]:
log.error(f"Quote not compatible with Dollar: {quote}") log.error(f"Quote not compatible with Dollar: {quote}")

View File

@ -179,40 +179,6 @@ AccountDetailsSchema = {
} }
{
"account": {
"marginCloseoutNAV": "35454.4740",
"marginUsed": "10581.5000",
"currency": "EUR",
"resettablePL": "-13840.3525",
"NAV": "35454.4740",
"marginCloseoutMarginUsed": "10581.5000",
"marginCloseoutPositionValue": "211630.0000",
"openTradeCount": 2,
"id": "101-004-1435156-001",
"hedgingEnabled": False,
"marginCloseoutPercent": "0.14923",
"marginCallMarginUsed": "10581.5000",
"openPositionCount": 1,
"positionValue": "211630.0000",
"pl": "-13840.3525",
"lastTransactionID": "2123",
"marginAvailable": "24872.9740",
"marginRate": "0.05",
"marginCallPercent": "0.29845",
"pendingOrderCount": 0,
"withdrawalLimit": "24872.9740",
"unrealizedPL": "0.0000",
"alias": "hootnotv20",
"createdByUserID": 1435156,
"marginCloseoutUnrealizedPL": "0.0000",
"createdTime": "2016-06-24T21:03:50.914647476Z",
"balance": "35454.4740",
},
"lastTransactionID": "2123",
}
class AccountSummaryNested(BaseModel): class AccountSummaryNested(BaseModel):
marginCloseoutNAV: str marginCloseoutNAV: str
marginUsed: str marginUsed: str