EG是ExpertAdvisor的英文缩写,中文意思是专家顾问,俗称智能交易系统,就是由电脑模拟交易员的下单操作进行机器自动交易的过程。外汇EA是一套用于MT4平台(Metatrader4)/MT5平台(Metatrader5)的程序化交易系统,可以自动完成外汇交易的操作,无需任何人工的干预。
一、人工操盘过程
下面我们就以MT4外汇客户端为例,首先来分析一个外汇交易员手工进行外汇交易的操作过程:其步骤如下:
1、打开外汇交易客户端,选定一种货币对图表;
2、监视该货币对的K线趋势图,俗称盯盘,寻找开仓或者是平仓的时机,即开仓或者是平仓的条件
3、如果条件满足,进行下单开仓(做多或者做空)或者平仓
4、重复第二步,继续盯盘,假定第二步是开仓,就是寻找平仓的条件。
5、如果平仓的条件满足,进行平仓操作,计算盈亏核算。完成一次交易的循环。
6、若继续交易,重复2->3->4->5步
7、若不进行交易,退出外汇客户端。
二、EG操盘过程
基于以上的分析,我们已经知道一个完整的智能交易系统(俗称EG)在运行后必须要实现的基本功能,就是上述的人工操作的1-5步。这也就是智能交易系统的基本工作过程,所以智能交易系统的工作原理就是由程序员借助一门计算机程序设计语言,通过编写程序交易指令模拟人类交易员的行为进行下单操作,实现机器自动进行交易的过程。主要执行过程可分为:盯盘->开仓->再盯盘->平仓,如此循环执行的过程。
关于支持机器自动交易的平台,目前外汇市场上流行的就是MetaQuotes公司的MT4平台,由于这个平台中嵌入了一种MQL4语言,它提供了对服务器端的数据访问并可进行交易操作的接口,程序交易者可以根据自己的交易策略来编写自己的自动交易系统,从而实现让机器自动交易,既可以减轻人类的工作量,又可以克服人类交易中的一此性格弱点,但目前的EG开发,尚所早期起步阶段,有的还存在缺陷,但相信随着技术的发展,机器自动交易终将会逐步取代人类的手工操作。届时会给交易者一项新的选择。
三、外汇EA编程相关MQL4语言知识:
为了实现机器操作,再来看看所需的MQL4语言的相关知识:
1、掌握MQL4语言的基本语法和程序的构成,及运行流程
有关语法部分,请读者参看相关的资料,这里略去。
关于程序的构成,对于一个智能交易系统EG程序来说:主要由三个函数构成分别是:
init():初始化函数,负责程序变量及数据初始输入;只在程序调入时执行一次,一般不用重写内容。
的init():反初始化函数,负责程序退出时,将数据从内存中清除;只在程序退出时,执行一次,一般不用重写内容。
start():刚开始函数,也即程序的主函数,承担EA程序的所有交易执行全过程,事实上他是一个EA的交易管理方法与执行函数。每过一定時间,一般几秒钟以内,执行一次,就是说循环系统执行,具有程序撤出时停止
运作步骤:起动EA后,程序的INTI()刚开始执行一次,-->随后START()循环系统执行--->最终撤出EA时deinit()执行一次
2、MQL4中与交易有关的交易函数:
开仓函数:
intOrderSend(stringsymbol,intcmd,doublevolume,doubleprice,intslippage,doublestoploss,doubletakeprofit,voidcomment,voidmagic,voidexpiration,voidarrow_color)
这一作用关键运用于开仓部位和撤单交易.
参数:
symbol-交易货币对。
cmd-选购方法。
volume-选购手数。
price-收盘价。
slippage-较大 容许滑等级。
stoploss-股票止损水准。
takeprofit-盈利水准。
comment-注释文字。
magic-订单特定码。能够 做为客户特定标识码应用。
expiration-订单有效时间(仅限撤单)。
arrow_color-数据图表向上的箭头色调。假如参数遗失或存有CLR_NONE价钱值不容易在数据图表中绘制
平仓函数:
boolOrderClose(intticket,doublelots,doubleprice,intslippage,voidColor)
对订单开展平仓实际操作。假如函数取得成功,回到的值是真正的。假如函数不成功,回到的值是假的。得到详尽错误,请查询GetLastError()函数。
参数:
ticket-订单序号。
lots-手数。
price-收盘价。
slippage-最大划等级。
Color-数据图表中标识色调。假如参数遗失,CLR_NONE值将不容易在数据图表中绘制。
订单改动函数:
boolOrderModify(intticket,doubleprice,doublestoploss,doubletakeprofit,datetimeexpiration,voidarrow_color)
针对此前的开仓或撤单开展特点改动。假如函数取得成功,回到的数值TRUE。假如函数不成功,回到的数值FALSE。得到详尽的错误,查询GetLastError()函数。
参数:
ticket-订单序号。
price-收盘价
stoploss-新股票止损水准。
takeprofit-新盈利水准。
expiration-撤单有效时间。
arrow_color-在数据图表中容许对股票止损/盈利色调开展改动。假如参数遗失或存有CLR_NONE值,在数据图表上将不容易显示信息。
四、EA源代码的交易步骤剖析
下边的源代码是一个根据均线系统的智能化交易系统软件的编码,全部程序十分简约但EA的作用又十分齐备,保持了彻底由电脑上自动下单和平仓,全部程序仅用了一个START()函数来保持。
五、文中依据从之上的剖析,能够 了解,说白了EA,就是说由电脑模拟交易员的提交订单实际操作开展设备交易的全过程,操作步骤以下:
1、当客户开启外汇交易手机客户端程序后,由手机客户端程序加入客户在系统软件内已预设好的EA交易系统软件程序。
2、当EA程序起动后便刚开始对数据图表中货币对的K线对比曲线,开展监控,找寻开仓的标准。
3、假如标准考虑,开展提交订单开仓(开多或是看空)。
4、反复第二步,再次盯盘,假设第二步是开仓,就是说找寻平仓的标准。
5、假如平仓的标准考虑,开展平仓实际操作,测算赢亏结转。进行一次交易的循环系统。
6、若再次交易,EA反复2->3->4->5步
7、客户若不愿让EA开展交易,可根据有关莱单实际操作设定禁止使用EA,或是撤出外汇交易手机客户端。