From 797c1ab11a625fb7615f6e5e34d7c8a3c00bd786 Mon Sep 17 00:00:00 2001 From: Letian Wang Date: Mon, 17 Jun 2024 23:22:28 -0400 Subject: [PATCH] black re-format --- quanttrader/backtest_engine.py | 12 +++++++++--- quanttrader/performance/performance_manager.py | 16 ++++++++++++---- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/quanttrader/backtest_engine.py b/quanttrader/backtest_engine.py index 53bc022..1c48731 100644 --- a/quanttrader/backtest_engine.py +++ b/quanttrader/backtest_engine.py @@ -44,7 +44,9 @@ def __init__(self, start_date: datetime, end_date: datetime) -> None: self.instrument_meta: dict[str, dict[str, Any]] = ( {} ) # one copy of meta dict shared across program - self._data_feed: BacktestDataFeed = BacktestDataFeed(self._start_date, self._end_date) + self._data_feed: BacktestDataFeed = BacktestDataFeed( + self._start_date, self._end_date + ) self._data_board: DataBoard = DataBoard() self._performance_manager: PerformanceManager = PerformanceManager( self.instrument_meta @@ -80,7 +82,9 @@ def set_capital(self, capital: float) -> None: def set_strategy(self, strategy: StrategyBase) -> None: self._strategy = strategy - def add_data(self, data_key: str, data_source: pd.DataFrame, watch: bool = True) -> None: + def add_data( + self, data_key: str, data_source: pd.DataFrame, watch: bool = True + ) -> None: """ Add data for backtest :param data_key: AAPL or CL @@ -144,7 +148,9 @@ def _tick_event_handler(self, tick_event: TickEvent) -> None: tick_event.price, self._data_board, ) - self._strategy.on_tick(tick_event) # plus strategy.position_manager market to marekt + self._strategy.on_tick( + tick_event + ) # plus strategy.position_manager market to marekt # data_baord update after strategy, so it still holds price of last tick; for position MtM # strategy uses tick.price for current price; and use data_board.last_price for previous price # for backtest, this is PLACEHOLDER based on timestamp. diff --git a/quanttrader/performance/performance_manager.py b/quanttrader/performance/performance_manager.py index e80eb93..fc92612 100644 --- a/quanttrader/performance/performance_manager.py +++ b/quanttrader/performance/performance_manager.py @@ -25,7 +25,9 @@ class PerformanceManager(object): def __init__(self, instrument_meta: dict[str, dict[str, Any]]) -> None: self._symbols: list[str] = [] - self.instrument_meta: dict[str, dict[str, Any]] = instrument_meta # sym ==> meta + self.instrument_meta: dict[str, dict[str, Any]] = ( + instrument_meta # sym ==> meta + ) self._realized_pnl: float = 0.0 self._unrealized_pnl: float = 0.0 @@ -50,7 +52,9 @@ def reset(self) -> None: self._equity = pd.Series(dtype=np.float64) # equity line self._equity.name = "total" - self._df_positions = pd.DataFrame(columns=self._symbols + ["cash"], dtype=np.float64) + self._df_positions = pd.DataFrame( + columns=self._symbols + ["cash"], dtype=np.float64 + ) self._df_trades = pd.DataFrame( np.empty( @@ -111,7 +115,9 @@ def update_performance( performance_time = current_time equity = 0.0 - self._df_positions.loc[performance_time] = [0.0] * len(self._df_positions.columns) + self._df_positions.loc[performance_time] = [0.0] * len( + self._df_positions.columns + ) for sym, pos in position_manager.positions.items(): if sym in self.instrument_meta.keys(): multiplier = self.instrument_meta[sym]["Multiplier"] @@ -128,7 +134,9 @@ def update_performance( self._df_positions.loc[performance_time, "cash"] = position_manager.cash self._equity[performance_time] = equity + position_manager.cash - self._df_positions.loc[performance_time, "total"] = self._equity[performance_time] + self._df_positions.loc[performance_time, "total"] = self._equity[ + performance_time + ] if performance_time != current_time: # not final day self._equity[current_time] = 0.0 # add new date