3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在量化交易中,科学的资金管理和仓位控制是策略稳健运行的核心。QMT 平台提供了 order_percent 函数,允许投资者根据当前投资组合价值(持仓市值 + 现金总和)的指定百分比进行买入或卖出操作。本文将详细介绍该函数的使用方法,并给出一个实现单只股票占总资产 10% 比例下单的完整策略示例。
order_percent(stockcode, percent[, style, price], ContextInfo[, accId])
'000002.SZ')。[-1, 1]。正数代表买入,负数代表卖出。例如 0.1 表示买入占总资产 10% 价值的股票。'LATEST'。可选值包括:
'LATEST': 最新价'FIX': 指定价(需配合 price 参数)'COMPETE': 对手价'MARKET': 市价'SALE5' ~ 'SALE1': 卖5至卖1价'BUY1' ~ 'BUY5': 买1至买5价style 为 'FIX' 时有效,表示指定的下单价格。'FIX')外,其他选价类型均以当前 K 线的收盘价进行撮合结算。以下是一个完整的 QMT Python 策略示例。该策略在初始化时绑定资金账号,并在运行到最后一根 K 线时,以最新价买入占总资产 10% 比例的平安银行(000001.SZ)。
#coding:gbk
def init(ContextInfo):
# 1. 设定交易账号(请替换为您的实际账号)
ContextInfo.accid = '6000000248'
ContextInfo.set_account(ContextInfo.accid)
# 2. 设定股票池
ContextInfo.stock = '000001.SZ'
ContextInfo.set_universe([ContextInfo.stock])
print("策略初始化完成,绑定账号:", ContextInfo.accid)
def handlebar(ContextInfo):
# 仅在最后一根 K 线(最新行情)触发下单,避免历史 K 线重复触发
if ContextInfo.is_last_bar():
# 设定下单比例为 10% (0.1)
order_ratio = 0.1
print(f"触发下单信号:以最新价买入 {ContextInfo.stock},目标比例 {order_ratio * 100}%")
# 调用 order_percent 函数
order_percent(
ContextInfo.stock,
order_ratio,
'LATEST',
ContextInfo,
ContextInfo.accid
)
Q: 为什么调用了 order_percent 却没有委托记录?
set_account);2. 账户内可用现金是否足够买入最少 1 手(100股)该股票;3. 是否在非交易时间或历史 K 线上运行且未开启回测。Q: 如何实现等比例卖出套现?
percent 参数设为负数即可。例如,order_percent('000001.SZ', -0.05, ContextInfo) 表示卖出占当前总资产 5% 价值的平安银行股票。