NormalEntityMixin¶
- class zvt.contract.schema.NormalEntityMixin¶
Bases:
TradableEntity- __init__()¶
- created_timestamp = Column(None, DateTime(), table=None, default=ScalarElementColumnDefault(Timestamp('2026-01-18 04:33:58.699376')))¶
the record created time in db
- updated_timestamp = Column(None, DateTime(), table=None)¶
the record updated time in db, some recorder would check it for whether need to refresh
- code = Column(None, String(length=64), table=None)¶
编码
- classmethod could_short()¶
whether could be shorted
- Returns:
- end_date = Column(None, DateTime(), table=None)¶
退市日
- entity_id = Column(None, String(), table=None)¶
entity id
- entity_type = Column(None, String(length=64), table=None)¶
标的类型
- exchange = Column(None, String(length=32), table=None)¶
所属交易所
- classmethod get_interval_timestamps(start_date, end_date, level: IntervalLevel)¶
generate the timestamps for the level
- Parameters:
start_date
end_date
level
- classmethod get_providers() List[str]¶
providers of the schema defined by cls
- Returns:
providers
- classmethod get_storages(provider: str = None)¶
get the storages info
- Parameters:
provider – provider
- Returns:
storages
- classmethod get_timezone()¶
overwrite it to get the timezone of the entity
- Returns:
pytz timezone
- classmethod get_trading_dates(start_date=None, end_date=None)¶
overwrite it to get the trading dates of the entity
- Parameters:
start_date
end_date
- Returns:
list of dates
- classmethod get_trading_intervals(include_bidding_time=False)¶
overwrite it to get the trading intervals of the entity
- Returns:
list of time intervals, in format [(start,end)]
- classmethod get_trading_t()¶
0 means t+0 1 means t+1
- Returns:
- id = Column(None, String(), table=None, primary_key=True, nullable=False)¶
id
- classmethod is_finished_kdata_timestamp(timestamp: Timestamp, level: IntervalLevel)¶
- Parameters:
timestamp (pd.Timestamp) – the timestamp could be recorded in kdata of the level
level (zvt.domain.common.IntervalLevel)
- Returns:
- Return type:
bool
- list_date = Column(None, DateTime(), table=None)¶
上市日
- name = Column(None, String(length=128), table=None)¶
名字
- classmethod query_data(provider_index: int = 0, ids: List[str] = None, entity_ids: List[str] = None, entity_id: str = None, codes: List[str] = None, code: str = None, level: IntervalLevel | str = None, provider: str = None, columns: List = None, col_label: dict = None, return_type: str = 'df', start_timestamp: Timestamp | str = None, end_timestamp: Timestamp | str = None, filters: List = None, session: Session = None, order=None, limit: int = None, distinct=None, index: str | list = None, drop_index_col=False, time_field: str = 'timestamp')¶
query data by the arguments
- Parameters:
provider_index
data_schema
ids
entity_ids
entity_id
codes
code
level
provider
columns
col_label – dict with key(column), value(label)
return_type – df, domain or dict. default is df
start_timestamp
end_timestamp
filters
session
order
limit
index – index field name, str for single index, str list for multiple index
drop_index_col – whether drop the col if it’s in index, default False
time_field
- Returns:
results basing on return_type.
- classmethod record_data(provider_index: int = 0, provider: str = None, force_update=None, sleeping_time=None, exchanges=None, entity_id=None, entity_ids=None, code=None, codes=None, real_time=None, fix_duplicate_way=None, start_timestamp=None, end_timestamp=None, one_day_trading_minutes=None, **kwargs)¶
record data by the arguments
- Parameters:
entity_id
provider_index
provider
force_update
sleeping_time
exchanges
entity_ids
code
codes
real_time
fix_duplicate_way
start_timestamp
end_timestamp
one_day_trading_minutes
kwargs
- Returns:
- classmethod register_provider(provider)¶
register the provider to the schema defined by cls
- Parameters:
provider
- classmethod register_recorder_cls(provider, recorder_cls)¶
register the recorder for the schema
- Parameters:
provider
recorder_cls
- timestamp = Column(None, DateTime(), table=None)¶
the meaning could be different for different case,most time it means ‘happen time’ Need replace with your timezone