python_API
基本方法
编写策略过程中所需要使用的基本函数。其中init和handle_bar是必须实现的两个方法,其余是可选择实现的方法。
init (必须实现)
init(context)
初始化方法--你的算法会使用这个方法来设置你需要的各种初始化配置。context 对象将会在你的算法的所有其他的方法之间进行传递以方便你可以拿取到。
详情参考:
- "backtest"回测 和 "paper_trading"实际交易模式中 在回测和实时交易只会在启动的时候触发一次。
- "pel_call"被PEL公式调用时,在公式被初次加载时被触发一次。
参数
参数 | 类型 | 说明 |
---|---|---|
context | context对象 | 将会在整个算法中当做一个全局变量来使用。属性通过点标记(".")来取到。 |
范例
def init(context):
# cash_limit的属性是根据用户需求自己定义的,你可以定义无限多种自己随后需要的属性
context.cash_limit = 5000
handle_bar (必须实现)
函数原型
handle_bar(context)
bar数据的更新会自动触发该方
法的调用。策略具体逻辑可在该方法内实现,在实时交易中,该函数在交易时间内会根据选择运行模式被触发。
参数
参数 | 类型 | 说明 |
---|---|---|
context | context对象 | 储存策略自定义参数、设置的全局变量,属性通过点标记(".")来取到 |
范例
def handle_bar(context):
# 市价开多100手/股。自己构建开仓条件
buy_open("SZ000001", "Market",0 ,100)
before_trading (选择实现)
函数原型
before_trading(context)
每天在基准合约开盘前30分钟会被调用。不能在这个函数中发送订单。
参数
参数 | 类型 | 说明 |
---|---|---|
context | context对象 | 储存策略自定义参数、设置的全局变量,属性通过点标记(".")来取到。 |
范例
def before_trading (context):
#获取平安银行EPS财务字段数据
dataval = fin_indicator('SZ000001','EPS',1,0,0)
#将查询到的财务数据保存到context对象中
context.eps = dataval
after_trading (选择实现)
函数原型
after_trading(context)
每天在基准合约收盘后5分钟被调用。不能在这个函数中发送订单。您可以在该函数中进行当日收盘后的一些计算。(仅策略交易状态时有效,"backtest"回测 和 "paper_trading"模式)
参数
参数 | 类型 | 说明 |
---|---|---|
context | context对象 | 储存策略自定义参数、设置的全局变量,属性通过点标记(".")来取到。 |
order_status(选择实现)
函数原型
order_status(context,order)
当委托下单,成交,撤单等与下单有关的动作时,该方法就会被调用。(仅策略交易状态时有效,"backtest"回测 和 "paper_trading"模式)
参数
参数 | 类型 | 说明 |
---|---|---|
context | context对象 | 储存策略自定义参数、设置的全局变量,属性通过点标记(".")来取到。 |
order | order对象 | 用于捕获处理交易过程中产生的各种下单动作,根据捕获的信息,进行相应的处理。 |
范例
def order_status(context,order):
#判断柜台回报信息,是否为全部成交。
if order.status=='filled':
print('全部成交')
order_action (选择实现)
函数原型
order_action(context,type, account, datas)
当查询交易接口信息时返回的通知。
参数
参数 | 类型 | 说明 |
---|---|---|
context | context对象 | 储存策略自定义参数、设置的全局变量,属性通过点标记(".")来取到。 |
type | int | type=1 表示可融券品种查询完成 type=2 表示当日可申购新股查询完成 type=3 表示中签查询完成 |
account | str | 交易账户 |
datas | int | 数量 type=1时为可融券品种数量 type=2时为新股数量 type=3时为中签新股数量 |
exit(选择实现)
函数原型
exit(context)
用户可以在该函数中处理一些退出后需要做的事情,比如记录一些变量到硬盘等。
- "backtest"回测模式下,当测评结束时,该函数被调用。
- "paper_trading"实际交易模式下,停止策略运行时,该函数被调用。
- "pel_call"被PEL公式调用时,在PEL公式关闭时调用。
参数
参数 | 类型 | 说明 |
---|---|---|
context | context对象 | 储存策略自定义参数、设置的全局变量,属性通过点标记(".")来取到。 |
parameter (选择实现)
函数原型
parameter()
参数定义区,这里定义的参数可以直接在context对象中获取。--(选择实现)
- 参数定义区定义的变量,可以用于策略运行中动态调整参数
- 必须使用input_par函数,定义变量,并且此函数仅支持在parameter()方法内使用。
- parameter 方法仅对"backtest"回测 和 "paper_trading"模式有效。
参数
无
范例
def parameter():
# 使用input_par函数定义变量"myvalues1",默认值5,最小值1,最大值100,步长1。
input_par("myvalues1",5,1,20,1)
# 使用input_par函数定义变量"myvalues2",默认值10,最小值1,最大值100,步长1。
input_par("myvalues2",10,1,20,1)
.
.
.
def handle_bar(context):
print(context.myvalues1+context.myvalues2)
模式说明
Python策略分为三类:Python策略、Python引用、Python模块
Python策略:Python运行策略
Python引用:编写可用于PEL调用Python模块
Python模块:供Python调用的用户模块或供VBA调用的模块。
上述3类受python运行模式限制,具体区别见下表:
策略分组 | 支持模式 | 模式说明 |
Python策略 | paper_trading | 交易模式,即进行模拟或者实盘交易状态。 |
backtest | 回测模式,即使用策略回测功能时,绝大部分API函数均支持,部分不支持回测的函数在API函数说明中有具体说明。例如:定时器函数settimer 则不支持回测模式 | |
Python引用 | pel_call | pel引用python模式,此模式仅支pel_history_bars,log_debug_info,settimer,killtimer 这4个函数的调用,其他的API函数均不可以使用。 |
Python模块 | 无 | 供Python调用的用户模块或供VBA调用的模块 |
交易函数
buy_open 开多(买开)
函数原型
buy_open(order_book_id,style,price,volume,amount,hedge_flag,order_queue,slithermethod,account,repeat,serial_id)
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str | 合约代码,必填项 |
style | str | 交易类型 "Market"市价 "Limit"限价 "Stop"停损,"ThisClose"当前价,必须填 |
price | float | 交易价格,当交易类型为"Market"市价或"ThisClose"时可以省略,其他类型必须填 |
volume | int | 交易数量,单位期货为手,股票为股,默认参数为1 |
amount | float | 交易金额,可以指定本次交易以交易金额为单位,软件会自动换算为相应的交易数量,可以省略 |
hedge_flag | bool | 交易标志,默认为False, 对于期货品种 True:保值 False投机 ; 对于股票 True:融资 False普通 ;对于期权 True:备兑 False:非备兑,该标志对于回测无效 |
order_queue | bool | 是否为队列单,默认为False,该标志对于回测无效 |
slithermethod | bool | 指示是否使用大单处理下单模式,默认为False,该标志对于回测无效 |
account | str | 对指定具体的交易帐号下单,若不指定帐号,对默认登录帐号下单,该标志对于回测无效 |
repeat | int | 是否允许重复下单,默认值为0,代表不允许重复下单 |
serial_id | int | 表示该下单语句的下单序列,编译时自动生成填充,无需用户操作(系统参数) |
返回值
int类型的order_id,即订单id ,当返回-1表示下单失败,失败原因需要翻阅日志记录。
当order_queue或slithermethod为True时,无法返回实际order_id,返回值恒定为0,失败返回 None。
范例
#市价委托方式,买入平安银行1000股
buy_open("SZ000001", "Market",0 ,1000)
#使用账号'12345'以市价方式买入2手螺纹钢。
buy_open("SQRB00", "Market",0 ,2,account='12345')
sell_close 平多(卖平)
函数原型
sell_close (order_book_id,style,price,volume,amount,hedge_flag,order_queue,slithermethod,account,repeat,serial_id)
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str | 合约代码,必填项 |
style | str | 交易类型 "Market"市价 "Limit"限价 "Stop"停损,"ThisClose"当前价,必须填 |
price | float | 交易价格,当交易类型为"Market"市价或"ThisClose"时可以省略,其他类型必须填 |
volume | int | 交易数量,单位期货为手,股票为股,默认参数为1 |
amount | float | 交易金额,可以指定本次交易以交易金额为单位,软件会自动换算为相应的交易数量,可以省略 |
hedge_flag | bool | 交易标志,默认为False, 对于期货品种 True:保值 False投机 ; 对于股票 True:融资 False普通 ;对于期权 True:备兑 False:非备兑,该标志对于回测无效 |
order_queue | bool | 是否为队列单,默认为False,该标志对于回测无效 |
slithermethod | bool | 指示是否使用大单处理下单模式,默认为False,该标志对于回测无效 |
account | str | 对指定具体的交易帐号下单,若不指定帐号,对默认登录帐号下单,该标志对于回测无效 |
repeat | int | 是否允许重复下单,默认值为0,代表不允许重复下单 |
serial_id | int | 表示该下单语句的下单序列,编译时自动生成填充,无需用户操作(系统参数) |
返回值
int类型的order_id,即订单id ,当返回-1表示下单失败,失败原因需要翻阅日志记录。
当order_queue或slithermethod为True时,无法返回实际order_id,返回值恒定为0,失败返回 None。
范例
#限价3600元,将当前账户的RBOO品种的20手仓位平掉。(平多)
sell_close("SQRB00", "Limit",3600 ,20)
sell_open 开空(卖开/融券开仓)
函数原型
sell_open (order_book_id,style,price,volume,amount,hedge_flag,order_queue,slithermethod,account,repeat,serial_id)
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str | 合约代码,必填项 |
style | str | 交易类型 "Market"市价 "Limit"限价 "Stop"停损,"ThisClose"当前价,必须填 |
price | float | 交易价格,当交易类型为"Market"市价或"ThisClose"时可以省略,其他类型必须填 |
volume | int | 交易数量,单位期货为手,股票为股,默认参数为1 |
amount | float | 交易金额,可以指定本次交易以交易金额为单位,软件会自动换算为相应的交易数量,可以省略 |
hedge_flag | bool | 交易标志,默认为False, 对于期货品种 True:保值 False投机 ; 对于股票 True:融资 False普通 ;对于期权 True:备兑 False:非备兑,该标志对于回测无效 |
order_queue | bool | 是否为队列单,默认为False,该标志对于回测无效 |
slithermethod | bool | 指示是否使用大单处理下单模式,默认为False,该标志对于回测无效 |
account | str | 对指定具体的交易帐号下单,若不指定帐号,对默认登录帐号下单,该标志对于回测无效 |
repeat | int | 是否允许重复下单,默认值为0,代表不允许重复下单 |
serial_id | int | 表示该下单语句的下单序列,编译时自动生成填充,无需用户操作(系统参数) |
返回值
int类型的order_id,即订单id ,当返回-1表示下单失败,失败原因需要翻阅日志记录。
当order_queue或slithermethod为True时,无法返回实际order_id,返回值恒定为0,失败返回 None。
范例
#开空
sell_open ("SQRB00", "Limit",3600 ,20)
buy_close 平空(买平/买券还券)
函数原型
buy_close (order_book_id,style,price,volume,amount,hedge_flag,order_queue,slithermethod,account,repeat,serial_id)
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str | 合约代码,必填项 |
style | str | 交易类型 "Market"市价 "Limit"限价 "Stop"停损,"ThisClose"当前价,必须填 |
price | float | 交易价格,当交易类型为"Market"市价或"ThisClose"时可以省略,其他类型必须填 |
volume | int | 交易数量,单位期货为手,股票为股,默认参数为1 |
amount | float | 交易金额,可以指定本次交易以交易金额为单位,软件会自动换算为相应的交易数量,可以省略 |
hedge_flag | bool | 交易标志,默认为False, 对于期货品种 True:保值 False投机 ; 对于股票 True:融资 False普通 ;对于期权 True:备兑 False:非备兑,该标志对于回测无效 |
order_queue | bool | 是否为队列单,默认为False,该标志对于回测无效 |
slithermethod | bool | 指示是否使用大单处理下单模式,默认为False,该标志对于回测无效 |
account | str | 对指定具体的交易帐号下单,若不指定帐号,对默认登录帐号下单,该标志对于回测无效 |
repeat | int | 是否允许重复下单,默认值为0,代表不允许重复下单 |
serial_id | int | 表示该下单语句的下单序列,编译时自动生成填充,无需用户操作(系统参数) |
返回值
int类型的order_id,即订单id ,当返回-1表示下单失败,失败原因需要翻阅日志记录。
当order_queue或slithermethod为True时,无法返回实际order_id,返回值恒定为0,失败返回 None。
范例
#平空
buy_close ("SQRB00", "Limit",3600 ,20)
get_orders 获取当日委托订单
函数原型
get_orders (order_book_id, type, account)
获取当日委托订单。其数据来自账户栏的“委托记录”中的记录。
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str | 合约代码,或者为"all"全部合约,必填项 |
type | int | 0:只取未成交订单 1:取全部订单,必须填 |
account | str | 指定具体的交易帐号,若不指定帐号,则取默认登录帐号 |
返回值
list of Order对象
范例
示例1:
#获取当日平安银行所有委托单的价格
id_list = get_orders("SZ000001", 1)
if not(id_list == None):
for i in id_list:
write_logging(str(i.price))
示例2:
#获取所有平安银行的未成交订单order对象
a = get_orders("SZ000001", 0)
get_orders_id 获取当日指定id的委托订单
函数原型
get_orders_id (order_id,account)
获取当日指定id的委托订单 。
参数
参数 | 类型 | 说明 |
---|---|---|
order_id | int | 唯一标识订单的id,必须填 |
account | str | 指定具体的交易帐号,若不指定帐号,则取默认登录帐号 |
返回值
Order对象,失败返回 None
范例
#获取当日订单Id列表
id_list=get_orders("SQRB00", 1, '5')
#得到上一次委托订单的order对象属性。并输出成交状态。
if not(id_list == None):
id_last=get_orders_id (id_list[-1].order_id)
write_logging(id_last.status)
cancel_order 撤销指定order_id的订单
函数原型
cancel_order (order_id,queue,account)
撤销指定order_id的订单 。(仅策略交易状态时有效,"backtest"回测 和 "paper_trading"模式)
参数
参数 | 类型 | 说明 |
---|---|---|
order_id | int | 唯一标识订单的id,必须填 |
queue | bool | 指示是否为队列单,默认为False |
account | str | 指定具体的交易帐号,若不指定帐号,则取默认登录帐号 |
返回值
无,失败返回 None
范例
#获取最近一个订单状态。
id_list=get_orders("SQRB00", 1, '5')
if not(id_list == None):
id_last=get_orders_id (id_list[-1].order_id)
#如果最近一次订单状态为未成交,则进行撤单操作。
if id_last.status =='submitted':
cancel_order (id_last.order_id)
get_traders 获取当日成交订单
函数原型
get_traders (order_book_id, account)
获取当日成交订单
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str | 合约代码,或者为"all"全部合约,必填项 |
account | str | 指定具体的交易帐号,若不指定帐号,则取默认登录帐号 |
返回值
list of trader对象,失败返回 None
范例
#获得平安银行当日第一笔成交单的类型
a = get_traders("SZ000001")
if not(a==None):
print(a[0].type)
get_account 得到投资者账户信息
函数原型
get_account (type,account)
得到投资者账户信息。
参数
参数 | 类型 | 说明 |
---|---|---|
type | int | 账户信息类别,参数同PEL,必须填 |
account | str | 指定具体的交易帐号,若不指定帐号,则取默认登录帐号 |
返回值
返回相应账户信息数值,失败返回None
范例
#获取账号'60032182'当前的浮动盈利
get_account(4,'60032182')
get_account_book 得到当前登录所有账户列表
函数原型
get_account_book()
得到当前登录所有账户列表,(注意也包括连接失败的)
参数
无
返回值
list of str 账户列表
范例
#获得登录的资金账号列表
account=get_account_book()
isaccount 判断指定帐号是否是当前已登录有效帐号
函数原型
isaccount(account)
判断指定帐号是否是当前已登录有效帐号,例如 isaccount("351579"),如果该账户已登录则返回True,否则返回False
参数
参数 | 类型 | 说明 |
---|---|---|
account | str | 指定具体的交易帐号,若不指定帐号,则取默认登录帐号 |
返回值
bool 账户已登录则返回True,否则返回False
范例
get_portfolio 投资组合信息
函数原型
get_portfolio (order_book_id, type, account,calc)
投资组合信息(股票+期货的混合)。
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str | 合约代码,必填项 |
type | int | 指定查询类型,必填项, 期货 0投机 1保值 ; 股票 0普通 1融资 ; 期权 0非备兑 1备兑; 2全部类型, 该参数对回测无效 |
account | str | 指定具体的交易帐号,若不指定帐号,则取默认登录帐号,该参数对回测无效 |
calc | bool | 指示是否自动减扣未成交平仓单,比如当有1手持仓,1手未成交平仓单,那么实际返回持仓数量为0。可不填,默认为True |
返回值
portfolio对象,失败返回 None
范例
#获得"RB10"品种的浮动盈亏,(多空同时存在时,为多空浮动盈亏之和)
portfolio=get_portfolio ("SQRB10", 2)
write_logging(str(portfolio.pnl))
get_portfolio_book 投资组合持仓品种
函数原型
get_portfolio_book (type, account)
投资组合持仓品种
参数
参数 | 类型 | 说明 |
---|---|---|
type | int | 指定查询类型,必填项, 期货 0投机 1保值 ; 股票 0普通 1融资 ; 期权 0非备兑 1备兑; 2全部类型, 该参数对回测无效 |
account | str | 指定具体的交易帐号,若不指定帐号,则取默认登录帐号,该参数对回测无效 |
返回值
返回 list of str,若没有任何持仓,则返回一个空的list
范例
#得到账户'5'当前的持仓品种列表。
portfolio=get_portfolio_book (2, "5")
#判断该账户中是否已经持有指定的品种。如果有则输出'已经持仓',否者输出'未持仓'或者进行其他相应的操作处理。
if 'SQRB00' in portfolio:
write_logging('已持仓')
else:
write_logging('未持仓')
模组函数
模组函数只能在paper_trading 模式下使用。其他模式下无效。
get_group_count 得到当前已设置模组的数量
函数原型 get_group_count()
得到当前已设置模组的数量
参数
无
返回值
失败返回NONE
范例
#得到模组账户的数量。
count=get_group_count()
print(count)
get_group_index 取指定序号的模组ID
函数原型
get_group_index(index)
取指定序号的模组ID 取得基于0开始序号的模组ID
参数
参数 | 类型 | 说明 |
---|---|---|
index | int | 指定序号,必填项 |
返回值
成功返回str类型的模组ID,失败返回NONE
范例
#得到模组账户的数量。
count=get_group_count()
#遍历得到模组ID集合
for i in range(count):
GID=get_group_index(i)
print("模组ID " + GID)
get_group_avg_price 得到指定模组ID下指定品种的持仓均价
函数原型
get_group_avg_price(groupid,order_book_id,type)
得到指定模组ID下指定品种的持仓均价
参数
参数 | 类型 | 说明 |
---|---|---|
groupid | str | 模组ID,必填项 |
order_book_id | str | 合约代码,必填项 如: "SQFU00" |
type | int | 持仓方向:0表示取买持,1表示取卖持,2表示任意方向 |
返回值
返回float类型,失败返回NONE
范例
#得到模组账户ID集合中的第二个模组账户的id。
GID=get_group_index(1)
#获取"JGROUP0002"模组账户中燃油合约的持仓均价
avg_price=get_group_avg_price(GID,"SQFU00",2)
print(avg_price)
get_group_info 得到指定模组ID的模组运行信息
函数原型
get_group_info(type,groupid)
得到指定模组ID的模组运行信息
参数
参数 | 类型 | 说明 |
---|---|---|
type | str | 1表示 模组名称 2表示 账户状态(0主账户未登录 1已登录 2已断开 3登录错误) 3表示 账户类型(0期货 1股票 2外盘) 4表示 浮动盈亏 5表示 累计盈亏 6表示 累计费用 7表示 所属主账户 |
groupid | str | 模组ID |
返回值
type=1返回str类型
type=2返回int类型
type=3返回int类型
type=4返回float类型
type=5返回float类型
type=6返回float类型
type=7返回str类型
, 失败时返回NONE
范例
#得到模组账户ID集合中的第二个模组账户的id。
GID=get_group_index(1)
#获取"JGROUP0002"模组账户的浮动盈亏
Order_Profit=get_group_avg_price(4,GID)
print(Order_Profit)
get_group_hold_count 得到指定模组ID下的持仓品种数量
函数原型
get_group_hold_count(groupid)
得到指定模组ID下的持仓品种数量 注:
参数
参数 | 类型 | 说明 |
---|---|---|
groupid | str | 模组ID |
返回值
返回int类型,失败返回NONE
范例
#得到模组账户ID集合中的第二个模组账户的id。
GID=get_group_index(1)
#获取模组"JGROUP0002"账户下持仓品种的数量
group_hold_count=get_group_hold_count(GID)
print(group_hold_count)
get_group_hold_index 得到指定模组ID下的指定序号的持仓品种代码
函数原型
get_group_hold_index(index,groupid)
得到指定模组ID下的指定序号的持仓品种代码
参数
参数 | 类型 | 说明 |
---|---|---|
index | int | 指定序号 |
groupid | str | 模组ID |
返回值
返回str类型,失败返回NONE
范例
#得到模组账户ID集合中的第二个模组账户的id。
GID=get_group_index(1)
#获取模组"JGROUP0002"账户下第2条持仓记录对应的品种代码
group_hold_name=get_group_hold_index(1,GID)
print(group_hold_name)
get_group_holding 得到指定模组ID下指定品种持仓量
函数原型
get_group_holding(groupid, order_book_id, type1, type2)
得到指定模组ID下指定品种持仓量
参数
参数 | 类型 | 说明 |
---|---|---|
groupid | str | 模组ID |
order_book_id | str | 合约代码, 如: "SQFU00" |
type1 | int | 持仓方向:0表示取买持,1表示取卖持,2表示净持仓量(多仓为正,空仓为负) |
type2 | int | 持仓方向:1表示取总持,2表示取期货为今仓/股票为可用持仓 |
返回值
返回int类型,失败返回NONE
范例
#获取模组"JGROUP0002"账户下燃油的多头今仓数量
day_holding=get_group_holding("JGROUP0002","SQFU00",0,2)
print(day_holding)
#获取模组"JGROUP0002"账户下燃油的多头持仓总数量
all_holding=get_group_holding("JGROUP0002","SQFU00",0,2)
print(all_holding)
数据查询函数
history_bars 某一合约历史数据
函数原型
history_bars(order_book_id, bar_count,frequency,fields,skip_suspended, include_now,adjusted_price)
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str | 合约代码,必填项 |
bar_count | int | 获取的历史数据数量,必填项 |
frequency | str | 获取数据什么样的频率进行。'1d'或'1m'分别表示每日和每分钟,必填项。您可以指定不同的分钟频率,例如'5m'代表5分钟线,'5s'表示5秒线,'5h'表示5小时线,其他周期可以分别为:'self'表示当前设置周期,tick分笔线,week周线,month月线,quarter季度线,halfyear半年线,year年线 |
fields | str OR str list | 返回数据字段。必填项。 时间戳:datetime 开盘价:open 最高价:high 最低价:low 收盘价:close 成交量:volume 成交额:total_turnover 持仓量:open_interest (期货专用) |
skip_suspended | bool | 是否跳过停牌,默认True,跳过停牌 |
include_now | bool | 是否包括不完整的bar数据。默认为False,不包括。举例来说,当前1分钟k时间为09:39的时候获取上一个5分钟线数据,默认将获取到09:31~09:35合成的5分钟线,即最近一根完整的5分钟线数据。如果设置为True,则将获取到09:36~09:39之间合成的"不完整"5分钟线,即最新一根5分钟线数据。 |
adjusted_price | bool | 是否复权数据,默认为 True |
返回值
ndarray ,方便直接与talib等计算库对接, 失败返回 空列表。
注意:返回值使用前应该判断数组长度和是否为空列表或者低于指定长度,以免运行出错。
范例
#获取最近10天的日线收盘价序列
bar_len=10
bar_close=history_bars('SQRB00',bar_len,'1d','CLOSE')
#对返回值k线数量进行检查
if len(bar_close)<bar_len:
print('获取数据不足,请补充数据!!!')
else:
print(bar_close)
history_bars_date 某一合约指定时段内的历史数据
函数原型
history_bars_date(order_book_id, start_date,end_date, frequency,fields, skip_suspended, include_now,adjusted_price)
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str | 合约代码,必填项 |
start_date | str OR datetime | 开始日期,必填项 |
end_date | str OR datetime | 结束时间,必填项 |
frequency | str | 获取数据什么样的频率进行。'1d'或'1m'分别表示每日和每分钟,必填项。您可以指定不同的分钟频率,例如'5m'代表5分钟线,'5s'表示5秒线,'5h'表示5小时线,其他周期可以分别为:'self'表示当前设置周期,tick分笔线,week周线,month月线,quarter季度线,halfyear半年线,year年线 |
fields | str OR str list | 返回数据字段。必填项。 时间戳:datetime 开盘价:open 最高价:high 最低价:low 收盘价:close 成交量:volume 成交额:total_turnover 持仓量:open_interest (期货专用) |
skip_suspended | bool | 是否跳过停牌,默认True,跳过停牌 |
include_now | bool | 是否包括不完整的bar数据。默认为False,不包括。举例来说,当前1分钟k时间为09:39的时候获取5分钟线数据,默认将获取到09:31~09:35合成的5分钟线,即最近一根完整的5分钟线数据。如果设置为True,则将获取到09:36~09:39之间合成的"不完整"5分钟线,即最新一根5分钟线数据。 |
adjusted_price | bool | 是否复权数据,默认为 True |
返回值
ndarray ,方便直接与talib等计算库对接, 失败返回 空列表。
注意:返回值使用前应该判断数组长度和是否为空列表或者低于指定长度,以免运行出错。
范例
#获取20180901至20180910区间的日线收盘价序列
bar_close=history_bars_date('SQRB00','20180901','20180910','1d','close')
#对返回值k线数量进行检查
print(bar_close)
pel_history_bars 获取历史数据(python引用)
函数原型
pel_history_bars("bar_count", "fields")
python引用方式下获取历史数据,仅"pel_call"模式有效参数
参数
参数 | 类型 | 说明 |
---|---|---|
bar_count | int | 获取的历史数据数量,必填项 |
fields | str OR str list | 返回数据字段。必填项。 时间戳:datetime 开盘价:open 最高价:high 最低价:low 收盘价:close 成交量:volume 成交额:total_turnover 持仓量:open_interest (期货专用) |
返回值
ndarray ,方便直接与talib等计算库对接, 失败返回 空列表。
注意:返回值使用前应该判断数组长度和是否为空列表或者低于指定长度,以免运行出错。
范例
#调取收盘价数据,long_period的值为通过pel的SETPYTHONVAL函数设置
close = pel_history_bars(context.long_period+1 , 'close')
#计算均线,返回值放在context对象中。
context.ma10 = close[-context.long_period:].sum() / context.long_period
get_dynainf 当前快照数据
函数原型
get_dynainf (order_book_id,type)
当前快照数据,只有最新值,无历史数据。(不支持回测)
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str | 合约代码,必填项 |
type | int | 快照数据类型,同PEL函数dynainf |
返回值
datetime.date ,若失败返回 None
范例
#获取rb00当前最新价
get_dynainf('SQRB00',7)
is_data_update 判断数据是否更新
函数原型
is_data_update (order_book_id)
判断这次调用该品种距离上次调用是否有过数据更新,可以使用该函数对停牌或交易不活跃品种进行过滤,防止调用history_bars取数据时的计算重复。
1.该函数受基准合约行情驱动触发时才会判断具体品种行情是否更新。
2.若你的策略中同一个品种多次不同跨周期使用数据,在回测("backtest"模式)时可能会导致该函数无法正确返回,但是在"paper_trading"模式实际交易时则不受影响。
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str | 合约代码,必填项 |
返回值
int类型。
范例
#判断'ag06'合约数据是否更新。
data = history_bars('sh600000',1,'self','CLOSE')
if is_data_update ('sh600000')==1:
write_logging('数据更新')
istradertime 判断品种当前是否在交易时间时段内
函数原型
istradertime(order_book_id)
判断指定品种当前是否在交易时间时段中 注意:请确保您的计算机时间处于正确时间中,因为某些时候需要借助本地时间做参考。
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str | 合约代码,必填项 |
返回值
bool True表示当前处于可交易时间中
范例
get_previous_trading_date 基准合约上一交易日
函数原型
get_previous_trading_date (date,n)
获取基准合约指定日期的上一(或n)交易日
参数
参数 | 类型 | 说明 |
---|---|---|
date | str , date | 指定日期, 必填选项 |
n | int | 第 n 个交易日,默认为1 |
返回值
datetime.date ,若失败返回 None
范例
#获取2018-07-29的前5个交易日所在的日期
get_previous_trading_date ('2018-07-29',5)
get_next_trading_date 基准合约下一交易日
函数原型
get_next_trading_date (date,n)
获取基准合约指定日期的下一(或n)交易日
参数
参数 | 类型 | 说明 |
---|---|---|
date | str , date | 指定日期, 必填选项 |
n | int | 第 n 个交易日,默认为1 |
返回值
datetime.date ,若失败返回 None
get_trading_dates 基准合约的交易日列表
函数原型
get_trading_dates (start_date,end_date)
获取基准合约的交易日列表(起止日期加入判断)(仅策略交易状态时有效,"backtest"回测 和 "paper_trading"模式),该函数计算量较大,请注意编写效率,不要再循环中使用。
参数
参数 | 类型 | 说明 |
---|---|---|
start_date | str,date | 开始日期,用户必须指定 |
end_date | str,date | 结束日期,用户必须指定 |
返回值
datetime.date list,若失败返回 None
范例
#获取'2018-07-20'至'2018-07-30'期间的交易日期的集合
get_trading_dates ('2018-07-20','2018-07-30')
get_split 当期除权数据
函数原型
get_split (order_book_id,count)
获取指定品种到策略当前日期的(除权)拆分情况
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str | 合约代码,必填项 |
count | int | 获取的历史记录条数,默认为1 |
返回值
list of split对象 , 若失败返回 None
范例
#获取平安银行最近2次除权数据信息,其返回值为list of split对象
get_split ('sz000001',2)
get_price_change_rate 指定品种的历史涨跌幅
函数原型
get_price_change_rate (order_book_id,count)
获取指定品种的历史涨跌幅(仅策略交易状态时有效,"backtest"回测 和 "paper_trading"模式),该函数计算量较大,请注意编写效率,不要再循环中使用。
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str | 合约代码,必填项 |
count | int | 获取的历史记录条数,默认为1 |
返回值
list of dataval对象 , 若失败返回 None
范例
#获取平安银行最近10日的涨跌幅
get_price_change_rate('sz000001',10)
get_blocks 获取指定板块的成份股列表
函数原型
get_blocks (block_name,type)
获取指定板块的成份股列表
参数
参数 | 类型 | 说明 |
---|---|---|
block_name | str | 板块或分类名 |
type | int | 0市场分类 1分类板块 2系统板块 |
注:
市场分类:来源于在k线图右键“更换品种”--“市场”中展示的分类。例如:上海期货、深圳A股等
分类板块: 来源于在菜单栏“工具”--“市场与板块”--“板块”中展示的板块,如:地域中的”北京、上海“,自选中的"自选股"等。
系统分类:来源于在菜单栏“工具”--“市场与板块”--“品种”中展示的分类。如“中金所”,“国内商品”
返回值
list of str (order_book_id list) , 若失败返回 None
范例
#获取'自选股'分类版块中的品种代码,
get_blocks ('自选股',1)
get_inblocks 获取指定品种的所属板块
函数原型
get_inblocks(book_id) 获取指定品种的所属板块
参数
参数 | 类型 | 说明 |
---|---|---|
book_id | str | 合约代码 |
返回值
list of str , 若失败返回空列表
范例
#获取'sz000001'品种所属的板块,
get_inblocks ('sz000001')
update_blocks 更新板块中的品种
函数原型
update_blocks (order_book_id,block_name)
更新指定板块品种,该函数触发时,会将之前板块的品种清除后再添加新品种至板块中。
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str OR str list | 合约代码,可传入order_book_id, order_book_id list |
block_name | str | 板块名称 |
返回值
无
范例
#将'600000'股票更新至自选股板块。
update_blocks ('SH600000','自选股')
append_blocks添加指定板块中的品种
函数原型
append_blocks (order_book_id,block_name)
将指定品种以“追加方式”添加到指定版块中。
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str OR str list | 合约代码,可传入order_book_id, order_book_id list |
block_name | str | 板块名称 |
返回值
无
范例
#追加品种至指定'自选股'板块中。
append_blocks ('SH600007','自选股')
remove_blocks 删除指定板块中的品种
函数原型
remove_blocks(order_book_id,block_name)
删除指定板块中的品种
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str OR str list | 合约代码,可传入order_book_id, order_book_id list |
block_name | str | 板块名称 |
返回值
无
范例
#删除'自选股'板块中'SH600007'股票品种。
remove_blocks ('SH600007','自选股')
get_turnover_rate 历史换手率
函数原型
get_turnover_rate (order_book_id,count,stat)
获取历史换手率
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str | 合约代码,必填项 |
count | int | 获取的历史记录条数,默认为1 |
stat | int | 统计的交易日,例如统计最近20个交易日的换手率这里就填20 |
返回值
list of dataval对象 , 若失败返回 None
范例
#获取5日线历史换手率。
get_turnover_rate('SH600000',10,5)
get_instruments查询合约基础信息
函数原型
get_instruments (order_book_id)
查询合约基础信息
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str | 合约代码,必填项 |
返回值
instruments对象, 若失败返回 None
范例
#获取RB00品种的合约基本信息
instruments=get_instruments ('SQRB00')
#输出RB00合约的合约单位
print(instruments.multipliter)
get_charge计算交易费用
函数原型
get_charge (order_book_id,price,volume,type)
计算交易费用,根据 交易菜单->合约信息设置 中预设的合约信息和费率
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str | 合约代码,必填项 |
price | float | 交易价格,必填项 |
volume | int | 交易数量,必填项 |
type | int | 交易类型,必填项,0开仓 1平仓 |
返回值
交易费用
范例
#计算1手多头螺纹钢所需手续费费用
get_charge ('SQRB00',get_dynainf('SQRB00',7),1,0)
财务函数
get_finance 基础财务数据
函数原型
get_finance (order_book_id,type,count,filter,offset)
获取基础财务数据。包含常用的50+个财务字段,能满足基本使用需求。详细字段参考pel函数说明或者查阅“附表”章节。
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str | 合约代码,必填项 |
type | int | 财务报告类型 |
count | int | 获取的历史记录条数,默认为1 |
filter | int | 是否过滤 0则表示不做过滤,为1过滤第一季度,为2表示第二季度中报,为3表示第三季度,为4表示第四季度年报 |
offset | int | 为偏移数量为整数往前偏移,为负数向后偏移 |
返回值
list of dataval对象 , 若失败返回 空列表
范例
#获取最近一期‘平安银行的'每股净资
bar_len=10
get_fin=get_finance('SZ000001',34,bar_len,0,0)
if len(get_fin)<bar_len:
print("财务数据获取不足,请补充下载")
else:
print(get_fin[-1].values)
fin_balance_std 一般工商业资产负债表
函数原型
fin_balance_std (order_book_id,items,count,filter,offset)
获取一般行业资产负债数据. 注:该表包含所有A股品种资产负债数据,包括银行、证券、保险类字段。可理解为合并财务报表。若使用需要获取金融类的特有字段,可以直接查询金融类专用财务报表(银行、证券、保险)。
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str or str list | 合约代码,必填项 |
items | str or str list | 数据项名称,必填项 |
count | int | 获取的历史记录条数,默认为1 |
filter | int | 是否过滤 0则表示不做过滤,为1过滤第一季度,为2表示第二季度中报,为3表示第三季度,为4表示第四季度年报 |
offset | int | 为偏移数量为整数往前偏移,为负数向后偏移 |
返回值
list
范例
示例1:
#获取'归属于母公司所有者权益合计'财务字段。
TEquityAttrP = fin_balance_std('SZ000001','TEquityAttrP',10,0,0)
#判断获取数据长度是否足够。
if len(TEquityAttrP)<10:
print("财务数据获取不足,请补充下载")
else:
print(TEquityAttrP)
示例2:
#多维度财务获取。
#获得'600007'和'600008'品种的'归属于母公司所有者权益合计'和'所有者权益合计'财务字段
df=fin_balance_std(['sh600007','SH600008'],['TEquityAttrP','TShEquity'],1,0,0)
fin_balance_zq 证券业资产负债表
函数原型
fin_balance_zq (order_book_id,items,count,filter,offset)
获取披露的证券行业资产负债数据。
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str or str list | 合约代码,必填项 |
items | str or str list | 数据项名称,必填项 |
count | int | 获取的历史记录条数,默认为1 |
filter | int | 是否过滤 0则表示不做过滤,为1过滤第一季度,为2表示第二季度中报,为3表示第三季度,为4表示第四季度年报 |
offset | int | 为偏移数量为整数往前偏移,为负数向后偏移 |
返回值
list
fin_balance_bx保险业资产负债表
函数原型
fin_balance_bx (order_book_id,items,count,filter,offset)
获取保险行业披露的资产负债数据。
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str or str list | 合约代码,必填项 |
items | str or str list | 数据项名称,必填项 |
count | int | 获取的历史记录条数,默认为1 |
filter | int | 是否过滤 0则表示不做过滤,为1过滤第一季度,为2表示第二季度中报,为3表示第三季度,为4表示第四季度年报 |
offset | int | 为偏移数量为整数往前偏移,为负数向后偏移 |
返回值
list
fin_balance_yh 银行业资产负债表
函数原型
fin_balance_yh (order_book_id,items,count,filter,offset)
获取银行业披露的资产负债数据。
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str or str list | 合约代码,必填项 |
items | str or str list | 数据项名称,必填项 |
count | int | 获取的历史记录条数,默认为1 |
filter | int | 是否过滤 0则表示不做过滤,为1过滤第一季度,为2表示第二季度中报,为3表示第三季度,为4表示第四季度年报 |
offset | int | 为偏移数量为整数往前偏移,为负数向后偏移 |
返回值
list
fin_profit_std 一般工商业利润分配表
函数原型
fin_profit_std (order_book_id,items,count,filter,offset)
一般工商业利润分配表 注:该表包含所有A股品种资产负债数据,包括银行、证券、保险类字段。可理解为合并财务报表。若使用需要获取金融类的特有字段,可以直接查询金融类专用财务报表(银行、证券、保险)。
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str or str list | 合约代码,必填项 |
items | str or str list | 数据项名称,必填项 |
count | int | 获取的历史记录条数,默认为1 |
filter | int | 是否过滤 0则表示不做过滤,为1过滤第一季度,为2表示第二季度中报,为3表示第三季度,为4表示第四季度年报 |
offset | int | 为偏移数量为整数往前偏移,为负数向后偏移 |
返回值
list
范例
#获取'营业总收入'财务字段数据
tRevenue = fin_profit_std('SH600007','tRevenue',1,0,0)
fin_profit_zq 证券业资产利润分配表
函数原型
fin_profit_zq (order_book_id,items,count,filter,offset)
证券业利润分配表
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str or str list | 合约代码,必填项 |
items | str or str list | 数据项名称,必填项 |
count | int | 获取的历史记录条数,默认为1 |
filter | int | 是否过滤 0则表示不做过滤,为1过滤第一季度,为2表示第二季度中报,为3表示第三季度,为4表示第四季度年报 |
offset | int | 为偏移数量为整数往前偏移,为负数向后偏移 |
返回值
list
fin_profit_bx 保险业利润分配表
函数原型
fin_profit_bx (order_book_id,items,count,filter,offset)
保险业利润分配表
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str or str list | 合约代码,必填项 |
items | str or str list | 数据项名称,必填项 |
count | int | 获取的历史记录条数,默认为1 |
filter | int | 是否过滤 0则表示不做过滤,为1过滤第一季度,为2表示第二季度中报,为3表示第三季度,为4表示第四季度年报 |
offset | int | 为偏移数量为整数往前偏移,为负数向后偏移 |
返回值
list
fin_profit_yh 银行业利润分配表
函数原型
fin_profit_yh (order_book_id,items,count,filter,offset)
银行业利润分配表
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str or str list | 合约代码,必填项 |
items | str or str list | 数据项名称,必填项 |
count | int | 获取的历史记录条数,默认为1 |
filter | int | 是否过滤 0则表示不做过滤,为1过滤第一季度,为2表示第二季度中报,为3表示第三季度,为4表示第四季度年报 |
offset | int | 为偏移数量为整数往前偏移,为负数向后偏移 |
返回值
list
fin_cashflow_std 一般工商业现金流量表
函数原型
fin_cashflow_std (order_book_id,items,count,filter,offset)
一般工商业现金流量表
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str or str list | 合约代码,必填项 |
items | str or str list | 数据项名称,必填项 |
count | int | 获取的历史记录条数,默认为1 |
filter | int | 是否过滤 0则表示不做过滤,为1过滤第一季度,为2表示第二季度中报,为3表示第三季度,为4表示第四季度年报 |
offset | int | 为偏移数量为整数往前偏移,为负数向后偏移 |
返回值
list
范例
#获取'经营活动现金流出小计'财务字段。
COutfOperateA = fin_cashflow_std('SH600007','COutfOperateA',1,0,0)
fin_cashflow_zq 证券行业现金流量表
函数原型
fin_cashflow_zq (order_book_id,items,count,filter,offset)
证券行业现金流量表
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str or str list | 合约代码,必填项 |
items | str or str list | 数据项名称,必填项 |
count | int | 获取的历史记录条数,默认为1 |
filter | int | 是否过滤 0则表示不做过滤,为1过滤第一季度,为2表示第二季度中报,为3表示第三季度,为4表示第四季度年报 |
offset | int | 为偏移数量为整数往前偏移,为负数向后偏移 |
返回值
list
fin_cashflow_bx 保险业现金流量表
函数原型
fin_cashflow_bx (order_book_id,items,count,filter,offset)
保险业现金流量表
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str or str list | 合约代码,必填项 |
items | str or str list | 数据项名称,必填项 |
count | int | 获取的历史记录条数,默认为1 |
filter | int | 是否过滤 0则表示不做过滤,为1过滤第一季度,为2表示第二季度中报,为3表示第三季度,为4表示第四季度年报 |
offset | int | 为偏移数量为整数往前偏移,为负数向后偏移 |
返回值
list
fin_cashflow_yh 银行业现金流量表
函数原型
fin_cashflow_yh (order_book_id,items,count,filter,offset)
银行业现金流量表
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str or str list | 合约代码,必填项 |
items | str or str list | 数据项名称,必填项 |
count | int | 获取的历史记录条数,默认为1 |
filter | int | 是否过滤 0则表示不做过滤,为1过滤第一季度,为2表示第二季度中报,为3表示第三季度,为4表示第四季度年报 |
offset | int | 为偏移数量为整数往前偏移,为负数向后偏移 |
返回值
list
fin_indicator衍生数据表
函数原型
fin_indicator (order_book_id,items,count,filter,offset)
财务衍生数据字段。
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str or str list | 合约代码,必填项 |
items | str or str list | 数据项名称,必填项 |
count | int | 获取的历史记录条数,默认为1 |
filter | int | 是否过滤 0则表示不做过滤,为1过滤第一季度,为2表示第二季度中报,为3表示第三季度,为4表示第四季度年报 |
offset | int | 为偏移数量为整数往前偏移,为负数向后偏移 |
返回值
list
范例
#获取衍生数据'每股收益'的财务数据
EPS = fin_indicator('SH600007','EPS',1,0,0)
fin_com_holder 持股股东数
函数原型
fin_com_holder (order_book_id,items,count,filter,offset)
持股股东户数
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str or str list | 合约代码,必填项 |
items | str or str list | 数据项名称,必填项 |
count | int | 获取的历史记录条数,默认为1 |
filter | int | 是否过滤 0则表示不做过滤,为1过滤第一季度,为2表示第二季度中报,为3表示第三季度,为4表示第四季度年报 |
offset | int | 为偏移数量为整数往前偏移,为负数向后偏移 |
返回值
list
范例
#得到'SH600007'品种的持股股东户数
shNum = fin_com_holder('SH600007','shNum',1,0,0)
fin_com_share 股本结构表
函数原型
fin_com_share (order_book_id,items,count,offset)
股本结构表。
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str or str list | 合约代码,必填项 |
items | str or str list | 数据项名称,必填项 |
count | int | 获取的历史记录条数,默认为1 |
offset | int | 为偏移数量为整数往前偏移,为负数向后偏移 |
返回值
list
范例
#获取总股本
totalShares = fin_com_share('SH600007','totalShares',1,0)
fin_com_swhy2014 申万行业分类
函数原型
fin_com_swhy2014 (order_book_id,items)
申万行业分类,该表只提供最新的品种分类信息数据。
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str | 合约代码,必填项 |
items | str | 数据项名称,必填项 |
返回值
数据项对应值
范例
#获取该品种的三级分类名称
industryName = fin_com_swhy2014('SH600007','industryName3')
fin_stock_information 公司IPO信息表
函数原型
fin_stock_information (order_book_id,items)
公司IPO信息表,公司上市时的信息。
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str | 合约代码,必填项 |
items | str | 数据项名称,必填项 |
返回值
数据项对应值
范例
#上市日期
listDate = fin_stock_information('SH600007','listDate')
fin_holder_top10 公司十大股东
函数原型
fin_holder_top10 (order_book_id,items, sort,count,filter,offset)
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str or str list | 合约代码,必填项 |
items | str or str list | 数据项名称,必填项 |
sort | int | 排名 |
count | int | 获取的历史记录条数,默认为1 |
filter | int | 是否过滤 0则表示不做过滤,为1过滤第一季度,为2表示第二季度中报,为3表示第三季度,为4表示第四季度年报 |
offset | int | 为偏移数量为整数往前偏移,为负数向后偏移 |
返回值
list
范例
#获得排名第二的股东名称
holder_top = fin_holder_top10('SH600007','shName',2,1,0,0)
fin_tradableshare_top10 公司十大流通股东
函数原型
fin_tradableshare_top10 (order_book_id,items, sort,count,filter,offset)
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str or str list | 合约代码,必填项 |
items | str or str list | 数据项名称,必填项 |
sort | int | 排名 |
count | int | 获取的历史记录条数,默认为1 |
filter | int | 是否过滤 0则表示不做过滤,为1过滤第一季度,为2表示第二季度中报,为3表示第三季度,为4表示第四季度年报 |
offset | int | 为偏移数量为整数往前偏移,为负数向后偏移 |
返回值
list
fin_limited_list 股改限售解禁明细
函数原型
fin_limited_list (order_book_id,items,count,offset)
股改限售解禁明细
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | list | 合约代码,必填项 |
items | list | 数据项名称,必填项 |
count | int | 获取的历史记录条数,默认为1 |
offset | int | 为偏移数量为整数往前偏移,为负数向后偏移 |
返回值
list
期权统计函数
get_option_info 得到期权最新的特征值
函数原型
get_option_info(order_book_id,type)
得到期权最新的特征值(仅对期权品种有效).
注意:该函数仅返回最新值,无历史值。部分计算参数在 在分析菜单->期权定价计算 中设置。
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str | 合约代码,必填项 |
type | int | 数据项编号,必填项。同PEL |
返回值
计算的当前最新值结果
范例
#判断该品种期权方向,0-认购期权,1-认沽期权
get_option_info('10001211',4)
option_strike 期权行权委托
函数原型
option_strike(order_book_id,volume,account)
期权行权委托
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str | 合约代码,必填项 |
volume | int | 行权数量,必须填 |
account | str | 指定具体的交易帐号,若不指定帐号,则取默认登录帐号 |
返回值
int order_id 订单id ,当返回-1表示下单失败,失败原因需要翻阅日志记录,失败返回 None
cancelstrike 行权撤销操作
函数原型
cancelstrike(order_book_id,account)
行权撤销操作
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str | 合约代码,必填项 |
account | str | 指定具体的交易帐号,若不指定帐号,则取默认登录帐号 |
volatility 历史波动率
函数原型
volatility(data,size)
历史波动率
参数
参数 | 类型 | 说明 |
---|---|---|
data | list of float 或 ndarray of float |
需统计的数据 |
size | int | 统计数据个数 |
返回值
float 波动率结果
impliedvolatility 隐含波动率
函数原型
impliedvolatility(order_book_id,srcprice, volatility, days, nowprice, R)
隐含波动率
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str | 合约代码,必填项 |
srcprice | float | 当前标的物品种的价格,必填项 |
volatility | float | 标的物历史波动率,参考volatility方法,必填项 |
days | int | 期权期限(距离期权到期日期天数),必填项 |
nowprice | float | 当前期权价格,必填项 |
R | float | 无风险利率,可选参数,若不填则表示取默认设置利率(在分析菜单->期权定价计算器中) |
返回值
float 隐含波动率结果
optiongreekvalue 统计期权合约的特征值
函数原型
optiongreekvalue(order_book_id,srcprice, volatility, days, type, R)
统计期权合约的特征值
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str | 合约代码,必填项 |
srcprice | float | 当前标的物品种的价格,必填项 |
volatility | float | 标的物历史波动率,参考volatility方法,必填项 |
days | int | 期权期限(距离期权到期日期天数),必填项 |
type | int | 期权特征值类型 1-Delta,2-Gamma,3-Theta,4-Vega,5-Rho, 必填项 |
R | float | 无风险利率,可选参数,若不填则表示取默认设置利率(在分析菜单->期权定价计算 中) |
返回值
float 隐含波动率结果
optionbsprice 用B-S模型计算一个欧式期权的理论价格
函数原型
optionbsprice(order_book_id,srcprice, volatility, days, R)
用B-S模型计算一个欧式期权的理论价格,股票期权和股指期权的计算中都不考虑股息影响.
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str | 合约代码,必填项 |
srcprice | float | 当前标的物品种的价格,必填项 |
volatility | float | 标的物历史波动率,参考volatility方法,必填项 |
days | int | 期权期限(距离期权到期日期天数),必填项 |
R | float | 无风险利率,可选参数,若不填则表示取默认设置利率(在分析菜单->期权定价计算 中) |
返回值
float 返回计算后的期权理论价格
optionlabel_book 取指定标的指定月份的期权合约
函数原型
optionlabel_book(code,market,month, type)
取指定标的指定月份的期权合约
参数
参数 | 类型 | 说明 |
---|---|---|
code | str | 标的的品种代码(对于商品期权请填写完整标的合约代码)例如"510050",必填项 |
market | str | 期权的品种市场,例如"QQ"表示股票期权市场,必填项 |
month | str | 指定的合约月份(仅对股票期权有效,商品期权该参数无效,置空字符串即可),例如"1809"表示18年9月份合约,必填项 |
type | int | 指定调取的合约类型0全部 1认购 2认沽 ,必填项 |
返回值
list of str 返回实际的期权合约
opobyprirce 通过行权价获取相关期权合约
函数原型
opobyprirce(code,market,price, direct, monthtype, check)
通过行权价获取相关期权合约,可以通过该方法函数方便的对标的合约的行权价相关的期权合约进行快速定位
参数
参数 | 类型 | 说明 |
---|---|---|
code | str | 标的的品种代码(对于商品期权请填写完整标的合约代码)例如"510050",必填项 |
market | str | 期权的品种市场,例如"QQ"表示股票期权市场,必填项 |
price | float | 欲查找的行权价期权合约行权价,必填项 |
direct | int | 行权方向,0认购1认沽,必填项 |
monthtype | int | 交割月份类型选择;若为0则系统自动选择对应行权价的合约;若为1则系统会按照最靠近当前交割月份的合约,必填项 |
check | int | 价格检查,若为1则Price参数价格大小在标的合约行权价之外时该方法函数无效,若为0表示不检查,可不填,默认为1价格检查。 |
返回值
str 查找到的期权合约order_book_id,若没有找到返回空字符串
两融操作函数
synchrosecurities 刷新同步两融账户中的可融券信息
synchrosecurities(account)
请求刷新同步指定或全部登录的两融账户中的可融券信息
注意:请不要频繁调用该函数,以免给服务器造成过大压力。查询完成后的事件通知在order_action中标志为1的事件中获取。
参数
参数 | 类型 | 说明 |
---|---|---|
account | str | 指定需要刷新的账户,若不填写则表示刷新全部账户的可融券信息。 |
get_securities 得到指定账户的指定基于0索引的融券信息
get_securities(account)
得到指定账户的指定基于0索引的融券信息 使用该函数方法前请务必调用synchrosecurities函数已确保可融券信息已经下载到客户端,可在order_action事件方法中确认是否下载成功
参数
参数 | 类型 | 说明 |
---|---|---|
account | str | 指定查询的账户,若不填则表示当前默认账户 |
返回值
list of securities对象
新股申购函数
reqnewstockinfo 请求查询当日可申购新股信息
reqnewstockinfo(account)
请求查询当日可申购新股信息
参数
参数 | 类型 | 说明 |
---|---|---|
account | str | 指定查询的账户,若不填则表示当前默认账户 |
注意:
1、查询完成后的事件通知在order_action中标志为2的事件中获取。
2、请不要频繁的重复的调用该函数,一般该函数每个交易日连接交易服务器后只调用一次即可。
get_newstockinfo 得到可申购新股信息
get_newstockinfo(account)
得到可申购新股信息,请务必确认使用前调用reqnewstockinfo函数,并确认收到order_action中标志为2的事件。
参数
参数 | 类型 | 说明 |
---|---|---|
account | str | 指定查询的账户,若不填则表示当前默认账户 |
返回值
list of newstockinfo对象
范例
get_newstockmaxvol 得到指定市场最大可申购数量
get_newstockmaxvol(market,account)
得到指定市场最大可申购数量
参数
参数 | 类型 | 说明 |
---|---|---|
market | str | 指定需要查询的市场,上海证券为"SH",深圳为"SZ" |
account | str | 指定账户,若不填写则表示刷新当前登录默认账户。 |
返回值
int 返回查询到的最大可申购数量,可以使用该返回值做新股申购
reqnewstocklotinfo 新股申购中签查询
reqnewstocklotinfo(startdate,enddate,account)
新股申购中签查询
参数
参数 | 类型 | 说明 |
---|---|---|
startdate | str | 开始日期,可选参数,不填写则表示查询近期的中签新股, 格式 YYYY/MM/DD ,例如 "2018/01/01" |
enddate | str | 结束日期,可选参数,不填写则表示查询近期的中签新股,格式 YYYY/MM/DD ,例如 "2018/12/31" |
account | str | 指定账户,若不填写则表示刷新当前登录默认账户。 |
注意
1、查询完成后的事件通知在order_action中标志为3的事件中获取。
2、查询历史中签记录日期间隔天数不能大于30天。
3、请不要频繁的重复的调用该函数,一般该函数每个交易日连接交易服务器后只调用一次即可。
get_newstocklotinfo 得到新股中签信息
get_newstocklotinfo(account)
得到新股中签信息 注意:调用该函数前,请务必至少调用一次reqnewstocklotinfo函数查询操作。并确认收到order_action中标志为3的事件。
参数
参数 | 类型 | 说明 |
---|---|---|
account | str | 指定查询的账户,若不填则表示当前默认账户 |
返回值
list of newstockinfo对象
buy_newstock 执行新股申购委托操作
buy_newstock(label,market,price,volume,account)
执行新股申购委托操作
参数
参数 | 类型 | 说明 |
---|---|---|
label | str | 可申购股票代码 |
market | str | 可申购股票市场 |
price | float | 申购价格 |
volume | int | 申购数量 |
account | str | 指定账户,若不填写则表示刷新当前登录默认账户。 |
返回值
int order_id 订单id ,当返回-1表示下单失败,失败原因需要翻阅日志记录,失败返回 None
全局变量函数
全局变量数据库是金字塔内部的一种小型数据库,用来存放用户作用整个金字塔全局的变量。
可以使用全局变量做变量存储,或者与PEL,VBA进行数据交互。
setextdata 以数值方式设置指定名称的全局变量数据
函数原型
setextdata(item,data)
以数值方式设置指定名称的全局变量数据。数据存储在“工具”--“数据管理”--“全局变量”中
参数
参数 | 类型 | 说明 |
---|---|---|
item | str | 全局变量数据项名称 |
data | float 或 int | 数据内容 |
注意: 数值型float金字塔采取单精度浮点数存储,如果数值过大可能会丢失精度,此时可以改为字符串存储以保留精度。
返回值
无
范例
#设置TEST全局变量的值。
setextdata('TEST',1)
#打印输出'TEST'的结果
print(getextdata('TEST'))
getextdata 得到指定名称的全局变量数据
函数原型
getextdata(item)
得到指定名称的全局变量数据,数据存储在“工具”--“数据管理”--“全局变量”中 例如:getextdata("ABC"),函数将返回"ABC"名称的全局变量数据。
参数
参数 | 类型 | 说明 |
---|---|---|
item | str | 全局变量数据项名称 |
返回值
float 或 int
注意: 数值型float金字塔采取单精度浮点数存储,如果数值过大可能会丢失精度,此时可以改为字符串存储以保留精度。
setextstring 以字符串方式设置指定名称的字符串全局变量数据
函数原型
setextstring(item, data)
以字符串方式设置指定名称的字符串全局变量数据
参数
参数 | 类型 | 说明 |
---|---|---|
item | str | 全局变量数据项名称 |
data | str 或 float 或 int | 数据内容 |
getextstring 得到指定名称的字符串全局变量数据
函数原型
getextstring(item)
得到指定名称的字符串全局变量数据,该函数用法与getextdata函数相同,但此函数将返回字符串,如果键值是数字数据名称,会将该数字转换为字符串输出。
参数
参数 | 类型 | 说明 |
---|---|---|
item | str | 全局变量数据项名称 |
返回值
str
范例
clearextdata 从全局变量数据库中清除所有全局变量数据
函数原型
clearextdata()
从全局变量数据库中清除所有全局变量数据
参数
无
返回值
无
其它函数
settimer 设定计时器—定时触发
函数原型
settimer (funciton, msec)
设定计时器—定时触发,仅"paper_trading"模式有效
注意:function函数一定要包含(并且只能包含)context参数
参数 | 类型 | 说明 |
---|---|---|
funciton | funciton | 传入执行的function名称 |
msec | int | 触发间隔,单位毫秒。(1秒=1000毫秒) |
返回值
无
范例
import time
def init(context):
# 设置计时器
settimer(msg,10)
def msg(context):
#输出现在时间
a = time.asctime( time.localtime(time.time()) )
print(a)
#退出程序后杀死计时器
def exit(context):
killtimer(msg)
killtimer 结束计时器
函数原型
killtimer(funciton)
结束计时器,仅"paper_trading"模式有效
参数
参数 | 类型 | 说明 |
---|---|---|
funciton | funciton | 本地计算机硬盘文件全路径 |
返回值
无
范例
import time
def init(context):
# 设置计时器
settimer(msg,10)
def msg(context):
#输出现在时间
a = time.asctime( time.localtime(time.time()) )
print(a)
#退出程序后杀死计时器
def exit(context):
killtimer(msg)
write_logging 调试打印输出
函数原型
write_logging (msg)
屏幕字符打印输出,该函数可以直接在print函数不能显示的函数外执行,推荐调试时使用
参数
参数 | 类型 | 说明 |
---|---|---|
msg | str | 输出字符串内容,必填项 |
返回值
无
范例
#判断init事件函数在启动时,是否正常运行。
def init(context):
...
#执行完毕省略部分的代码后,输出字符串“策略初始化工作已经完成!”。(省略部分代码请自行填充)
write_logging ('策略初始化工作已经完成!')
log_debug_info 日志写盘
函数原型
log_debug_info(file_path, text_data)
日志写盘,利用该函数可以将运行中的参数写盘,方便策略编写调试期间查找问题
注:适用于以下三种模式:"backtest"模式、"paper_trading"模式和"pel_call"模式下有效。
参数
参数 | 类型 | 说明 |
---|---|---|
file_path | str | 本地计算机硬盘文件全路径 |
text_data | str | 日志内容 |
返回值
无
范例
#使用log_debug_info函数,输出策略执行过程中产生的结果,进行分析。
log_debug_info('D:\debugfile.txt', '输出跟踪测试的内容到debugfile文件中')
update_universe 更新合约池
函数原型
update_universe (order_book_id)
该方法用于更新现在关注的品种的集合(e.gPS:会在下一个bar事件触发时候产生(新的关注的合约池更新)效果。并且update_universe会是覆盖(overwrite)的操作而不是在已有的股票池的基础上进行增量添加。比如已有的股票池为['SZ000001', 'SZ000024']然后调用了update_universe(['SH000030'])之后,股票池就会变成SH000030一个股票了,随后的数据更新也只会跟踪SH000030这一个股票了。
(仅策略交易状态时有效,"backtest"回测 和 "paper_trading"模式)
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str OR str list | 合约代码,可传入order_book_id, order_book_id list |
返回值
无
范例
#把'sh600000','sh600007'更新到当前合约池中
update_universe (['sh600000','sh600007'])
append_universe添加到合约池
函数原型
append_universe (order_book_id)
添加品种到合约池
(仅策略交易状态时有效,"backtest"回测 和 "paper_trading"模式)
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str OR str list | 合约代码,可传入order_book_id, order_book_id list |
返回值
无
范例
#把'sh600000','sh600007'追加到当前合约池中
append_universe (['sh600000','sh600007'])
remove_universe 删除合约池
函数原型
remove_universe (order_book_id)
删除合约池中的品种
(仅策略交易状态时有效,"backtest"回测 和 "paper_trading"模式)
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str OR str list | 合约代码,可传入order_book_id, order_book_id list |
返回值
无
get_indicator获取PEL指标线值
函数原型
get_indicator(order_book_id,name,line,parameter,freq,count,skip_suspended,include_now,adjusted_price)
引用金字塔PEL指标线值的值。
(仅策略交易状态时有效,"backtest"回测 和 "paper_trading"模式),注意该函数占用资源较大,请注意编程效率。
参数
参数 | 类型 | 说明 |
---|---|---|
order_book_id | str | 合约代码,必填项 |
name | str | PEL公式名,必填项 |
line | str OR str list | 公式线名,必填项 |
parameter | str | 公式参数,例如MA的均线参数为 "5,10,20,30",必填项 |
freq | str | 获取数据什么样的频率进行。'1d'或'1m'分别表示每日和每分钟,必填项。您可以指定不同的分钟频率,例如'5m'代表5分钟线,'5s'表示5秒线,'5h'表示5小时线,其他周期可以分别为:'self'表示当前设置周期,week周线,month月线,quarter季度线,halfyear半年线,year年线,,必填项 |
count | int | 获取的历史数据数量,必填项 |
skip_suspended | bool | 是否跳过停牌,默认True,跳过停牌 |
include_now | bool | 是否包括不完整的bar数据。默认为False,不包括。举例来说,在09:39的时候获取上一个5分钟线,默认将获取到09:31~09:35合成的5分钟线。如果设置为True,则将获取到09:36~09:39之间合成的"不完整"5分钟线 |
adjusted_price | bool | 是否复权数据,默认为True |
返回值
ndarray 方便直接与talib等计算库对接,失败返回 None
范例
#引用PEL指标公式"my_test"的ma5日均线指标值。PEL指标必须提前存在或者构建。
get_indicator('sh600000','my_test','ma5','30','1d',10)
call_vba 执行VBA函数调用计算
函数原型
call_vba(function,...)
执行VBA函数调用计算
参数
参数 | 类型 | 说明 |
---|---|---|
function | str | VBA函数名 |
... | float 或 int | 传递给VBA的参数序列 |
返回值
str 或 float 或 int
范例
# 执行vba中名为 Test_fun_call 函数,参数分别为 1和2。
ret = call_vba("Test_fun_call",1,2)
print(ret)
add_test_report 添加自定义测试报告项函数原型
函数原型
add_test_report (item,itemdata)
添加自定义测试报告项, 该函数仅对测评状态有效,推荐放在 exit 事件函数中使用
参数
参数 | 类型 | 说明 |
---|---|---|
item | str | 测试报告项名称,必填项 |
itemdata | str | 报告项内容,必填项 |
返回值
无
input_par 申明参数
函数原型
input_par(PAR_NAME,DFT,MIN,MAX,STEP)
此函数仅支持在parameter()方法内使用,其它方法或者函数内使用无效。声明的变量在使用时,直接从context对象中获取。
参数
参数 | 类型 | 说明 |
---|---|---|
PAR_NAME | str | 声明的变量名 |
DFT | float | 默认值 |
MIN | float | 最小值 |
MAX | float | 最大值 |
STEP | float | 步长(最小变动值) |
范例
#input_par函数必要在parameter方法内实现声明变量。
def parameter():
#申明变量"myvalues1"和"myvalues2"并初始赋值。
input_par("myvalues1",20,1,20,1)
input_par("myvalues2",10,1,20,1)
test_report_none 禁用回测弹出测试报告
函数原型
test_report_none()
此函数一般用于用于exit事件函数内,作用为禁用回测完成后弹出测试报告。
参数
无
范例
# exit事件函数会在测评结束或者停止策略运行时调用test_report_none函数。
def exit(context):
test_report_none()
重要对象
context对象
属性 | 类型 | 说明 |
---|---|---|
now | datetime | 可以在handle_bar中拿到当前的bar的时间,比如day bar的话就是那天的时间,minute bar的话就是这一分钟的时间点。 |
barpos | int | PEL策略引用时的K线序号,仅当"pel_call"模式时有效,barpos=1时表示第一根K线,barpos=datacount表示最后一根k线 |
run_info | class | 策略运行信息 |
universe | list of str | 策略合约池 仅"backtest"回测 "paper_trading"实际交易模式下有效 |
run_info对象
属性 | 类型 | 说明 |
---|---|---|
start_date | datetime | 策略的开始日期, 仅回测时有效,"pel_call"模式时为主图K线数据开始时间 |
end_date | datetime | 策略的结束日期,仅回测时有效,"pel_call"模式时为主图K线数据结束时间 |
run_type | str | 当前环境状态,"backtest"回测 "paper_trading"实际交易中 "pel_call"被PEL公式调用 "other_call"等其他调用 |
run_id | str | 当前运行环境的唯一标识符 |
frequency | str | 策略的运行周期 |
base_book_id | str | 基准合约代码,当"pel_call"模式时为主K线图合约 |
datacount | int | PEL公式引用时的主K线数据数量,仅当"pel_call"模式时有效 |
last_refurbish | bool | PEL公式引用时指示是否为“仅刷最后K线”运行模式,该模式时仅K线数量发生变化时才重新进行从barpos=1到barpos=datacount的刷新过程,当最后K线只是价格变化时始终barpos=datacount |
starting_cash | float | 初始测试资金, 仅回测时有效 |
open_slippage | int | 开仓滑点, 仅回测时有效 |
close_slippage | int | 平仓滑点, 仅回测时有效 |
order对象
属性 | 类型 | 说明 |
---|---|---|
order_id | int | 唯一标识订单的id |
order_book_id | str | 合约代码 |
datetime | datetime.datetime | 订单创建时间 |
side | str | 订单方向 "buy"买:"sell"卖 |
price | float | 订单价格,只有在订单类型为'限价单'的时候才有意义 |
quantity | int | 订单数量 |
filled_quantity | int | 订单已成交数量 |
unfilled_quantity | int | 订单未成交数量 |
type | str | 订单类型 "limit"限价 : "market"市价 |
trade_price | float | 成交价格(仅当为"tradeing"时有效) |
trade_quantity | int | 本次成交数量(仅当为"tradeing"时有效) |
status | str | 订单状态 "submitted"已报单未成交 "tradeing"已成交 "filled"全部成交 "cancelled"已撤单 "inactive"无效单 "connected"已连接 "disconnected"连接断开 |
message | str | 订单状态文字说明 |
position_effect | str | 开平标志 "open"开仓 "close"平仓 |
sign | int | 交易标志 对于期货品种 0投机 1保值 对于股票 0普通 1融资 对于期权 0非备兑 1备兑 |
account | str | 交易账户 |
system_id | str | 柜台返回的系统编号 |
portfolio对象
属性 | 类型 | 说明 |
---|---|---|
pnl | float | 浮动盈亏 |
buy_margin | float | 期货:多头保证金 ; 股票: 持仓市值 |
buy_today_quantity | int | 期货:多头今仓 ; 股票: 今日可卖数量 |
buy_quantity | int | 多头总持 |
buy_avg_open_price | float | 多头开仓成本 |
buy_avg_holding_price | float | 多头持仓成本 |
sell_margin | float | 期货:空头保证金; 股票: 融券持仓市值 |
sell_today_quantity | int | 期货:空头今仓; 股票: 今日可平融券数量 |
sell_quantity | int | 期货:空头总持 股票:融券总持 |
sell_avg_open_price | float | 空头开仓成本 |
sell_avg_holding_price | float | 空头持仓成本 |
moneyrate | float | 两融利率 |
trader对象
属性 | 类型 | 说明 |
---|---|---|
order_id | int | 唯一标识订单的id |
order_book_id | str | 合约代码 |
datetime | datetime.datetime | 订单创建时间 |
side | str | 订单方向 "buy"买"sell"卖 |
filled_quantity | int | 成交数量 |
type | str | 订单类型 "limit"限价 : "market"市价 |
trade_price | float | 成交价格 |
position_effect | str | 开平标志 "open"开仓 "close"平仓 |
sign | int | 交易标志 对于期货品种 0投机 1保值 对于股票 0普通 1融资 对于期权 0非备兑 1备兑 |
system_id | str | 柜台返回的系统编号 |
split对象
属性 | 类型 | 说明 |
---|---|---|
ex_dividend_date | datetime | 除权除息日,该天股票的价格会因为拆分而进行调整 |
give | float | 每10股送 |
rationed | float | 每10股配 |
rationed_price | float | 配股价 |
profit | float | 每10股红利 |
dataval对象
属性 | 类型 | 说明 |
---|---|---|
date_val | datetime | 日期时间 |
values | float | 数值内容 |
instruments对象
属性 | 类型 | 说明 |
---|---|---|
buy_margin_rate | float | 多头保证金率 |
short_margin_rate | float | 空头保证金率 |
multipliter | int | 合约单位 |
mintick | float | 最小变动价位 |
round_lot | int | 每手单位,例如股票是100 |
type | int | 分类类型,范围为0-31,分别表示指数、A 股、B 股、H 股、N 股、期货、外汇、基金、债券、板块指数、投资指数、套利指数、其他、其他股票、商品现货、选择权、凭证权证、国债、企业债、现券、长远期合作、拆借、回购、认购权证、认沽权证、看涨期权、看跌期权、开放基金、封闭基金、ETF、LOF、指标统计 |
securities对象
属性 | 类型 | 说明 |
---|---|---|
order_book_id | str | 可融券合约代码 |
sec_count | int | 可融券数量 |
newstockinfo对象
属性 | 类型 | 说明 |
---|---|---|
label | str | 可申购股票代码 |
market | str | 可申购股票市场 |
name | str | 可申购股票名称 |
price | float | 申购价格 |
upperlimit | int | 申购上限 |
lowerlimit | int | 申购下限 |
newstocklotinfo对象
属性 | 类型 | 说明 |
---|---|---|
label | str | 中签股票代码 |
market | str | 中签股票市场 |
name | str | 中签股票名称 |
price | float | 申购价格 |
lotdate | str | 中签日期 |
lotvolume | int | 中签数量 |
附表
type参数 (get_account函数)
type | 说明 |
---|---|
1 | 该函数返回常数,返回当前交易帐户ID(该函数返回字符串类型数值) |
2 | 账户类型,0 盈透 1 CTP 2 金仕达期货 3FIX接口 4恒生期货 5子账户 6其他柜台 255 无效账户 |
3 | 现金余额 |
4 | 浮动盈亏 |
6 | 当前交易帐户中的动态权益/资产值 |
19 | 当前可用资金 |
20 | 当前流动资产 |
26 | 上次结算准备金/期初余额 |
27 | 结算准备金/期初余额 |
28 | 占用保证金/证券市值 |
29 | 可取资金 |
30 | 平仓盈亏数额/回报卖出金额/融券盈亏 |
31 | 手续费 |
32 | 入金金额/利息积数/融资市值 |
33 | 出金金额/当前余额 |
34 | 上次信用额度 |
35 | 上次质压 |
36 | 质压金额 |
37 | 信用额度 |
38 | 冻结保证金/禁取资产 |
39 | 冻结手续费/回报买入金额/融资盈亏 |
40 | 保底资金 |
41 | 多头保证金率(期货专有) |
42 | 空头保证金率(期货专有) |
43 | 返回交易网关名称,该函数返回字符串常数 |
44 | 融券市值 |
45 | 融券费用 |
46 | 融券利息 |
47 | 融资余额 |
48 | 融券余额 |
49 | 可用保证金 |
50 | 已用融资额 |
51 | 已用融券额 |
52 | 融资负债 |
53 | 返回当前交易账户是否处于有效状态。建议对账户持仓或资金进行读取时首先调用该函数对账户有效性进行判断,以免出现误操作。(对IB外盘无效,仅限国内) |
type参数 (get_finance函数)
type | 说明 |
---|---|
0 | 更新日期 |
1 | 总股本(万股) |
2 | A股本(万股) |
3 | 上市日期 |
4 | 限售条件股(万股) |
5 | 流通B股(万股) |
6 | 货币资金(千元) |
7 | 流通股(万股) |
8 | B股股东总数 |
9 | A股股东总数 |
10 | 总资产(千元) |
11 | 流动资产(千元) |
12 | 固定资产(千元) |
13 | 无形资产(千元) |
14 | 盈余公积金(千元) |
15 | 流动负债(千元) |
16 | 负债总额(千元) |
17 | 资本公积金(千元) |
18 | 每股资本公积金(元) |
19 | 少数股东权益(千元) |
20 | 营业总收入(千元) |
21 | 股东权益(千元) |
22 | 每股盈余公积金(元) |
23 | 营业利润(千元) |
24 | 投资收益(千元) |
25 | 归属母公司所有者权益(千元) |
26 | 营业外收支(千元) |
27 | 少数股东损益(千元) |
28 | 利润总额(千元) |
29 | 净利润(千元) |
30 | 归属母公司所有者净利润(千元) |
31 | 未分配利润(千元) |
32 | 每股未分配(元) |
33 | 基本每股收益(元) |
34 | 每股净资产(元) |
35 | 调整每股净资(元) |
36 | 股东权益比% |
37 | 摊薄净资产收益率% |
38 | 经营现金流入(千元) |
39 | 经营现金流出(千元) |
40 | 经营现金流量(千元) |
41 | 投资现金流入(千元)(千元) |
42 | 投资现金流出(千元) |
43 | 投资现金流量(千元) |
44 | 筹资现金流入(千元) |
45 | 筹资现金流出(千元) |
46 | 筹资现金流量(千元) |
47 | 期末现金及现金等价物余额(千元) |
48 | 应收帐款周转率 |
49 | 存货周转率 |
50 | 股东总数 |
51 | 发行价(元) |
52 | 发行量(万股) |
53 | 营业收入增长率% |
54 | 归属母公司净利润增长率% |
55 | 净资产增长率% |
56 | 总资产增长率% |
57 | 现金及现金等价物净增加额 |
60 | 流通A股(万股) |
type参数 (get_dynainf函数)
属性 | 类型 |
---|---|
3 | 昨收 |
4 | 今开 |
5 | 最高 |
6 | 最低 |
7 | 最新 |
8 | 总手 |
9 | 现手 |
10 | 总额(万) |
11 | 均价 |
12 | 涨跌 |
13 | 振幅 |
14 | 涨幅 |
15 | 委比 |
16 | 委差 |
17 | 量比 |
18 | 委买 |
19 | 委卖 |
20 | 委买价 |
21 | 委卖价 |
22 | 内盘 |
23 | 外盘 |
24 | 涨速 |
25 | 买一量 |
26 | 买二量 |
27 | 买三量 |
28 | 买一价 |
29 | 买二价 |
30 | 买三价 |
31 | 卖一量 |
32 | 卖二量 |
33 | 卖三量 |
34 | 卖一价 |
35 | 卖二价 |
36 | 卖三价 |
37 | 换手率 |
38 | 日均量 |
39 | 市盈率 |
40 | 成交方向 |
41 | 买四量 |
42 | 买四价 |
43 | 卖四量 |
44 | 卖四价 |
45 | 持仓量 |
46 | 应得利息 |
47 | 国债全价 |
48 | 买五量 |
49 | 买五价 |
50 | 卖五量 |
51 | 卖五价 |
52 | 成交笔数 |
53 | 每笔手数 |
54 | 涨停 |
55 | 跌停 |
56 | 总市值 |
57 | 流通市值 |
58 | 市净率 |
59 | 到期收益 |
60 | 昨持仓量 |
61 | 结算价 |
62 | 昨结算价 |
63 | 增仓 |
64 | 日增仓 |
65 | 开平 |
66 | 上涨家数 |
67 | 下跌家数 |
68 | 平盘家数 |
87 | 取得该证券所在分类委买均价 |
88 | 取得该证券所在分类委卖均价 |
89 | 取市场总委买总额 |
90 | 取市场总委卖总额 |
91 | 取市场总外盘成交额 |
92 | 取市场总内盘成交额 |
101 | 上跳总次数 |
102 | 下跳总次数 |
103 | 平跳总次数 |
104 | 上跳总额 |
105 | 下跳总额 |
106 | 平跳总额 |
107 | 大单跳动总次数(100-300万元的分笔) |
108 | 大单上跳总次数(100-300万元的分笔) |
109 | 大单下跳总次数(100-300万元的分笔) |
110 | 大单平跳总次数(100-300万元的分笔) |
111 | 大单跳动总额(100-300万元的分笔) |
112 | 大单上跳总额(100-300万元的分笔) |
113 | 大单下跳总额(100-300万元的分笔) |
114 | 大单平跳总额(100-300万元的分笔) |
115 | 小单跳动总次数(15-40万元的分笔) |
116 | 小单上跳总次数(15-40万元的分笔) |
117 | 小单下跳总次数(15-40万元的分笔) |
118 | 小单平跳总次数(15-40万元的分笔) |
119 | 小单跳动总额(15-40万元的分笔) |
120 | 小单上跳总额(15-40万元的分笔) |
121 | 小单下跳总额(15-40万元的分笔) |
122 | 小单平跳总额(15-40万元的分笔) |
123 | 权重股跳动总次数(市值50亿元以上的) |
124 | 权重股上跳总次数(市值50亿元以上的) |
125 | 权重股下跳总次数(市值50亿元以上的) |
126 | 权重股平跳总次数(市值50亿元以上的) |
127 | 权重股跳动总额(市值50亿元以上的) |
128 | 权重股上跳总额(市值50亿元以上的) |
129 | 权重股下跳总额(市值50亿元以上的) |
130 | 权重股平跳总额(市值50亿元以上的) |
131 | 巨单跳动总次数(300万元以上的分笔) |
132 | 巨单上跳总次数(300万元以上的分笔) |
133 | 巨单下跳总次数(300万元以上的分笔) |
134 | 巨单平跳总次数(300万元以上的分笔) |
135 | 巨单跳动总额(300万元以上的分笔) |
136 | 巨单上跳总额(300万元以上的分笔) |
137 | 巨单下跳总额(300万元以上的分笔) |
138 | 巨单平跳总额(300万元以上的分笔) |
139 | 中单跳动总次数(40-100万元以上的分笔) |
140 | 中单上跳总次数(40-100万元以上的分笔) |
141 | 中单下跳总次数(40-100万元以上的分笔) |
142 | 中单平跳总次数(40-100万元以上的分笔) |
143 | 中单跳动总额(40-100万元以上的分笔) |
144 | 中单上跳总额(40-100万元以上的分笔) |
145 | 中单下跳总额(40-100万元以上的分笔) |
146 | 中单平跳总额(40-100万元以上的分笔) |
147 | 散单跳动总次数(小于5万元以下的分笔) |
148 | 散单上跳总次数(小于5万元以下的分笔) |
149 | 散单下跳总次数(小于5万元以下的分笔) |
150 | 散单平跳总次数(小于5万元以下的分笔) |
151 | 散单跳动总额(小于5万元以下的分笔) |
152 | 散单上跳总额(小于5万元以下的分笔) |
153 | 散单下跳总额(小于5万元以下的分笔) |
154 | 散单平跳总额(小于5万元以下的分笔) |
155 | 买六量 |
156 | 买六价 |
157 | 卖六量 |
158 | 卖六价 |
159 | 买七量 |
160 | 买七价 |
161 | 卖七量 |
162 | 卖七价 |
163 | 买八量 |
164 | 买八价 |
165 | 卖八量 |
166 | 卖八价 |
167 | 买九量 |
168 | 买九价 |
169 | 卖九量 |
170 | 卖九价 |
171 | 买十量 |
172 | 买十价 |
173 | 卖十量 |
174 | 卖十价 |
200 | 外盘成交额 |
201 | 内盘成交额 |
202 | 主买笔数 |
203 | 主卖笔数 |
204 | 上升劲道 |
205 | 下降劲道 |
206 | 现额 |
207 | 时间 |
208 | 取得合约最小变动价位 |
209 | 取得合约的单位乘数 |
210 | 取得连续合约对应的主力合约代码 |
211 | 取得该品种距离最近一次实盘交易的开仓成交价格 |
212 | 取得该品种距离最近一次实盘交易的开仓成交数量。 |
213 | 取得该品种距离最近一次实盘交易的开仓成交时间 |
214 | 取得该品种距离最近一次实盘交易的开仓成交日期 |
215 | 取得该品种距离最近一次实盘交易的平仓成交价格 |
216 | 取得该品种距离最近一次实盘交易的平仓成交数量 |
217 | 取得该品种距离最近一次实盘交易的平仓成交时间 |
218 | 取得该品种距离最近一次实盘交易的平仓成交日期 |
219 | 取得该品种名称 |
220 | 取得该ETF基金品种的净值 |
221 | 取得该ETF基金品种的昨净值 |
222 | 取得该ETF基金品种的净值涨跌 |
223 | 取得该ETF基金品种的净值涨跌幅度 |
224 | 取得该ETF基金品种的净值溢价 |
225 | 取得该ETF基金品种的净值溢价幅度 |
226 | 取得该期货合约的交割日期(需要连接到交易账户后才能有效的获取该数据) |
type参数 (get_option_info函数)
type | 说明 |
---|---|
OPTIONINFO(1) | 期权标的合约,返回该期权合约的标的合约 |
OPTIONINFO(2) | 期权类型,返回整数:0-股票期权,1-股指期权,2-期货期权 |
OPTIONINFO(3) | 期权行权方式,返回整数:0-欧式,1-美式 |
OPTIONINFO(4) | 期权方向,返回整数:0-认购期权,1-认沽期权 |
OPTIONINFO(5) | 期权行权价格,返回该期权合约的行权价格 |
OPTIONINFO(6) | 期权行权比例,及合约单位 |
OPTIONINFO(7) | 返回该期权合约的最后交易日 |
OPTIONINFO(8) | 返回截至到今天的到期日然日天数 |
OPTIONINFO(9) | 期权行权起始日 |
OPTIONINFO(10) | 返回该期权合约品种的内在价值 |
OPTIONINFO(11) | 返回该期权合约品种的时间价值 |
OPTIONINFO(12) | 返回该期权合约品种的隐含波动率 |
OPTIONINFO(13) | 返回该期权合约品种的杠杆比率 |
OPTIONINFO(14) | 返回该期权合约品种的溢价率 |
OPTIONINFO(15) | 返回该期权合约品种的真实杠杆率 |
OPTIONINFO(16) | 返回该期权合约品种的Delta |
OPTIONINFO(17) | 返回该期权合约品种的Gamma |
OPTIONINFO(18) | 返回该期权合约品种的Rho |
OPTIONINFO(19) | 返回该期权合约品种的Theta |
OPTIONINFO(20) | 返回该期权合约品种的Vega |
OPTIONINFO(21) | 返回该期权标的合约的历史波动率 |
OPTIONINFO(22) | 用B-S模型计算一个欧式期权的理论价格,股票期权和股指期权的计算中都不考虑股息影响。 |
OPTIONINFO(23) | 返回该期权合约品种的平值合约行权价 |
OPTIONINFO(24) | 返回该期权连续合约对应的实际可交易字符串合约代码 |