Skip to content

MT5CTP API开发手册

version : mt5ctp 2.00 build 0030

MQL5种高级编程语言

MQL5是一种高级编程语言,专为开发技术指标、EA交易和实用应用程序而设计,进而使金融交易自动化。MQL5语言的语法非常接近于C++,使程序员能够在面向对象编程(OOP)风格中开发应用程序。MQL5程序根据实施的交易自动化任务,被分成四种特定类型:

EA交易 是一种与图表相链接的自动交易系统。EA交易包含了管理预定义事件的事件处理程序,激活执行适当的交易策略元素。例如,程序初始化和去初始化的事件,新报价,计时器事件、市场深度变化、图表和自定义事件。除了根据已实现的规则计算基于信号之外,EA交易还能够自动执行交易,并将其直接发送到交易服务器。EA交易存储目录:\MQL5\Experts。

自定义指标 是一种除了集成到交易平台上的标准指标之外的由用户开发的技术指标。自定义指标,以及标准指标都不能自动交易,但只能实现分析功能。自定义指标可以利用其它指标的值进行计算,也可以从EA交易调用。自定义指标存储目录:\MQL5\Indicators。

脚本 是一种单独执行操作的程序。与EA交易不同,除了触发器、初始化和去初始化之外,脚本不处理任何事件。脚本代码必须包括OnStart处理程序函数。脚本存储目录:\MQL5\Scripts中。

服务 是一个程序,与指标、EA交易和脚本不同,它不需要绑定图表进行工作。与脚本一样,除了触发器,服务不处理任何事件。要启动一项服务,其代码应该包含OnStart处理程序函数。除了“Start(开始)”以外,服务不接受任何其他事件,但它们可以使用EventChartCustom将自定义事件发送至图表。服务存储目录:\MQL5\Services。

程序库 是一组自定义函数。程序库用来存储和分配常用的自定义程序算法。程序库存储目录:\MQL5\Libraries。

包含文件 是最常使用的自定义程序块的源文本。这些文件存在于编译阶段的EA交易、脚本、自定义指标和程序库的源文本中。使用包含文件比使用程序库更可取,因为在调用程序库函数时容易发生额外的负担。 包含文件可以存储在与源文件相同的目录中。在这种情况下,使用双引号的#include指令。另一个选项就是将包含文件存储目录:\MQL5\Include。在这种情况下,#include应该使用尖括号。

学习MQL语言

  1. MQL5官方教程
  2. MT5CTP推荐视频教程
  3. 本章节及后续内容,假定您已经非常熟练掌握MQL语言。

MT5CTP应用程序开发接口(API)基于CTP程序开发接口(API)开发,扩展MQL程序库,支持自由定制的期货&期权量化交易。MQL的内置函数大量使用InfoDouble、InfoInteger和InfoString配合ENUM_INFO_DOUBLE、ENUM_INFO_INTEGER、ENUM_INFO_STRING枚举提取数据,MT5CTP在应用程序开发接口(API)的设计和开发中,借鉴这种处理方式,优点:

  1. 函数名称统一,便于记忆和开发调用。
  2. 版本升级增加、减少或变更数据项,仅需调整枚举属性就可以,最大程度保证版本兼容。