7.【PTrade使用指南】- 融资融券函数

融资融券交易类函数
margin_trade - 担保品买卖
margin_trade(security, amount, limit_price=None, market_type=None)
使用场景
该函数仅支持PTrade客户端可用,仅在两融回测、两融交易模块可用。
接口说明
该接口用于担保品买卖。
注意事项:
限价和委托类型都不传时默认取当前最新价进行委托;限价和委托类型都传入时以market_type为准
参数
security:股票代码(str);
amount:交易数量,正数表示买入,负数表示卖出(int);
limit_price:买卖限价(float);
market_type:市价委托类型,上证非科创板股票支持参数1、4,上证科创板股票支持参数0、1、2、4,深证股票支持参数0、2、3、4、5(int);
-
0:对手方最优价格;
-
1:最优五档即时成交剩余转限价;
-
2:本方最优价格;
-
3:即时成交剩余撤销;
-
4:最优五档即时成交剩余撤销;
-
5:全额成交或撤单;
返回
Order对象中的id或者None。如果创建订单成功,则返回Order对象的id,失败则返回None(str)
示例
def initialize(context):g.security = '600570.SS'set_universe(g.security)def handle_data(context, data):# 以系统最新价委托margin_trade(g.security, 100)# 以72块价格下一个限价单margin_trade(g.security, 100, limit_price=72)# 以最优五档即时成交剩余撤销委托margin_trade(g.security, 200, market_type=4)
margincash_open - 融资买入
margincash_open(security, amount, limit_price=None, market_type=None)
使用场景
该函数仅支持Ptrade客户端可用,仅在两融交易模块可用。
接口说明
该接口用于融资买入。
注意事项:
限价和委托类型都不传时默认取当前最新价进行委托;限价和委托类型都传入时以market_type为准
参数
security:股票代码(str);
amount:交易数量,输入正数(int);
limit_price:买卖限价(float);
market_type:市价委托类型,上证非科创板股票支持参数1、4,上证科创板股票支持参数0、1、2、4,深证股票支持参数0、2、3、4、5(int);
-
0:对手方最优价格;
-
1:最优五档即时成交剩余转限价;
-
2:本方最优价格;
-
3:即时成交剩余撤销;
-
4:最优五档即时成交剩余撤销;
-
5:全额成交或撤单;
返回
Order对象中的id或者None。如果创建订单成功,则返回Order对象的id,失败则返回None(str)
示例
def initialize(context):g.security = '600570.SS'set_universe(g.security)def handle_data(context, data):# 以72块价格下一个限价单margincash_open(g.security, 100, limit_price=72)# 以对手方最优价格委托margincash_open(g.security, 200, market_type=1)
margincash_close - 卖券还款
margincash_close(security, amount, limit_price=None)
使用场景
该函数仅支持Ptrade客户端可用,仅在两融交易模块可用。
接口说明
该接口用于卖券还款。
注意事项:
限价和委托类型都不传时默认取当前最新价进行委托;限价和委托类型都传入时以market_type为准
参数
security:股票代码(str);
amount:交易数量,输入正数(int);
limit_price:买卖限价(float);
返回
Order对象中的id或者None。如果创建订单成功,则返回Order对象的id,失败则返回None(str)
示例
def initialize(context):g.security = '600570.SS'set_universe(g.security)def handle_data(context, data):security = g.security# 卖100股还款margincash_close(security, 100)
margincash_direct_refund - 直接还款
margincash_direct_refund(value)
使用场景
该函数仅支持Ptrade客户端可用,仅在两融交易模块可用。
接口说明
该接口用于直接还款。
注意事项:
无
参数
value:还款金额(float);
返回
None
示例
def initialize(context):g.security = '600570.SS'set_universe(g.security)def handle_data(context, data):# 获取负债总额fin_compact_balance = get_margin_assert().get('fin_compact_balance')# 还款margincash_direct_refund(fin_compact_balance)
marginsec_open - 融券卖出
marginsec_open(security, amount, limit_price=None)
使用场景
该函数仅支持Ptrade客户端可用,仅在两融交易模块可用。
接口说明
该接口用于融券卖出。
注意事项:
限价和委托类型都不传时默认取当前最新价进行委托;限价和委托类型都传入时以market_type为准
参数
security:股票代码(str);
amount:交易数量,输入正数(int);
limit_price:买卖限价(float);
返回
Order对象中的id或者None。如果创建订单成功,则返回Order对象的id,失败则返回None(str)
示例
def initialize(context):g.security = '600030.SS'set_universe(g.security)def handle_data(context, data):security = g.security# 融券卖出100股marginsec_open(security, 100)
marginsec_close - 买券还券
marginsec_close(security, amount, limit_price=None)
使用场景
该函数仅支持Ptrade客户端可用,仅在两融交易模块可用。
接口说明
该接口用于买券还券。
注意事项:
限价和委托类型都不传时默认取当前最新价进行委托;限价和委托类型都传入时以market_type为准
参数
security:股票代码(str);
amount:交易数量,输入正数(int);
limit_price:买卖限价(float);
返回
Order对象中的id或者None。如果创建订单成功,则返回Order对象的id,失败则返回None(str)
示例
def initialize(context):g.security = '600030.SS'set_universe(g.security)def handle_data(context, data):security = g.security#买100股还券marginsec_close(security, 100)
marginsec_direct_refund - 直接还券
marginsec_direct_refund(security, amount)
使用场景
该函数仅支持Ptrade客户端可用,仅在两融交易模块可用。
接口说明
该接口用于直接还券。
注意事项:
无
参数
security:股票代码(str);
amount:交易数量,输入正数(int);
返回
None
示例
def initialize(context):g.security = '600030.SS'set_universe(g.security)def handle_data(context, data):security = g.security#买100股marginsec_direct_refund(security, 100)
融资融券查询类函数
get_margincash_stocks - 获取融资标的列表
get_margincash_stocks()
使用场景
该函数仅支持Ptrade客户端可用,仅在两融交易模块可用。
接口说明
该接口用于获取融资标的。
注意事项:
无
参数
无
返回
返回上交所、深交所最近一次披露的的可融资标的列表的list(list[str,...])
示例
def initialize(context):g.security = '600570.SS'set_universe(g.security)def handle_data(context, data):# 获取最新的融资标的列表margincash_stocks = get_margincash_stocks()log.info(margincash_stocks)
get_marginsec_stocks - 获取融券标的列表
get_marginsec_stocks()
使用场景
该函数仅支持Ptrade客户端可用,仅在两融交易模块可用。
接口说明
该接口用于获取融券标的。
注意事项:
无
参数
无
返回
返回上交所、深交所最近一次披露的的可融券标的列表的list(list[str,...])
示例
def initialize(context):g.security = '600570.SS'set_universe(g.security)def handle_data(context, data):# 获取最新的融券标的列表marginsec_stocks = get_marginsec_stocks()log.info(marginsec_stocks)
get_margin_contract - 合约查询
get_margin_contract()
使用场景
该函数仅支持Ptrade客户端可用,仅在两融交易模块可用。
接口说明
该接口用于合约查询。
注意事项:
无
参数
无
返回
正常返回一个DataFrame类型字段,columns为每个合约所包含的信息,异常返回None
合约包含以下信息:
-
open_date:开户日期(str:int);
-
compact_id:合约编号(str:str);
-
stock_code:证券代码(str:str);
-
entrust_no:委托编号(str:int);
-
entrust_price:委托价格(str:float);
-
entrust_amount:委托数量(str:float);
-
business_amount:成交数量(str:float);
-
business_balance:成交金额(str:float);
-
compact_type:合约类别(str:str);
-
compact_status:合约状态(str:str);
-
repAId_interest:已还利息(str:float);
-
repaid_amount:已还数量(str:float);
-
repaid_balance:已还金额(str:float);
-
used_bail_balance:已用保证金(str:float);
-
ret_end_date:归还截止日(str:int);
-
date_clear:清算日期(str:int);
-
fin_income:融资合约盈亏(str:float);
-
slo_income:融券合约盈亏(str:float);
-
total_debit:负债总额(str:float);
-
compact_interest:合约利息金额(str:float);
-
real_compact_interest:日间实时利息金额(str:float);
-
real_compact_balance:日间实时合约金额(str:float);
-
real_compact_amount:日间实时合约数量(str:float);
字段备注:
-
compact_type -- 合约类别,0-融资,1-融券,2-其他负债;;
-
compact_status -- 合约状态;
-
0 -- 开仓未归还;
-
1 -- 部分归还;
-
2 -- 合约已过期;
-
3 -- 客户自行归还;
-
4 -- 手工了结;
-
5 -- 未形成负债;
示例
def initialize(context):g.security = '600570.SS'set_universe(g.security)def handle_data(context, data):# 获取最新合约df = get_margin_contract()log.info(df)
get_margin_contractreal - 实时合约流水查询
get_margin_contractreal()
使用场景
该函数仅支持Ptrade客户端可用,仅在两融交易模块可用。
接口说明
该接口用于实时合约流水查询。
注意事项:
无
参数
无
返回
正常返回一个DataFrame类型字段,columns为每个合约所包含的信息,异常返回None
实时合约流水包含以下信息:
-
init_date:交易日期(str:int);
-
compact_id:合约编号(str:str);
-
client_id:客户编号(str:str);
-
money_type:币种类别(str:str);
-
market_type:证券市场(str:str);
-
entrust_no:委托编号(str:int);
-
compact_type:合约类别(str:str);
-
stock_code:证券代码(str:str);
-
business_flag:业务标志(str:int);
-
occur_balance:发生金额(str:float);
-
post_balance:后资金额(str:float);
-
occur_amount:发生数量(str:float);
-
post_amount:后证券额(str:float);
-
occur_fare:发生费用(str:float);
-
post_fare:后余费用(str:float);
-
occur_interest:发生利息(str:float);
-
post_interest:后余利息(str:float);
-
remark:备注(str:str);
字段备注:
-
compact_type -- 合约类别,0-融资,1-融券,2-其他负债;;
示例
def initialize(context):g.security = '600570.SS'set_universe(g.security)def handle_data(context, data):# 获取实时流水df = get_margin_contractreal()log.info(df)
get_margin_assert - 信用资产查询
get_margin_assert()
使用场景
该函数仅支持Ptrade客户端可用,仅在两融交易模块可用。
接口说明
该接口用于信用资产查询。
注意事项:
无
参数
无
返回
正常返回一个dict类型字段,包含所有信用资产信息。异常返回空dict,如{}(dict[str:float,...])
实时合约流水包含以下信息:
-
assure_asset:担保资产(str:float);
-
total_debit:负债总额(str:float);
-
enable_bail_balance:可用保证金(str:float);
-
assure_enbuy_balance:买担保品可用资金(str:float);
-
fin_enrepaid_balance:现金还款可用资金(str:float);
-
fin_max_quota:融资额度上限(str:float);
-
fin_enable_quota:融资可用额度(str:float);
-
fin_used_quota:融资已用额度(str:float);
-
fin_compact_balance:融资合约金额(str:float);
-
fin_compact_fare:融资合约费用(str:float);
-
fin_compact_interest:融资合约利息(str:float);
-
slo_enable_quota:融券可用额度(str:float);
-
slo_compact_fare:融券合约费用(str:float);
-
slo_compact_interest:融券合约利息(str:float);
示例
def initialize(context):g.security = '600570.SS'set_universe(g.security)def handle_data(context, data):# 获取信用账户资产信息margin_assert = get_margin_assert()log.info(margin_assert)
get_assure_security_list - 担保券查询
get_assure_security_list()
使用场景
该函数仅支持Ptrade客户端可用,仅在两融交易模块可用。
接口说明
该接口用于担保券查询。
注意事项:
无
参数
无
返回
返回上交所、深交所最近一次披露的担保券列表的list(list[str,...])
示例
def initialize(context):g.security = '600570.SS'set_universe(g.security)def handle_data(context, data):# 获取最新的担保券列表assure_security = get_assure_security_list()log.info(assure_security)
get_margincash_open_amount - 融资标的最大可买数量查询
get_margincash_open_amount(security, price=None)
使用场景
该函数仅支持Ptrade客户端可用,仅在两融交易模块可用。
接口说明
该接口用于融资标的最大可买数量查询。
注意事项:
无
参数
security:股票代码(str);
price:限定价格(float);
返回
正常返回一个dict类型对象,key为股票代码,values为最大数量。异常返回空dict,如{}(dict[str:int])
示例
def initialize(context):g.security = '600570.SS'set_universe(g.security)def handle_data(context, data):security = g.security# 查询恒生电子最大可融资买入数量margincash_open_dict = get_margincash_open_amount(security)if margincash_open_dict is not None:log.info(margincash_open_dict.get(security))
get_margincash_close_amount - 卖券还款标的最大可卖数量查询
get_margincash_close_amount(security, price=None)
使用场景
该函数仅支持Ptrade客户端可用,仅在两融交易模块可用。
接口说明
该接口用于卖券还款标的最大可卖数量查询。
注意事项:
无
参数
security:股票代码(str);
price:限定价格(float);
返回
正常返回一个dict类型对象,key为股票代码,values为最大数量。异常返回空dict,如{}(dict[str:int])
示例
def initialize(context):g.security = '600570.SS'set_universe(g.security)def handle_data(context, data):security = g.security# 查询恒生电子最大可卖券还款数量margincash_close_dict = get_margincash_close_amount(security)if margincash_close_dict is not None:log.info(margincash_close_dict.get(security))
get_marginsec_open_amount - 融券标的最大可卖数量查询
get_marginsec_open_amount(security, price=None)
使用场景
该函数仅支持Ptrade客户端可用,仅在两融交易模块可用。
接口说明
该接口用于融券标的最大可卖数量查询。
注意事项:
无
参数
security:股票代码(str);
price:限定价格(float);
返回
正常返回一个dict类型对象,key为股票代码,values为最大数量。异常返回空dict,如{}(dict[str:int])
示例
def initialize(context):g.security = '600030.SS'set_universe(g.security)def handle_data(context, data):security = g.security# 查询中信证券最大可融券卖出数量marginsec_open_dict = get_marginsec_open_amount(security)if marginsec_open_dict is not None:log.info(marginsec_open_dict.get(security))
get_marginsec_close_amount - 买券还券标的最大可买数量查询
get_marginsec_close_amount(security, price=None)
使用场景
该函数仅支持Ptrade客户端可用,仅在两融交易模块可用。
接口说明
该接口用于买券还券标的最大可买数量查询。
注意事项:
无
参数
security:股票代码(str);
price:限定价格(float);
返回
正常返回一个dict类型对象,key为股票代码,values为最大数量。异常返回空dict,如{}(dict[str:int])
示例
def initialize(context):g.security = '600030.SS'set_universe(g.security)def handle_data(context, data):security = g.security# 查询中信证券最大可买券还券数量marginsec_close_dict = get_marginsec_close_amount(security)if marginsec_close_dict is not None:log.info(marginsec_close_dict.get(security))
get_margin_entrans_amount - 现券还券数量查询
get_margin_entrans_amount(security)
使用场景
该函数仅支持Ptrade客户端可用,仅在两融交易模块可用。
接口说明
该接口用于现券还券数量查询。
注意事项:
无
参数
security:股票代码(str);
返回
正常返回一个dict类型对象,key为股票代码,values为最大数量。异常返回空dict,如{}(dict[str:int])
示例
def initialize(context):g.security = '600030.SS'set_universe(g.security)def handle_data(context, data):security = g.security# 查询中信证券最大可现券还券数量margin_entrans_dict = get_margin_entrans_amount(security)if margin_entrans_dict is not None:log.info(margin_entrans_dict.get(security))
