22from typing import List
33from investing_algorithm_framework .domain import OrderStatus , OrderSide , \
44 Trade , PeekableQueue , ApiException
5+ from investing_algorithm_framework .services import \
6+ OrderService , PortfolioService , PositionService , MarketDataSourceService
57
68logger = logging .getLogger (__name__ )
79
@@ -18,10 +20,11 @@ def __init__(
1820 position_service ,
1921 market_data_source_service
2022 ):
21- self .portfolio_service = portfolio_service
22- self .order_service = order_service
23- self .market_data_source_service = market_data_source_service
24- self .position_service = position_service
23+ self .portfolio_service : PortfolioService = portfolio_service
24+ self .order_service : OrderService = order_service
25+ self .market_data_source_service : MarketDataSourceService = \
26+ market_data_source_service
27+ self .position_service : PositionService = position_service
2528
2629 def get_open_trades (self , target_symbol = None , market = None ) -> List [Trade ]:
2730 """
@@ -233,11 +236,15 @@ def close_trade(self, trade, market=None):
233236 ticker = self .market_data_source_service .get_ticker (
234237 symbol = symbol , market = market
235238 )
236- self .order_service .create_limit_order (
237- target_symbol = order .target_symbol ,
238- amount = amount ,
239- order_side = OrderSide .SELL .value ,
240- price = ticker ["bid" ],
239+ self .order_service .create (
240+ {
241+ "portfolio_id" : portfolio .id ,
242+ "trading_symbol" : order .get_trading_symbol (),
243+ "target_symbol" : order .get_target_symbol (),
244+ "amount" : amount ,
245+ "order_side" : OrderSide .SELL .value ,
246+ "price" : ticker ["bid" ]
247+ }
241248 )
242249
243250 def count (self , query_params = None ) -> int :
0 commit comments