SimplePositionSizer#
- class qf_lib.backtesting.position_sizer.simple_position_sizer.SimplePositionSizer(broker: Broker, data_provider: DataProvider, order_factory: OrderFactory, signals_register: SignalsRegister)[source]#
Bases:
PositionSizerConverts each signal to a market order targeting a portfolio weight equal to
Exposurevalue.Exposure.LONG(1.0) → invest 100% of portfolio value in the asset.Exposure.SHORT(-1.0) → -100% (full short).Exposure.OUT(0.0) → flat.Default on
BacktestTradingSessionBuilder.Examples
>>> sizer = SimplePositionSizer(broker, data_provider, OrderFactory(broker, data_provider), ... BacktestSignalsRegister()) >>> long_signal = Signal(ticker, Exposure.LONG, 0.02, 100.0, now) >>> orders = sizer.size_signals([long_signal], use_stop_losses=False) >>> orders[0].quantity 1000.0
>>> short_signal = Signal(ticker, Exposure.SHORT, 0.02, 100.0, now) >>> sizer.size_signals([short_signal], use_stop_losses=False)[0].quantity -1000.0