pybroker.cache 模块

包含缓存相关的工具。

Copyright (C) 2023 Edward West. All rights reserved.

This code is licensed under Apache 2.0 with Commons Clause license (see LICENSE for details).

class CacheDateFields(start_date: datetime, end_date: datetime, tf_seconds: int, between_time: tuple[str, str] | None, days: tuple[int] | None)[源代码]

基类:object

用于为缓存数据生成键的日期字段。

start_date

缓存数据的起始日期。

类型:

datetime.datetime

end_date

缓存数据的结束日期。

类型:

datetime.datetime

tf_seconds

以秒表示的缓存数据时间框架分辨率。

类型:

int

between_time

用于过滤缓存数据的时间段,为 tuple[str, str] 形式(例如 9:00-9:30 AM)。

类型:

tuple[str, str] | None

days

用于过滤缓存数据的星期(例如 "mon""tues" 等)。

类型:

tuple[int] | None

class DataSourceCacheKey(symbol: str, tf_seconds: int, start_date: datetime, end_date: datetime, adjust: str | None, source: str)[源代码]

基类:object

用于 pybroker.data.DataSource 数据的缓存键。

adjust: str | None
classmethod from_date_fields(*, symbol: str, adjust: str | None, source: str, fields: CacheDateFields) DataSourceCacheKey[源代码]
source: str
symbol: str
class IndicatorCacheKey(symbol: str, tf_seconds: int, start_date: datetime, end_date: datetime, between_time: tuple[str, str] | None, days: tuple[int] | None, ind_name: str)[源代码]

基类:object

用于指标数据的缓存键。

classmethod from_date_fields(*, symbol: str, ind_name: str, fields: CacheDateFields) IndicatorCacheKey[源代码]
ind_name: str
symbol: str
class ModelCacheKey(symbol: str, tf_seconds: int, start_date: datetime, end_date: datetime, between_time: tuple[str, str] | None, days: tuple[int] | None, model_name: str, pooled_symbols: tuple[str, ...] | None = None, lookahead: int | None = None)[源代码]

基类:object

用于已训练模型的缓存键。

classmethod from_date_fields(*, symbol: str, model_name: str, fields: CacheDateFields, pooled_symbols: Iterable[str] | None = None, lookahead: int | None = None) ModelCacheKey[源代码]
lookahead: int | None = None
model_name: str
pooled_symbols: tuple[str, ...] | None = None
symbol: str
clear_caches()[源代码]

清除所有缓存中的数据。清除前必须先调用 enable_caches()

clear_data_source_cache()[源代码]

清除从 pybroker.data.DataSource缓存的数据。清除前必须先调用 enable_data_source_cache()

clear_indicator_cache()[源代码]

清除已缓存的指标数据。清除前必须先调用 enable_indicator_cache()

clear_model_cache()[源代码]

清除已缓存的已训练模型。清除前必须先调用 enable_model_cache()

disable_caches()[源代码]

禁用所有缓存。

disable_data_source_cache()[源代码]

禁用对从 pybroker.data.DataSource获取的数据进行缓存。

disable_indicator_cache()[源代码]

禁用指标数据缓存。

disable_model_cache()[源代码]

禁用已训练模型缓存。

enable_caches(namespace: str, cache_dir: str | None = None, l1_maxsize: int = 1024)[源代码]

启用所有缓存。

参数:
  • namespace -- 缓存数据共用的命名空间。

  • cache_dir -- 用于存储缓存数据的目录。

  • l1_maxsize -- 每个缓存中进程内 L1 缓存条目的最大数量。

enable_data_source_cache(namespace: str, cache_dir: str | None = None, l1_maxsize: int = 1024) Cache[源代码]

启用对从 pybroker.data.DataSource获取的数据进行缓存。

参数:
  • namespace -- 该缓存的命名空间。

  • cache_dir -- 用于存储缓存数据的目录。

  • l1_maxsize -- 进程内 L1 缓存条目的最大数量。

返回:

diskcache.Cache 实例。

enable_indicator_cache(namespace: str, cache_dir: str | None = None, l1_maxsize: int = 1024) Cache[源代码]

启用指标数据缓存。

参数:
  • namespace -- 该缓存的命名空间。

  • cache_dir -- 用于存储已缓存指标数据的目录。

  • l1_maxsize -- 进程内 L1 缓存条目的最大数量。

返回:

diskcache.Cache 实例。

enable_model_cache(namespace: str, cache_dir: str | None = None, l1_maxsize: int = 1024) Cache[源代码]

启用已训练模型缓存。

参数:
  • namespace -- 该缓存的命名空间。

  • cache_dir -- 用于存储已缓存模型的目录。

  • l1_maxsize -- 进程内 L1 缓存条目的最大数量。

返回:

diskcache.Cache 实例。