PositionSizer¶
-
class
qf_lib.backtesting.position_sizer.position_sizer.
PositionSizer
(broker: qf_lib.backtesting.broker.broker.Broker, data_provider: qf_lib.data_providers.data_provider.DataProvider, order_factory: qf_lib.backtesting.order.order_factory.OrderFactory, signals_register: qf_lib.backtesting.signals.signals_register.SignalsRegister)[source]¶ Bases:
object
The PositionSizer abstract class converts signals to orders with size specified.
Methods
size_signals
(signals, use_stop_losses, …)Based on the signals provided, creates a list of Orders where proper sizing has been applied
-
size_signals
(signals: List[qf_lib.backtesting.signals.signal.Signal], use_stop_losses: bool = True, time_in_force: qf_lib.backtesting.order.time_in_force.TimeInForce = <TimeInForce.OPG: 3>, frequency: qf_lib.common.enums.frequency.Frequency = None) → List[qf_lib.backtesting.order.order.Order][source]¶ Based on the signals provided, creates a list of Orders where proper sizing has been applied
- Parameters
signals (List[Signal]) – list of signals, based on which the orders will be created
use_stop_losses (bool) – if true, for each MarketOrder generated for a signal, additionally a StopOrder will be created
time_in_force (TimeInForce) – time in force, which will be used to create the Orders based on the provided Signals
frequency (Frequency) – frequency of trading, further used to create Orders
details (StopOrders) –
------------------- –
each Market Order a Stop Order is generated if and only if the quantity in Market Order + position quantity (For) –
this ticker != 0. This means that StopOrders are not generated if the MarketOrder should completely close (for) –
position for the ticker. (the) –
-