关闭半数地段。 - 页 19 1...1213141516171819 新评论 Dominic Gilbert 2013.08.22 20:00 #181 我只是认为更新这个主题是公平的,因为很多人帮助我了解了如何让这个问题得到解决和工作!这就是我的工作方式,它像坚果一样甜美,并在正确的时间关闭。首先是FirstTarget,如果它是真的并且已经成功关闭,然后是EMA关闭,然后是TwoRatio_Buy目标... //+--------------------------------------------------------------------------------------------------+ //| Close OP_BUY Half lots @ 1:1 Function | //+--------------------------------------------------------------------------------------------------+ void CloseHalfOrder() { static datetime partclosedonce; static datetime partclosedtwice; static datetime partclosedthird; double minLot=MarketInfo(Symbol(),MODE_MINLOT); double lotStep=MarketInfo(Symbol(),MODE_LOTSTEP); double half_1st=MathFloor(OrderLots()/First_Target/lotStep)*lotStep; double half_2nd=MathFloor(OrderLots()/EMA_Target/lotStep)*lotStep; double Target_2 =MathFloor(OrderLots()/Second_Target/lotStep)*lotStep; double EMA_Bar = iClose(NULL, PERIOD_H1, 1); double EMA_MA = iMA(Symbol(),60,21,0,1,0,0); double FirstTarget_Buy = OrderOpenPrice()+(( OrderTakeProfit()-OrderOpenPrice())/6); double TwoRatio_Buy = OrderOpenPrice()+(( OrderTakeProfit()-OrderOpenPrice())/3); for(int c=OrdersTotal()-1; c>=0; c--) { if(OrderSelect(c,SELECT_BY_POS,MODE_TRADES)) if(OrderMagicNumber()==MagicNumber) if(OrderSymbol() == Symbol()) { if(OrderOpenTime() != partclosedonce) if(OrderType()==OP_BUY && Bid >= FirstTarget_Buy+(Point/2) && OrderLots()>minLot) { bool Close_Half_Order_Buy=OrderClose(OrderTicket(),half_1st,Bid,5,Blue); } if(Close_Half_Order_Buy==True && OrderOpenPrice() > OrderStopLoss()) { MoveToBreakEven(); } if(Close_Half_Order_Buy==True) { partclosedonce = OrderOpenTime(); } if(partclosedonce == OrderOpenTime() && partclosedonce != partclosedtwice && OrderOpenTime() != partclosedtwice) if(Bid - OrderOpenPrice() > Point / 2. && OrderType()==OP_BUY && EMA_Bar < EMA_MA && OrderLots()>minLot) { bool EMA_Buy_Close=OrderClose(OrderTicket(),half_2nd,Bid,5,CLR_NONE); if(EMA_Buy_Close==True)partclosedtwice = OrderOpenTime(); } if(OrderOpenTime() != partclosedthird) if(OrderType()==OP_BUY && Bid >= TwoRatio_Buy+(Point/2) && OrderLots()>minLot) { bool Two_Ratio_Buy=OrderClose(OrderTicket(),Target_2,Bid,5,CLR_NONE); if(Two_Ratio_Buy==True)partclosedthird = OrderOpenTime(); } } } } 1...1213141516171819 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录