顺水外汇EA交易网MT4

标题: 在别的地方看到一个马丁EA,为什么无法运行 [打印本页]

作者: qaz8988    时间: 2016-7-3 20:38
标题: 在别的地方看到一个马丁EA,为什么无法运行
[C++] 纯文本查看 复制代码 /*
  +--------+
  |Divergence Trader -- v11 has no divergence. How 'bout that!
  +--------+
  */
  #property copyright " "
  #property link ""
  extern bool auto_close_order = false;
  // user input
  extern double Lots=0.1; // how many lots to trade at a time
  extern int MA1_Period=50;
  extern int MA2_Period=150;
  extern int MA3_Period=10;
  extern int MA4_Period=20;
  int MA_Price = PRICE_OPEN;
  int MA_Mode = MODE_SMA;
  extern double ProfitMade=100; // how much money do you expect to make
  extern double LossLimit=115; // how much loss can you tolorate
  //extern int BasketProfit=10; // if equity reaches this level, close trades
  //extern int BasketLoss=9999; // if equity reaches this negative level, close trades
  extern int PLBreakEven=9999; // set break even when this many pips are made (999=off)
  int Slippage=2; // how many pips of slippage can you tolorate
  // naming and numbering
  int MagicNumber = 200601182020; // allows multiple experts to trade on same account
  string TradeComment = "哥的EA";
  // Bar handling
  datetime bartime=0; // used to determine when a bar has moved
  int bartick=0; // number of times bars have moved
  int objtick=0; // used to draw objects on the chart
  int tickcount=0;
  // Trade control
  bool TradeAllowed=true; // used to manage trades
  //+-------------+
  //| Custom init |
  //|-------------+
  // Called ONCE when EA is added to chart or recompiled
  int init()
  {
  int i;
  string o;
  //remove the old objects
  for(i=0; i[B]= 0 && TimeHour(TimeCurrent()) =0;cnt--)
  {
  OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
  if( OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
  {
  OrdersPerSymbol++;
  }
  }
  //+-----------------------------+
  //| Insert your indicator here |
  //| And set either BUYme or |
  //| SELLme true to place orders |
  //+-----------------------------+
  // high and low of [1] and open of [0] either above or below the MA
  maHI=High[1];
  maLO=Low[1];
  maOPEN=Open[0];
  ma0=iMA(Symbol(),0,MA1_Period,0,MA_Mode,MA_Price,1);
  ma1=iMA(Symbol(),0,MA2_Period,0,MA_Mode,MA_Price,1);
  ma2=iMA(Symbol(),0,MA3_Period,0,MA_Mode,MA_Price,1);
  ma3=iMA(Symbol(),0,MA4_Period,0,MA_Mode,MA_Price,1);
  ma2_1=iMA(Symbol(),0,MA3_Period,0,MA_Mode,MA_Price,0);
  ma2_2=iMA(Symbol(),0,MA3_Period,0,MA_Mode,MA_Price,2);
  double kdj1 = iStochastic(Symbol(),0,10,5,5,MODE_SMA,1,MODE_MAIN,1);
  double kdj2 = iStochastic(Symbol(),0,10,5,5,MODE_SMA,1,MODE_SIGNAL,1);
  // double kdj11 = iStochastic(Symbol(),0,20,10,10,MODE_SMA,1,MODE_MAIN,1);
  // double kdj21 = iStochastic(Symbol(),0,20,10,10,MODE_SMA,1,MODE_SIGNAL,1);
  // if(kdj1>kdj2 && kdj11>kdj21)close_order(OP_SELL,1);
  // if(kdj1 ma3)close_order(OP_SELL,0);
  if(ma2 ma0 && maLO>ma0 && maOPEN>ma0
  && maHI>ma2 && maOPEN>ma2
  && maOPEN>ma1 && ma0>ma1
  && ma2 > ma3
  && ma2_1>ma2 && ma2>ma2_2
  //&& kdj1>kdj2 //&& kdj110
  ) SELLme=true;
  //+------------+
  //| End Insert |
  //+------------+
  // if(kdj1>kdj2)close_order(OP_SELL,1);
  // if(kdj1

作者: qaz8988    时间: 2016-7-3 20:39
/*
  +--------+
  |Divergence Trader -- v11 has no divergence. How 'bout that!
  +--------+
  */
  #property copyright " "
  #property link ""
  extern bool auto_close_order = false;
  // user input
  extern double Lots=0.1; // how many lots to trade at a time
  extern int MA1_Period=50;
  extern int MA2_Period=150;
  extern int MA3_Period=10;
  extern int MA4_Period=20;
  int MA_Price = PRICE_OPEN;
  int MA_Mode = MODE_SMA;
  extern double ProfitMade=100; // how much money do you expect to make
  extern double LossLimit=115; // how much loss can you tolorate
  //extern int BasketProfit=10; // if equity reaches this level, close trades
  //extern int BasketLoss=9999; // if equity reaches this negative level, close trades
  extern int PLBreakEven=9999; // set break even when this many pips are made (999=off)
  int Slippage=2; // how many pips of slippage can you tolorate
  // naming and numbering
  int MagicNumber = 200601182020; // allows multiple experts to trade on same account
  string TradeComment = "哥的EA";
  // Bar handling
  datetime bartime=0; // used to determine when a bar has moved
  int bartick=0; // number of times bars have moved
  int objtick=0; // used to draw objects on the chart
  int tickcount=0;
  // Trade control
  bool TradeAllowed=true; // used to manage trades
  //+-------------+
  //| Custom init |
  //|-------------+
  // Called ONCE when EA is added to chart or recompiled
  int init()
  {
  int i;
  string o;
  //remove the old objects
  for(i=0; i[B]= 0 && TimeHour(TimeCurrent()) =0;cnt--)
  {
  OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
  if( OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
  {
  OrdersPerSymbol++;
  }
  }
  //+-----------------------------+
  //| Insert your indicator here |
  //| And set either BUYme or |
  //| SELLme true to place orders |
  //+-----------------------------+
  // high and low of [1] and open of [0] either above or below the MA
  maHI=High[1];
  maLO=Low[1];
  maOPEN=Open[0];
  ma0=iMA(Symbol(),0,MA1_Period,0,MA_Mode,MA_Price,1);
  ma1=iMA(Symbol(),0,MA2_Period,0,MA_Mode,MA_Price,1);
  ma2=iMA(Symbol(),0,MA3_Period,0,MA_Mode,MA_Price,1);
  ma3=iMA(Symbol(),0,MA4_Period,0,MA_Mode,MA_Price,1);
  ma2_1=iMA(Symbol(),0,MA3_Period,0,MA_Mode,MA_Price,0);
  ma2_2=iMA(Symbol(),0,MA3_Period,0,MA_Mode,MA_Price,2);
  double kdj1 = iStochastic(Symbol(),0,10,5,5,MODE_SMA,1,MODE_MAIN,1);
  double kdj2 = iStochastic(Symbol(),0,10,5,5,MODE_SMA,1,MODE_SIGNAL,1);
  // double kdj11 = iStochastic(Symbol(),0,20,10,10,MODE_SMA,1,MODE_MAIN,1);
  // double kdj21 = iStochastic(Symbol(),0,20,10,10,MODE_SMA,1,MODE_SIGNAL,1);
  // if(kdj1>kdj2 && kdj11>kdj21)close_order(OP_SELL,1);
  // if(kdj1 ma3)close_order(OP_SELL,0);
  if(ma2 ma0 && maLO>ma0 && maOPEN>ma0
  && maHI>ma2 && maOPEN>ma2
  && maOPEN>ma1 && ma0>ma1
  && ma2 > ma3
  && ma2_1>ma2 && ma2>ma2_2
  //&& kdj1>kdj2 //&& kdj110
  ) SELLme=true;
  //+------------+
  //| End Insert |
  //+------------+
  // if(kdj1>kdj2)close_order(OP_SELL,1);
  // if(kdj1<kdj2)close_order(OP_BUY,1);
  //ENTRY LONG (buy, Ask)
  if(TradeAllowed && BUYme)
  {
  close_order(OP_SELL,0);
  //Ask(buy, long)
  if(LossLimit ==0) SL=0; else SL=Ask-( (LossLimit +7)*Point );
  if(ProfitMade==0) TP=0; else TP=Ask+( (ProfitMade+7)*Point );
  OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,SL,TP,TradeComment,MagicNumber,White);
  gle=GetLastError();
  if(gle==0)
  {
  Print("BUY Ask=",Ask," bartick=",bartick);
  ObjectCreate("myx"+DoubleToStr(objtick,0), OBJ_TEXT, 0, Time[0], High[0]+(5*p));
  ObjectSetText("myx"+DoubleToStr(objtick,0),"B",15,"Arial",Red);
  bartick=0;
  TradeAllowed=false;
  }
  else
  {
  Print("-----ERROR----- BUY Ask=",Ask," error=",gle," bartick=",bartick);
  }
  }
作者: qaz8988    时间: 2016-7-3 21:55
哪位朋友能帮忙看看,问题出在哪里了?
作者: qaz8988    时间: 2016-7-4 09:31
貌似是 哪里有 }  用的不对

作者: qaz8988    时间: 2016-7-4 14:43
哪位看看。。。
作者: james_luqixuan    时间: 2016-7-4 18:37
额,看看看看了解一下
作者: qaz8988    时间: 2016-7-4 18:37
'{' - unbalanced parentheses        马丁网格1.mq4        79        1
')' - unexpected end of program        马丁网格1.mq4        187        1

作者: jueeee    时间: 2016-7-4 22:29
你这就是个半成品,,都还没有写完的
作者: qaz8988    时间: 2016-7-4 22:29

.........i原来如此啊

作者: 11649078    时间: 2016-7-5 16:34
520有你更精彩
作者: qaz8988    时间: 2016-7-5 16:34

兄弟懂吗,帮忙看看

作者: 简单加法    时间: 2016-7-5 21:09
最后加一个大括号,写的及其不认真,有函数未定义。
作者: qaz8988    时间: 2016-7-5 21:09

谢谢,已经放弃这个版本了。。

作者: cinalex    时间: 2016-7-6 15:09
哦  ,
作者: freeold    时间: 2016-7-6 18:35
学习学习




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