3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 QMT 量化交易平台中,针对您的两个需求,分别有对应的便捷交易函数可以使用:
order_percent 函数。order_target_percent 函数。order_percent(stockcode, percent, ...)
percent 为小数,例如 0.05 代表 5%。正数代表买入,负数代表卖出。order_target_percent(stockcode, tar_percent, ...)
tar_percent 为目标比例小数,例如 0.1 代表 10%。以下是一个完整的 Python 策略示例,展示了如何在 handlebar 中实现这两个功能。
# -*- coding: gbk -*-
def init(ContextInfo):
# 设置资金账号,请替换为您真实的资金账号
ContextInfo.accID = '6000000000'
# 绑定账号,用于接收回报
ContextInfo.set_account(ContextInfo.accID)
print("策略初始化完成")
def handlebar(ContextInfo):
# 获取当前K线对应的股票代码(假设在主图运行)
# 也可以直接指定,如 stock_code = '000001.SZ'
stock_code = ContextInfo.stockcode
# 获取当前账号ID
account_id = ContextInfo.accID
# ------------------------------------------------------------------
# 场景 1:用总资产的一部分资金去买入
# ------------------------------------------------------------------
# 示例:以最新价买入,买入金额为总资产的 5%
# 注意:这里是“增量”买入。如果总资产100万,这里会下单买入5万元市值的股票。
# order_percent(stock_code, 0.05, ContextInfo, account_id)
# ------------------------------------------------------------------
# 场景 2:把这只股票的仓位调整到总资产的 10%
# ------------------------------------------------------------------
# 示例:以最新价调整仓位,使其市值占比达到 10%
# 注意:这里是“目标”调整。
# 如果当前持仓占比为 0%,系统会买入 10%;
# 如果当前持仓占比为 15%,系统会卖出 5%,使其降至 10%。
order_target_percent(stock_code, 0.10, ContextInfo, account_id)
# ------------------------------------------------------------------
# 补充说明:
# 上述函数默认使用 'LATEST' (最新价) 下单。
# 如果需要指定价格类型(如对手价 'COMPETE' 或 指定价 'FIX'),可以增加参数。
# 例如:使用对手价将仓位调整到 10%
# order_target_percent(stock_code, 0.10, 'COMPETE', ContextInfo, account_id)
order_percent 买入),API 将不会创建发送订单。可用资金 + 持仓市值 + 冻结资金。Q: order_percent 和 order_target_percent 有什么本质区别?
A: order_percent 是增量操作,它只关心本次要买卖多少比例的资产,不考虑你手里原本有多少货。order_target_percent 是目标导向操作,它关心的是最终结果,会自动计算当前持仓和目标持仓的差额来进行买卖。
Q: 如果我想用指定价格(例如限价)来调整仓位怎么办?
A: 您可以在函数中传入价格类型和价格参数。例如,想以 10.5 元的价格将仓位调整到 10%,可以写:order_target_percent('000001.SZ', 0.10, 'FIX', 10.5, ContextInfo, account_id)。
Q: 这里的百分比是 0-100 还是 0-1?
A: 参数使用的是小数。0.1 代表 10%,1.0 代表 100%。请务必注意不要填错,否则可能导致满仓或下单失败。