Market Selectors are algorithms to shrink a universe of assets to a smaller number of promising candidates. They don’t assign weighs; therefore, they don’t define optimal portfolio. However, they are efficient tools to pre-process a large universe of assets, and reduce its size, before applying a portfolio optimization strategy (Naive, Greedy or Risk-based).

In general, a Market Selector returns (based on its internal selection criteria) the set of preferred assets and the fraction of capital that should be invested in them (i.e., capital at risk fraction). The remaining portion of capital is assumed to be kept in cash as a strategic investment reserve against adverse market conditions (implied by the selection criteria) .

azapy implementations of Market Selectors always return a tuple (capital, mktdata), where capital is a number between [0, 1], with 1 fully invested and 0 all in cash, and mktdata is the selection historical market data.

In practice several Selectors can be chained together with a portfolio optimization strategy to form a complex portfolio optimization model (i.e., a model pipeline). More details about how to construct and backtesting a model pipeline are presented in section Model Generators.