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

量化软件 2025-02-11 2947
量化软件:恒生PTrade使用指南 7.【PTrade使用指南】- 融资融券函数  第1张
7.【PTrade使用指南】- 融资融券函数  第2张

融资融券交易类函数

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))
8.16 特征选择在量化投资中的应用
« 上一篇 2025-02-10
Python自动化炒股:基于强化学习的股票交易策略优化与实现的最佳实践
下一篇 » 2025-02-11