中央财经大学“小容量化平台”回测函数介绍

回测平台函数与参数介绍

一、交易相关常用函数

1. order_shares:指定股数交易(股票专用)

order_shares(id_or_ins, amount, style=MarketOrders())
参数类型注释
id_or_insstr 或 instrument 对象order_book_id 或 symbol 或 instrument 对象,用户必须指定
amountfloat-required需要落单的股数。正数代表买入,负数代表卖出。将会根据一手 xx 股来向下调整到一手的股数(如A股调整为100股的倍数)
styleOrderType订单类型,默认是市价单。目前支持的订单类型有:style=MarketOrder()、style=LimitOrder(limit_price)

范例:

# 购买2000股平安银行股票,并以市价单发送
order_shares('000001.XSHE', 2000)
# 卖出2000股平安银行股票,并以市价单发送;
order_shares('000001.XSHE', -2000)
# 购买1000股平安银行股票,并以限价单发送,价格为10
order_shares('000001.XSHE', 1000, style=LimitOrder(10))

2. order_value:指定价值交易(股票专用)

order_value(id_or_ins, cash_amount, style=OrderType)

买入或卖出股票,暂不支持卖空,股票的股数会被调整成对应的100的倍数。提交卖单表示希望通过卖出该股票套现的金额。如果金额超出了所持有的股票的价值将被卖出所有股票(清仓)。如果资金不足,将不会创建订单。

参数类型注释
id_or_insstr 或 instrument 对象order_book_id 或 symbol 或 instrument 对象,用户必须指定
cash_amountfloat需要花费现金购买或卖出证券的数目。正数代表买入,负数代表卖出,用户必须指定
styleOrderType订单类型,默认为市价单。目前支持的订单类型有:style=MarkerOrder()、style=LimitOrder(limit_price)

范例:

# 买入价值10000人民币的平安银行股票,并以市价单发送
# 如果股价是21元一股,则会买入400股的平安银行,因为少于100股的数目会被自动删除
order_value('000001.XSHE', 10000)
# 卖出价值为10000人民币的平安银行股票,如果持仓价值不足10000,则清仓
order_value('000001.XSHE', -10000)

3. order_percent:一定比例下单(股票专用)

order_percent(id_or_ins, percent, style=OrderType)

发送一个等于目前投资组合价值(市场价值和目前先进的总和)一定百分比的买卖单,暂不支持卖空。股数总是会被调整成为100的倍数。当买入股票所需金额加上手续费大于资金时,该API将不会创建发送订单。

参数类型注释
id_or_insstr 或 instrument 对象order_book_id 或 symbol 或 instrument 对象,用户必须指定
percentfloat占有现有的投资组合价值的百分比。正数为买入,负数为卖出。用户必须指定
styleOrderType订单类型,默认是市价单。目前支持的订单类型有: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_insstr 或 instrument 对象order_book_id 或 symbol 或 instrument 对象,用户必须指定
cash_amountfloat最终该证券的仓位目标价值
percentfloat仓位最终所占投资组合总价值的目标百分比
styleOrderType订单类型,默认是市价单。目前支持的订单类型有: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_idstr合约代码,必须填
bar_countint获取的历史数据数量,必须填
frequencystr以什么样的频率获取数据,‘1d’ 或 ‘1m’ 分别表示每日和每分钟,必须填。您可以指定不同的分钟频率,例如 ‘5m’ 代表 5 分钟线
fieldsstr 或 str list返回数据字段,必须填,见下表
skip_suspendedbool是否跳过停牌,默认为 True
include_nowbool是否包括不完整的 bar 数据,默认为 False。举例说明:在 09:39 的时候获取上一个 5 分钟线,默认获取到 09:31 ~ 09:35 合成的 5 分钟线。如果设置为 True,则会获得 09:36 ~ 09:39 之间合成的“不完整的” 5 分钟线
adjust_typestr复权方式,默认为 pre。所有参数:不复权(none)、动态前复权(pre)、后复权(post)
fields字段名
open开盘价
high最高价
low最低价
close收盘价
volume成交量
total_turnover成交额
datetimeint 类型时间戳
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] 三个时间段的数据。

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不打呼噜的猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值