mypo.rebalancer package

Submodules

mypo.rebalancer.base_rebalancer module

Rebalance strategies.

class mypo.rebalancer.base_rebalancer.BaseRebalancer(trigger: mypo.trigger.base_trigger.BaseTrigger, optimizer: mypo.optimizer.base_optimizer.BaseOptimizer = <mypo.optimizer.no_optimizer.NoOptimizer object>, evacuate_trigger: mypo.trigger.base_trigger.BaseTrigger = <mypo.trigger.no_trigger.NoTrigger object>, evacuator: mypo.evacuator.base_evacuator.BaseEvacuator = <mypo.evacuator.no_evacuator.NoEvacuator object>)

Bases: object

Interface class of Rebalance strategy class.

apply(at: datetime.datetime, market: mypo.market.Market, assets: Union[int, float, complex, str, bytes, numpy.generic, Sequence[Union[int, float, complex, str, bytes, numpy.generic]], Sequence[Sequence[Any]], numpy.typing._array_like._SupportsArray], cash: numpy.float64)numpy.ndarray

Apply rebalance strategy to current situation.

Parameters
  • at – Current date for applying rebalance.

  • market – Market data for all spans.

  • assets – Current assets for applying rebalance.

  • cash – Current cash for applying rebalance.

Returns

Deal

get_optimizer()mypo.optimizer.base_optimizer.BaseOptimizer

Get optimizer.

Returns

Optimizer

mypo.rebalancer.monthly_rebalancer module

Rebalance strategies.

class mypo.rebalancer.monthly_rebalancer.MonthlyRebalancer(optimizer: mypo.optimizer.base_optimizer.BaseOptimizer, evacuate_trigger: mypo.trigger.base_trigger.BaseTrigger = <mypo.trigger.always_trigger.AlwaysTrigger object>, evacuator: mypo.evacuator.base_evacuator.BaseEvacuator = <mypo.evacuator.no_evacuator.NoEvacuator object>, old_month: int = 0)

Bases: mypo.rebalancer.base_rebalancer.BaseRebalancer

Weighted rebalance strategy by monthly applying.

mypo.rebalancer.no_rebalancer module

Rebalance strategies.

class mypo.rebalancer.no_rebalancer.NoRebalancer

Bases: mypo.rebalancer.base_rebalancer.BaseRebalancer

Simple weighted rebalance strategy.

mypo.rebalancer.plain_rebalancer module

Rebalance strategies.

class mypo.rebalancer.plain_rebalancer.PlainRebalancer(weights: Union[int, float, complex, str, bytes, numpy.generic, Sequence[Union[int, float, complex, str, bytes, numpy.generic]], Sequence[Sequence[Any]], numpy.typing._array_like._SupportsArray], evacuator: mypo.evacuator.base_evacuator.BaseEvacuator = <mypo.evacuator.no_evacuator.NoEvacuator object>)

Bases: mypo.rebalancer.base_rebalancer.BaseRebalancer

Simple weighted rebalance strategy.

mypo.rebalancer.threshold_rebalancer module

Rebalance strategies.

class mypo.rebalancer.threshold_rebalancer.ThresholdRebalancer(optimizer: mypo.optimizer.base_optimizer.BaseOptimizer, threshold: numpy.float64 = 0.05)

Bases: mypo.rebalancer.base_rebalancer.BaseRebalancer

Weighted rebalance strategy by monthly applying.

Module contents