3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 ptrade 量化交易平台中,进行期货交易时,可以通过设置不同的**投机/套保类型(hedge_type)**来控制报单属性。以下是关于 hedge_type 的详细说明、数据字典以及如何在策略中进行配置和使用的指南。
hedge_type 数据字典在 ptrade 的底层数据结构中,hedge_type(投机/套保类型)对应的取值如下:
ptrade 提供了四个核心的期货交易函数:
buy_open(contract, amount, limit_price=None) -- 多开(买入开仓)sell_close(contract, amount, limit_price=None, close_today=False) -- 多平(卖出平仓)sell_open(contract, amount, limit_price=None) -- 空开(卖出开仓)buy_close(contract, amount, limit_price=None, close_today=False) -- 空平(买入平仓)在回测或交易初始化时,可以通过 set_margin_rate 接口设置对应期货交易代码的保证金比例:
set_margin_rate(transaction_code, margin_rate)
transaction_code:期货合约的交易代码(如沪铜 "CU")。margin_rate:保证金比例(如 5% 传入 0.05)。在回测模块中,可以通过 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)
limit_price)时,务必对价格的小数点位数和跳价进行处理,否则会导致柜台废单。close_today=True 仅对上海期货交易所(XSGE)生效,其他交易所无需传入此参数(若强行设置,系统会警告并自动转换为 False)。