零基础MT4量化入门一:跑一个简单的boll布兰姥爷

今天开始研究MT4了,MT4是大大有名的外汇交易和量化软件,使用一种叫做MQL的语言来开发量化程序(跟C比较像)。因为是外国人做的,用的也大部分是外国人,使用起来不是很顺手,跟极星各有优劣吧。这里我就先逐步讲一下MT4的使用,然后再简单跑一个boll指标,最后汇总下使用心得。

二、安装

1、下载MT4

不熟悉这东西,连安装都是个麻烦事儿。MT4官网好找一搜就有,下载链接好找安装包不大,一会就安装上了。可是你给我装的啥?我要的MT4你咋给我装个MT5?

原来这家公司现在力推MT5,但是大家都用惯了MT4不想换,所以官网只能下载MT5,但你可以到各经纪商下载老版本的MT4。由于二者间有些差别,而且大部分人都不用新版本的,所以我也从善如流找个老版本吧。

最后经网友帮助终于下了经纪商的版本,我使用的下载链接:

翻到中间就有下载链接了

2、注册模拟账户

安装后直接打开,会提示你开户。我们先注册个模拟账户,下图中就是可接入的站点,你选一个ping值较小的,然后地址名带Demo的(Real是实盘不是模拟)。

填写信息后即可注册成功,一开始会给你1万的资金用来模拟。启动后的窗口大概就是下图这样。就不说MT4本身的操作了,大家可以自己摸索下。

三、编写量化代码

1、新建量化

现在我们看到这个叫“交易端”,在上方的功能菜单中选择“工具->MQ语言编辑器”打开量化编辑窗口。然后新建一个量化策略,注意是“新建”而不是“新建项目”。

新建向导里有很多选择,一般我们用到的就是:

EA交易:就是我们说的量化了,在MT4他们叫EA(ExpertAdvisor智能交易系统)。

自定义指标:比如我们在K线图上看到的MA指标、BOLL指标,在MT4你可以自己来编辑指标然后应用到K线图上,国内一般将指标编辑放在交易端,MT4把这些全部放到了MQL编辑器里了。

脚本:脚本可以在你触发后自动执行一系列操作,与EA不同的是,脚本是手动触发,而EA是行情触发。

选择“EA”->下一步->名称输入“testboll”->下一步

创建成功啦,代码的目录在左侧导航器的Experts目录里,这是默认的。

2、代码结构说明

从前面的图可以看到,默认有三个函数,分别是:

OnInit():启动EA时触发一次的函数

OnDeinit():结束EA时触发一次的函数

OnTick():来一个行情触发一次的函数

3、简单的boll策略

代码比较简单,向上突破后做空,向下突破做多,而且只做一单。需要说明的不多:

iBands是MT4自带计算boll指标的函数,其中PRICE_CLOSE代表了当前收到的最新价。

Close中存着所有收到的收盘价,Close[0]是最新的那个。

OrderSend就是下单函数。

Symbol返回当前合约,其实填NULL也行。

OP_BUY、OP_SELL分别是买和卖。还有四个类型分别是:OP_BUYLIMIT、OP_SELLLIMIT、OP_BUYSTOP、OP_SELLSTOP

Ask、Bid分别代表当前的卖价和买价

Bid+50*Point、Bid-50*Point分别用作止损和止盈,即在下单价的基础上,上浮和下浮50个点止损、止盈。一个点就是合约的最小变动价

Green、Red设置箭头的颜色,在跑EA时下单的话可以在K线上显示一个箭头表明下单了。国外一般绿色是多、红色是空(跟我们反过来)

更多的参数说明可以看用户手册,英文版的在“帮助->MQL4帮助文件”,文末附上了中文版的说明(翻译的一般,看的吃力)

四、回测

由于今天刚好不是交易日,所以就只能做一下历史数据回测。

1、检查代码

在开始测试可以先运行下调试,主要是检测下代码有没有问题,没有问题的话会进入MT4下单界面。

点确定即可

然后你会发现什么都没发生。但是注意看K线图的右上角,会有你当前测试EA的名字,还有个哭哭脸。这是因为EA已经加载了,但你还没启动策略执行。

