3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在进行期货量化回测时,合理设置和动态获取保证金比例对于资金管理和风险控制至关重要。ptrade 平台提供了专门的 API 接口,允许用户针对特定的期货交易代码(如铜 CU、苹果 AP 等)进行保证金比例的设置与查询。
set_margin_rate用于设置期货收取的保证金比例,该设置是按照交易代码(如 CU、AU)而非具体合约代码(如 CU2112.XSGE)进行的。
set_margin_rate(transaction_code, margin_rate)transaction_code (str):期货合约的交易代码(如 "CU")。margin_rate (float):保证金比例。例如,设置为 5% 则输入 0.05。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
set_margin_rate 和 get_margin_rate 的参数必须是交易代码(如 "CU"),而不是带具体年份和交易所后缀的合约代码(如 "CU2112.XSGE")。get_margin_rate 接口仅在回测模块可用,实盘交易中无法使用此接口查询。set_margin_rate 在回测和交易模块中均可调用。