DataSource

  • class rqalpha.interface.AbstractDataSource[源代码]
  • 数据源接口。RQAlpha 中通过 DataProxy 进一步进行了封装,向上层提供更易用的接口。

在扩展模块中,可以通过调用 env.set_data_source 来替换默认的数据源。可参考 BaseDataSource

  • availabledata_range(_frequency)[源代码]
  • 此数据源能提供数据的时间范围

参数:frequency (str) – 周期频率,1d 表示日周期, 1m 表示分钟周期返回:(earliest, latest)

  • currentsnapshot(_instrument, frequency, dt)[源代码]
  • 获得当前市场快照数据。只能在日内交易阶段调用,获取当日调用时点的市场快照数据。市场快照数据记录了每日从开盘到当前的数据信息,可以理解为一个动态的day bar数据。在目前分钟回测中,快照数据为当日所有分钟线累积而成,一般情况下,最后一个分钟线获取到的快照数据应当与当日的日线行情保持一致。需要注意,在实盘模拟中,该函数返回的是调用当时的市场快照情况,所以在同一个handle_bar中不同时点调用可能返回的数据不同。如果当日截止到调用时候对应股票没有任何成交,那么snapshot中的close, high, low, last几个价格水平都将以0表示。

参数:

  1. - **instrument** (<code>Instrument</code>) 合约对象
  2. - **frequency** (_str_) 周期频率,_1d_ 表示日周期, _1m_ 表示分钟周期
  3. - **dt** (_datetime.datetime_) 时间返回:

Snapshot

  • get_all_instruments()[源代码]
  • 获取所有Instrument。

返回:list[Instrument]

  • getbar(_instrument, dt, frequency)[源代码]
  • 根据 dt 来获取对应的 Bar 数据

参数:

  1. - **instrument** (<code>Instrument</code>) 合约对象
  2. - **dt** (_datetime.datetime_) calendar_datetime
  3. - **frequency** (_str_) 周期频率,_1d_ 表示日周期, _1m_ 表示分钟周期返回:

numpy.ndarray | dict

  • getcommission_info(_instrument)[源代码]
  • 获取合约的手续费信息:param instrument::return:

  • getdividend(_order_book_id)[源代码]

  • 获取股票/基金分红信息

参数:order_book_id (str) – 合约名返回:

  • getmerge_ticks(_order_book_id_list, trading_date, last_dt=None)[源代码]
  • 获取合并的 ticks

参数:

  1. - **order_book_id_list** (_list_) 合约名列表
  2. - **trading_date** (_datetime.date_) 交易日
  3. - **last_dt** (_datetime.datetime_) 仅返回 last_dt 之后的时间返回:

Iterable object of Tick

  • getsettle_price(_instrument, date)[源代码]
  • 获取期货品种在 date 的结算价

参数:

  1. - **instrument** (<code>Instrument</code>) 合约对象
  2. - **date** (_datetime.date_) 结算日期返回:

str

  • getshare_transformation(_order_book_id)[源代码]
  • 获取股票转换信息:param order_book_id: 合约代码:return: (successor, conversion_ratio), (转换后的合约代码,换股倍率)

  • getsplit(_order_book_id)[源代码]

  • 获取拆股信息

参数:order_book_id (str) – 合约名返回:pandas.DataFrame

  • gettick_size(_instrument)[源代码]
  • 获取合约的 tick size:param instrument::return:

  • get_trading_calendar()[源代码]

  • 获取交易日历

返回:list[pandas.Timestamp]

  • gettrading_minutes_for(_instrument, trading_dt)[源代码]
  • 获取证券某天的交易时段,用于期货回测

参数:

  1. - **instrument** (<code>Instrument</code>) 合约对象
  2. - **trading_dt** (_datetime.datetime_) 交易日。注意期货夜盘所属交易日规则。返回:

list[datetime.datetime]

  • getyield_curve(_start_date, end_date, tenor=None)[源代码]
  • 获取国债利率

参数:

  1. - **str start_date** (_pandas.Timestamp_) 开始日期
  2. - **end_date** (_pandas.Timestamp_) 结束日期
  3. - **tenor** (_str_) 利率期限返回:

pandas.DataFrame, [start_date, end_date]

  • historybars(_instrument, bar_count, frequency, fields, dt, skip_suspended=True, include_now=False, adjust_type='pre', adjust_orig=None)[源代码]
  • 获取历史数据

参数:

  1. - **instrument** (<code>Instrument</code>) 合约对象
  2. - **bar_count** (_int_) 获取的历史数据数量
  3. - **frequency** (_str_) 周期频率,_1d_ 表示日周期, _1m_ 表示分钟周期
  4. - **fields** (_str_) 返回数据字段

fields字段名datetime时间戳open开盘价high最高价low最低价close收盘价volume成交量total_turnover成交额datetimeint类型时间戳open_interest持仓量(期货专用)basis_spread期现差(股指期货专用)settlement结算价(期货日线专用)prev_settlement结算价(期货日线专用)

参数:

  1. - **dt** (_datetime.datetime_) 时间
  2. - **skip_suspended** (_bool_) 是否跳过停牌日
  3. - **include_now** (_bool_) 是否包含当天最新数据
  4. - **adjust_type** (_str_) 复权类型,’pre’, none’, post
  5. - **adjust_orig** (_datetime.datetime_) 复权起点;返回:

numpy.ndarray

  • historyticks(_instrument, count, dt)[源代码]
  • 获取历史tick数据

参数:

  1. - **instrument** (<code>Instrument</code>) 合约对象
  2. - **count** (_int_) 获取的历史数据数量
  3. - **fields** (_str_) 返回数据字段
  4. - **dt** (_datetime.datetime_) 时间返回:

list of Tick