在工具栏找到“自动交易”,点击即可。

如果是在有即时行情的时候,点击“自动交易”后,哭哭脸就会变成笑笑脸,那策略就真的开始执行了。但现在没有行情,我们只能做回测,就没必要点“自动交易”了。

2、启动回测

建议修改代码后,每次都点一下“运行调试”,一是看看代码有没有问题,其次有时我更新代码后立即做回测发现代码并没有更新,执行一次“运行调试”就一定是最新的,反正是比较玄乎。

在下方的回测栏中选择我们刚写好的策略、回测的合约、K线周期等等。

注意1:复盘模型选“仅用开盘价”即可,这样显示复盘的速度会快点,如果选了“每个即时价格”则K线生成的会比较慢

注意2:勾选“复盘显示”后会在K线图上重现K线生成的过程,后面那个滑动条是快进的速度

3、结果查看

K线图上会以图标的方式显示你的下单情况

最下方有“结果”、“净值图”、“报告”、“日志”分别代表了“下单明细”、“资金变化”、“回测报告”、“系统和用户日志”可以查看回测的各方面信息。

注意在“下单明细”中,除了我们操作的buy和sell外,还有自动执行的止盈和止损(下单时就设置了的)。

五、注意事项

1、回测的K线周期只是显示的周期,不是触发的周期。

你看代码里触发的函数是OnTick,意思是每一个tick都会触发一次,而不是5分钟、10分钟触发一次,所以你获取到的close是当前tick的,而不是K线bar柱的。这一点跟我以前的经验有很大不同。但是呢,open获取到的开盘价又确实是指定周期bar柱的开盘价。总的来说MT4的回测有点像极星的即时行情,从这个角度来说确实是实现了更高真实度的回测。

2、历史数据可能没有你期待的那么可靠

通过数次测试我发现,越是以前的数据tick越稀松,越是现在的数据tick越密集。比如你做3月26日到3月27日的回测,26日开始时的tick数据是1分钟一个触发,而到了27日可能一秒钟一个触发。具体怎么回事我还得再测测看。

