外汇EA如何安装和使用培训资料

所需积分/C币:50 2014-10-01 18:06:37 515KB PDF
收藏 收藏
举报

自从《EA是什么及他的工作原理》这篇有关EA入门的文章在MT4论坛登出,以及后来在MT4软件公司组织的ATC2011和ATC2012两届的自动化交易大赛中,参加并获得了相应的名次,其中2011年还比较幸运的获得第三名奖,并接受了他们公司的有关EA设计思想的采访之后,许多程序化交易热爱者朋友,都来向我询问,有关EA的使用,编程和设计知识,由于时间及种种原因未能一 一解答,在此向各位表示道歉。 为此,最近抽时间把这几篇有关EA的文章整理了一下,构成一个EA专题系列,作为对”外汇EA信号交易网”对EA开发工作的支持.同时,考虑到学习者的不同基础及要求,于是,又补充了一些最基础的知识,形成一讲:命名《
EA FI 们7,巧平A建 外汇EA信号交易网htt://www.afootcom 下面我们就以MT4外汇客户端为例,首先来分析一个外汇交易员手工进行外汇交 易的操作过程:其步骤如下 1.打开外汇交易客户端,选定一种货币对图表; 2。监视该货币对的K线趋势图,俗称盯盘,寻找开仓或者是平仓的时机,即开 仓或者是平仓的条件 3。如果条件满足,进行下单开仓(做多或者做空)或者平仓 4。重复第二步,继续盯盘,假定第二步是开仓,就是寻找平仓的条件。 5。如果平仓的条件满足,进行平仓操作,计算盈亏核算。完成一次交易的循环 6。若继续交易,重复2->3->4-5步 7。若不进行交易,退出外汇客户端 二、机器操盘过程 基于以上的分析,我们已经知道一个完整的智能交易系统(俗称EA)在运行后必须 要实现的基本功能,就是上述的人工操作的1-5步。这也就是智能交易系统的 基本工作过程,所以智能交易系统的工作原理就是由程序员借助一门计算机程 序设计语言,通过编写程序交易指令模拟人类交易员的行为进行下单操作,实 现机器自动进行交易的过程。主要执行过程可分为:盯盘→>开仓→>再盯盘→>平仓, 如此循环执行的过程。 关于支持机器自动交易的平台,目前外汇市场上流行的就是 MetaQuotes公司的 MT4平台,由于这个平台中嵌入了一种MQLA4语言,它提供了对服务器端的数据访 问并可进行交易操作的接口,程序交易者可以根据自己的交易策略来编写自己的 自动交易系统,从而实现让机器自动交易,既可以减轻人类的工作量,又可以克 服人类交易中的一此性格弱点,但目前的EA开发,尚所早期起步阶段,有的还 存在缺陷,但相信随着技术的发展,机器自动交易终将会逐步取代人类的手工操 作。届时会给交易者一项新的选择。 、相关MQL语言知识: 为了实现机器操作,再来看看所需的MoL4语言的相关知识: 1.掌握MQL4语言的基本语法和程序的构成,及运行流程 有关语法部分,请读者参看相关的资料,这里略去 关于程序的构成,对于一个智能交易系统EA程序来说:主要由三个函数构成分 别是 init:初始化函数,负责程序变量及数据初始输入;只在程序调入时执行一次, 般不用重写内容。 deinito:反初始化函数,负责程序退出时,将数据从内存中清除;只在程序退 出时,执行一次,一般不用重写内容 start0:开始函数,也即程序的主函数,负责EA程序的全部交易执行过程,实 际上他是一个EA的交易管理与执行函数。每隔一定时间,一般几秒之内,执行 次,就是循环执行,起到程序退出时终止 EA FI 们7,巧平A建 外汇EA信号交易网htto://www.afootcom 运行流程:启动EA后,程序的 INTI(开始执行一次,一>然后 START O循环执行 >最后退出EA时 deinito执行一次 2。mg14中与交易相关的交易函数: 开仓函数: int OrderSend( string symbol, int cmd, double volume, double price, int lippage, double stoploss, double takeprofit, void comment, void magic void expiration, void arrow color) 这个功能主要应用于开仓位置和挂单交易. 参量 symbo1-交易货币对。 cmd-购买方式。 volume-购买手数。 price-收盘价格 slippage-最大允许滑点数 stoploss-止损水平 takeprofit-赢利水平。 comment-注解文本。 magIC-定单指定码。可以作为用户指定识别码使用。 expiration-定单有效时间(只限挂单) arrow color-图表上箭头颜色。如果参量丢失或存在 CLR NONE价格值不会在 图表中画出 平仓函数: bool OrderClose( int ticket, double lots, double price, int slippage, void C O⊥or 对定单进行平仓操作。如果函数成功,返回的值是真实的。如果函数失败,返回 的值是假的。获得详细错误信息,请查看 Getlasterror0函数。 参量: ticket-定单编号。 1ots-手数 price-收盘价格。 slippage-最高划点数。 Color-图表中标记颜色。如果参量丢失, CLR NONE值将不会在图表中画出。 定单修改函数: EA FI 们7,巧平A建 外汇EA信号交易网htto://www.afootcom bool OrderModify( int ticket, double price, double stoploss, double takeprofit, datetime expiration, void arrow color) 对于先前的开仓或挂单进行特性修改。如果函数成功,返回的值为TRUE。如果 函数失败,返回的值为 FALSE。获得详细的错误信息,查看 Getlasterror0函数。 参量: ticket-定单编号。 price-收盘价格 stoploss-新止损水平。 takeprofit-新赢利水平 expiration-挂单有效时间。 arrow color-在图表中允许对止损/赢利颜色进行修改。如果参量丢失或存在 CLR NONE值,在图表中将不会显示 四、源码的交易流程分析 下面的源码是一个基于移动平均线的智能交易系统的代码,整个程序非常简洁 但EA的功能又非常齐全,实现了完全由电脑自动下单和平仓,整个程序只用了 一个 START0 函数来实现。 程序代码分析 参看代码中的相关注释 //I mcdi fiedFA ma4 7/1 Copyright ?2008, MetaQuotes Software Corp //1 yyy9990pecple. com. cn QQ: 806935610 /+ propertylinkhttp://new.qzoneqg.com/806935610 nput parameters extern doublc Takcpro=it =20i cxtcrn doublc StopLCSs-30i extern doublc lots cxtcrn doublc TrailingStop -50i cxtcrn int shortEma =5 EA FI 巧5平建 外汇EA信号交易网htp/www.afoota.com extern int LcngEma =60 //1 expert initialization function t() return (0)i //1 expert dcinitialization functio int dcinit( return (0)i //1 expert start function int start () - nt ticket total EA FI 巧5平建 外汇EA信号交易网htp/www.afoota.com if (Bars 100) Print("b less than 100) f (TakePron Print (TakeProfit less than 10)i return (0);// check TakeProfit SEma - IMA(NU-L, 0, ShortEma, 0, MODE EMA, PRICE CLCSE, 0)i LEma iMA(NU-L, 0, LongEma, 0, MODE EMA, PRICE CLOSE, 0)i static int isc -cRossed Crossed (lEma, sema)i total OrdersTotal( f (total 1 if(⊥ cRossed==1)//满足空仓条件,开空仓 cke Ordersend(Symbol(), OP SET. Bid. Bid+ StepLESS大 Point; Bid Takeprcfit Point, "EMA CROSS",123415,0, Greer)i EA FI 们7,巧平A建 外汇EA信号交易网htp/www.afoota.com f (ticket > 0) if (Order Select(ticket SELECT BY TICKET, MODE TRADES)) der Order CpenPrice()) i el Print ("Error opening SEL- order :" GetlastError()) if( i cRossed==2)//满足多仓条件,开多仓 ticket OrderSend (Symbol(), OP BUY, Lots, Ask, 3, Ask Ask TakeProfit k Point EMA CRoSS", 12345,0, red) if ( OrderSelect (ticket, SELECT BY TICKET, MODE TRADES)) Print("BUY order opened : OrderOpenPrice())i i else Print( Error opening BJY order : GetlastError()i 订单修改,实现动态止盈止损跟踪 for (cnt=0; cnt total; cnt++) Orderselect(cnt, SElECt BY POS, MODE TRADES )i if (OrderType()<=OP SEL- & ordersymool( Symbol() EA FI 巧5平建 外汇EA信号交易网htp/www.afoota.com if (orderType()== OP SELL)// long position is opened if (Trailings f(Bid - orderopanPrice(> Point longstop) ) BiC -Point T Bid Point (0) else / go to short it if ((OrdcrOpenprice()-Ask)>(Point TrailingStop) if ((ord pLCss(>(Ask point Tra OrderModify (Crderficket ( OrderopenPrice() EA FI 们7,巧平A建 外汇EA信号交易网htp/www.afoota.com Ask Point Trailingstop OrderTakeProfitor0 red); return (0) return (0)i //移动平均线多空条件判断, int Crossed(doublc lincl, doublc linc2) static int 1 static int current direction =0 //Dor't work in the first load, wait for the first cross static bool first time true if (first time = true) first t 工∈turr rrent direction=2;//up多头市场上穿做多

...展开详情
试读 11P 外汇EA如何安装和使用培训资料
立即下载 低至0.43元/次 身份认证VIP会员低至7折
抢沙发
一个资源只可评论一次,评论内容不能少于5个字
  • 签到新秀

    累计签到获取,不积跬步,无以至千里,继续坚持!
关注 私信 TA的资源
上传资源赚积分or赚钱
最新推荐
外汇EA如何安装和使用培训资料 50积分/C币 立即下载
1/11
外汇EA如何安装和使用培训资料第1页
外汇EA如何安装和使用培训资料第2页
外汇EA如何安装和使用培训资料第3页

试读结束, 可继续读1页

50积分/C币 立即下载 >