3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 PTrade 量化交易平台中,查询融券负债的“买券还券”最大可买数量,需要使用 get_marginsec_close_amount 函数。
该函数用于查询在进行“买券还券”操作时,某个标的的最大可买数量。
get_marginsec_close_amount(security, price=None)
security (str): 股票代码(例如 '600519.SS')。price (float, 可选): 限定价格。如果不传,通常按当前市价或柜台规则计算。dict),Key 为股票代码,Value 为最大可买数量(int)。{}。以下是一个完整的策略示例,展示如何在盘中查询指定标的的买券还券最大可买数量:
def initialize(context):
# 初始化策略,设置要操作的标的
# 注意:必须是两融标的
g.security = '600519.SS'
set_universe(g.security)
def handle_data(context, data):
# 仅在交易模式下运行,避免回测报错(虽然该函数仅交易可用,加判断更稳健)
if is_trade():
# 1. 不指定价格查询(通常按市价)
max_amount_info = get_marginsec_close_amount(g.security)
if max_amount_info:
max_qty = max_amount_info.get(g.security)
log.info("【市价】股票 %s 买券还券最大可买数量: %s" % (g.security, max_qty))
else:
log.info("查询失败或无数据")
# 2. 指定价格查询(例如指定价格为 1700.00)
# limit_price = 1700.00
# max_amount_info_limit = get_marginsec_close_amount(g.security, price=limit_price)
# if max_amount_info_limit:
# max_qty_limit = max_amount_info_limit.get(g.security)
# log.info("【限价 %s】股票 %s 买券还券最大可买数量: %s" % (limit_price, g.security, max_qty_limit))
Q: get_marginsec_close_amount 和 get_margincash_close_amount 有什么区别?
A:
get_marginsec_close_amount 是查询买券还券(针对融券负债)的最大可买数量。get_margincash_close_amount 是查询卖券还款(针对融资负债)的最大可卖数量。Q: 为什么我在回测中调用这个函数返回 None 或空字典?
A: 该函数属于交易专用函数,依赖于柜台的实时资产和负债数据。回测环境是基于历史数据的沙箱环境,无法连接真实柜台获取信用资产信息,因此在回测中不可用。
Q: 返回的数量单位是什么?
A: 返回的是股数(int 类型)。