回测平台函数与参数介绍
一、交易相关常用函数
1. order_shares:指定股数交易(股票专用)
order_shares(id_or_ins, amount, style=MarketOrders())
参数 | 类型 | 注释 |
---|
id_or_ins | str 或 instrument 对象 | order_book_id 或 symbol 或 instrument 对象,用户必须指定 | amount | float-required | 需要落单的股数。正数代表买入,负数代表卖出。将会根据一手 xx 股来向下调整到一手的股数(如A股调整为100股的倍数) | style | OrderType | 订单类型,默认是市价单。目前支持的订单类型有:style=MarketOrder()、style=LimitOrder(limit_price) |
范例:
order_shares('000001.XSHE', 2000)
order_shares('000001.XSHE', -2000)
order_shares('000001.XSHE', 1000, style=LimitOrder(10))
2. order_value:指定价值交易(股票专用)
order_value(id_or_ins, cash_amount, style=OrderType)
买入或卖出股票,暂不支持卖空,股票的股数会被调整成对应的100的倍数。提交卖单表示希望通过卖出该股票套现的金额。如果金额超出了所持有的股票的价值将被卖出所有股票(清仓)。如果资金不足,将不会创建订单。
参数 | 类型 | 注释 |
---|
id_or_ins | str 或 instrument 对象 | order_book_id 或 symbol 或 instrument 对象,用户必须指定 | cash_amount | float | 需要花费现金购买或卖出证券的数目。正数代表买入,负数代表卖出,用户必须指定 | style | OrderType | 订单类型,默认为市价单。目前支持的订单类型有:style=MarkerOrder()、style=LimitOrder(limit_price) |
范例:
order_value('000001.XSHE', 10000)
order_value('000001.XSHE', -10000)
3. order_percent:一定比例下单(股票专用)
order_percent(id_or_ins, percent, style=OrderType)
发送一个等于目前投资组合价值(市场价值和目前先进的总和)一定百分比的买卖单,暂不支持卖空。股数总是会被调整成为100的倍数。当买入股票所需金额加上手续费大于资金时,该API将不会创建发送订单。
参数 | 类型 | 注释 |
---|
id_or_ins | str 或 instrument 对象 | order_book_id 或 symbol 或 instrument 对象,用户必须指定 | percent | float | 占有现有的投资组合价值的百分比。正数为买入,负数为卖出。用户必须指定 | style | OrderType | 订单类型,默认是市价单。目前支持的订单类型有:style=MarketOrder()、style=LimitOrder(limit_price) |
范例:买入等于现有投资组合50%价值的平安银行股票,如果现在平安银行的股价是21元人民币一股,且投资组合总价值为10000,则用来买入的资金为5000人民币,买入200股。
order_percent('000001.XSHE', 0.5)
4. 目标价值下单和目标比率下单
4.1 order_target_value():目标价值下单(股票专用)
order_target_value(id_or_ins, cash_amount, style=OrderType)
4.2 order_target_percent():目标比率下单(股票专用)
order_target_percent(id_or_ins, percent, style=OrderType)
买入或卖出并且自动调整该证券仓位到达一个目标价值(或是占到投资组合的目标百分比),暂不支持卖空。如果没有任何该证券的仓位,则买入全部目标价值的(或是等于现在投资组合总价值目标百分比的数目的)证券。如果已经有了该证券的仓位,则会买入或卖出调整该证券的现在仓位和目标仓位的价值差值的数目的证券。
参数 | 类型 | 注释 |
---|
id_or_ins | str 或 instrument 对象 | order_book_id 或 symbol 或 instrument 对象,用户必须指定 | cash_amount | float | 最终该证券的仓位目标价值 | percent | float | 仓位最终所占投资组合总价值的目标百分比 | style | OrderType | 订单类型,默认是市价单。目前支持的订单类型有:style=MarkerOrder()、style=LimitOrder(limit_price) |
二、查询相关常用函数
1. history_bars:某一合约的历史数据
history_bars(order_book_id, bar_count, frequency, fields=None, skip_suspended=True, include_now=False)
获取指定合约的历史行情,同时支持日以及分钟历史数据。不能在initialize 中调用。
参数 | 类型 | 注释 |
---|
order_book_id | str | 合约代码,必须填 | bar_count | int | 获取的历史数据数量,必须填 | frequency | str | 以什么样的频率获取数据,‘1d’ 或 ‘1m’ 分别表示每日和每分钟,必须填。您可以指定不同的分钟频率,例如 ‘5m’ 代表 5 分钟线 | fields | str 或 str list | 返回数据字段,必须填,见下表 | skip_suspended | bool | 是否跳过停牌,默认为 True | include_now | bool | 是否包括不完整的 bar 数据,默认为 False。举例说明:在 09:39 的时候获取上一个 5 分钟线,默认获取到 09:31 ~ 09:35 合成的 5 分钟线。如果设置为 True,则会获得 09:36 ~ 09:39 之间合成的“不完整的” 5 分钟线 | adjust_type | str | 复权方式,默认为 pre。所有参数:不复权(none)、动态前复权(pre)、后复权(post) |
fields | 字段名 |
---|
open | 开盘价 | high | 最高价 | low | 最低价 | close | 收盘价 | volume | 成交量 | total_turnover | 成交额 | datetime | int 类型时间戳 | open_interest | 持仓量(期货专用) | settlement | 结算价(期货日线专用) | prev_settlement | 结算价(期货日线专用) |
该函数的返回值数据格式为ndarray ,方便直接与talib 等计算库对接。
-----------------------------------------------------------------------------------------
[In]
logger.info(history_bars('000002.XSHE', 5, '1d', 'close'))
[Out]
[ 8.69 8.7 8.71 8.81 8.81 ]
-----------------------------------------------------------------------------------------
[In]
logger.info('NO INCLUDE NOW')
logger.info(history_bars(context.s1, 2, '5m', ['datetime', 'volume'], include_now=False))
[Out]
2016-07-01 09:31:00.00 INFO NO INCLUDE NOW
2016-07-01 09:31:00.00 INFO [(20160630145500, 654006) (20160630150000, 1420219)]
-----------------------------------------------------------------------------------------
注:bar 数据是切片数据,例如当前时间为12:00,使用 history_bars(context.s1, 3, '60m', include_now=True) 获取到的数据为:
(
9
:
30
,
10
:
30
]
,
(
10
:
30
,
11
:
30
]
,
(
11
:
30
,
12
:
30
]
(9:30,10:30],(10:30,11:30],(11:30,12:30]
(9:30,10:30],(10:30,11:30],(11:30,12:30] 三个时间段的数据。
|