什么是order_id? - 页 3 1234 新评论 Simon Gniadkowski 2012.10.31 09:46 #21 为什么你要打印DIPlus1的值8次? 使用这一行......一次。Print("DIPlus1: ", DoubleToStr(DIPlus1, Digits), " DIMinus1: ", DoubleToStr(DIMinus1, Digits), " Main0: ",DoubleToStr(Main0, Digits), " Rsi: ",DoubleToStr(Rsi, Digits) ); Simon Gniadkowski 2012.10.31 09:58 #22 你需要使你的缩进更加清晰,以便于你和其他人跟随......。for(PositionIndex = TotalNumberOfOrders - 1; PositionIndex >= 0 ; PositionIndex --) { if( OrderSelect(PositionIndex, SELECT_BY_POS, MODE_TRADES) ) continue; Print("DIPlus1: ", DoubleToStr(DIPlus1, Digits), " DIMinus1: ", DoubleToStr(DIMinus1, Digits), " Main0: ",DoubleToStr(Main0, Digits), " Rsi: ",DoubleToStr(Rsi, Digits) ); if( OrderMagicNumber() == MagicNumber2 && OrderSymbol() == Symbol() && OrderType() == OP_BUY || OrderType() == OP_SELL ) { if( DIPlus1 > DIMinus1 || Main0 < err || Rsi < xx) OrderClose(OrderTicket(),OrderLots(),Bid,3,Green); } if( OrderMagicNumber() == MagicNumber1 && OrderSymbol() == Symbol() && OrderType() == OP_BUY || OrderType() == OP_SELL ) { if( DIPlus1 < DIMinus1 || Main0 < err || Rsi > x ) OrderClose(OrderTicket(),OrderLots(),Ask,3,Green); } if ( ! OrderClose( OrderTicket(), OrderLots(), OrderClosePrice(), 3 ) ) // <------ why this extra OrderClose ??? Print("Order Close failed, order number: ", OrderTicket(), " Error: ", GetLastError() ); } toi10005doi 2012.10.31 10:29 #23 谢谢Raptor。我希望我的EA工作。我的新代码。int start() { int i ,times; string DIPlus1; string DIPlus0; string DIMinus1; string DIMinus0; string Main1; string Main0; string MACD_main; string MACD_signal; string Rsi; string err = 26; string x = 70; string xx = 30; double sl = 300; double tp = 50; int MagicNumber1=1234,MagicNumber2=4321; //---- /*DIPlus1=DoubleToStr( DIPlus1, 4); DIPlus0=DoubleToStr( DIPlus0, 4); DIMinus1=DoubleToStr( DIMinus1, 4); DIMinus0=DoubleToStr( DIMinus0, 4); Main1=DoubleToStr( Main1, 4); Main0=DoubleToStr( Main0, 4); Rsi=DoubleToStr( Rsi, 4); //err=DoubleToStr(err,4); //x=DoubleToStr(x,4); //xx=DoubleToStr(xx,4);*/ //--- DIPlus1=iADX(NULL,0,14,PRICE_CLOSE,MODE_PLUSDI,1); DIPlus0=iADX(NULL,0,14,PRICE_CLOSE,MODE_PLUSDI,0); DIMinus1=iADX(NULL,0,14,PRICE_CLOSE,MODE_MINUSDI,1); DIMinus0=iADX(NULL,0,14,PRICE_CLOSE,MODE_MINUSDI,0); Main1=iADX(NULL,0,14,PRICE_CLOSE,MODE_MAIN,1); Main0=iADX(NULL,0,14,PRICE_CLOSE,MODE_MAIN,0); Rsi = iRSI(NULL,0,14,PRICE_CLOSE,0); times = Minute() % 15 ==0 && Seconds() ==0; //MACD_main = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0); //MACD_signal = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0); //---- if(Minute() % 15 ==0 && Seconds() ==0) { if( Main0 > err && Main1 < err && DIPlus1 > DIMinus1 && Rsi < x ) OrderSend(Symbol(),OP_BUY,0.03,Ask,5,Ask-sl*Point,Ask+tp*Point,"",1234,0,Blue); if (Main0 > err && Main1 < err && DIPlus1 < DIMinus1 && Rsi > xx) OrderSend(Symbol(),OP_SELL,0.03,Bid,5,Bid+sl*Point ,Bid-tp*Point,"",4321,0,Red); } //--- int PositionIndex; int TotalNumberOfOrders; TotalNumberOfOrders = OrdersTotal(); for(PositionIndex = TotalNumberOfOrders - 1; PositionIndex >= 0 ; PositionIndex --) if( OrderSelect(PositionIndex, SELECT_BY_POS, MODE_TRADES) ) continue; { if( OrderMagicNumber() == MagicNumber2 && OrderSymbol() == Symbol() && OrderType() == OP_BUY || OrderType() == OP_SELL ) Print("DIPlus1: ", DoubleToStr(DIPlus1, Digits), " DIMinus1: ", DoubleToStr(DIMinus1, Digits), " Main0: ",DoubleToStr(Main0, Digits), " Rsi: ",DoubleToStr(Rsi, Digits) ); {if( DIPlus1 > DIMinus1 || Main0 < err || Rsi < xx) OrderClose(OrderTicket(),OrderLots(),Bid,3,Green); else Print("Order Close failed, order number: ", OrderTicket(), " Error: ", GetLastError() ); } if( OrderMagicNumber() == MagicNumber1 && OrderSymbol() == Symbol() && OrderType() == OP_BUY || OrderType() == OP_SELL ) Print("DIPlus1: ", DoubleToStr(DIPlus1, Digits), " DIMinus1: ", DoubleToStr(DIMinus1, Digits), " Main0: ",DoubleToStr(Main0, Digits), " Rsi: ",DoubleToStr(Rsi, Digits) ); { if( DIPlus1 < DIMinus1 || Main0 < err || Rsi > x ) OrderClose(OrderTicket(),OrderLots(),Ask,3,Green); else Print("Order Close failed, order number: ", OrderTicket(), " Error: ", GetLastError() ); } } return(0); } 立即关闭!:( Simon Gniadkowski 2012.10.31 10:48 #24 RaptorUK: // <------ why this extra OrderClose ??? 你有答案吗? toi10005doi 2012.10.31 10:52 #25 RaptorUK: 你有答案吗? 我把它修好了!请预览我的新代码。谢谢!? Simon Gniadkowski 2012.10.31 11:00 #26 toi10005doi:我把它修好了!请预览我的新代码。谢谢! 我给了你使用的代码 ......你需要做的就是复制和粘贴它。 你的代码仍然是错误的 ......你需要回去再读一遍这本书 。 if( OrderMagicNumber() == MagicNumber1 && OrderSymbol() == Symbol() && OrderType() == OP_BUY || OrderType() == OP_SELL ) // if this is true only the Print is called . . . Print("DIPlus1: ", DoubleToStr(DIPlus1, Digits), " DIMinus1: ", DoubleToStr(DIMinus1, Digits), " Main0: ",DoubleToStr(Main0, Digits), " Rsi: ",DoubleToStr(Rsi, Digits) ); { if( DIPlus1 < DIMinus1 || Main0 < err || Rsi > x ) // this happens regardless of the if above . . . OrderClose(OrderTicket(),OrderLots(),Ask,3,Green); else Print("Order Close failed, order number: ", OrderTicket(), " Error: ", GetLastError() ); // this happens if the if above is false . . . why ?? } toi10005doi 2012.10.31 15:16 #27 RaptorUK: 我给了你使用的代码 ...... 你需要做的就是复制和粘贴它。 你的代码仍然是错误的 ......你需要回去再读一遍这本书 。 是的!我将更多地阅读这本书。你能为我预览这个代码吗?for(PositionIndex = TotalNumberOfOrders - 1; PositionIndex >= 0 ; PositionIndex --) { if( OrderSelect(PositionIndex, SELECT_BY_POS, MODE_TRADES) ) continue; Print("DIPlus1: ", DoubleToStr(DIPlus1, Digits), " DIMinus1: ", DoubleToStr(DIMinus1, Digits), " Main0: ",DoubleToStr(Main0, Digits), " Rsi: ",DoubleToStr(Rsi, Digits) ); if( OrderMagicNumber() == MagicNumber2 && OrderSymbol() == Symbol() && OrderType() == OP_BUY || OrderType() == OP_SELL ) { if( DIPlus1 > DIMinus1 || Main0 < err || Rsi < xx) { if(! OrderClose(OrderTicket(),OrderLots(),Bid,3,Green)) Print("Order Close failed, order number: ", OrderTicket(), " Error: ", GetLastError() ); } } if( OrderMagicNumber() == MagicNumber1 && OrderSymbol() == Symbol() && OrderType() == OP_BUY || OrderType() == OP_SELL ) { if( DIPlus1 < DIMinus1 || Main0 < err || Rsi > x ) { if(! OrderClose(OrderTicket(),OrderLots(),Ask,3,Green)) Print("Order Close failed, order number: ", OrderTicket(), " Error: ", GetLastError() ); } } } return(0); } 为什么它不能关闭订单? Simon Gniadkowski 2012.10.31 15:36 #28 toi10005doi:是的!我将更多地阅读这本书。你能为我预览这个代码吗?为什么它不能关闭订单? 你能复制并粘贴打印语句中变量的信息到日志中吗。 toi10005doi 2012.10.31 15:59 #29 RaptorUK: 你能否复制并打印打印语句中变量的信息到日志中。 我刚刚进行了回测。但它没有关闭任何订单? Simon Gniadkowski 2012.10.31 16:03 #30 toi10005doi:我刚刚进行了回测。但它没有关闭任何订单? 看看日志,找出打印的数值。 你能不能把它们也复制并粘贴到这里呢 ... ...添加打印语句的目的是为了进行调试。你需要看一下这些数据并找出问题所在。 1234 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
为什么你要打印DIPlus1的值8次?
使用这一行......一次。
你需要使你的缩进更加清晰,以便于你和其他人跟随......。
谢谢Raptor。我希望我的EA工作。
我的新代码。
立即关闭!:(
// <------ why this extra OrderClose ???
你有答案吗?
我把它修好了!
请预览我的新代码。谢谢!?
我把它修好了!
请预览我的新代码。谢谢!
你的代码仍然是错误的 ......你需要回去再读一遍这本书 。
我给了你使用的代码 ...... 你需要做的就是复制和粘贴它。
你的代码仍然是错误的 ......你需要回去再读一遍这本书 。
是的!我将更多地阅读这本书。你能为我预览这个代码吗?
为什么它不能关闭订单?
是的!我将更多地阅读这本书。你能为我预览这个代码吗?
为什么它不能关闭订单?
你能否复制并打印打印语句中变量的信息到日志中。
我刚刚进行了回测。但它没有关闭任何订单?
我刚刚进行了回测。但它没有关闭任何订单?