MQL4参考

From binaryoption
Jump to navigation Jump to search
Баннер1
  1. MQL4 参考

MQL4 (MetaQuotes Language 4) 是 MetaTrader 4 (MT4) 交易平台使用的编程语言。它是一种类似于 C 语言的语言,专门为开发交易机器人 (Expert Advisors, EAs)、自定义技术指标和脚本而设计。对于希望自动化交易策略或创建自定义工具的二元期权交易者来说,理解 MQL4 至关重要。本文将为初学者提供 MQL4 的全面概述。

MQL4 的基本结构

MQL4 程序通常由以下几个部分组成:

  • **属性 (Properties):** 定义程序的名称、作者、链接等信息。
  • **包含文件 (Include Files):** 包含预定义的函数和变量,例如 技术指标交易函数
  • **全局变量 (Global Variables):** 在整个程序中都可以访问的变量。
  • **函数 (Functions):** 执行特定任务的代码块。
  • **事件处理函数 (Event Handlers):** 响应 MT4 平台事件的函数,例如新报价、定时器事件等。

MQL4 数据类型

MQL4 支持多种数据类型,包括:

MQL4 数据类型
描述 | 示例 |
整数 | `int age = 30;` | 双精度浮点数 | `double price = 1.2345;` | 布尔值 (True 或 False) | `bool isBuy = true;` | 字符串 | `string symbol = "EURUSD";` | 日期和时间 | `datetime now = TimeCurrent();` | 颜色 | `color myColor = clrRed;` |

理解这些数据类型对于正确声明变量和执行计算至关重要。

MQL4 运算符

MQL4 提供了各种运算符,用于执行算术、比较、逻辑等操作。

  • **算术运算符:** `+`, `-`, `*`, `/`, `%` (取模)
  • **比较运算符:** `==`, `!=`, `>`, `<`, `>=`, `<=`
  • **逻辑运算符:** `&&` (与), `||` (或), `!` (非)
  • **赋值运算符:** `=`, `+=`, `-=`, `*=`, `/=`, `%=`

MQL4 核心函数

MQL4 提供了大量的内置函数,用于访问市场数据、执行交易、管理订单等。以下是一些常用的函数:

  • `OrderSend()`: 用于开仓交易。理解 止损止盈 的设置至关重要。
  • `OrderClose()`: 用于平仓交易。
  • `OrderModify()`: 用于修改现有订单。
  • `iClose()`: 获取指定时间段的收盘价。
  • `iHigh()`: 获取指定时间段的最高价。
  • `iLow()`: 获取指定时间段的最低价。
  • `iOpen()`: 获取指定时间段的开盘价。
  • `iVolume()`: 获取指定时间段的成交量。
  • `TimeCurrent()`: 获取当前服务器时间。
  • `Symbol()`: 获取当前图表的交易品种。
  • `AccountBalance()`: 获取账户余额。
  • `AccountEquity()`: 获取账户净值。
  • `MarketInfo()`: 获取市场信息,例如点差、最小交易量等。
  • `NormalizeDouble()`: 将双精度浮点数四舍五入到指定的小数位数。
  • `StringFormat()`: 将数字格式化为字符串。
  • `Alert()`: 在屏幕上显示警报信息。

MQL4 程序的类型

MQL4 主要有三种类型的程序:

1. **Expert Advisors (EAs):** 自动交易机器人,可以根据预定义的规则自动执行交易。 EAs 依赖于 均线交叉策略RSI 背离 等技术分析策略。 2. **Custom Indicators:** 自定义技术指标,用于分析市场数据并提供交易信号。 例如,可以创建基于 斐波那契数列 的指标。 3. **Scripts:** 一次性执行的程序,用于执行特定任务,例如批量平仓或更改图表设置。

编写第一个 EA (示例)

以下是一个简单的 EA,它在满足特定条件时开仓交易:

