@@ -49,8 +49,8 @@ class Strategy(metaclass=ABCMeta):
49
49
"""
50
50
def __init__ (self , broker , data , params ):
51
51
self ._indicators = []
52
- self ._broker = broker # type: _Broker
53
- self ._data = data # type: _Data
52
+ self ._broker : _Broker = broker
53
+ self ._data : _Data = data
54
54
self ._params = self ._check_params (params )
55
55
56
56
def __repr__ (self ):
@@ -506,11 +506,11 @@ def __init__(self, broker: '_Broker', size: int, entry_price: float, entry_bar):
506
506
self .__broker = broker
507
507
self .__size = size
508
508
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
514
514
515
515
def __repr__ (self ):
516
516
return '<Trade size={} time={}-{} price={}-{} pl={:.0f}>' .format (
@@ -648,7 +648,7 @@ def __set_contingent(self, type, price):
648
648
assert type in ('sl' , 'tp' )
649
649
assert price is None or 0 < price < np .inf
650
650
attr = '_{}__{}_order' .format (self .__class__ .__qualname__ , type )
651
- order = getattr (self , attr ) # type: Order
651
+ order : Order = getattr (self , attr )
652
652
if order :
653
653
order .cancel ()
654
654
if price :
@@ -663,7 +663,7 @@ def __init__(self, *, data, cash, commission, margin,
663
663
assert 0 < cash , "cash shosuld be >0, is {}" .format (cash )
664
664
assert 0 <= commission < .1 , "commission should be between 0-10%, is {}" .format (commission )
665
665
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
667
667
self ._cash = cash
668
668
self ._commission = commission
669
669
self ._leverage = 1 / margin
@@ -672,10 +672,10 @@ def __init__(self, *, data, cash, commission, margin,
672
672
self ._exclusive_orders = exclusive_orders
673
673
674
674
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 ] = [ ]
677
677
self .position = Position (self )
678
- self .closed_trades = [] # type: List[Trade ]
678
+ self .closed_trades : List [ Trade ] = [ ]
679
679
680
680
def __repr__ (self ):
681
681
return '<Broker: {:.0f}{:+.1f} ({} trades)>' .format (
@@ -1072,7 +1072,7 @@ def __init__(self,
1072
1072
'but `pd.DateTimeIndex` is advised.' ,
1073
1073
stacklevel = 2 )
1074
1074
1075
- self ._data = data # type : pd.DataFrame
1075
+ self ._data : pd .DataFrame = data
1076
1076
self ._broker = partial (
1077
1077
_Broker , cash = cash , commission = commission , margin = margin ,
1078
1078
trade_on_close = trade_on_close , hedging = hedging ,
@@ -1119,8 +1119,8 @@ def run(self, **kwargs) -> pd.Series:
1119
1119
dtype: object
1120
1120
"""
1121
1121
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 )
1124
1124
1125
1125
strategy .init ()
1126
1126
data ._update () # Strategy.init might have changed/added to data.df
@@ -1328,7 +1328,7 @@ def _mp_task(backtest_uuid, batch_index):
1328
1328
for stats in (bt .run (** params )
1329
1329
for params in param_batches [batch_index ])]
1330
1330
1331
- _mp_backtests = {} # type : Dict[float, Tuple[Backtest, List, Callable]]
1331
+ _mp_backtests : Dict [float , Tuple [' Backtest' , List , Callable ]] = {}
1332
1332
1333
1333
@staticmethod
1334
1334
def _compute_drawdown_duration_peaks (dd : pd .Series ):
0 commit comments