新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1719 1...171217131714171517161717171817191720172117221723172417251726...1953 新评论 Tretyakov Rostyslav 2021.11.04 11:00 #17181 Snajper007 卖单 被打开,该函数计算出平均价格。然而,当第3个订单被打开时,这个函数显示了前一个和新的值(我通过日志中的打印查看),但结果是前一个值仍然存在。我做错了什么? //+----------------------------------------------------------------------------+ //| Расчет среденй цены (0)-buy (1)-sell | //+----------------------------------------------------------------------------+ double GetAveragePrice(int ot=-1) { double order_lots = 0, order_price = 0, avg_price = 0; { for(int i = OrdersTotal()-1; i>=0; i--) { if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) { if(OrderType()==ot||ot<0) { order_lots += OrderLots(); order_price += OrderOpenPrice() * OrderLots(); } } } } } avg_price = NormalizeDouble(order_price / order_lots, Digits); return(avg_price); } //+----------------------------------------------------------------------------+ Snajper007 2021.11.04 11:30 #17182 MakarFX #: 谢谢你! Sergei Pimenov 2021.11.04 16:41 #17183 下午好,谁能帮助实现一个过滤器,根据指标开仓交易? Tretyakov Rostyslav 2021.11.04 17:02 #17184 Sergei Pimenov #: 下午好,谁能帮助实现一个基于指标的交易开仓过滤器? 阅读更多 Порт-моне тв 2021.11.05 21:58 #17185 帮我完善一下逻辑。我需要在关闭的订单和开启的新订单之间有一个小时的停顿。我已经解决了一些问题。但这并不奏效。 OrderCloseTime() > 0 && TimeCurrent() - OrderCloseTime() > FstOrderTimeHour*3600 // сигнал на открытие ордера OrderCloseTime() == 0 // сигнал на открытие первого ордера где int FstOrderTimeHour = 1 // пауза в часах Tretyakov Rostyslav 2021.11.06 07:21 #17186 Порт-моне тв #:帮我完善一下逻辑。我需要在关闭的订单和开启的新订单之间有一个小时的停顿。我已经解决了一些问题。但这并不奏效。 //--- input parameters input int HourPause = 1; // Пауза в часах //--- global parameters datetime pause; //+------------------------------------------------------------------+ void OnTick() { pause=GetInfoLastPos(3)+(HourPause*60*60); // выключаем торговлю if(TimeCurrent()<pause) return; ....... } //+----------------------------------------------------------------------------+ //| Функция возвращает по символу и магику MakarFX| //| 1 - размер лота последней закрытой позиции | //| 2 - размер профита с учетом комиссии и свопа последней закрытой позиции | //| 3 - время последней закрытой позиции | //+----------------------------------------------------------------------------+ double GetInfoLastPos(int a=1) { datetime t=0; double result=0,l=0,p=0,f=0; int i=OrdersHistoryTotal(); for(int pos=0; pos<i; pos++) { if(OrderSelect(pos, SELECT_BY_POS, MODE_HISTORY)) { if(OrderSymbol()==_Symbol && OrderMagicNumber()==Magic) { if(OrderType()==OP_BUY || OrderType()==OP_SELL) { if(t<OrderCloseTime()) {t=OrderCloseTime(); l=OrderLots(); p=OrderProfit()+OrderCommission()+OrderSwap();} } } } } if(a==1) {result=l;} else if(a==2) {result=p;} else if(a==3) {result=(double)t;} else {result=0;} return(result); } //+----------------------------------------------------------------------------+ 如果魔术师是不必要的 - 删除黄色。 EVGENII SHELIPOV 2021.11.06 08:32 #17187 MakarFX #:在打开一个订单之前,你要把当前的最大票数存储在prev_ticket中。 好时间马卡,这种倒数第二顺序票的定义方法有一个严重的缺点。这种方法在网格中的最大订单将被打开时起作用,如果没有发生这种情况,倒数第二的订单就是网格中的最后一个(见图)。我想写一个函数,但它不工作,最后一张票被检测到了。 突出显示的条件不想工作。 //+----------------------------------------------------------------------------+ //| Расчет тикета предпоследнего ордера в сетке | //+----------------------------------------------------------------------------+ int GetTicketPenultimateOrder() { penultimate_ticket = 0; { for(int cnt = OrdersTotal() - 1; cnt >= 0; cnt--) { if(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES)) { if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) { if(OrderType() == OP_BUY || OrderType() == OP_SELL) { if(OrderTicket() > penultimate_ticket) if(penultimate_ticket < GetTicketMaxOrder()) penultimate_ticket = OrderTicket(); } } } } } return(penultimate_ticket); } Tretyakov Rostyslav 2021.11.06 08:38 #17188 EVGENII SHELIPOV #:好时间马卡,这种倒数第二张订单票的方法有一个严重的缺点。这个方法在网格中最大的订单被打开时有效,如果没有,倒数第二的订单就等于最后的订单,见图。我想写一个函数,但它不工作,最后一张票被检测到了。 突出显示的条件不想工作。 我给了你一个 有效的代码! EVGENII SHELIPOV 2021.11.06 09:24 #17189 MakarFX #: 我给了你一个 有效的代码! 这段代码就是我上面写的,甚至还有一张图片 Tretyakov Rostyslav 2021.11.06 09:32 #17190 EVGENII SHELIPOV #:这段代码就是我上面写的,甚至还有一张图片 错误不在倒数第二条搜索代码中,而很可能是在输出信息到文本的过程中 1...171217131714171517161717171817191720172117221723172417251726...1953 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
下午好,谁能帮助实现一个基于指标的交易开仓过滤器?
帮我完善一下逻辑。我需要在关闭的订单和开启的新订单之间有一个小时的停顿。我已经解决了一些问题。但这并不奏效。
帮我完善一下逻辑。我需要在关闭的订单和开启的新订单之间有一个小时的停顿。我已经解决了一些问题。但这并不奏效。
如果魔术师是不必要的 - 删除黄色。
在打开一个订单之前,你要把当前的最大票数存储在prev_ticket中。
好时间马卡,这种倒数第二顺序票的定义方法有一个严重的缺点。这种方法在网格中的最大订单将被打开时起作用,如果没有发生这种情况,倒数第二的订单就是网格中的最后一个(见图)。我想写一个函数,但它不工作,最后一张票被检测到了。 突出显示的条件不想工作。
好时间马卡,这种倒数第二张订单票的方法有一个严重的缺点。这个方法在网格中最大的订单被打开时有效,如果没有,倒数第二的订单就等于最后的订单,见图。我想写一个函数,但它不工作,最后一张票被检测到了。 突出显示的条件不想工作。
我给了你一个 有效的代码!
这段代码就是我上面写的,甚至还有一张图片
这段代码就是我上面写的,甚至还有一张图片