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