pybroker.config module
Contains configuration options.
- class StrategyConfig(initial_cash: float = 100000, fee_mode: FeeMode | None = None, fee_amount: float = 0, enable_fractional_shares: bool = False, max_long_positions: int | None = None, max_short_positions: int | None = None, buy_delay: int = 1, sell_delay: int = 1, bootstrap_samples: int = 10000, bootstrap_sample_size: int = 1000, exit_on_last_bar: bool = False, exit_cover_fill_price: PriceType | Callable[[str, BarData], int | float | Decimal] = PriceType.MIDDLE, exit_sell_fill_price: PriceType | Callable[[str, BarData], int | float | Decimal] = PriceType.MIDDLE, bars_per_year: int | None = None)[source]
Bases:
object
Configuration options for
pybroker.strategy.Strategy
.- fee_mode
pybroker.common.FeeMode
for calculating brokerage fees. Supports one of:ORDER_PERCENT
: Fee is a percentage of order amount.PER_ORDER
: Fee is a constant amount per order.PER_SHARE
: Fee is a constant amount per share in order.None
: Fees are disabled (default).
- Type:
pybroker.common.FeeMode | None
Whether to enable trading fractional shares. Set to
True
for crypto trading. Defaults toFalse
.- Type:
- max_long_positions
Maximum number of long positions that can be held at any time in
pybroker.portfolio.Portfolio
. Unlimited whenNone
. Defaults toNone
.- Type:
int | None
- max_short_positions
Maximum number of short positions that can be held at any time in
pybroker.portfolio.Portfolio
. Unlimited whenNone
. Defaults toNone
.- Type:
int | None
- buy_delay
Number of bars before placing an order for a buy signal. The default value of
1
places a buy order on the next bar. Must be >0
.- Type:
- sell_delay
Number of bars before placing an order for a sell signal. The default value of
1
places a sell order on the next bar. Must be >0
.- Type:
- bootstrap_samples
Number of samples used to compute boostrap metrics. Defaults to
10_000
.- Type:
- bootstrap_sample_size
Size of each random sample used to compute bootstrap metrics. Defaults to
1_000
.- Type:
- exit_on_last_bar
Whether to automatically exit any open positions on the last bar of data available for a symbol. Defaults to
False
.- Type:
- exit_cover_fill_price
Fill price for covering an open short position when
exit_on_last_bar
isTrue
. Defaults topybroker.common.PriceType.MIDDLE
.- Type:
pybroker.common.PriceType | Callable[[str, pybroker.common.BarData], int | float | decimal.Decimal]
- exit_sell_fill_price
Fill price for selling an open long position when
exit_on_last_bar
isTrue
. Defaults topybroker.common.PriceType.MIDDLE
.- Type:
pybroker.common.PriceType | Callable[[str, pybroker.common.BarData], int | float | decimal.Decimal]