[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 165 1...158159160161162163164165166167168169170171172...652 新评论 oper11 2011.09.09 20:02 #1641 这里的故障')'藏在哪里?- 错误的参数计数 4次? 也许这不是写的方式? //-----------------------------------------------------------------------------+ // Удаление объекта OBJ_HLINE горизонтальная линия /Blue/Red | //-----------------------------------------------------------------------------+ void DelHLine(color cl, string nm="", double p1=0, int st=0, int wd=1) { int obj_total= ObjectsTotal(OBJ_HLINE); for(int i=0;i<obj_total;i++) { if(ObjectType(OBJ_HLINE)==true) { if(ObjectGet(OBJPROP_COLOR)==Red) { if(ObjectGet(OBJPROP_PRICE1)>Ask) ObjectDelete(FrDnNam); } } } for(i=0;i<obj_total;i++) { if(ObjectType(OBJ_HLINE)==true) { if(ObjectGet(OBJPROP_COLOR)==Blue) { if(ObjectGet(OBJPROP_PRICE1)<Bid) ObjectDelete(FrApNam); } } } return; } Alexander 2011.09.09 20:13 #1642 检查ObjectGet(),必须有两个参数。 Артур 2011.09.09 20:13 #1643 Roger: 使用NormalizeDouble(lot,2)函数 谢谢你。我怀疑这就是我在寻找的东西。 splxgf。 谢谢你的讨论。你的信息也会派上用场。 Artyom Trishkin 2011.09.10 03:46 #1644 Operr: 这里的故障')'藏在哪里?- 错误的参数计数 4次? 也许不应该这样写? ObjectType()和ObjectGet()函数缺少对象名称 Евгений 2011.09.10 05:14 #1645 Operr: 这里的故障')'藏在哪里?- 错误的参数计数 4次?也许这不是写的方法? //------------------------------------------------------------+ // Удаление объекта OBJ_HLINE горизонтальная линия /Blue/Red| //------------------------------------------------------------+ void DelHLine(string nm="") {int obj_total=ObjectsTotal(); for(int i=0;i<obj_total;i++) {if(nm==ObjectName(i)&&ObjectType(nm)==OBJ_HLINE) {color cl=ObjectGet(nm,OBJPROP_COLOR);double pr=ObjectGet(nm,OBJPROP_PRICE1); if((cl==Red&&pr>Ask)||(cl==Blue&&pr<Bid))ObjectDelete(nm);}}} [删除] 2011.09.10 07:26 #1646 请您告诉我,是否可以在MT4中强制更新构建?当我重新启动终端时,它并没有更新。 [删除] 2011.09.10 12:41 #1647 各位专业人士,我又需要你们的帮助了! 下面是一段负责关闭交易的代码,但问题是,当挂单 没有被执行时,它并没有删除它们,我搞不清楚原因。但是,当我需要关闭一个已经执行的挂单时,一切都很正常,如果订单没有被执行,那么它就会挂在那里,直到执行为止。 OrderSelect(0, SELECT_BY_POS, MODE_TRADES); Magic = OrderMagicNumber(); orderticket = OrderTicket(); if (OrdersTotal() ==1 && Magic == 111 &&OrderType( ) == 0) { if (H1_BUY_5 == 0 || H1_BUY_1 == 0) { OrderClose(orderticket, lots, Bid, 5, Yellow); if (OrdersTotal( ) == 1) OrderDelete(orderticket, Brown); } } --- 2011.09.10 13:13 #1648 Xaoss1990: 下面是一段负责关闭交易的代码,但问题是,当挂单没有被执行时,它并没有删除它们,我不明白为什么。 如果(OrdersTotal() == 1 && Magic == 111 &&OrderType( ) == 0) 这干扰了 [删除] 2011.09.10 16:15 #1649 我在我的EA中加入了一个功能,当止损被触发到盈亏平衡时,关闭1/3的开仓手,但由于某些原因,它没有发挥作用。 你能告诉我什么是错的吗? //======================================================================================= void BuyCloseOneThird(string sy="", int op=-1, int mn=-1) { double pr=0; int i, k=OrdersTotal(), np=-1; if (sy=="0") sy=Symbol(); for (i=k-1; i>=0; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if ((OrderSymbol()==sy || sy=="") && OrderType()==OP_BUY) { if (mn<0 || OrderMagicNumber()==mn) { if (Bid>OrderOpenPrice() && Bid==OrderStopLoss()) { if (OrderSelect(np, SELECT_BY_POS, MODE_TRADES)) { ClosePosBySelect();} } } } } } } //======================================================================================= void SellCloseOneThird(string sy="", int op=-1, int mn=-1) { double pr=0; int i, k=OrdersTotal(), np=-1; if (sy=="0") sy=Symbol(); for (i=k-1; i>=0; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if ((OrderSymbol()==sy || sy=="") && OrderType()==OP_BUY) { if (mn<0 || OrderMagicNumber()==mn) { if (Ask<OrderOpenPrice() && Ask==OrderStopLoss()) { if (OrderSelect(np, SELECT_BY_POS, MODE_TRADES)) { ClosePosBySelect();} } } } } } } //+------------------------------------------------------------------+ void ClosePosBySelect() { bool fc; color clClose; double pa, pb, pp; int err, it; double ll = MathCeil(OrderLots() / 3.0 * 10.0) / 10.0; if (OrderType()==OP_BUY || OrderType()==OP_SELL) { for (it=1; it<=5; it++) { if (!IsTesting() && (!IsExpertEnabled() || IsStopped())) break; while (!IsTradeAllowed()) Sleep(5000); RefreshRates(); pa=MarketInfo(OrderSymbol(), MODE_ASK); pb=MarketInfo(OrderSymbol(), MODE_BID); if (OrderType()==OP_BUY) { pp=pb; clClose=Red; } else { pp=pa; clClose=Blue; } ll=OrderLots(); fc=OrderClose(OrderTicket(), ll, pp, Slippage, clClose); if (fc) { PlaySound("wave"); break; } else { err=GetLastError(); if (err==146) while (IsTradeContextBusy()) Sleep(1000*11); Print(OrderTicket()," Ask=",pa," Bid=",pb," pp=",pp); Print("sy=",OrderSymbol()," ll=",ll," sl=",OrderStopLoss(), " tp=",OrderTakeProfit()," mn=",OrderMagicNumber()); Sleep(1000*5); } } } } Alexander 2011.09.10 16:29 #1650 Sancho77: 我在我的EA中加入了一个功能,当止损被触发到盈亏平衡时,关闭1/3的开仓手,但由于某些原因,它没有发挥作用。 你能告诉我什么是错的吗? 可能是因为你先计算了地段,然后 ll=OrderLots(); fc=OrderClose(OrderTicket(), ll, pp, Slippage, clClose); 1...158159160161162163164165166167168169170171172...652 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
使用NormalizeDouble(lot,2)函数
谢谢你。我怀疑这就是我在寻找的东西。
谢谢你的讨论。你的信息也会派上用场。
这里的故障')'藏在哪里?- 错误的参数计数 4次? 也许不应该这样写?
这里的故障')'藏在哪里?- 错误的参数计数 4次?也许这不是写的方法?
各位专业人士,我又需要你们的帮助了!
下面是一段负责关闭交易的代码,但问题是,当挂单 没有被执行时,它并没有删除它们,我搞不清楚原因。但是,当我需要关闭一个已经执行的挂单时,一切都很正常,如果订单没有被执行,那么它就会挂在那里,直到执行为止。
OrderSelect(0, SELECT_BY_POS, MODE_TRADES);
Magic = OrderMagicNumber();
orderticket = OrderTicket();
if (OrdersTotal() ==1 && Magic == 111 &&OrderType( ) == 0)
{
if (H1_BUY_5 == 0 || H1_BUY_1 == 0)
{
OrderClose(orderticket, lots, Bid, 5, Yellow);
if (OrdersTotal( ) == 1) OrderDelete(orderticket, Brown);
}
}
Xaoss1990:
下面是一段负责关闭交易的代码,但问题是,当挂单没有被执行时,它并没有删除它们,我不明白为什么。
如果(OrdersTotal() == 1 && Magic == 111 &&OrderType( ) == 0)
这干扰了
我在我的EA中加入了一个功能,当止损被触发到盈亏平衡时,关闭1/3的开仓手,但由于某些原因,它没有发挥作用。
你能告诉我什么是错的吗?
我在我的EA中加入了一个功能,当止损被触发到盈亏平衡时,关闭1/3的开仓手,但由于某些原因,它没有发挥作用。
你能告诉我什么是错的吗?
可能是因为你先计算了地段,然后