MetaTrader 4 (MT4 )简介:
MetaTrader 4 这是由 MetaQuotes Software Corp 公司开发的第四代的因特网交易平台。通过 MetaTrader 4, 您可以在世界货币市场 FOREX, 股票市场和期货市场上交易。
MetaQuotes Software Corp. 成立于2000 年 , 公司的 量化开发 平台MetaQuotes 提供使用 MQL 程序语言 (MetaQuotes Language) , 为交易者开发和运行自动交易策略引入了可能性。
选择MT4 做数据回测的优势:老牌外汇软件服务商,有强大的回测引擎,跟丰富的算法库,提高了数据回测的精度跟效率,可以用于策略的开发,调参优化。
开发流程:
1. 交易标的数据获取与导入(使用: Python 爬虫):
以bitmex 平台为例(最好选交易量大的平台数据,深度有保证,策略不容易失效),请求 1 分钟数据,数据精度根据开发策略风格来获取,趋势 CTA 策略,用分钟级别数据即可,如果是日内高频策略,或者套利,需要 tick 级别,可以请求一秒两个数据。
数据获取需要用到的python 库: requests (从 web 端请求数据), pandas (整理数据), multiprocessing (多线程爬取数据提高效率)
将数据转成MT4 可导入的格式:可以是 txt 或者 csv 文件。
导入MT4 :
打开MT4 (不需要联网,避免数据被其他券商覆盖掉),按 F2 打开数据中心,点击导入,将 txt 的数据导入即可:
数据准备的最后一步,Kline 周期转换,目前数据中心只有 1Min 的 Kline ,需要转成各个周期的 Kline 。
这里MT4 内置了周期转换脚本 PeriodConverter 。
在一分钟kline 图表上,加载脚本,输入要转换的周期,确定即可
完成上述步骤,我们就得到bitmex 平台 XBTUSD 各个周期的 Kline 数据。
日线Kline如图:
2. 策略开发
打开MT4 ,按 F4 召唤MetaQuotes 策略IDE 。
如图,点击新建,EA 交易。这个就是自动化交易的脚本,可以用于策略回测。
在上面,可以根据自己的需要,添加自定义模块,主要需要自定义的库有:交易时机过滤,资金管理,风险控制,日志输出,加密等,MetaQuotes Language 简称MQL4 ,是一门接近 C++ 语言的量化开发语言,有 C++ 基础的同学上手很快,
主要学习内置的函数库的使用方法,跟 Python 一样 ,功能库很多,可以节省不少时间,不过交易逻辑建议还是自己写,这样好优化,不容易出 bug 。
开发完一个简单的均线穿插策略,接下来就是做数据回测了。
2. 数据回测
打开MT4 按 CTRL + R 召唤回测界面,如图:
回测界面可以选择需要测试的标的,也就是之前导入的bitmex XBTUSD 数据。选择好需要测试的策略,测试时间段,测试的 Kline 周期,点差跟数据精度设置,还有策略的内参设置,甚至可以进行多因子策略的开发,勾选优化按钮选好需要调参的步长即可,很强大的功能,很适合进行后期的优化,但是不好拟合过度,容易使策略失效。
点击开始进行回测:
MT4 回测引擎会模拟历史行情,跑一遍策略,并且标记出进出场点位, Kline 显示速度可控,方便策略进出场点位复盘。点击净值图,可以实时显示当前的盈亏曲线。
完成回测后MT4 会自动生成一份分析报告:
在报告里边,显示了很多策略评估指标:盈亏比,胜率,交易频率。
包含回测产生的所有虚拟交易记录跟账户盈亏曲线图。如下图:
报告可以保存到本地,方便后续查看。
(end)