[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 47 1...404142434445464748495051525354...652 新评论 Дмитрий 2011.08.04 09:48 #461 PapaYozh: 不,不是的。情况变得更加糟糕了 :) 理解,RefreshRates()更新了预定义的 Ask和Bid变量的值,你使用的是曾经存储在Price变量中的值。 明白了 :-)我以为只有当这个函数中的执行达到OrderSend时才会访问Price。 int OpenPosition(string AdvisorName,int Position,int Magic,double Lots,double StopLoss){ int N; int Сount = 5; int Slippage = (CalculateSpread() * 2); double Price; string PeriodString = GetPeriod(Period()); if(Position == OP_BUY){ string OrderName = StringConcatenate(AdvisorName," - Покупка по рынку"); string ErrorName = "Ошибка открытия ордера на покупку"; string CriticalErrorName = "Невозможно открыть ордер на покупку"; string MailCriticalErrorName = "Ошибка открытия"; color Arrow = Gold;} if(Position == OP_SELL){ OrderName = StringConcatenate(AdvisorName," - Продажа по рынку"); ErrorName = "Ошибка открытия ордера на продажу"; CriticalErrorName = "Невозможно открыть ордер на продажу"; MailCriticalErrorName = "Ошибка открытия"; Arrow = YellowGreen;} while(IsTradeContextBusy() || !IsTradeAllowed()){int Interval = MathRand()+1000; Print("Торговый поток занят. Повторная проверка через "+DoubleToStr((Interval/1000),0)+" сек"); Sleep(Interval);} while(N < Сount){ if(Position == OP_BUY){RefreshRates(); Price = NormalizeDouble(Ask,Digits);} if(Position == OP_SELL){RefreshRates(); Price = NormalizeDouble(Bid,Digits);} int Ticket = OrderSend(Symbol(),Position,Lots,Price,Slippage,StopLoss,0,OrderName,Magic,0,Arrow); if(Ticket > 0){if(OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES)){int Flag = 1; PlaySound("recharge.wav"); break;}} else{Flag = 0; int PRM = GetLastError(); string ERR = Error(PRM,"OrderSend()"); ErrorProcessing(AdvisorName+" "+PeriodString,ErrorName+" "+PRM+" ("+ Error(PRM,"OrderSend()")+")","","OrderSend()"); N++; Sleep(5000);} if(N == Сount){ErrorProcessing(AdvisorName+" "+PeriodString,CriticalErrorName, MailCriticalErrorName+" "+PRM+" ("+Error(PRM,"OrderSend()")+")","OrderSend()");}} return(Flag);} 现在看来是对的,不是吗?))。 PapaYozh 2011.08.04 10:33 #462 Dimoncheg: 明白了:-)我以为只有当这个函数中的执行达到OrderSend时才会访问Price。 现在看来是正确的,对吗?)) 我想是的。 [删除] 2011.08.04 11:03 #463 int BlackOrWhite(int countbar) { int result_=0; if (iClose(NULL,0,countbar)-iOpen(NULL,0,countbar)) result_=1; else result_=-1; if (iOpen(NULL,0,countbar)==iClose(NULL,0,countbar)) result_=0; return(result_); }函数,由于某种原因只给出一个值+编译器发誓。'iClose' - 预期的比较表达式我不明白什么是错的。if(BlackOrWhite(1)>0) { 所以在节目中使用它。 Victor Nikolaev 2011.08.04 11:11 #464 nuan: 函数,由于某种原因只给出了一个值+编译器皱眉。 'iClose' - 预期的比较表达式 我不明白什么是错的。 这是我在应用中的使用方法。 if (iClose(NULL,0,countbar)-iOpen(NULL,0,countbar)>0) result_=1; else result_=-1; 或者说是这样的 if (iClose(NULL,0,countbar)>iOpen(NULL,0,countbar)) result_=1; else result_=-1; Дмитрий 2011.08.04 11:11 #465 PapaYozh: 我想是的。 一切似乎都在运作,谢谢你。 [删除] 2011.08.04 11:13 #466 非常感谢你。 [删除] 2011.08.04 12:35 #467 你好。我需要一些帮助。问题是这样的。 在一个订单被触发后,无论如何都需要关闭所有其他订单。再按条件,新的应该打开。 Роман 2011.08.04 12:43 #468 sergey_r: 你好。我需要一些帮助。问题是这样的。 在一个订单被触发后,无论如何都需要关闭所有其他订单。再按条件,新的应该打开。 这时 你读过课本吗? [删除] 2011.08.04 12:51 #469 到目前为止,我已经使用了 static bool order_opened = false。 如果(order_opened){return(0);}。 OrderSend(Symbol(),OP_BUYLIMIT,0.1,cena_buy,3,sl_buy,tp_buy,"",14774,0,Blue); Alert (GetLastError()); //下单的错误信息 order_opened = true; //如果订单成功,不要再打开 现在我们只需要在订单成功后开一个新的订单。 Роман 2011.08.04 13:25 #470 sergey_r:到目前为止,我已经使用了 static bool order_opened = false。 如果(order_opened){return(0);}。OrderSend(Symbol(),OP_BUYLIMIT,0.1,cena_buy,3,sl_buy,tp_buy,"",14774,0,Blue); Alert (GetLastError()); //下单的错误信息 order_opened = true; //如果订单成功,不要再打开现在我们只需要在订单成功后开一个新的订单。 阅读教程和文档,通过姿势条件改变打开、关闭的逻辑,通过CTRL+ALT+M插入代码。 1...404142434445464748495051525354...652 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
不,不是的。情况变得更加糟糕了 :)
理解,RefreshRates()更新了预定义的 Ask和Bid变量的值,你使用的是曾经存储在Price变量中的值。
现在看来是对的,不是吗?))。明白了 :-)我以为只有当这个函数中的执行达到OrderSend时才会访问Price。
现在看来是正确的,对吗?))明白了:-)我以为只有当这个函数中的执行达到OrderSend时才会访问Price。
我想是的。
函数,由于某种原因只给出一个值+编译器发誓。
'iClose' - 预期的比较表达式
我不明白什么是错的。
所以在节目中使用它。函数,由于某种原因只给出了一个值+编译器皱眉。
'iClose' - 预期的比较表达式
我不明白什么是错的。
这是我在应用中的使用方法。或者说是这样的
我想是的。
一切似乎都在运作,谢谢你。
你好。我需要一些帮助。问题是这样的。
在一个订单被触发后,无论如何都需要关闭所有其他订单。再按条件,新的应该打开。
你好。我需要一些帮助。问题是这样的。
在一个订单被触发后,无论如何都需要关闭所有其他订单。再按条件,新的应该打开。
这时 你读过课本吗?
到目前为止,我已经使用了
static bool order_opened = false。
如果(order_opened){return(0);}。
OrderSend(Symbol(),OP_BUYLIMIT,0.1,cena_buy,3,sl_buy,tp_buy,"",14774,0,Blue);
Alert (GetLastError()); //下单的错误信息
order_opened = true; //如果订单成功,不要再打开
现在我们只需要在订单成功后开一个新的订单。
到目前为止,我已经使用了
static bool order_opened = false。
如果(order_opened){return(0);}。
OrderSend(Symbol(),OP_BUYLIMIT,0.1,cena_buy,3,sl_buy,tp_buy,"",14774,0,Blue);
Alert (GetLastError()); //下单的错误信息
order_opened = true; //如果订单成功,不要再打开
现在我们只需要在订单成功后开一个新的订单。
阅读教程和文档,通过姿势条件改变打开、关闭的逻辑,通过CTRL+ALT+M插入代码。