Trader¶
- class zvt.trader.trader.Trader(entity_ids: Optional[List[str]] = None, exchanges: Optional[List[str]] = None, codes: Optional[List[str]] = None, start_timestamp: Optional[Union[pandas._libs.tslibs.timestamps.Timestamp, str]] = None, end_timestamp: Optional[Union[pandas._libs.tslibs.timestamps.Timestamp, str]] = None, provider: Optional[str] = None, level: Union[str, zvt.contract.IntervalLevel] = IntervalLevel.LEVEL_1DAY, trader_name: Optional[str] = None, real_time: bool = False, kdata_use_begin_time: bool = False, draw_result: bool = True, rich_mode: bool = False, adjust_type: Optional[zvt.contract.AdjustType] = None, profit_threshold=(3, - 0.3), keep_history=False, pre_load_days=365)¶
Bases:
object
- __init__(entity_ids: Optional[List[str]] = None, exchanges: Optional[List[str]] = None, codes: Optional[List[str]] = None, start_timestamp: Optional[Union[pandas._libs.tslibs.timestamps.Timestamp, str]] = None, end_timestamp: Optional[Union[pandas._libs.tslibs.timestamps.Timestamp, str]] = None, provider: Optional[str] = None, level: Union[str, zvt.contract.IntervalLevel] = IntervalLevel.LEVEL_1DAY, trader_name: Optional[str] = None, real_time: bool = False, kdata_use_begin_time: bool = False, draw_result: bool = True, rich_mode: bool = False, adjust_type: Optional[zvt.contract.AdjustType] = None, profit_threshold=(3, - 0.3), keep_history=False, pre_load_days=365) None ¶
- init_entities(timestamp)¶
init the entities for timestamp
- Parameters
timestamp –
- Returns
- init_factors(entity_ids, entity_schema, exchanges, codes, start_timestamp, end_timestamp, adjust_type=None)¶
overwrite it to init factors if you want to use factor computing model :param adjust_type:
- update_targets_by_level(level: zvt.contract.IntervalLevel, long_targets: List[str], short_targets: List[str]) None ¶
the trading signals is generated in min level,before that,we should cache targets of all levels
- Parameters
level –
long_targets –
short_targets –
- on_targets_selected_from_levels(timestamp) Tuple[List[str], List[str]] ¶
this method’s called in every min level cycle to select targets in all levels generated by the previous cycle the default implementation is selecting the targets in all levels overwrite it for your custom logic
- Parameters
timestamp – current event time
- Returns
long targets, short targets
- on_factor_targets_filtered(timestamp, level, factor: zvt.contract.factor.Factor, long_targets: List[str], short_targets: List[str]) Tuple[List[str], List[str]] ¶
overwrite it to filter the targets from factor
- Parameters
timestamp – the event time
level – the level
factor – the factor
long_targets – the long targets from the factor
short_targets – the short targets from the factor
- Returns
filtered long targets, filtered short targets
- on_time(timestamp: pandas._libs.tslibs.timestamps.Timestamp)¶
called in every min level cycle
- Parameters
timestamp – event time
- handle_factor_targets(timestamp: pandas._libs.tslibs.timestamps.Timestamp)¶
select targets from factors :param timestamp: the timestamp for next kdata coming