# buy_open 开多(买开)

buy_open( order_book_id, style, price, volume, amount, hedge_flag, order_queue, slithermethod, account, repeat, min_volume,serial_id )

参数
参数 类型 说明
order_book_id str 合约代码,必填项
style str 交易类型
  "Market"市价
  "Limit"限价
  "fak"立即成交剩余自动撤销指令
  "fok"立即全部成交否则自动撤销指令
  "Stop"停损
  "ThisClose"对手价
  "DBEST" 对方最优价优先
  "WBEST" 本方最优价优先,
必填项
price float 交易价格,
  当style为"Limit"时为买入价格
  当style为"fak"、“fok”、"DBEST"、"WBEST"为保护价
  当style为"Stop"时为止损价格,
  当style为"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,代表不允许重复下单
min_volume int 可选参数,使用fak指令时,用于指定的最小成交数量,省略时默认为1
serial_id int 表示该下单语句的下单序列,编译时自动生成填充,无需用户操作(系统参数)
返回值
状态 返回值 返回类型 说明
成功 order_id int 订单ID,时交易订单的唯一标识,可用于交易过程追踪、仓位风险管理等
0 int 当order_queue或slithermethod参数为True时,其返回值恒为0
失败 None NoneType 当order_queue或slithermethod参数为True时,下单失败返回空值
-1 int 下单委托失败,具体失败原因可以根据交易日志判定
-2 int 当repeat为false,并且触发禁止重复下单限制时,系统会返回错误码-2
范例
#市价委托方式,买入平安银行1000股
buy_open("SZ000001", "Market", 0 , 1000)
#使用账号'12345'以市价方式买入2手螺纹钢。
buy_open("SQRB00", "Market", 0, 2, account='12345')
#使用账号'12345'以fak立即成交剩余自动撤销指令方式买入10手螺纹钢,且限定最小成交数量为2。
buy_open("SQAG00", "fak", 4600,volume = 10, min_volume=2,serial_id = 1)
1
2
3
4
5
6

# sell_close 平多(卖平)

sell_close (order_book_id, style, price, volume, amount, hedge_flag, order_queue, slithermethod, account, repeat,min_volume, serial_id)

参数
参数 类型 说明
order_book_id str 合约代码,必填项
style str 交易类型
  "Market"市价
  "Limit"限价
  "fak"立即成交剩余自动撤销指令
  "fok"立即全部成交否则自动撤销指令
  "Stop"停损
  "ThisClose"对手价
  "DBEST" 对方最优价优先
  "WBEST" 本方最优价优先,
必填项
price float 交易价格,
  当style为"Limit"时为卖入价格
  当style为"fak"、“fok”、"DBEST"、"WBEST"为保护价
  当style为"Stop"时为止损价格,
  当style为"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,代表不允许重复下单
min_volume int 可选参数,使用fak指令时,用于指定的最小成交数量,省略时默认为1
serial_id int 表示该下单语句的下单序列,编译时自动生成填充,无需用户操作(系统参数)
返回值
状态 返回值 返回类型 说明
成功 order_id int 订单ID,时交易订单的唯一标识,可用于交易过程追踪、仓位风险管理等
0 int 当order_queue或slithermethod参数为True时,其返回值恒为0
失败 None NoneType 当order_queue或slithermethod参数为True时,下单失败返回空值
-1 int 下单委托失败,具体失败原因可以根据交易日志判定
-2 int 当repeat为false,并且触发禁止重复下单限制时,系统会返回错误码-2
范例
#限价3600元,将当前账户的RBOO品种的20手仓位平掉。(平多)
sell_close("SQRB00", "Limit", 3600 , 20)

#使用账号'12345'以fak立即成交剩余自动撤销指令方式卖出10手螺纹钢,且限定最小成交数量为2。
sell_close("SQAG00", "fak", 4600,volume = 10, min_volume=2,serial_id = 1)
1
2
3
4
5

# sell_open 开空(卖开/融券开仓)

sell_open (order_book_id, style, price, volume, amount, hedge_flag, order_queue, slithermethod, account, repeat, min_volume, serial_id)

参数
参数 类型 说明
order_book_id str 合约代码,必填项
style str 交易类型
  "Market"市价
  "Limit"限价
  "fak"立即成交剩余自动撤销指令
  "fok"立即全部成交否则自动撤销指令
  "Stop"停损
  "ThisClose"对手价
  "DBEST" 对方最优价优先
  "WBEST" 本方最优价优先,
必填项
price float 交易价格,
  当style为"Limit"时为卖入价格
  当style为"fak"、“fok”、"DBEST"、"WBEST"为保护价
  当style为"Stop"时为止损价格,
  当style为"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,代表不允许重复下单
