Factor¶
- class zvt.contract.factor.Factor(data_schema: Type[Mixin], entity_schema: Type[TradableEntity] = None, provider: str = None, entity_provider: str = None, entity_ids: List[str] = None, exchanges: List[str] = None, codes: List[str] = None, start_timestamp: str | Timestamp = None, end_timestamp: str | Timestamp = None, columns: List = None, filters: List = None, order: object = None, limit: int = None, level: str | IntervalLevel = IntervalLevel.LEVEL_1DAY, category_field: str = 'entity_id', time_field: str = 'timestamp', keep_window: int = None, keep_all_timestamp: bool = False, fill_method: str = 'ffill', effective_number: int = None, transformer: Transformer = None, accumulator: Accumulator = None, need_persist: bool = False, only_compute_factor: bool = False, factor_name: str = None, clear_state: bool = False, only_load_factor: bool = False)¶
Bases:
DataReader
,EntityStateService
,DataListener
- __init__(data_schema: Type[Mixin], entity_schema: Type[TradableEntity] = None, provider: str = None, entity_provider: str = None, entity_ids: List[str] = None, exchanges: List[str] = None, codes: List[str] = None, start_timestamp: str | Timestamp = None, end_timestamp: str | Timestamp = None, columns: List = None, filters: List = None, order: object = None, limit: int = None, level: str | IntervalLevel = IntervalLevel.LEVEL_1DAY, category_field: str = 'entity_id', time_field: str = 'timestamp', keep_window: int = None, keep_all_timestamp: bool = False, fill_method: str = 'ffill', effective_number: int = None, transformer: Transformer = None, accumulator: Accumulator = None, need_persist: bool = False, only_compute_factor: bool = False, factor_name: str = None, clear_state: bool = False, only_load_factor: bool = False) None ¶
- Parameters:
keep_all_timestamp
fill_method
effective_number
transformer
accumulator
need_persist – whether persist factor
only_compute_factor – only compute factor nor result
factor_name
clear_state
only_load_factor – only load factor and compute result
- state_schema¶
Schema for storing states
alias of
FactorState
- factor_schema: Type[Mixin] = None¶
define the schema for persist,its columns should be same as indicators in transformer or accumulator
- name = None¶
name of the service, default name of class if not set manually
- transformer: Transformer = None¶
transformer for this factor if not passed as __init__ argument
- accumulator: Accumulator = None¶
accumulator for this factor if not passed as __init__ argument
- pipe_df: pd.DataFrame¶
中间结果,不持久化 data_df->pipe_df
- factor_df: pd.DataFrame¶
计算因子的结果,可持久化,通过对pipe_df的计算得到 pipe_df->factor_df
- result_df: pd.DataFrame¶
result_df是用于选股的标准df,通过对factor_df的计算得到 factor_df->result_df
- factor_col_map_object_hook() dict ¶
:return:{col:object_hook}
- clear_state_data(entity_id=None)¶
clear state of the entity
- Parameters:
entity_id – entity id
- on_data_loaded(data: DataFrame)¶
- Parameters:
data
- on_data_changed(data: DataFrame)¶
overwrite it for computing after data added
- Parameters:
data
- on_entity_data_changed(entity, added_data: DataFrame)¶
overwrite it for computing after entity data added
- Parameters:
entity
added_data
- decode_state(state: str)¶
decode state
- Parameters:
state
- Returns:
- encode_state(state: object)¶
encode state
- Parameters:
state
- Returns:
- move_on(to_timestamp: str | Timestamp = None, timeout: int = 20) object ¶
using continual fetching data in realtime 1)get the data happened before to_timestamp,if not set,get all the data which means to now 2)if computing_window set,the data_df would be cut for saving memory
- Parameters:
to_timestamp
timeout (int)
- Returns:
- Return type:
- states: dict¶
entity_id:state