顺水外汇EA交易网MT4

标题: 求助老司机看看EA [打印本页]

作者: jwzhangsir    时间: 2016-6-13 17:52
红色代码为添加内容,你加进去试试看。
/*************************************/
if(buytrend==true && mark1==false)
         {
            Alert("买开价格: ", Ask, "  预警时间 :", TimeToString(CurTime()));
            SendMail("买开预警","买开价格: "+ DoubleToString(Ask,Digits)+ "  预警时间 :"+TimeToString(CurTime()));
            mark1=true;mark3=false;
         }
      if(selltrend==true && mark2==false)
         {
            Alert("卖开价格: ", Bid, "  预警时间 :", TimeToString(CurTime()));
            SendMail("卖开价格","卖开价格: "+ DoubleToString(Bid,Digits)+ "  预警时间 :"+ TimeToString(CurTime()));
            mark2=true;mark4=false;
         }
      if( (ha_c[b]boolline || ha_c>coral || ha_c>ma)) sellclose=true;   
      if(buyclose==true && mark3==false)
         {
            Alert("买平价格: ", Bid, "  预警时间 :", TimeToString(CurTime()));
            SendMail("买平价格: ","买平价格: "+ DoubleToString(Bid, Digits)+"  预警时间 :"+ TimeToString(CurTime()));
            mark3=true;
            buytrend=false;            mark1==false;
         }
      if(sellclose==true && mark4==false)
         {
            Alert("卖平价格: ", Ask, "  预警时间 :", TimeToString(CurTime()));
            SendMail("卖平价格: ","卖平价格: "+ DoubleToString(Ask,Digits)+ "  预警时间 :"+TimeToString(CurTime()));
            mark4=true;
            selltrend=false;
            mark2==false;
         }
  }
//+------------------------------------------------------------------+

作者: geziyi    时间: 2016-6-13 17:52

怎么修改啊?我不懂编程。。。

作者: knightfx    时间: 2016-6-13 18:13

花了钱的,至少应该能正常运行吧,搞成个半成品算哪门子事,找他服务到底
作者: geziyi    时间: 2016-6-13 18:13

加了点击编写,出来这个
红色部分两个==是什么意思?改成一个=再编写就不提示错误了,为什么啊?

作者: geziyi    时间: 2016-6-13 18:13

能运行,但不好用啊,做了两个月还做不好,完全没有做EA的水准,服务还差的很,我已经投诉了,钱也够呛能要回来。。

作者: jero    时间: 2016-6-13 20:14
回复有金币,挣钱是唯一
作者: geziyi    时间: 2016-6-13 20:14

我 一直认为大咖同时也大都是好人,目前仍在测试,小弟先作个揖!

作者: cinalex    时间: 2016-6-13 20:14
服务到底
作者: 123321a    时间: 2016-6-13 20:57
没有细看代码,但是这个只是警告,不是错误,是可以运行的
作者: mao98    时间: 2016-6-13 20:57
还是有好人的。
作者: jwzhangsir    时间: 2016-6-14 10:35

搞错了,应该是一个等号

作者: luo007    时间: 2016-6-14 11:08
有高手!!!
作者: geziyi    时间: 2016-6-14 17:58

