🚀 AI 一键生成 ptrade 策略代码
立即体验

ptrade 两融融券实操指南:从 marginsec_open 融券卖出到买券还券

ptrade | 发布时间: 2026/7/23
以下内容由 EasyQuant 生成。

问题描述

请根据以下 SEO 主题生成完整页面内容:

Title: ptrade 两融融券实操指南:从 marginsec_open 融券卖出到买券还券

Question: 如何在 ptrade 信用账户中使用 API 进行融券卖出与还券操作?

解决方案

在 ptrade 平台的两融(融资融券)交易场景中,对冲或做空策略通常需要使用融券相关接口。本文将详细介绍融券交易的核心 API 及其具体使用方法。

一、核心 API 介绍

  1. marginsec_open(security, amount, limit_price=None)

    • 功能:融券卖出(开仓做空)。
    • 参数
      • security (str):股票代码,如 '600030.SS'
      • amount (int):交易数量,必须为正整数
      • limit_price (float, 可选):委托限价,若不传则默认取系统最新价。
    • 返回:订单 ID(字符串)或 None
  2. marginsec_close(security, amount, limit_price=None)

    • 功能:买券还券(使用资金买入股票归还融券负债)。
    • 参数
      • security (str):股票代码。
      • amount (int):交易数量,必须为正整数
      • limit_price (float, 可选):买入限价。
    • 返回:订单 ID 或 None
  3. marginsec_direct_refund(security, amount)

    • 功能:直接还券(使用现持有的股票直接归还融券负债)。
    • 参数
      • security (str):股票代码。
      • amount (int):还券数量,必须为正整数
  4. get_marginsec_stocks()

    • 功能:获取可融券标的股票列表。
  5. get_marginsec_open_amount(security, price=None)

    • 功能:查询指定标的最大可融券卖出数量。

二、代码实战示例

以下是一个完整的两融策略框架,演示了融券卖出与买券还券的完整生命周期:

def initialize(context):
    # 设置标的股票(如中信证券)
    g.security = '600030.SS'
    set_universe(g.security)
    g.traded = False

def handle_data(context, data):
    # 1. 检查标的是否在可融券列表中
    sec_stocks = get_marginsec_stocks()
    if g.security not in sec_stocks:
        log.info("%s 不在可融券标的列表中" % g.security)
        return

    # 2. 融券卖出逻辑示例
    if not g.traded:
        # 查询最大可融券卖出数量
        max_amount_dict = get_marginsec_open_amount(g.security)
        if max_amount_dict and g.security in max_amount_dict:
            max_amount = max_amount_dict.get(g.security, 0)
            if max_amount >= 100:
                # 融券卖出 100 股
                order_id = marginsec_open(g.security, 100)
                log.info("融券卖出下单成功,订单ID: %s" % order_id)
                g.traded = True

    # 3. 买券还券平仓逻辑示例(此处仅为演示,实际交易可根据平仓信号触发)
    # elif 平仓条件:
    #     marginsec_close(g.security, 100)

三、实操注意事项

  1. 运行环境:融券相关 API 仅支持在客户端的两融交易模块使用,回测或普通股票交易场景调用无效。
  2. 数量参数:无论是开仓卖出 (marginsec_open) 还是平仓还券 (marginsec_close),amount 参数均需传入正整数
  3. 头寸与配额:执行融券卖出前,建议通过 get_marginsec_open_amount 确认券商柜台当前是否有足够的融券头寸。