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

ptrade 期货回测教程:如何动态获取与设置期货保证金比例?

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

问题描述

ptrade 期货回测:如何动态获取并设置保证金比例?
ptrade 如何在回测中查询和设置期货交易代码(如 CU)的保证金比例?

解决方案

ptrade 期货回测:如何动态获取并设置保证金比例?

在进行期货量化回测时,合理设置和动态获取保证金比例对于资金管理和风险控制至关重要。ptrade 平台提供了专门的 API 接口,允许用户针对特定的期货交易代码(如铜 CU、苹果 AP 等)进行保证金比例的设置与查询。


一、核心 API 介绍

1. 设置期货保证金比例:set_margin_rate

用于设置期货收取的保证金比例,该设置是按照交易代码(如 CUAU)而非具体合约代码(如 CU2112.XSGE)进行的。

  • 使用场景:仅在回测、交易模块可用。
  • 接口定义set_margin_rate(transaction_code, margin_rate)
  • 参数说明
    • transaction_code (str):期货合约的交易代码(如 "CU")。
    • margin_rate (float):保证金比例。例如,设置为 5% 则输入 0.05

2. 获取期货保证金比例:get_margin_rate

用于获取用户当前设置的保证金比例。如果用户未手动设置,则默认返回交易所设定的保证金比例。

  • 使用场景:仅在回测模块可用。
  • 接口定义get_margin_rate(transaction_code)
  • 参数说明
    • transaction_code (str):期货合约的交易代码(如 "CU")。
  • 返回值
    • float:用户设置或默认的保证金比例。

二、完整策略示例代码

以下示例展示了如何在初始化时设置沪铜(CU)的保证金比例,并在每日盘前阶段动态获取并打印该比例:

def initialize(context):
    # 初始化策略,设置操作的期货合约
    g.security = "CU2112.XSGE"
    set_universe(g.security)
    
    # 1. 设置沪铜(CU)品种的保证金比例为 8%
    set_margin_rate("CU", 0.08)

def before_trading_start(context, data):
    # 2. 获取并打印沪铜(CU)品种的保证金比例
    cu_margin_rate = get_margin_rate("CU")
    log.info("当前沪铜(CU)的保证金比例为: %s" % cu_margin_rate)
    
    # 获取未手动设置的苹果(AP)品种的默认保证金比例
    ap_margin_rate = get_margin_rate("AP")
    log.info("当前苹果(AP)的默认保证金比例为: %s" % ap_margin_rate)

def handle_data(context, data):
    # 盘中交易逻辑
    pass

三、注意事项

  1. 交易代码 vs 合约代码
    • 传入 set_margin_rateget_margin_rate 的参数必须是交易代码(如 "CU"),而不是带具体年份和交易所后缀的合约代码(如 "CU2112.XSGE")。
  2. 环境限制
    • get_margin_rate 接口仅在回测模块可用,实盘交易中无法使用此接口查询。
    • set_margin_rate 在回测和交易模块中均可调用。