先谢谢哥了!加了那两句就没问题了。因为之前交易的预警到符合条件了就预警,而且波动一下就响一次,所以我照着前面那个阻力位的预警改了下,变成了60秒响一次。但是阻力位那个预警就有冲突了,好像是要在前一个预警之后,过7200秒才响一次,这样就不即时了。把7200秒那个去掉的话,就犯同样毛病了-------一直响不停。我觉得如果把这两种预警区别开,进出场的预警时间跟阻力位的预警时间互不干涉,应该就好了。不知道代码应该怎么改啊?
//+------------------------------------------------------------------+
//|                                                        ff_EA.mq4 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
input double line_up=0.0012;
input double line_down=-0.0012;
input int MA1=60;
input int BOLL_period=25;
input int BOLL_dev=2;
input int InpFastEMA=12;   // Fast EMA Period
input int InpSlowEMA=26;   // Slow EMA Period
input int InpSignalSMA=9;  // Signal SMA Period
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
bool mark1; bool mark2; bool mark3; bool mark4,markup,markdown;
double uper,downer;
datetime marktime;
bool markinit;
int OnInit()
  {
//---
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
      //iCustom()
      double coral=iCustom(NULL,0,"THV3 Coral",0,1);
      double ha_c=iCustom(NULL,0,"THV3 HA",3,1);
      double week=iCustom(NULL,0,"THV Visual_BT_Pivots V1.3",0,0);
      double ma=iMA(Symbol(),0,MA1,0,MODE_SMA,PRICE_CLOSE,1);
      double trix1=iCustom(NULL,0,"THV3 Trix v4.01 Div",0,1);
      double trix2=iCustom(NULL,0,"THV3 Trix v4.01 Div",2,1);
      double trix3=iCustom(NULL,0,"THV3 Trix v4.01 Div",1,1);
      double trix4=iCustom(NULL,0,"THV3 Trix v4.01 Div",3,1);
      double ww[7];
      ww[0]=ObjectGetDouble(0,"PivotLine",OBJPROP_PRICE1,0);
      ww[1]=ObjectGetDouble(0,"R1Line",OBJPROP_PRICE1,0);
      ww[2]=ObjectGetDouble(0,"R2Line",OBJPROP_PRICE1,0);
      ww[3]=ObjectGetDouble(0,"R3Line",OBJPROP_PRICE1,0);
      ww[4]=ObjectGetDouble(0,"S1Line",OBJPROP_PRICE1,0);
      ww[5]=ObjectGetDouble(0,"S2Line",OBJPROP_PRICE1,0);
      ww[6]=ObjectGetDouble(0,"S3Line",OBJPROP_PRICE1,0);
      double tempup=uper;
      double tempdown=downer;
      double minabs1=999;
      double minabs2=999;
      for(int i=0;iAsk && minabs1>=ww[i]-Ask)
               {
                  minabs1=ww[i]-Ask;
                  uper=ww[i];
               }
            if(ww[i][B]=Bid-ww[i])
               {
                  minabs2=Bid-ww[i];
                  downer=ww[i];
               }
         }
      if(tempup!=uper && tempup>0) markup=false;
      if(tempdown!=downer && tempdown>0) markdown=false;
      if(markup==false && Ask>uper-0.1*(uper-downer) && CurTime()-marktime>7200)
         {
            Alert("触上线: ", Ask, "  预警时间 :", TimeToString(CurTime()));
            SendMail("触上线","价格: "+ DoubleToString(Ask,Digits)+ "  预警时间 :"+TimeToString(CurTime()));
            markup=true;
            marktime=CurTime();
         }
      
      if(markdown==false && Bid7200)
         {
            Alert("触下线: ", Bid, "  预警时间 :", TimeToString(CurTime()));
            SendMail("触下线","价格: "+ DoubleToString(Bid,Digits)+ "  预警时间 :"+TimeToString(CurTime()));
            markdown=true;
            marktime=CurTime();
         }
      double macd1=iMACD(NULL,0,InpFastEMA,InpSlowEMA,InpSignalSMA,PRICE_CLOSE,MODE_MAIN,0);
      double boolline=iBands(NULL,0,BOLL_period,BOLL_dev,0,PRICE_CLOSE,MODE_SMA,0);
      //THV3 Coral
      //THV3 HA
      //THV3 Trix v4.01 Div
      double xxx=0,yyy=0;
      if(trix20) xxx=MathAbs(trix2-line_up);
      if(trix40) yyy=MathAbs(trix4-line_up);
      bool buytrend=false;
      if(ha_c>coral && ha_c>ma && trix1-1 && trix2-1 && xxx>0 && xxx0) buytrend=true;
      bool selltrend=false;
      if(ha_c-1 && trix4-1 && yyy>0 && yyy60)
         {
            Alert("买开价格: ", Ask, "  预警时间 :", TimeToString(CurTime()));
            SendMail("买开预警","买开价格: "+ DoubleToString(Ask,Digits)+ "  预警时间 :"+TimeToString(CurTime()));
            mark1=true;mark3=false;
            marktime=CurTime();
         }
      if(selltrend==true && mark2==false && CurTime()-marktime>60)
         {
            Alert("卖开价格: ", Bid, "  预警时间 :", TimeToString(CurTime()));
            SendMail("卖开价格","卖开价格: "+ DoubleToString(Bid,Digits)+ "  预警时间 :"+ TimeToString(CurTime()));
            mark2=true;mark4=false;
            marktime=CurTime();
         }
      if( (ha_c[b]boolline || ha_c>coral || ha_c>ma)) sellclose=true;   
      if(buyclose==true && mark3==false && CurTime()-marktime>60)
         {
            Alert("买平价格: ", Bid, "  预警时间 :", TimeToString(CurTime()));
            SendMail("买平价格: ","买平价格: "+ DoubleToString(Bid, Digits)+"  预警时间 :"+ TimeToString(CurTime()));
            mark3=true;
            buytrend=false;   mark1=false;
            marktime=CurTime();
         }
      if(sellclose==true && mark4==false && CurTime()-marktime>60)
         {
            Alert("卖平价格: ", Ask, "  预警时间 :", TimeToString(CurTime()));
            SendMail("卖平价格: ","卖平价格: "+ DoubleToString(Ask,Digits)+ "  预警时间 :"+TimeToString(CurTime()));
            mark4=true;
            selltrend=false;   mark2=false;
            marktime=CurTime();
         }
      string trend1="";  string trend2="";
      if(buytrend==true)   trend1="买单开仓状态";
      if(selltrend==true)   trend2="卖单开仓状态";
   Comment(trend1+trend2+"\n"+
      DoubleToString(ha_c,Digits) + "  " +DoubleToStr(boolline,Digits));
  }
