2025-04-17 14:21:17 +01:00
|
|
|
from common.types import Venue
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get_trader_functions(venue: Venue) -> dict[str, callable]:
|
|
|
|
|
"""
|
|
|
|
|
Return a dict of the four trader-related callables for the given venue.
|
|
|
|
|
|
|
|
|
|
Example:
|
|
|
|
|
funcs = get_trader_functions(Venue.BINANCE)
|
|
|
|
|
funcs["trader"](...)
|
|
|
|
|
funcs["update_order_status"](...)
|
|
|
|
|
"""
|
2025-05-12 22:45:19 +02:00
|
|
|
if venue == venue.BINANCE:
|
|
|
|
|
from outputs.trader_binance import (
|
|
|
|
|
trader_binance,
|
|
|
|
|
update_account_balance as update_account_balance_binance,
|
|
|
|
|
update_order_status as update_order_status_binance,
|
|
|
|
|
update_trade_status as update_trade_status_binance,
|
|
|
|
|
)
|
|
|
|
|
return {
|
|
|
|
|
"trader": trader_binance,
|
|
|
|
|
"update_account_balance": update_account_balance_binance,
|
|
|
|
|
"update_order_status": update_order_status_binance,
|
|
|
|
|
"update_trade_status": update_trade_status_binance,
|
|
|
|
|
}
|
|
|
|
|
elif venue == venue.MT5:
|
|
|
|
|
from outputs.trader_mt5 import (
|
|
|
|
|
trader_mt5,
|
|
|
|
|
update_account_balance as update_account_balance_mt5,
|
|
|
|
|
update_order_status as update_order_status_mt5,
|
|
|
|
|
update_trade_status as update_trade_status_mt5,
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
"trader": trader_mt5,
|
|
|
|
|
"update_account_balance": update_account_balance_mt5,
|
|
|
|
|
"update_order_status": update_order_status_mt5,
|
|
|
|
|
"update_trade_status": update_trade_status_mt5,
|
|
|
|
|
}
|
|
|
|
|
else:
|
2025-04-17 14:21:17 +01:00
|
|
|
raise ValueError(f"Unknown trader venue: {venue!r}")
|