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

ptrade 期货交易进阶:如何在期货交易中设置投机、套保与套利类型(hedge_type)?

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

问题描述

ptrade 期货交易进阶:利用投机、套保与套利类型控制报单属性
ptrade 的期货交易函数中,如何设置不同的投机/套保类型(hedge_type)?

解决方案

在 ptrade 量化交易平台中,进行期货交易时,可以通过设置不同的**投机/套保类型(hedge_type)**来控制报单属性。以下是关于 hedge_type 的详细说明、数据字典以及如何在策略中进行配置和使用的指南。

一、hedge_type 数据字典

在 ptrade 的底层数据结构中,hedge_type(投机/套保类型)对应的取值如下:

  • "0" -- 投机 (Speculation)
  • "1" -- 套保 (Hedging)
  • "2" -- 套利 (Arbitrage)
  • "3" -- 做市商 (Market Maker)
  • "4" -- 备兑 (Covered)

二、如何在期货交易函数中使用?

ptrade 提供了四个核心的期货交易函数:

  1. buy_open(contract, amount, limit_price=None) -- 多开(买入开仓)
  2. sell_close(contract, amount, limit_price=None, close_today=False) -- 多平(卖出平仓)
  3. sell_open(contract, amount, limit_price=None) -- 空开(卖出开仓)
  4. buy_close(contract, amount, limit_price=None, close_today=False) -- 空平(买入平仓)

1. 保证金比例设置

在回测或交易初始化时,可以通过 set_margin_rate 接口设置对应期货交易代码的保证金比例:

set_margin_rate(transaction_code, margin_rate)
  • transaction_code:期货合约的交易代码(如沪铜 "CU")。
  • margin_rate:保证金比例(如 5% 传入 0.05)。

2. 手续费设置

在回测模块中,可以通过 set_future_commission 接口设置手续费:

set_future_commission(transaction_code, commission)

三、期货交易策略示例(双均线与下单)

以下是一个在 ptrade 中进行期货交易的完整策略示例。该策略在初始化时设置了保证金比例与手续费,并在盘中根据信号执行开平仓操作:

def initialize(context):
    # 设置操作的期货合约
    g.security = ['CU2112.XSGE', 'IF2112.CCFX']
    set_universe(g.security)
    
    # 1. 设置期货保证金比例(以沪铜 CU 为例,设为 8%)
    set_margin_rate("CU", 0.08)
    
    # 2. 设置期货手续费(以沪铜 CU 为例,设为万分之零点四)
    set_future_commission("CU", 0.00004)

def before_trading_start(context, data):
    # 获取设置的保证金比例进行确认
    margin_rate = get_margin_rate("CU")
    log.info("当前沪铜保证金比例: %s" % margin_rate)

def handle_data(context, data):
    # 示例:买入开仓(多开)
    # limit_price 入参时需参考对应品种的价格变动规则,不入参则默认以最新价报单
    buy_open('CU2112.XSGE', 1, limit_price=52220)
    
    # 示例:卖出平仓(多平)
    # close_today=True 仅对上海期货交易所生效(优先平今仓)
    sell_close('CU2112.XSGE', 1, limit_price=52200, close_today=True)

四、注意事项

  1. 价格精度:不同期货品种的最小变动价位(每一跳价格)不同,在使用限价单(limit_price)时,务必对价格的小数点位数和跳价进行处理,否则会导致柜台废单。
  2. 平今/平昨限制close_today=True 仅对上海期货交易所(XSGE)生效,其他交易所无需传入此参数(若强行设置,系统会警告并自动转换为 False)。