QMT极速策略实战:Python与VBA双语言指南!
发布时间:3小时前阅读:16
QMT 极速策略交易系统支持 Python 和 VBA 双语言策略编写。以下是使用这两种语言进行策略实战的指南:
Python 语言策略实战
- 环境配置:QMT 内置了 Python 3.6.8 环境,兼容 3.6 至 3.11 版本。若使用外部环境,可将 QMT 安装目录下
bin.x64\Lib\site - packages中的xtquant库复制到本地 Python 环境的site - packages目录下。 - 策略核心函数:
init(ContextInfo)为初始化函数,用于设置股票池、基准、定义全局变量等,只在策略开始运行时执行一次。handlebar(ContextInfo)是核心逻辑执行函数,会在每个 K 线周期被调用一次,买卖逻辑、指标计算等代码可写在此处。ContextInfo是上下文对象,承载数据接口、交易接口、策略状态、运行信息等内容。 - 简单策略示例:
- python
def init(ContextInfo):
# 初始化股票池:这里我们监控沪深300成分股
ContextInfo.universe = ('000001.SZ', '000002.SZ', '000858.SZ')
# 设置基准为沪深300指数
ContextInfo.benchmark = '000300.SH'
# 初始化一个全局字典,用于记录每只股票的历史状态
ContextInfo.my_data = {}
print("策略初始化完成!")
def handlebar(ContextInfo):
# 在此编写具体的买卖逻辑、指标计算等代码
pass
VBA 语言策略实战
- 优势特点:语法相对简单,与 Excel 宏编程类似,学习曲线平缓。QMT 的 VBA 编辑器提供丰富内置函数,如获取行情
GetQuote、下单Order等。适合编写基于技术指标的择时策略或简单的条件单监控等逻辑直接的策略。 - 策略核心过程:
Initialize(Context)函数用于策略初始化,可设置股票池等。HandleBar(Context)函数会在每根 K 线运行一次,核心交易逻辑在此编写。 - 简单策略示例:
- vba
Sub Initialize(Context)
'策略初始化,可以设置股票池
Context.SetUniverse "000001.SZ,000002.SZ"
End Sub
Sub HandleBar(Context)
'每根K线(比如日线)运行一次
Dim stockCode, closePrice, ma20
stockCode = Context.Symbol '当前处理的股票代码
'获取当前K线的收盘价和20日均线值
closePrice = Context.Close
ma20 = Context.Average(closePrice, 20) '计算20周期均价
'获取当前持仓
Dim position
position = Context.GetPosition(stockCode)
'交易逻辑
If closePrice > ma20 And position <= 0 Then
'收盘价上穿均线且无多仓,则买入
Context.Order(stockCode, "BUY", 100) '买入100股
ElseIf closePrice < ma20 And position > 0 Then
'收盘价下穿均线且持有多仓,则卖出
Context.Order(stockCode, "SELL", position) '卖出全部持仓
End If
End Sub
股票/量化开户找我!股票佣金万0.854(满足条件)!无门槛国债逆回购一折 (百万分之一)!ETF佣金万0.5!优惠多多!免费量化使用量化软件QMT+miniQMT+ptrade!

温馨提示:投资有风险,选择需谨慎。
-
REITs扩募是什么?普通人能参与吗?附APP实操指南
2026-06-17 17:19
-
理财问答选哪个?知乎vs叩富问财全面对比,一文搞懂
2026-06-17 17:19
-
@所有人,2026年端午节A股休市安排出炉!
2026-06-17 17:19


问一问

+微信
分享该文章
