pybroker.scope module
Contains scopes that store data and object references used to execute a
pybroker.strategy.Strategy
.
- class ColumnScope(df: DataFrame)[源代码]
基类:
object
Caches and retrieves column data queried from
pandas.DataFrame
.- 参数:
df --
pandas.DataFrame
containing the column data.
- bar_data_from_data_columns(symbol: str, end_index: int) BarData [源代码]
Returns a new
pybroker.common.BarData
instance containing column data of default and custom data columns registered withStaticScope
.- 参数:
symbol -- Ticker symbol to query.
end_index -- Truncates column values (exclusive). If
None
, then column values are not truncated.
- fetch(symbol: str, name: str, end_index: int | None = None) ndarray[tuple[int, ...], dtype[_ScalarType_co]] | None [源代码]
Fetches a
numpy.ndarray
of column data forsymbol
.- 参数:
symbol -- Ticker symbol to query.
name -- Name of column to query.
end_index -- Truncates column values (exclusive). If
None
, then column values are not truncated.
- 返回:
numpy.ndarray
of column data for every bar untilend_index
(when specified).
- fetch_dict(symbol: str, names: Iterable[str], end_index: int | None = None) dict[str, ndarray[tuple[int, ...], dtype[_ScalarType_co]] | None] [源代码]
Fetches a
dict
of column data forsymbol
.- 参数:
symbol -- Ticker symbol to query.
names -- Names of columns to query.
end_index -- Truncates column values (exclusive). If
None
, then column values are not truncated.
- 返回:
dict
mapping column names tonumpy.ndarray
s of column values.
- class IndicatorScope(indicator_data: Mapping[IndicatorSymbol, Series], filter_dates: Sequence[datetime64])[源代码]
基类:
object
Caches and retrieves
pybroker.indicator.Indicator
data.- 参数:
indicator_data --
Mapping
ofpybroker.common.IndicatorSymbol
pairs topandas.Series
ofpybroker.indicator.Indicator
values.filter_dates -- Filters
pybroker.indicator.Indicator
data onSequence
of dates.
- fetch(symbol: str, name: str, end_index: int | None = None) ndarray[tuple[int, ...], dtype[float64]] [源代码]
Fetches
pybroker.indicator.Indicator
data.- 参数:
symbol -- Ticker symbol to query.
name -- Name of
pybroker.indicator.Indicator
to query.end_index -- Truncates the array of
pybroker.indicator.Indicator
data returned (exclusive). IfNone
, then indicator data is not truncated.
- 返回:
numpy.ndarray
ofpybroker.indicator.Indicator
data for every bar untilend_index
(when specified).
- class ModelInputScope(col_scope: ColumnScope, ind_scope: IndicatorScope, models: Mapping[ModelSymbol, TrainedModel])[源代码]
基类:
object
Caches and retrieves model input data.
- 参数:
col_scope --
ColumnScope
.ind_scope --
IndicatorScope
.models --
Mapping
ofpybroker.common.ModelSymbol
pairs topybroker.common.TrainedModel
s.
- fetch(symbol: str, name: str, end_index: int | None = None) DataFrame [源代码]
Fetches model input data.
- 参数:
symbol -- Ticker symbol to query.
name -- Name of
pybroker.model.ModelSource
to query input data.end_index -- Truncates the array of model input data returned (exclusive). If
None
, then model input data is not truncated.
- 返回:
numpy.ndarray
of model input data for every bar untilend_index
(when specified).
- class PendingOrder(id: int, type: Literal['buy', 'sell'], symbol: str, created: datetime64, exec_date: datetime64, shares: Decimal, limit_price: Decimal | None, fill_price: int | float | floating | Decimal | PriceType | Callable[[str, BarData], int | float | Decimal])[源代码]
基类:
NamedTuple
Holds data for a pending order.
- type
Type of order, either
buy
orsell
.- Type:
Literal['buy', 'sell']
- created
Date the order was created.
- Type:
- exec_date
Date the order will be executed.
- Type:
Number of shares to be bought or sold.
- Type:
- limit_price
Limit price to use for the order.
- Type:
decimal.Decimal | None
- fill_price
Price that the order will be filled at.
- Type:
int | float | numpy.floating | decimal.Decimal | pybroker.common.PriceType | Callable[[str, pybroker.common.BarData], int | float | decimal.Decimal]
- class PendingOrderScope[源代码]
基类:
object
Stores
PendingOrder
s- add(type: Literal['buy', 'sell'], symbol: str, created: datetime64, exec_date: datetime64, shares: Decimal, limit_price: Decimal | None, fill_price: int | float | floating | Decimal | PriceType | Callable[[str, BarData], int | float | Decimal]) int [源代码]
Creates a
PendingOrder
.- 参数:
type -- Type of order, either
buy
orsell
.symbol -- Ticker symbol of the order.
created -- Date the order was created.
exec_date -- Date the order will be executed.
shares -- Number of shares to be bought or sold.
limit_price -- Limit price to use for the order.
fill_price -- Price that the order will be filled at.
- 返回:
ID of the
PendingOrder
.
- contains(order_id: int) bool [源代码]
Returns whether a
PendingOrder
exists withorder_id
.
- orders(symbol: str | None = None) Iterable[PendingOrder] [源代码]
Returns an
Iterable
ofPendingOrder
s.
- remove(order_id: int) bool [源代码]
Removes a
PendingOrder
withorder_id`
.
- remove_all(symbol: str | None = None)[源代码]
Removes all
PendingOrder
s.
- class PredictionScope(models: Mapping[ModelSymbol, TrainedModel], input_scope: ModelInputScope)[源代码]
基类:
object
Caches and retrieves model predictions.
- 参数:
models --
Mapping
ofpybroker.common.ModelSymbol
pairs topybroker.common.TrainedModel
s.input_scope --
ModelInputScope
.
- fetch(symbol: str, name: str, end_index: int | None = None) ndarray[tuple[int, ...], dtype[_ScalarType_co]] [源代码]
Fetches model predictions.
- 参数:
symbol -- Ticker symbol to query.
name -- Name of
pybroker.model.ModelSource
that made the predictions.end_index -- Truncates the array of predictions returned (exclusive). If
None
, then predictions are not truncated.
- 返回:
numpy.ndarray
of model predictions for every bar untilend_index
(when specified).
- class PriceScope(col_scope: ColumnScope, sym_end_index: Mapping[str, int], round_fill_price: bool)[源代码]
基类:
object
Retrieves most recent prices.
- class StaticScope[源代码]
基类:
object
A static registry of data and object references.
- logger
- data_source_cache
diskcache.Cache
that stores data retrieved frompybroker.data.DataSource
.
- data_source_cache_ns
Namespace set for
data_source_cache
.
- indicator_cache
diskcache.Cache
that storespybroker.indicator.Indicator
data.
- indicator_cache_ns
Namespace set for
indicator_cache
.
- model_cache
diskcache.Cache
that stores trained models.
- model_cache_ns
Namespace set for
model_cache
.
- default_data_cols
Default data columns in
pandas.DataFrame
retrieved from apybroker.data.DataSource
.
- custom_data_cols
User-defined data columns in
pandas.DataFrame
retrieved from apybroker.data.DataSource
.
- get_indicator(name: str)[源代码]
Retrieves a
pybroker.indicator.Indicator
from static scope.
- get_indicator_names(model_name: str) tuple[str] [源代码]
Returns a
tuple[str]
of allpybroker.indicator.Indicator
names that are registered withpybroker.model.ModelSource
havingmodel_name
.
- get_model_source(name: str)[源代码]
Retrieves a
pybroker.model.ModelSource
from static scope.
- has_indicator(name: str) bool [源代码]
Whether
pybroker.indicator.Indicator
is stored in static scope.
- has_model_source(name: str) bool [源代码]
Whether
pybroker.model.ModelSource
is stored in static scope.
- classmethod instance() StaticScope [源代码]
Returns singleton instance.
- param(name: str, value: ~typing.Any | None = <object object>) Any | None [源代码]
Get or set a global parameter.
- set_indicator(indicator)[源代码]
Stores
pybroker.indicator.Indicator
in static scope.
- set_model_source(source)[源代码]
Stores
pybroker.model.ModelSource
in static scope.
- unfreeze_data_cols()[源代码]
Allows additional data columns to be registered if
pybroker.scope.StaticScope.freeze_data_cols()
was called.
- get_signals(symbols: Iterable[str], col_scope: ColumnScope, ind_scope: IndicatorScope, pred_scope: PredictionScope) dict[str, DataFrame] [源代码]
Retrieves dictionary of
pandas.DataFrame
s containing bar data, indicator data, and model predictions for each symbol.
- param(name: str, value: ~typing.Any | None = <object object>) Any | None [源代码]
Get or set a global parameter.