• 新添加量子混沌系统板块,欢迎大家访问!---“量子混沌系统”
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏我们吧

EA编写入门:使用MQL4构建自己的交易算法

交易进阶 Qchaos_007 2年前 (2023-08-14) 12004 复制链接

随着电子交易的普及,越来越多投资者开始使用程序化交易进行投资,而EA正是程序化交易的核心。本文将介绍使用MQL4编写自己的EA的入门知识,帮助投资者构建适合自己的交易算法。

一、MQL4简介

MQL4(MetaQuotes Language 4)是MetaTrader 4(MT4)交易平台所采用的编程语言。它允许用户开发自己的自动交易程序、定制指标和脚本,以及执行其他形式的技术分析。MQL4包含了许多内置函数和库,可帮助开发人员构建高质量、高性能的EA。

二、MQL4程序结构

MQL4程序由4个部分组成:预处理指令、变量声明、函数定义和主函数。以下是一个简单的MQL4程序示例:

“`

//预处理指令

#property copyright “Copyright 2021, My Company”

#property link      “https://www.mycompany.com”

#property version   “1.0”

//变量声明

extern double   Lots = 0.1;

extern int      StopLoss = 30;

extern int      TakeProfit = 60;

//函数定义

int start()

{

//主函数

}

“`

1. 预处理指令

预处理指令是在程序运行之前先进行处理的指令。它们通常用于指定版权信息、版本号、作者等信息,以及导入其他库和资源。

2. 变量声明

变量声明是程序中用于存储数据的容器。在MQL4中,变量可以属于以下几种类型:整数(int)、浮点数(double)、布尔值(bool)、日期和时间(datetime)、字符串(string)等。有时候,我们需要将某些变量设定为可配置的,以便程序运行时可以根据设置来使用不同的变量值。这时候可以使用`extern`关键字,在程序中预定义一些参数供用户来更改。

3. 函数定义

函数是MQL4程序的基本代码单元。它们是一段封装过的可重用代码块,接受输入参数并返回输出结果。在MQL4中,有许多内置函数供开发人员使用,例如用于计算交易手数、成本和指标值的函数。

4. 主函数

MQL4编程的核心是`start()`函数。它是程序执行的起点,并包含了主要的交易逻辑代码。

三、编写一个简单的EA

下面我们将编写一个简单的EA,当某个货币对价格上涨并突破30日移动平均线时,就会生成一个买入信号。

首先,我们需要定义三个变量:

“`

double    lot_size;

double    stop_loss;

double    take_profit;

“`

然后在`start()`函数中,我们需要获取当前交易账户的资金和持仓信息:

“`

double    account_balance = AccountBalance();

int       orders_total    = OrdersTotal();

“`

接下来,我们需要计算当前货币对的30日移动平均线:

“`

double    ma_30      = iMA(NULL,PERIOD_D1,30,0,MODE_SMA,PRICE_CLOSE,0);

double    bid_price  = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits);

“`

然后判断是否产生买入信号:

“`

if((bid_price > ma_30) && (orders_total == 0))

{

//生成买入订单

OrderSend(_Symbol,OP_BUY,lot_size,bid_price,3,bid_price-stop_loss,bid_price+take_profit,””,MagicNumber,0,Green);

}

“`

最后,在EA搭载完成后,进行相关的测试、优化和回测。

四、总结

MQL4编写EA是程序化交易过程中的重要环节。本文介绍了MQL4的基本语法和程序结构,并以一个简单的示例介绍了EA编写的基本流程。但要注意的是,EA的编写需要具备一定的编程基础和市场分析能力,需要投资者经过反复练习和调试,才能成功构建一个适合自己投资策略的EA。EA编写入门:使用MQL4构建自己的交易算法


量子混沌 , 版权所有丨如未注明 , 均为原创
转载请注明原文链接:EA编写入门:使用MQL4构建自己的交易算法