手机版

MQL4实例EA教程:连拉3个阴柱或阳柱后做交易

阅读 :
外_汇_邦 WaiHuiBang.com

代码如下:

int MAGIC=35207814;
extern double lots=1;
//+------------------------------------------------------------------+
//| 下面定义start函数,函数会在价格每次波动的时候运行。
//+------------------------------------------------------------------+
int start()
  {
 
  if(CalculateCurrentOrders(Symbol())==0)  //当前帐户订单为0时,继续下面的代码,也就是说,如果已经成交了,即使出现信号也不会再次成交。
      
   double StopLoss;
   double TakeProft;
     if(Signal()==-1)//卖出信号出现
           
       StopLoss=Open[3];//设定止损第三根k线的开盘价
       TakeProft=2*(Open[1]-Close[1]+Open[2]-Close[2]+Open[3]-Close[3])/Point;//设定止盈为前面三根k线总和的2倍
       if(OrderSend(Symbol(),OP_SELL,lots,Bid,3,StopLoss,Bid-TakeProft*Point,0,MAGIC,0,Blue)<0)//如果卖出失败
       Alert("auto sell is failed!---"+GetLastError());//弹窗报警并且显示失败代码
       else return(0);//交易成功就返回不执行下面的代码。
       }
     if(Signal()==1)//买入信号出现
       {
       StopLoss=Open[3];//设定止损第三根k线的开盘价
       TakeProft=2*(Close[1]-Open[1]+Close[2]-Open[2]+Close[3]-Open[3])/Point;//设定止盈为前面三根k线总和的2倍
       if(OrderSend(Symbol(),OP_BUY,lots,Ask,3,StopLoss,Ask+TakeProft*Point,0,MAGIC,0,Red)<0)//如果买入失败
       Alert("auto buy is failed!---"+GetLastError());//弹窗报警并且显示失败代码
       else return(0);//交易成功就返回不执行下面的代码。    
      
   }
//----
   return(0);
  }
//+------------------------------------------------------------------+
int CalculateCurrentOrders(string symbol) //本函数用来返回本ea下单并且没有平仓的订单数目
  {
   int ors=0;
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC)
      {
      if(OrderType()==OP_BUY)  ors++;
      if(OrderType()==OP_SELL) ors++;
      }
     }
   return(ors);
    
//*************交易信号,返回值是1便是买入,-1就是卖出,0是没有信号
int Signal()
{
int res;
if(Close[1]>Open[1] && Close[2]>Open[2] && Close[3]>Open[3]) //买入信号:连续三根k线为阳线
res=1;
if(Close[1]<Open[1] && Close[2]<Open[2] && Close[3]<Open[3]) //卖出信号:连续三根k线为阴线
res=-1;

return(res);
}

外_汇_邦 WaiHuiBang.com
本文标题:MQL4实例EA教程:连拉3个阴柱或阳柱后做交易 - MT4平台MQL4编程学习
本文地址:https://www.waihuibang.com/fxschool/autotrading/mql4/40712.html

相关文章

  • MT4编程初级手册(11):使用MT4的报警功能
    MT4编程初级手册(11):使用MT4的报警功能

    报警功能是MT4的一个特色功能。它可以在预定的条件达到时,给用户发出警报。见图: 与指标画线相比,报警语句则显得相对简单,只要在判断语句中加一个报警的指令语句即可。 报警方式有:弹出窗口报警、音乐报警、邮件报警...

    MQL4编程学习
  • Best Scalper EA:最佳剥头皮EA?
    Best Scalper EA:最佳剥头皮EA?

    当我们评论Smart Pips EA时,我们提到便宜的剥头皮EA很难找到,特别是当它涉及到有真实账户的历史。今天我们要探索的EA,使用一个剥头皮的交易策略,其价格不高,并表现出稳定的回报。专业的交易者,来看一下该外汇机器人的名...

    MQL4编程学习
  • MT4现在内置外汇VPS功能
    MT4现在内置外汇VPS功能

    Metaquotes,该公司拥有最流行的外汇交易平台,今天宣布,新的MT4建立配备了新功能的670,包括虚拟EA托管。它的目的是允许交易者,即使在计算机处于脱机状态或关闭时,都可以保持他们的交易机器人运行,无需支付第三方虚拟专用...

    MQL4编程学习
  • 为什么外汇EA运行必须使用VPS
    为什么外汇EA运行必须使用VPS

    ★什么是外汇EA?外汇EA即外汇全自动交易系统,外汇EA是在MT4平台上进行开发,采用的语言是MQ4语言,一套EA是一个完整的交易程序,程序通过实时获取市场价格,自动判断下单与平仓时机,由电脑模拟交易员的下单操作进行机器交易,根据...

    MQL4编程学习
  • Armada EA:有稳定回报的敏感系统
    Armada EA:有稳定回报的敏感系统

    今天,我们将探讨一下Armada专家顾问(EA),是在 MetaTrader 4(MT4)平台工作的自动交易系统,旨在当你进行交易时提供一些利润给你。虽然交易系统被检查出很节俭,但迄今显示不俗的表现。 在我们的评论中,我们将使用链接到Myfxbo...

    MQL4编程学习
你可能感兴趣