QMT支持自定义指标,而且提供了VBA和Python两种编写方式,你可以根据自己的编程基础选择。
两种编写方式,怎么选?
VBA公式:语法和通达信很像,适合把现成的通达信指标“搬”过来,或者写一些逻辑简单的指标(比如均线、MACD)。上手快,不用太复杂的编程基础。
Python:功能更强大,能接入TA-Lib、myTT这类专业的指标库,适合写复杂的逻辑,或者开发自己独有的因子指标。
在QMT里怎么操作?
方法一:在K线图上直接“添加指标”
这是最快的方式,适合快速验证想法。
在K线图页面点击右键,选择“添加指标”,下方会出现一个空白区域。
在空白区域再次点击右键,选择“编辑指标”,打开公式编辑器。
在编辑器里写入代码,点击“运行”,指标就会显示在K线图上了。
方法二:通过“公式管理器”新建(更规范)
适合正式开发和保存指标。
打开QMT,进入“公式管理器”模块。
选择“技术指标公式”分类,点击“新建”。
给指标起个唯一的名字,设置好参数,然后开始编写代码。
写完保存,并务必进行回测,确认指标逻辑没有用到未来数据,且表现符合预期。
编写时要注意什么?
1. 命名要唯一:每个指标公式的名字不能重复,建议用“简洁+含义明确”的方式,比如 MA_双线交叉。
2. 参数要灵活:把指标里的关键数字(比如均线周期)设置成参数,这样以后想调整周期时,不用改代码,直接调参数就行。
3. 回测是必须的:任何自定义指标,在用于实盘前,都必须经过历史数据回测验证。要特别注意,计算当天指标时,只能用当天及之前的数据,绝对不能用到未来数据。
4. 计算效率:如果指标逻辑很复杂,建议在每日收盘后计算一次并缓存结果,避免每个tick都重新计算,拖慢系统速度。
一个简单的Python示例:计算VWMA(成交量加权移动平均)
假设你想计算一个“成交量加权移动平均”,可以在Python指标文件中这样写:
python复制下载
import numpy as np
def vwma(close, volume, window):
vwap = []
for i in range(window-1, len(close)):
avg_price = (close[i-window+1:i+1] * volume[i-window+1:i+1]).sum() / volume[i-window+1:i+1].sum()
vwap.append(avg_price)
return np.array(vwap)
这段代码的核心逻辑是:用每一根K线的收盘价乘以成交量,求和后除以这段时间的总成交量,就得到了VWMA的值。
最后提醒
编写自定义指标是体现你交易智慧的核心,但任何指标都不是万能的,都只是辅助决策的工具。写完指标后,建议先在模拟盘或小仓位实盘测试一段时间,确认逻辑真正适配你的交易需求后,再逐步加大资金使用。
如果你想了解如何将通达信的自定义指标快速迁移到QMT,或者需要某个具体指标(如KDJ、布林带)的完整Python代码模板,可以点击我的主页开户宝入口,或直接私信我,我帮你对接专业的量化客户经理获取支持。




分享
注册
1分钟入驻>

+微信
从业认证
秒答
电话咨询
18630917047