min_volume int 可选参数,使用fak指令时,用于指定的最小成交数量,省略时默认为1
serial_id int 表示该下单语句的下单序列,编译时自动生成填充,无需用户操作(系统参数)
返回值
状态 返回值 返回类型 说明
成功 order_id int 订单ID,时交易订单的唯一标识,可用于交易过程追踪、仓位风险管理等
0 int 当order_queue或slithermethod参数为True时,其返回值恒为0
失败 None NoneType 当order_queue或slithermethod参数为True时,下单失败返回空值
-1 int 下单委托失败,具体失败原因可以根据交易日志判定
-2 int 当repeat为false,并且触发禁止重复下单限制时,系统会返回错误码-2
范例
#开空
sell_open ("SQRB00", "Limit", 3600 , 20)

#使用账号'12345'以fak立即成交剩余自动撤销指令方式卖开10手螺纹钢,且限定最小成交数量为2。
sell_open("SQAG00", "fak", 4600,volume = 10, min_volume=2,serial_id = 1)
1
2
3
4
5

# buy_close 平空(买平/买券还券)

buy_close (order_book_id, style, price, volume, amount, hedge_flag, order_queue, slithermethod, account, repeat, min_volume, serial_id)

参数
参数 类型 说明
order_book_id str 【必须】合约代码,必填项
style str 交易类型:
  "Market"市价
  "Limit"限价
  "fak"立即成交剩余自动撤销指令
  "fok"立即全部成交否则自动撤销指令
  "Stop"停损
  "ThisClose"当前价
  "DBEST" 对方最优价优先
  "WBEST" 本方最优价优先,必须填
price float 交易价格,
  当style为"Limit"时为卖入价格
  当style为"fak"、“fok”、"DBEST"、"WBEST"为保护价
  当style为"Stop"时为止损价格,
  当style为"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,代表不允许重复下单
min_volume int 可选参数,使用fak指令时,用于指定的最小成交数量,省略时默认为1
serial_id int 表示该下单语句的下单序列,编译时自动生成填充,无需用户操作(系统参数)
返回值
状态 返回值 返回类型 说明
成功 order_id int 订单ID,时交易订单的唯一标识,可用于交易过程追踪、仓位风险管理等
0 int 当order_queue或slithermethod参数为True时,其返回值恒为0
失败 None NoneType 当order_queue或slithermethod参数为True时,下单失败返回空值
-1 int 下单委托失败,具体失败原因可以根据交易日志判定
-2 int 当repeat为false,并且触发禁止重复下单限制时,系统会返回错误码-2
范例
#平空
buy_close ("SQRB00", "Limit", 3600 , 20)
1
2

# get_orders 获取当日委托订单

get_orders (order_book_id, type, account)

获取当日委托订单。其数据来自账户栏的“委托记录”中的记录。

参数
参数 类型 说明
order_book_id str 合约代码,或者为"all"全部合约,必填项
type int 0:只取未成交订单  1:取全部订单, 必须填
account str 指定具体的交易帐号,若不指定帐号,则取默认登录帐号
返回值

​ list of Order对象 失败返回 None

范例

示例1:

#获取当日平安银行所有委托单的价格
id_list = get_orders("SZ000001", 1)
if not(id_list == None):
    for i in id_list:
        write_logging(str(i.price))
1
2
3
4
5

示例2:

#获取所有平安银行的未成交订单order对象
a = get_orders("SZ000001", 0)
1
2

# 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)
1
2
3
4
5
6

# 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)
1
2
3
4
5
6
7

# 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)
1
2
3
4

# get_account 得到投资者账户信息

get_account (type, account)

得到投资者账户信息。

参数
参数 类型 说明
type int 账户信息类别, 参数同PEL, 必须填
account str 指定具体的交易帐号,若不指定帐号,则取默认登录帐号
返回值

​返回相应账户信息数值, 失败返回None

范例
#获取账号'60032182'当前的浮动盈利
get_account(4, '60032182')
1
2

# get_account_book 得到当前登录所有账户列表

get_account_book()

得到当前登录所有账户列表, (注意也包括连接失败的)

参数

​无

返回值

​list of str 账户列表

范例
#获得登录的资金账号列表
account=get_account_book()
1
2

# isaccount 判断指定帐号是否是当前已登录有效帐号

isaccount(account)

判断指定帐号是否是当前已登录有效帐号

参数
参数 类型 说明
account str 指定具体的交易帐号,若不指定帐号,则取默认登录帐号
返回值

​bool 账户已登录则返回True,否则返回False

范例
#如果该账户已登录则返回True,否则返回False
account=isaccount("351579")
1
2

# 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))
1
2
3

# 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('未持仓')
1
2
3
4
5
6
7