data(数据)相关
引擎使用文档
data
handle_data等函数中被作为参数传入的的data对象是策略和所有外部数据的数据交换接口。
目前data对象主要实现了获取K线行情数据的方法。
data.current(assets, fields)
返回到当前时间为止接收的最新一根K线的数据,数据中包含的字段由fields指定。
参数:
- assets: 资产或资产列表,可以是表示sid的整数、表示资产代码的字符串、Security类型的对象及以上任意单种构成的可迭代对象(如列表)。
- fields: 字段,可以是字符串及其组成的可迭代对象,支持:{"open","high","low","close","volume"}
返回:
- 如果传入单个资产和单个字段,则返回标量值。
- 如果传入单个资产和字段列表,则返回pandas.Series,其索引为fields,其值为每个字段的此assets的标量值。
- 如果传入assets列表和单个fields,则返回其索引为assets的pandas.Series,其值为给定fields的每个assets的标量值。
- 如果传入资产列表和字段列表,则返回pandas .DataFrame,并按assets索引。列是请求的fields,用每个assets的每个fields的标量值填充。
data.history(assets, frenquency, fields=None, start=None, end=None, length=None)
返回指定资产一段时间的历史K线数据
参数:
- assets(str | list of str): 同data.current
- frequency(str): 代表K线时间尺度的单个字符
- fields(str | list of str): 字段,支持:{"open", "high", "low", "close", "volume"},None等同于输入所有支持字段。
- start(datetime): 开始时间
- end(datetime): 结束时间
- length(int): K线长度
返回:
Series、DataFrame、Panel三者中一种,取决于“assets”和“fields”参数的维度。
- 如果传入单个资产和字段,则返回Series按日期索引。
- 如果传入多个资产和单个字段,则返回的DataFrame以日期为索引,并且以assets为列。
- 如果传入单个资产和多个字段,则返回的DataFrame以日期为索引,并且fields为列。
- 如果传入多个资产和多个字段,则返回的Panel以fields为索引,以日期为主轴,以assets为辅轴。
start,end,length三者只要传入任意两者的组合,效果如以下规则:
1.传入end和length,取从end开始向前length根K线;
2.传入start和end,取从start至end之内的所有K线;
3.传入start和length,取从start开始的length根K线;
4.只传入length,取end为当前时间运用规则1;
5.只传入start,取end为当前时间运用规则2;
6.三者都传入运用规则1;
data.can_trade(assets):
对于给定的资产或资产的可迭代对象,如果资产曾经交易,并且当前模拟时间没有交易数据,则返回true。
如果资产从未交易过,则返回False。
如果当前模拟时间不是有效的市场时间,我们使用当前时间来检查资产是否能交易,但则是用最后一个市场分/日进行交易数据检查。
参数:
assets:资产的资产的可迭代对象。
返回:
布尔或布尔类型的Series,以资产为索引。