问题描述
我用的是券商版 QMT,想试用策略交易的模拟交易,用真实帐户登录了 QMT,用“运行模式”的中的“模拟交易”,触发了交易条件,还是没有进行交易,是这样用模拟交易的,如图,哪里出问题?
解决方案
您好!您遇到的问题是因为在 QMT 平台的**“运行模式”(模拟运行)下,交易函数是无效的**,因此不会产生任何委托记录。
根据 QMT 官方 API 文档的说明:
运行模式指策略根据实时行情信号进行运算,以主图行情开始时间到当前时间为运行区间,进行策略的模拟运行,但不进行真实的委托。
注:模拟运行模式下交易函数无效。
如果您希望进行真正的“模拟交易”(即向模拟柜台发送委托并撮合成交),您需要按照以下步骤操作:
正确的模拟交易步骤
-
登录模拟账户:
首先,您需要确保您登录的是券商提供的模拟交易环境或模拟资金账号。如果您登录的是真实账户,发出的委托将会是真实的实盘交易。 -
将策略加入“模型交易”:
不要在策略编辑器中直接点击“运行”。您需要将编写好的策略加入到左侧导航栏的**“模型交易”**(或“策略交易”)模块中。 -
设置为“实盘”模式:
在“模型交易”中启动该策略时,将运行模式切换为“实盘”模式。
注意:只要您登录的是模拟资金账号,这里的“实盘”模式实际上就是向模拟柜台发送委托,从而实现模拟交易。 -
检查账号设置:
确保在策略代码的init函数中,使用ContextInfo.set_account('您的模拟资金账号')绑定了正确的模拟账号,或者在下单函数(如passorder)中传入了正确的模拟账号。
总结
- 策略编辑器中的“运行”按钮:仅用于在图表上模拟运行策略逻辑,不会触发下单函数。
- 真正的模拟交易:需要登录模拟账号 -> 加入“模型交易” -> 以“实盘”模式启动策略。
希望这能解决您的问题!如果需要测试信号是否触发,您可以在代码中加入 print() 打印日志,或者使用 ContextInfo.draw_text() 在图表上绘制文字来辅助调试。