问题描述
我用的是券商版 QMT,想试用策略交易的模拟交易,用真实帐户登录了 QMT,用“运行模式”的中的“模拟交易”,触发了交易条件,还是没有进行交易,是这样用模拟交易的,如图,哪里出问题?
解决方案
在 QMT 平台中,要正确使用模拟交易功能并向模拟柜台发送真实的委托,需要注意“运行模式”的设置以及策略的运行环境。
根据 QMT API 文档,回测、运行两种模式的区别如下:
- 回测模式:指策略以历史行情为依据进行运算,投资者可观察该策略在历史行情所获得的年化收益率等指标表现。回测模式目前仅支持股票、期货、ETF期权三种业务。
- 运行模式:指策略根据实时行情信号进行运算,以主图行情开始时间到当前时间为运行区间,进行策略的模拟运行,但不进行真实的委托。运行模式可以支持股票、期货、ETF期权、两融、沪港通、深港通等业务品种。
为什么你的模拟交易没有触发真实委托?
你提到使用了“运行模式”中的“模拟交易”,触发了交易条件但没有进行交易。这是因为在 QMT 的策略编辑器中,点击“运行”按钮(即运行模式),策略只会根据实时行情信号进行运算和模拟运行,它不会向任何柜台(包括模拟柜台和实盘柜台)发送真实的委托指令。这主要用于在图表上观察信号的产生,而不会产生实际的交易动作。
如何正确向模拟柜台发送委托?
如果你希望策略在触发条件时,向你登录的模拟账户(或实盘账户)发送真实的委托指令,你需要按照以下步骤操作:
- 将策略加入到“模型交易”中:不要仅仅在策略编辑器中点击“运行”。你需要将编写好的策略添加到 QMT 平台的“模型交易”模块中。
- 切换为“实盘”模式:在“模型交易”模块中,将该策略的运行模式切换为**“实盘”模式**。
注意:这里的“实盘”模式是指策略会向你当前登录的资金账号发送真实的委托指令。如果你当前登录的是券商提供的模拟资金账号,那么策略就会向模拟柜台发送委托,从而实现真正的“模拟交易”。如果你登录的是真实的资金账号,那么就会进行真实的实盘交易。
总结:
- 策略编辑器中的“运行” = 仅在图表上模拟信号,不发委托。
- 模型交易中的“实盘” + 登录模拟账号 = 真正的模拟交易(向模拟柜台发委托)。
- 模型交易中的“实盘” + 登录真实账号 = 真正的实盘交易(向实盘柜台发委托)。
请确保你已经将策略加入到“模型交易”中,并且将模式设置为“实盘”,同时确认你当前登录的是模拟资金账号。此外,还需要确保在策略的 init 函数中正确使用了 ContextInfo.set_account('你的模拟账号') 来绑定交易账号。