# 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
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
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
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
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
3
4
5
示例2:
#获取所有平安银行的未成交订单order对象
a = get_orders("SZ000001", 0)
1
2
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
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
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
2
3
4
# get_account 得到投资者账户信息
get_account (type, account)
得到投资者账户信息。
参数
参数 | 类型 | 说明 |
---|---|---|
type | int | 账户信息类别, 参数同PEL, 必须填 |
account | str | 指定具体的交易帐号,若不指定帐号,则取默认登录帐号 |
返回值
返回相应账户信息数值, 失败返回None
范例
#获取账号'60032182'当前的浮动盈利
get_account(4, '60032182')
1
2
2
# get_account_book 得到当前登录所有账户列表
get_account_book()
得到当前登录所有账户列表, (注意也包括连接失败的)
参数
无
返回值
list of str 账户列表
范例
#获得登录的资金账号列表
account=get_account_book()
1
2
2
# isaccount 判断指定帐号是否是当前已登录有效帐号
isaccount(account)
判断指定帐号是否是当前已登录有效帐号
参数
参数 | 类型 | 说明 |
---|---|---|
account | str | 指定具体的交易帐号,若不指定帐号,则取默认登录帐号 |
返回值
bool 账户已登录则返回True,否则返回False
范例
#如果该账户已登录则返回True,否则返回False
account=isaccount("351579")
1
2
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
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
2
3
4
5
6
7