🚀 AI 一键生成 ptrade 策略代码

ptrade量化平台两融策略中如何正确使用下单接口?

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

问题描述

两融策略是否可以使用order接口?

/

解决方案

在 ptrade 量化平台中编写融资融券(两融)策略时,不建议且通常不能直接使用普通的 order 系列接口来进行信用交易操作。ptrade 为两融业务提供了专门的 API 接口,以区分普通账户交易和信用账户交易。

为什么不能使用普通的 order 接口?

普通的 orderorder_targetorder_value 等接口主要用于普通股票账户的买卖操作。在两融账户中,交易行为被细分为担保品买卖、融资买入、融券卖出、卖券还款、买券还券等多种复杂的业务类型,普通的 order 接口无法表达这些具体的信用交易指令。

两融策略应该使用哪些接口?

在两融策略中,您需要根据具体的业务场景使用 ptrade 提供的融资融券专用函数

1. 担保品买卖(相当于普通买卖)

如果您只是在两融账户中用自有资金买卖股票(作为担保品),应使用 margin_trade 接口:

  • margin_trade(security, amount, limit_price=None, market_type=None):担保品买卖。

2. 融资交易

  • margincash_open(security, amount, limit_price=None, market_type=None)融资买入(向券商借钱买股票)。
  • margincash_close(security, amount, limit_price=None)卖券还款(卖出股票以偿还融资负债)。
  • margincash_direct_refund(value)直接还款(用账户现金直接偿还融资负债)。

3. 融券交易

  • marginsec_open(security, amount, limit_price=None)融券卖出(向券商借股票卖出)。
  • marginsec_close(security, amount, limit_price=None)买券还券(买入股票以偿还融券负债)。
  • marginsec_direct_refund(security, amount)直接还券(用账户现有的股票直接偿还融券负债)。

代码示例对比

错误做法(在两融策略中直接用 order 试图融资):

def handle_data(context, data):
    # 错误:order 接口无法指定为融资买入
    order('600570.SS', 100)

正确做法(使用两融专用接口):

def handle_data(context, data):
    # 1. 担保品买入(用自有资金)
    margin_trade('600570.SS', 100)
    
    # 2. 融资买入(借钱买入)
    # 先查询最大可融资买入数量
    amount_dict = get_margincash_open_amount('600570.SS')
    if amount_dict and amount_dict.get('600570.SS', 0) >= 100:
        margincash_open('600570.SS', 100)

总结

在开发 ptrade 两融策略时,请务必摒弃普通账户的 order 接口,全面改用 margin_ 开头的两融专用接口,并结合 get_margincash_open_amount 等两融查询接口来控制仓位和资金风险。