分享

(8)[转载]HowtoWriteMqlEa MT4,Mql 中调用的DLL 控件

 quanshan 2019-05-11

过程

  1. 将 MT4 的tick 事件通过调用 Mt4Agent中的函数,发送给Mt4Daemon
  2. Mt4Daemon 会向 Mt4Agent 发送交易指令,和成交查询,Mt4Agent给予响应.

关于MT4 软件包.(mt4 全称, metatrader 4)

  1. MT4 软件包下载. http://turbo-daytrader./files/MT4.rar
  2. 下载后解压, 直接运行解压目录下的 terminal.exe 文件即可. 如果提示升级升级后重启运行.

MT4 中内嵌的语言为 MQL (语法类似于C).

  1. mql 参考地址. http://docs./
  2. 关于 mql 内引入 dll 的相关文档 http://docs./runtime/imports
  3. 我的简陋整理 MqlImportDll

MT4 中如何编译 mql. 简单过程.

  1. 通过mt4 软件中的 metaeditor.exe 命令。
  2. 键入程序.
  3. 编译.

MT4 编辑编译调用 mql 详细过程

  1. 首先需要注册一个 mt4 的模拟账号.

点击 文件-> 开新模拟账户.

个人资料按照要求随便填写,无需认真,但是要保证符合每个框的字符长度要求。 注册完毕后登陆行情,此时可以看到一些默认的行情列表。

  • 点击键盘 F4 键,调出 metaeditor. 会有一个程序的编辑界面
  • 新建之后,选择智能交易系统。 一些常规属性添加完毕之后,点击完成

[转载]HowtoWriteMqlEa <wbr>MT4,Mql <wbr>中调用的DLL <wbr>控件

其中EA名称是必选,比如填写 myeatest.之后会出现一个EA程序的 skeleton,

[转载]HowtoWriteMqlEa <wbr>MT4,Mql <wbr>中调用的DLL <wbr>控件

简单说明一下这几个函数
  • int init() // 在mt4加载 EA的时候初始化程序。他只是加载的时候运行一次。
  • int start() // mt4加载 EA过后价格每变动一次,就会运行这个start()函数内部的程序一次。如果价格不变动就不运行。
  • int deinit() // EA 停止的时候会触发该函数一次用于回收。

当出现这个skeleton 之后, 在 start 函数内部

int start() 
 
{
 
   
Print("hello"," world");
 
   
return(0);
 
 
}
  • 然后F5 编译. 这个 mql 的源代码就会被编译成为 mq4.

[转载]HowtoWriteMqlEa <wbr>MT4,Mql <wbr>中调用的DLL <wbr>控件

  • 然后回到 mt4的看盘软件当中。 点击 显示->导航

[转载]HowtoWriteMqlEa <wbr>MT4,Mql <wbr>中调用的DLL <wbr>控件

在导航的窗体内部选择 智能交易系统 节点下的 myeatest.会出现一个窗体 myeatest. 如果测试程序当中使用了dll 外部库,选择允许导入动态链接库. 然后确认. 然后再屏幕的右上角会出现一个 myeatest和一个x号表明这个EA已经加载但是还没有运行.

[转载]HowtoWriteMqlEa <wbr>MT4,Mql <wbr>中调用的DLL <wbr>控件 [转载]HowtoWriteMqlEa <wbr>MT4,Mql <wbr>中调用的DLL <wbr>控件

  • 如果要使之运行,点击智能交易按钮。

[转载]HowtoWriteMqlEa <wbr>MT4,Mql <wbr>中调用的DLL <wbr>控件

  • 如果想要测试这个程序

组合键 Ctrl-r 会调出智能交易测试 的终端在mt4下方

[转载]HowtoWriteMqlEa <wbr>MT4,Mql <wbr>中调用的DLL <wbr>控件

出现之后选择 智能交易系统 下拉,有 myeatest .

再商品栏里选择 货币兑 以欧元兑美元为例。 EURUSD 复盘模型 可以任选.

适用日期 选择一个小一点的时间段。比如 2011.5.11 - 2011.5.12 这样一天的数据相对来说比较少,加载比较容易.

然后选择 复盘显示. 如图,这样盘面会出现一个黑色的主图。 程序中Print的 hello word 是打印在智能交易测试终端下放的日志的tab中。

[转载]HowtoWriteMqlEa <wbr>MT4,Mql <wbr>中调用的DLL <wbr>控件

以上是一个稍微详细的过程说明

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多