THE END
1.如何在MT4中下载历史数据MT4如何下载历史数据,mt4可以下载历史数据,通过历史数据投资人可以清晰的看到汇价波动的整个过程,对自己的交易有很大的帮助。下面大王财经小编就来介绍一下MT4下载历史数据的方法。 历史数据是可以在mt4软件上直接下载的。不过按照外汇交易商服务器的不同,历史数据和数据时间都有所不同。mt4下载历史数据具体的方法如下: https://www.kingcaijing.com/show/255686.html
2.捷凯外汇MT4无法更新数据另一个可能导致MT4无法更新数据的原因是软件本身存在问题。捷凯外汇MT4软件是一个重要的交易工具,但是偶尔也会出现一些bug或者错误,导致数据无法正常更新。解决这一问题的方法是联系捷凯外汇的客服团队,报告问题并获取帮助。他们通常会提供相关的修复程序或者帮助进行软件更新,以解决数据更新问题。 http://www.jn025.com/mt/43289.html
3.中文版MT4平台下载指南及安装教程环境净化设备4、备份重要数据 在使用软件过程中,请务必备份您的交易数据等重要信息,以防数据丢失。 本文为您详细介绍了如何下载并安装中文版MT4平台,通过遵循本文的步骤,您将能够轻松开启投资之旅,在使用过程中,如遇任何问题,请及时联系官方客服或寻求专业人士的帮助,祝您投资顺利!http://www.xasafe.net/post/9971.html
4.MT4历史数据下载黄金/美元(forpmxau)股吧MT4历史数据下载 工具,MT4软件 第一步:登录MT4模拟盘,打开“终端”(快捷键Ctrl+T),然后点到“日志”。 第二步:点开“工具”,“历史数据中心”(快捷键F2),找到要下载的品种,选定周期,点击“下载”。 第三步:回到日志,下载状态会体现在日志上,如果日志上的时间出现一两分钟的卡顿 ,就点击“停止”,然后再点https://guba.eastmoney.com/news,forpmxau,798676679,7336115281680724.html
5.复盘软件MT4/5MT4MT5复盘数据下载可导入MT4/5的期货、外汇、指数复盘数据下载 价格 项目品种价格说明 复盘软件-MT4/5外汇20元一个外汇品种的复盘数据 复盘软件-MT4/5国内期货主连或期货指数20元一个品种,300元打包全部国内期货品种国内主连或期货指数的复盘数据 复盘软件-MT4/5国际期货主连100元每个品种一个国际期货品种的2018年10月至今的主连复http://juejinshuju.com/mt45/
6.MT4历史数据中心各货币对外汇交易数据数据下载短信发送身份证银行卡基站股票数据快递实名认证手机三要素验证天气 10091 177 4 MT4历史数据中心各货币对外汇交易数据 聚合数据免费 MT4历史数据中心各货币对外汇交易数据,时间区间为 2001.01.01 到 2012.01.01。 数据格式: csv 数据价格: ¥0.00 ¥0.00(csv) https://www.juhe.cn/market/product/id/10091
7.MT4如何使用更多历史数据,附15年高质量数据下载–中国领汇以EUR/USD为例,想要下载15分钟K线,就选中15分钟图,点击下载按钮即可,上图两个红框位置。 这种方式能下载到当前平台服务器允许下载的最长历史数据,但现在平台普遍给客户的数据偏少,对于需要更多历史数据的交易者来说依然不够用,那么就要用到下面导入数据的方式来手工添加更多的历史数据了。 http://xuexi.fxspaces.com/?p=1481
8.MT5导入MT4回测历史数据,MT5导入MT4历史数据工具及方法<在MT4测试中,很多人到处购买的历史数据,网络上很多第三方的数据都有坑,找到高质量的数据很难。 所以最好的方式就是找到一个同时提供MT5和MT4的平台商,从该平台的MT5上获得M1数据,然后在其MT4平台上测试。> 1.用这个MT5的EA在MT5上跑测试,从而获得对应周期的M1的数据。 EA请自己下载 ( MT5下载历史数据工具 http://www.eafox.cn/show/998.html
9.这个能下载外汇,期货,虚拟货币的MT4历史数据的网站数据价值上万我相信有还是有许多人需要这个教程,因为MT4是国际上使用率最高的外汇,期货,虚拟货币的交易平台,而大部分的交易商提供的历史数据都是部分的,或者是残缺的,而如果你需要完整的历史数据的话,那么就只有专业机构或者是收费的商业机构那里才有了。我也是偶然和一位俄罗斯的EA作者聊天,他告诉我的。这个方法可以下载到免费https://www.jianshu.com/p/74cf5582da03
10.如何获得99%质量的TICK数据下载路径可以自己设置 顺便设置一下MT4平台的安装目录,以便之后从Tickstor启动MT4. 针对你想要的货币对和时间段下载数据库,注意第一步是下载 步骤2导出到MT4 数据源下载好后,现在才是真正导入MT4数据,其实是数据库转化成HST和FXT的过程。 1、首先选择时间范围,注意不要超出第一步下载数据源时候的时间段,可以勾选周http://www.360doc.com/content/16/1031/11/28023286_602740689.shtml
11.EA回测复盘如何获取高质量历史数据USDCHF点击下载29.7 MB XAGUSD点击下载11.6 MB XAUUSD点击下载22.5 MB 补充:除了上面获取历史数据的https://www.eazhijia.com/thread-130187-1-1.html
12.mt4历史数据回测mt410年历史数据腾讯云开发者社区mt4历史数据回测_mt410年历史数据 大家好,又见面了,我是你们的朋友全栈君。 这个网站只能下载2001年-当前时间前一个月的数据,还是挺全的。但是下载下来之后好像是一分钟图的,妈蛋其实我想要1小时图的EURUSD历史数据。 网站地址:http://www.fxfupan.com/datacenter.htmlhttps://cloud.tencent.com/developer/article/2114933?areaSource=102001.11&traceId=QgB4u8cJ__sqicf9_bqtS
13.根据历史数据来综合考量价格形态趋势反转超级MT4指标【根据历史数据来综合考量】价格形态、趋势反转超级MT4指标!(系统自动生成,下载前可以参看下载内容) 下载文件列表压缩包 : 根据历史数据来综合考量,价格形态、趋势反转超级指标!.rar 列表1.png 2.png 根据历史数据来综合考量,价格形态、趋势反转超级指标!.ex4 https://cdn.dssz.com/3791558.html
14.springweb导入导出csv期货历史数据导入MT4的方法历史数据从通达信下载,通达信是很良心的软件,提供免费的数据,不得不赞一下。 详细步骤如下: 1,打开通达信,在系统菜单里选择盘后数据下载 2,选择期货市场行情分钟线,勾选1分钟数据,选择好时间段,时段与MT4的数据时间衔接起来,添加需要下载数据的品种,点击开始下载,等待下载完成 https://blog.csdn.net/weixin_39889481/article/details/111039009
15.秦昊推荐:一触即发,大奖等你拿!评估值达1.53亿元!龚大兴向丰华股份无偿赠与鑫源农机51%股份 张雅清-评估值达1.53亿元!龚大兴向丰华股份无偿赠与鑫源农机51%股份 「活动」注册即送28元新人礼包 26.34MB 版本V73.04.50 下载APK高速下载 下载评估值达1.53亿元!龚大兴向丰华股份无偿赠与鑫源农机51%股份安装你想要的应用 更方便 更快捷 发现更多 http://m.xy77.live/11-23/629890.html
16.策汇实时数据,MT4桥接技术,ExcelRTD连接MT4实时数据交易.zip行业实现MT4、MT5、CTrader等等其它程序交易软件数据或实时交易通过C/S桥接、Excel RTD等技术方式实时的操作数据链。方便其它编程语言如JAVA、C++、Excel VBA、C#、Python等语言数据调用,自动交易扩展。MT4桥接技术,ExcelRTD连接MT4实时数据交易点赞(0) 踩踩(0) 反馈 所需:9 积分 电信网络下载 https://www.coder100.com/index/index/content/id/2131458
17.MT42C4256CZ10/883C(AUSTIN)PDF技术资料下载MT42C4256CZ型号:MT42C4256CZ-10/883C PDF下载:下载PDF文件查看货源 内容描述:256K ×4 VRAM 256K ×4的DRAM 512K ×4的SAM [256K X 4 VRAM 256K x 4 DRAM with 512K x 4 SAM] 分类和应用:内存集成电路动态存储器 文件页数/大小:57 页 / 1255 K https://www.ic37.com/AUSTIN/MT42C_datasheet_7159093/
18.从MT4(MQL4)访问MySQL数据库(支持中文读取写入)带范例源码从MT4 (MQL4) 访问 MySQL 数据库(支持中文读取写入)带范例源码,MQL通过调用 接口库 MQLMySQL.mqh. 使用 #include 语句将它加到项目工程里。它包含的指令用于导入 MQLMySQL.dll 动态库的函数,以及调用它们和处理函数。而MQLMySQL调用的是MYSQL的 libmysql.dll 32位动态链接库。 实现MT4 (MQL4) 访问 MySQL 数据库https://www.iteye.com/resource/qq_42916615-11246182
19.MT4交易盈亏统计指标/外汇交易盈亏统计指标/专业盈亏持仓信息统计迈汇数据(MyfxData),专业于外汇交易数据统计工具,MT4盈亏统计指标,当前持仓盈亏统计、浮亏统计、交易手数统计、返佣统计、历史盈亏统计、胜率统计、盈利率统计、准确率、盈亏比、利润因子、交易手数、本金回撤率等信息数据;http://myfxdata.cn/
20.外汇MT4主要货币对中英对照(新手必看)1m外汇实盘数据(可导入mt4)分享 本人从2010年开始做外汇期货程序化交易,具有丰富的程序化数据建模实战经验,有需要策略测试的我可以帮忙。现有偿(几块钱)提供高质量的外汇实时价格数据,数据详情如下: 1.数据源为福汇外汇交易平台的1m实盘数据(非模拟盘),绝对高质量。 2.种类丰富,包含外汇、期货等在内的63个品种数https://m.360docs.net/doc/a77435672.html