QMT小技巧|怎么用 VBA 下“算法单”
发布时间:20小时前阅读:4
想用 Excel 做界面、用 VBA 一键触发下单?思路很简单:VBA 负责把参数拼好并发出去,QMT 负责接收并执行算法/条件单。下面给你一个清晰流程。
1)准备工作
- 先装好并登录 QMT
- 确认你的 QMT 已开启对外接口/本地服务(不同券商版本叫法不一样)
- Excel 启用宏(VBA 可运行)
2)核心思路(最常用的两种)
A. VBA 调用本地接口(HTTP/Socket)
优点:速度快、自动化程度高
做法:VBA 用 XMLHTTP 把“证券代码、买卖方向、数量、算法类型、限价/触发价”等参数发给 QMT 的本地接口,由 QMT 执行算法单。
VBA 示例(演示用,接口地址/参数名以你券商QMT为准):
Sub SendAlgoOrder()
Dim http As Object, url As String, body As String
Set http = CreateObject("MSXML2.XMLHTTP")
url = "http://127.0.0.1:xxxx/algo_order"
body = "{""symbol"":""600000.SH"",""side"":""BUY"",""qty"":1000,""algo"":""TWAP"",""duration"":300}"
http.Open "POST", url, False
http.setRequestHeader "Content-Type", "application/json"
http.Send body
MsgBox http.responseText
End Sub
B. VBA 写文件/表格 → QMT 监听读取(落地最稳)
优点:不挑版本,兼容性强
做法:VBA 把下单指令写到 CSV(或数据库/共享表),QMT 策略端循环读取新指令,校验后再下算法单。
VBA 写入 CSV 示例:
Sub ExportOrderCSV()
Dim f As Integer, path As String
path = "C:\qmt_orders\order.csv"
f = FreeFile
Open path For Append As #f
Print #f, "600000.SH,BUY,1000,TWAP,300"
Close #f
End Sub
3)你下“算法单”一般要带哪些参数?
- 标的:
600000.SH / 000001.SZ - 方向:买/卖
- 数量:股数(或金额)
- 算法类型:TWAP / VWAP / 冰山 / POV 等(看券商支持)
- 时间/参与率/价格约束:持续多久、参与率、最高/最低价、是否撤单重挂等
4)避坑提醒(很重要)
- 一定加:风控校验(最大下单量、最大金额、是否重复下单)
- 做好:回执处理(是否成功、委托号、失败原因)
- Excel 宏别“连点”:建议做防抖/锁单,避免重复触发
- 算法单属于自动执行,先用模拟盘跑通再上实盘
如果你告诉我:你用的是哪家券商的 QMT、想下的是 TWAP/VWAP/冰山还是条件触发单、以及你希望“Excel界面长啥样”,我可以按你的版本把 VBA 参数格式 + QMT 接收端逻辑一起整理成可直接套用的模板。
#量化 #股票开户 #VBA #QMT

开户找我惊喜优惠福利超多!选8888资金靓号!ETF佣金万0.5!逆回购手续费百万分之一!免费量化qmt/ptrade!更多优惠欢迎找我!
温馨提示:投资有风险,选择需谨慎。
-
国常会力挺“六张网”,利好哪些板块?普通人如何稳健布局?
2026-05-18 15:52
-
REITs打新: 风电项目 ⌈中核新能⌋ 今日发售!点击领取认购操作指南~
2026-05-18 15:52
-
华泰AI涨乐APP超实用提示词分享,直接复制使用~
2026-05-18 15:52


问一问

+微信
分享该文章