```mql4

  1. property copyright "Your Name"
  2. property link "Your Website"

extern double Lots = 0.1; extern int StopLoss = 50; extern int TakeProfit = 100;

int init()

 {
  return(0);
 }

int deinit()

 {
  return(0);
 }

int start()

 {
  double Ask = MarketInfo(Symbol(), MODE_ASK);
  double Bid = MarketInfo(Symbol(), MODE_BID);
  // 简单的买入条件:当前价格高于前一根K线的最高价
  if(Ask > iHigh(Symbol(), PERIOD_CURRENT, 1))
    {
     int ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, 3, Ask - StopLoss * Point, Ask + TakeProfit * Point, "My EA", 12345, 0, clrGreen);
     if(ticket < 0)
       {
        Print("OrderSend failed: ", GetLastError());
       }
    }
  return(0);
 }

```

这段代码定义了一个简单的 EA,它在当前价格高于前一根 K 线的最高价时开仓买入。 它使用 `OrderSend()` 函数发送交易请求,并设置了止损和止盈点位。 理解 订单类型错误代码 很重要。

MQL4 的调试

MQL4 提供了强大的调试工具,可以帮助您识别和修复代码中的错误。

  • **专家属性 (Expert Properties):** 允许您设置 EA 的调试选项,例如启用日志记录和单步执行。
  • **日志 (Logs):** 记录 EA 的运行信息,包括错误消息和变量值。
  • **策略测试器 (Strategy Tester):** 用于测试 EA 的历史表现。 可以使用 回测 来评估策略的有效性。

MQL4 与二元期权的关系

虽然 MQL4 最初是为外汇交易设计的,但它也可以用于二元期权交易。 关键在于利用 MQL4 编写指标来生成交易信号,然后使用 MT4 的二元期权插件或通过 API 将信号发送到二元期权经纪商。 例如,可以使用 MQL4 创建一个基于 布林带突破 的指标,该指标在价格突破布林带时生成交易信号。

高级 MQL4 概念

  • **类 (Classes):** 用于创建自定义数据类型和封装代码。
  • **对象 (Objects):** 类的实例。
  • **事件驱动编程 (Event-Driven Programming):** MQL4 程序通过响应事件来执行代码。
  • **数组 (Arrays):** 用于存储多个相同类型的数据。
  • **文件 I/O (File Input/Output):** 用于读写文件。
  • **DLL 调用 (DLL Calls):** 允许 MQL4 程序调用外部动态链接库 (DLL)。
  • **优化 (Optimization):** 使用策略测试器优化 EA 的参数,以提高其盈利能力。 参数优化 是一个重要的步骤。
  • **风险管理 (Risk Management):** 在 EA 中实现风险管理策略,例如固定手数、百分比风险等。 了解 马丁格尔策略反马丁格尔策略 的风险。

学习资源

  • **MQL4 官方文档:** [[1]]
  • **MQL4 论坛:** [[2]]
  • **MQL5 社区:** [[3]] (虽然是 MQL5 社区,但许多 MQL4 的知识也适用)
  • **在线教程:** 搜索 "MQL4 tutorial" 可以找到大量的在线教程。
  • **书籍:** 市面上有很多关于 MQL4 编程的书籍。

总结

MQL4 是一种功能强大的编程语言,可以帮助二元期权交易者自动化交易策略和创建自定义工具。 通过学习 MQL4 的基本概念和核心函数,您可以构建自己的 EA 和指标,从而提高交易效率和盈利能力。 持续学习和实践是掌握 MQL4 的关键。 请记住,理解 成交量分析价格行为模式资金管理 对于成功的二元期权交易同样重要。 掌握 K线图 的解读技巧也将极大地提升您的交易能力。 此外,关注 经济日历市场情绪 也是至关重要的。

立即开始交易

注册 IQ Option (最低存款 $10) 开设 Pocket Option 账户 (最低存款 $5)

加入我们的社区

订阅我们的 Telegram 频道 @strategybin 获取: ✓ 每日交易信号 ✓ 独家策略分析 ✓ 市场趋势警报 ✓ 新手教育资源

Баннер