Are there any simple portfolio rebalancing strategies for reference?
Don't know but it should be fairly easy (a couple of free hours during the Christmas break ... )
def next(self): rebalanced_datas = sorted(self.criteria.items(), lambda data, criterion: criterion) l = len(rebalanced_datas) upper = 90 lower = 10 # simple weight allocation percents = [(upper - x * (upper - lower) / (l - 1)) / 100.0 for x in range(l)] # normalize the percentages sperc = sum(percents) percents = [p / sperc for p in percents] for data, percent in zip(rebalanced_datas, percents): self.order_target_percent(data, target=percent)
The sauce is obviously in the values of the
self.criteriadictionary which will probably be custom indicators which decide what the most attractive asset is.