//+------------------------------------------------------------------+
应该就是因为紫色和蓝色的time都是一个time,所以影响到红色的阻力位预警了

作者: jwzhangsir    时间: 2016-6-17 20:06

你这个再增加一个变量应该就可以了
//+------------------------------------------------------------------+
//|                                                        ff_EA.mq4 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
input double line_up=0.0012;
input double line_down=-0.0012;
input int MA1=60;
input int BOLL_period=25;
input int BOLL_dev=2;
input int InpFastEMA=12;   // Fast EMA Period
input int InpSlowEMA=26;   // Slow EMA Period
input int InpSignalSMA=9;  // Signal SMA Period
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
bool mark1; bool mark2; bool mark3; bool mark4,markup,markdown;
double uper,downer;
datetime marktime,marktime1;
bool markinit;
int OnInit()
  {
//---
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
      //iCustom()
      double coral=iCustom(NULL,0,"THV3 Coral",0,1);
      double ha_c=iCustom(NULL,0,"THV3 HA",3,1);
      double week=iCustom(NULL,0,"THV Visual_BT_Pivots V1.3",0,0);
      double ma=iMA(Symbol(),0,MA1,0,MODE_SMA,PRICE_CLOSE,1);
      double trix1=iCustom(NULL,0,"THV3 Trix v4.01 Div",0,1);
      double trix2=iCustom(NULL,0,"THV3 Trix v4.01 Div",2,1);
      double trix3=iCustom(NULL,0,"THV3 Trix v4.01 Div",1,1);
      double trix4=iCustom(NULL,0,"THV3 Trix v4.01 Div",3,1);
      double ww[7];
      ww[0]=ObjectGetDouble(0,"PivotLine",OBJPROP_PRICE1,0);
      ww[1]=ObjectGetDouble(0,"R1Line",OBJPROP_PRICE1,0);
      ww[2]=ObjectGetDouble(0,"R2Line",OBJPROP_PRICE1,0);
      ww[3]=ObjectGetDouble(0,"R3Line",OBJPROP_PRICE1,0);
      ww[4]=ObjectGetDouble(0,"S1Line",OBJPROP_PRICE1,0);
      ww[5]=ObjectGetDouble(0,"S2Line",OBJPROP_PRICE1,0);
      ww[6]=ObjectGetDouble(0,"S3Line",OBJPROP_PRICE1,0);
      double tempup=uper;
      double tempdown=downer;
      double minabs1=999;
      double minabs2=999;
      for(int i=0;iAsk && minabs1>=ww-Ask)
               {
                  minabs1=ww-Ask;
                  uper=ww;
               }
            if(ww[B]=Bid-ww)
               {
                  minabs2=Bid-ww;
                  downer=ww;
               }
         }
      if(tempup!=uper && tempup>0) markup=false;
      if(tempdown!=downer && tempdown>0) markdown=false;
      if(markup==false && Ask>uper-0.1*(uper-downer) && CurTime()-marktime>7200)
         {
            Alert("触上线: ", Ask, "  预警时间 :", TimeToString(CurTime()));
            SendMail("触上线","价格: "+ DoubleToString(Ask,Digits)+ "  预警时间 :"+TimeToString(CurTime()));
            markup=true;
            marktime=CurTime();
         }
      
      if(markdown==false && Bid7200)
         {
            Alert("触下线: ", Bid, "  预警时间 :", TimeToString(CurTime()));
            SendMail("触下线","价格: "+ DoubleToString(Bid,Digits)+ "  预警时间 :"+TimeToString(CurTime()));
            markdown=true;
            marktime=CurTime();
         }
      double macd1=iMACD(NULL,0,InpFastEMA,InpSlowEMA,InpSignalSMA,PRICE_CLOSE,MODE_MAIN,0);
      double boolline=iBands(NULL,0,BOLL_period,BOLL_dev,0,PRICE_CLOSE,MODE_SMA,0);
      //THV3 Coral
      //THV3 HA
      //THV3 Trix v4.01 Div
      double xxx=0,yyy=0;
      if(trix20) xxx=MathAbs(trix2-line_up);
      if(trix40) yyy=MathAbs(trix4-line_up);
      bool buytrend=false;
      if(ha_c>coral && ha_c>ma && trix1-1 && trix2-1 && xxx>0 && xxx0) buytrend=true;
      bool selltrend=false;
      if(ha_c-1 && trix4-1 && yyy>0 && yyy60)
         {
            Alert("买开价格: ", Ask, "  预警时间 :", TimeToString(CurTime()));
            SendMail("买开预警","买开价格: "+ DoubleToString(Ask,Digits)+ "  预警时间 :"+TimeToString(CurTime()));
            mark1=true;mark3=false;
            
marktime1=CurTime();
         }
      if(selltrend==true && mark2==false && CurTime()-
marktime1>60)
         {
            Alert("卖开价格: ", Bid, "  预警时间 :", TimeToString(CurTime()));
            SendMail("卖开价格","卖开价格: "+ DoubleToString(Bid,Digits)+ "  预警时间 :"+ TimeToString(CurTime()));
            mark2=true;mark4=false;
            
marktime1=CurTime();
         }
      if( (ha_cboolline || ha_c>coral || ha_c>ma)) sellclose=true;   
      if(buyclose==true && mark3==false && CurTime()-
marktime1>60)
         {
            Alert("买平价格: ", Bid, "  预警时间 :", TimeToString(CurTime()));
            SendMail("买平价格: ","买平价格: "+ DoubleToString(Bid, Digits)+"  预警时间 :"+ TimeToString(CurTime()));
            mark3=true;
            buytrend=false;   mark1=false;
            
marktime1=CurTime();
         }
      if(sellclose==true && mark4==false && CurTime()-
marktime1>60)
         {
            Alert("卖平价格: ", Ask, "  预警时间 :", TimeToString(CurTime()));
            SendMail("卖平价格: ","卖平价格: "+ DoubleToString(Ask,Digits)+ "  预警时间 :"+TimeToString(CurTime()));
            mark4=true;
            selltrend=false;   mark2=false;
            
marktime1=CurTime();
         }
      string trend1="";  string trend2="";
      if(buytrend==true)   trend1="买单开仓状态";
      if(selltrend==true)   trend2="卖单开仓状态";
   Comment(trend1+trend2+"\n"+
      DoubleToString(ha_c,Digits) + "  " +DoubleToStr(boolline,Digits));
  }
