azapy.Selectors package¶
Submodules¶
azapy.Selectors.CorrClusterSelector module¶
- class azapy.Selectors.CorrClusterSelector.CorrClusterSelector(pname='CorrCluster', corr_threshold=0.95, freq='Q', ftype='f13612w', fw=None, col_price='adjusted', hlength=1)
Bases:
NullSelector
Selects symbols with lower inter-correlation.
- Attributes
pname : str - portfolio name
mkt : pandas.DataFrame - selection’s market data
symb : list - selected symbols
symb_omitted : list - unselected symbols
capital : float - always set to 1
Methods
getSelection
(mktdata, **params)Computes the selection.
- __init__(pname='CorrCluster', corr_threshold=0.95, freq='Q', ftype='f13612w', fw=None, col_price='adjusted', hlength=1)
Constructor
- Parameters:
- pnamestr, optional
Selector name. The default is ‘DualMomentum’.
- corr_thresoldfloat, optional
Cluster correlation threshold (i.e., a cluster contains only symbols with inter-correlation higher than corr_threshold. The default is 0.95.
- freqstr, optional
The horizon of rates subject to correlation estimations. It can be either ‘M’ for monthly or ‘Q’ for quarterly rates. The default is ‘Q’.
- ftypestr, optional
Inner-cluster filter (i.e., criteria to designate the representative of a cluster with more than one symbol). At this point only ‘f13612w’ is implemented. The default is ‘f13612w’.
- fwlist, optional
List of filter wights. For ‘f13612w’ it must be a list of 4 positive (not all zero) numbers. A value of None indicates equal weights. Note: the weights are normalized internally. The default is None.
- col_pricestr, optional
The name of the pricing column to be considered in computations. The default is ‘adjusted’.
- hlength‘float’, optional
History length in number of years used for calibration. A fractional number will be rounded to an integer number of months. The default is 3.25 years.
- Returns:
- The object.
- getSelection(mktdata, **params)
Computes the selection.
- Parameters:
- mktdatapandas.DataFrme
MkT data in the format produced by the azapy function readMkT.
- **paramsdict, optional
- Other optional parameters:
- verboseBoolean, optional
When it is set to True, the selection symbols are printed. The default is ‘False’.
- viewBoolean, optional
If set to True, then the dendrogram of hierarchical classification is printed out. The default is False. Note: the tree cutoff is at 1 - corr_threshold level.
- Returns:
- (capital, mkt)tuple
- capitalfloat
Fraction of capital allocated to the selection. For this selector it is always 1.
- mktpandas.DataFrame
Selection MkT data in the format produced by the azapy function readMkT.
azapy.Selectors.DualMomentumSelector module¶
- class azapy.Selectors.DualMomentumSelector.DualMomentumSelector(pname='DualMomentum', ftype='f13612w', fw=None, nw=3, threshold=6, col_price='adjusted')
Bases:
NullSelector
Dual Momentum Selector.
Given a filter it selects the best candidates among the once with highest moment.
- Attributes
pname : str - portfolio name
mkt : pandas.DataFrame - selection’s market data
rank : pandas.Series - filter rank of all symbols
symb : list - selected symbols
symb_omitted : list - unselected symbols
capital : float - capital at risk as a fraction of the total capital
Methods
getSelection
(mktdata, **params)Computes the selection.
- __init__(pname='DualMomentum', ftype='f13612w', fw=None, nw=3, threshold=6, col_price='adjusted')
Constructor
- Parameters:
- pnamestr, optional
Selector name. The default is ‘DualMomentum’.
- ftypestr, optional
The filter name (at this point only ‘f13612w’ filter is supported). The default is ‘f13612w’ are equal weights.
- fwlist, optional
List of filter wights. For ‘f13612w’ it must be a list of 4 positive (not all zero) numbers. A value of None indicates equal weights. Note: the weights are normalized internally. The default is None.
- nwint, optional
Maximum number of selected symbols. The default is 3.
- thresholdint, optional
Minimum number of symbols with positive momentum for a full capital allocation. The default is 6.
- col_pricestr, optional
Name of the price column in the mktdata to be used in the momentum evaluations. The default is ‘adjusted’.
- Returns:
- The object.
- getSelection(mktdata, **params)
Computes the selection.
- Parameters:
- mktdatapandas.DataFrame
MkT data in the format produced by the azapy function readMkT.
- **paramsdict, optional
- Other optional parameters:
- verboseBoolean, optional
When it is set to True, the selection symbols are printed. The default is False.
- Returns:
- (capital, mkt)tuple
- capitalfloat
Fraction of capital allocated to the selection (a positive number <= 1, 1 being full allocation). One minus this value is the fraction of reserved capital invested in cash.
- mktpandas.DataFrame
Selection MkT data in the format produced by the azapy function readMkT.
azapy.Selectors.NullSelector module¶
- class azapy.Selectors.NullSelector.NullSelector(pname='NullSelector')
Bases:
object
Null Selector - produces no selection.
Its main purpose is to serve as a base class and to provide consistency across the selector family.
Methods
getSelection
(mktdata, **params)Produces the selection.
- __init__(pname='NullSelector')
Constructor
- Parameters:
- pnamestr, optional
Selector name. The default is ‘NullSelector’.
- Returns:
- The object
- getSelection(mktdata, **params)
Produces the selection.
- Parameters:
- mktdatapandas.DataFrames
Market data in the format produced by the azapy function readMKT.
- **paramsdict, optional
- Additional optional parameters:
- verboseBoolean, optional
When it is set to True, the selection symbols are printed.
- Returns:
- (capital, mkt)tuple
capital : float, always set to 1.
mkt : pandas.DataFrame, always the input mktdata