外汇EA智能交易使用方法
交易原理:
Short (SELL) entry – MACD 指标在零以上,从上至下并且穿过顶端的信号线。 |
在智能交易的导航窗口处,点击鼠标右键并且选择在菜单中的“创建新智能交易”。创建智能交易的初始提醒将会询问你进入数据中心。在显示窗口,填写智能交易的名称(名称) – MACD Sample,作者(作者) -指出你的名字, 链接 (连接) -你网页的链接,注解 (注解) – MACD-基本智能交易的测试范例。
这样一步一步地编写我们的智能交易…
步骤3 – 集中程序的结果代码
让我们打开智能交易的设定:使用按钮打开”属性…”菜单。在窗口内指定运行参量的外部设定:
从先前部分集中全部代码:
//+------------------------------------------------------------------+//| MACD Sample.mq4 |//| Copyright © 2005, MetaQuotes Software Corp. |//| http://www.metaquotes.net/ |//+------------------------------------------------------------------+extern double TakeProfit = 50;extern double Lots = 0.1;extern double TrailingStop = 30;extern double MACDOpenLevel=3;extern double MACDCloseLevel=2;extern double MATrendPeriod=26;//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+int start() { double MacdCurrent, MacdPrevious, SignalCurrent; double SignalPrevious, MaCurrent, MaPrevious; int cnt, ticket, total;// 检测初始化数据// 确定智能交易在图表中运行正常非常重要// 用户在外部变量交易中不会产生任何错误// 外部变量 (标准手数, 止损,赢利,// 追踪止损) 在这种情况下,我们检测图表中赢利水平要小于100 柱 if(Bars<100) { Print("少于 100柱"); return(0); } if(TakeProfit<10) { Print("赢利少于10"); return(0); // 检测赢利水平 }// 简化代码和加速通道// 数据被放置在内部变量中 MacdCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0); MacdPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1); SignalCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0); SignalPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1); MaCurrent=iMA(NULL,0,MATrendPeriod,0,MODE_EMA,PRICE_CLOSE,0); MaPrevious=iMA(NULL,0,MATrendPeriod,0,MODE_EMA,PRICE_CLOSE,1); total=OrdersTotal(); if(total<1) { // 没有指定开单 if(AccountFreeMargin()<(1000*Lots)) { Print("没有资金. 自由保证金 = ", AccountFreeMargin()); return(0); } // 尽可能检测看涨仓位 (BUY) if(MacdCurrent<0 && MacdCurrent>SignalCurrent && MacdPrevious<SignalPrevious && MathAbs(MacdCurrent)>(MACDOpenLevel*Point) && MaCurrent>MaPrevious) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"macd sample",16384,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY 定单开仓 : ",OrderOpenPrice()); } else Print("错误BUY定单开仓 : ",GetLastError()); return(0); } // 尽可能检测卖空仓位(SELL) if(MacdCurrent>0 && MacdCurrent<SignalCurrent && MacdPrevious>SignalPrevious && MacdCurrent>(MACDOpenLevel*Point) && MaCurrent<MaPrevious) { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point,"macd sample",16384,0,Red); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL 定单开仓 : ",OrderOpenPrice()); } else Print("错误SELL定单开仓 : ",GetLastError()); return(0); } return(0); } // 正确进入市场很重要, // 但正确退出市场更重要... for(cnt=0;cnt<total;cnt++) { OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); if(OrderType()<=OP_SELL && // 检测开仓 OrderSymbol()==Symbol()) // 检测货币对 { if(OrderType()==OP_BUY) // 看涨仓位开仓 { // 需要平仓吗? if(MacdCurrent>0 && MacdCurrent<SignalCurrent && MacdPrevious>SignalPrevious && MacdCurrent>(MACDCloseLevel*Point)) { OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); //平仓 return(0); // 退出 } // 检测追踪止损 if(TrailingStop>0) { if(Bid-OrderOpenPrice()>Point*TrailingStop) { if(OrderStopLoss()<Bid-Point*TrailingStop) { OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green); return(0); } } } } else // 去卖空仓位 { // 需要平仓吗? if(MacdCurrent<0 && MacdCurrent>SignalCurrent && MacdPrevious<SignalPrevious && MathAbs(MacdCurrent)>(MACDCloseLevel*Point)) { OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // 平仓 return(0); //退出 } // 检测追踪止损 if(TrailingStop>0) { if((OrderOpenPrice()-Ask)>(Point*TrailingStop)) { if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0)) { OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red); return(0); } } } } } } return(0); }// 结束
对于最后智能交易的确认,只需要指定外部变量值 “Lots = 1″, “Stop Loss (S/L) = 0″ (not used), “Take Profit (T/P) = 120″ (appropriate for one-hour intervals), “Trailing Stop (T/S) = 30″. 当然,你可以使用自己的值。按 “编写”按钮,如果没有任何错误信息出现 (你可以从 MetaEditor的列表中复制), 按 “保存”键保存智能交易。
本文地址:http://www.ea666.cn/fxschool/autotrading/mql4/40667.html
上一篇:建立交易系统(EA)的几个误区 下一篇:打造风靡全球的自动赚钱机器