//+------------------------------------------------------------------+
应该就是因为紫色和蓝色的time都是一个time,所以影响到红色的阻力位预警了


作者: geziyi    时间: 2016-6-19 14:32
标题: 求助老司机看看EA
花钱做了一个EA,有个问题一直解决不了,就是预警提示几次(一般是买开-买平-卖开-卖平一共4次)就不再预警了,求助神咖看看源码哪里不对?能帮助小弟解决的话,交易系统双手奉上!!本人QQ584826321,如果论坛上没在,请联系小弟
//+------------------------------------------------------------------+
//|                                                        ff_EA.mq4 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
input double line_up=0.0012;
input double line_down=-0.0012;
input int MA1=60;
input int BOLL_period=25;
input int BOLL_dev=2;
input int InpFastEMA=12;   // Fast EMA Period
input int InpSlowEMA=26;   // Slow EMA Period
input int InpSignalSMA=9;  // Signal SMA Period
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
bool mark1; bool mark2; bool mark3; bool mark4,markup,markdown;
double uper,downer;
datetime marktime;
bool markinit;
int OnInit()
  {
//---
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
      if(markinit==true && TimeHour(CurTime())>=6 )
         {
            OnInit();markinit=false;
          }
      if(markinit==false && TimeHour(CurTime())>=5 && TimeHour(CurTime()Ask && minabs1>=ww[i]-Ask)
               {
                  minabs1=ww[i]-Ask;
                  uper=ww[i];
               }
            if(ww[i][B]=Bid-ww[i])
               {
                  minabs2=Bid-ww[i];
                  downer=ww[i];
               }
         }
      if(tempup!=uper && tempup>0) markup=false;
      if(tempdown!=downer && tempdown>0) markdown=false;
      if(markup==false && Ask>uper-0.1*(uper-downer) && CurTime()-marktime>7200)
         {
            Alert("触上线: ", Ask, "  预警时间 :", TimeToString(CurTime()));
            SendMail("触上线","价格: "+ DoubleToString(Ask,Digits)+ "  预警时间 :"+TimeToString(CurTime()));
            markup=true;
            marktime=CurTime();
         }
      if(markdown==false && Bid7200)
         {
            Alert("触下线: ", Bid, "  预警时间 :", TimeToString(CurTime()));
            SendMail("触下线","价格: "+ DoubleToString(Bid,Digits)+ "  预警时间 :"+TimeToString(CurTime()));
            markdown=true;
            marktime=CurTime();
         }
      double macd1=iMACD(NULL,0,InpFastEMA,InpSlowEMA,InpSignalSMA,PRICE_CLOSE,MODE_MAIN,0);
      double boolline=iBands(NULL,0,BOLL_period,BOLL_dev,0,PRICE_CLOSE,MODE_SMA,0);
      //THV3 Coral
      //THV3 HA
      //THV3 Trix v4.01 Div
      double xxx=0,yyy=0;
      if(trix20) xxx=MathAbs(trix2-line_up);
      if(trix40) yyy=MathAbs(trix4-line_up);
      bool buytrend=false;
      if(ha_c>coral && ha_c>ma && trix1-1 && trix2-1 && xxx>0 && xxx0) buytrend=true;
      bool selltrend=false;
      if(ha_c-1 && trix4-1 && yyy>0 && yyycoral || ha_c>ma)) sellclose=true;   
      if(buyclose==true && mark3==false)
         {
            Alert("买平价格: ", Bid, "  预警时间 :", TimeToString(CurTime()));
            SendMail("买平价格: ","买平价格: "+ DoubleToString(Bid, Digits)+"  预警时间 :"+ TimeToString(CurTime()));
            mark3=true;
            buytrend=false;
         }
      if(sellclose==true && mark4==false)
         {
            Alert("卖平价格: ", Ask, "  预警时间 :", TimeToString(CurTime()));
            SendMail("卖平价格: ","卖平价格: "+ DoubleToString(Ask,Digits)+ "  预警时间 :"+TimeToString(CurTime()));
            mark4=true;
            selltrend=false;
         }
  }
//+------------------------------------------------------------------+

作者: knightfx    时间: 2016-6-29 00:36
粗看了下,似乎是标记位的问题




欢迎光临 顺水外汇EA交易网MT4 (http://waterforex.com/) Powered by Discuz! X3.2