Improvement: Exposure¶
Если инвестиционная стратегия не проходит фильтр на максимальный вес инструмента в портфеле, можно использовать один из двух вариантов приведенных ниже что бы исправить алгоритм:
import qnt.exposure as qne # расположены в этом пакете
Remove days with high exposures¶
Function
def rm_bad_days(weights, max_weight = 0.049):
Parameters
Parameter | Explanation |
---|---|
weights | xarray DataArray with weights of the algorithm. |
max_weight | the maximum stock exposure. Default value = 0.049 |
Output
На выходе получается xarray DataArray с исправленными весами, удовлетворяющими критерям фильтра, где занулены дни, когда exposure был больше max_weight.
Example
fixed_output = qne.rm_bad_days(output)
qnstats.check_exposure(fixed_output)
Mix weights¶
Function
def mix_weights(primary, secondary, max_weight = 0.049):
Parameters
Parameter | Explanation |
---|---|
primary | xarray DataArray with weights of the algorithm that is need to be improved. |
secondary | xarray DataArray with weights of the algorithm that passes the maximum stock weight filter. |
max_weight | the maximum stock exposure. Default value = 0.049 |
Output
На выходе получается xarray DataArray с исправленными весами, удовлетворяющими критерям фильтра, сформированный из смеси весов primary и secondary.
Example
mean_weights = data.sel(field='is_liquid')
mean_weights = mean_weights/abs(mean_weights).sum('asset')
improved_output = qne.mix_weights(output, mean_weights)
qnstats.check_exposure(improved_output)