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

PTrade 中 set_volume_ratio 函数在哪个模块可用?为什么交易模块调用会报错?

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

问题描述

PTrade中set_volume_ratio函数在哪个模块可用?

交易模块调用set_volume_ratio时报错

解决方案

在 PTrade 量化交易平台中,set_volume_ratio 函数的使用场景仅限于回测模块

为什么在交易模块调用会报错?

因为 set_volume_ratio 的设计初衷是用于设置回测中单笔委托的成交比例,使得盘口流动性方面的设置尽量逼近真实交易场景。在真实的实盘交易(交易模块)中,成交比例是由市场真实的买卖盘流动性决定的,无法由策略人为设定。因此,PTrade 引擎在交易模块中不支持该函数,如果在交易模块(实盘或模拟盘)中调用它,就会引发报错。

接口说明与正确用法

  • 接口名称set_volume_ratio(volume_ratio=0.25)
  • 使用场景:仅在回测模块可用。
  • 参数说明volume_ratio(float类型),默认值为 0.25。即指本周期最大成交数量为本周期市场可成交总量的四分之一。
  • 注意事项:假如委托下单数量大于成交比例计算后的数量,系统会按成交比例计算后的数量撮合,差额部分委托数量不会继续挂单。

代码示例(仅限回测)

def initialize(context):
    g.security = '600570.SS'
    set_universe(g.security)
    # 将最大成交数量设置为本周期可成交总量的二分之一
    # 注意:此代码仅在回测环境中有效,实盘交易请删除或注释掉此行
    set_volume_ratio(volume_ratio = 0.5)

def handle_data(context, data):
    pass

解决方案

如果您正在将回测策略迁移到实盘交易环境,请务必在 initialize 函数中删除或注释掉 set_volume_ratio 以及其他仅限回测使用的设置函数(如 set_slippage, set_commission 等),以确保交易策略能够正常启动运行。