@@ -49,8 +49,8 @@ class Strategy(metaclass=ABCMeta):
4949 """
5050 def __init__ (self , broker , data , params ):
5151 self ._indicators = []
52- self ._broker = broker # type: _Broker
53- self ._data = data # type: _Data
52+ self ._broker : _Broker = broker
53+ self ._data : _Data = data
5454 self ._params = self ._check_params (params )
5555
5656 def __repr__ (self ):
@@ -506,11 +506,11 @@ def __init__(self, broker: '_Broker', size: int, entry_price: float, entry_bar):
506506 self .__broker = broker
507507 self .__size = size
508508 self .__entry_price = entry_price
509- self .__exit_price = None # type : Optional[float]
510- self .__entry_bar = entry_bar # type: int
511- self .__exit_bar = None # type : Optional[int]
512- self .__sl_order = None # type : Optional[Order]
513- self .__tp_order = None # type : Optional[Order]
509+ self .__exit_price : Optional [float ] = None
510+ self .__entry_bar : int = entry_bar
511+ self .__exit_bar : Optional [int ] = None
512+ self .__sl_order : Optional [Order ] = None
513+ self .__tp_order : Optional [Order ] = None
514514
515515 def __repr__ (self ):
516516 return '<Trade size={} time={}-{} price={}-{} pl={:.0f}>' .format (
@@ -648,7 +648,7 @@ def __set_contingent(self, type, price):
648648 assert type in ('sl' , 'tp' )
649649 assert price is None or 0 < price < np .inf
650650 attr = '_{}__{}_order' .format (self .__class__ .__qualname__ , type )
651- order = getattr (self , attr ) # type: Order
651+ order : Order = getattr (self , attr )
652652 if order :
653653 order .cancel ()
654654 if price :
@@ -663,7 +663,7 @@ def __init__(self, *, data, cash, commission, margin,
663663 assert 0 < cash , "cash shosuld be >0, is {}" .format (cash )
664664 assert 0 <= commission < .1 , "commission should be between 0-10%, is {}" .format (commission )
665665 assert 0 < margin <= 1 , "margin should be between 0 and 1, is {}" .format (margin )
666- self ._data = data # type: _Data
666+ self ._data : _Data = data
667667 self ._cash = cash
668668 self ._commission = commission
669669 self ._leverage = 1 / margin
@@ -672,10 +672,10 @@ def __init__(self, *, data, cash, commission, margin,
672672 self ._exclusive_orders = exclusive_orders
673673
674674 self ._equity = np .tile (np .nan , len (index ))
675- self .orders = [] # type: List[Order ]
676- self .trades = [] # type: List[Trade ]
675+ self .orders : List [ Order ] = [ ]
676+ self .trades : List [ Trade ] = [ ]
677677 self .position = Position (self )
678- self .closed_trades = [] # type: List[Trade ]
678+ self .closed_trades : List [ Trade ] = [ ]
679679
680680 def __repr__ (self ):
681681 return '<Broker: {:.0f}{:+.1f} ({} trades)>' .format (
@@ -1072,7 +1072,7 @@ def __init__(self,
10721072 'but `pd.DateTimeIndex` is advised.' ,
10731073 stacklevel = 2 )
10741074
1075- self ._data = data # type : pd.DataFrame
1075+ self ._data : pd .DataFrame = data
10761076 self ._broker = partial (
10771077 _Broker , cash = cash , commission = commission , margin = margin ,
10781078 trade_on_close = trade_on_close , hedging = hedging ,
@@ -1119,8 +1119,8 @@ def run(self, **kwargs) -> pd.Series:
11191119 dtype: object
11201120 """
11211121 data = _Data (self ._data .copy (deep = False ))
1122- broker = self ._broker (data = data ) # type: _Broker
1123- strategy = self ._strategy (broker , data , kwargs ) # type: Strategy
1122+ broker : _Broker = self ._broker (data = data )
1123+ strategy : Strategy = self ._strategy (broker , data , kwargs )
11241124
11251125 strategy .init ()
11261126 data ._update () # Strategy.init might have changed/added to data.df
@@ -1328,7 +1328,7 @@ def _mp_task(backtest_uuid, batch_index):
13281328 for stats in (bt .run (** params )
13291329 for params in param_batches [batch_index ])]
13301330
1331- _mp_backtests = {} # type : Dict[float, Tuple[Backtest, List, Callable]]
1331+ _mp_backtests : Dict [float , Tuple [' Backtest' , List , Callable ]] = {}
13321332
13331333 @staticmethod
13341334 def _compute_drawdown_duration_peaks (dd : pd .Series ):
0 commit comments