新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1638 1...163116321633163416351636163716381639164016411642164316441645...1953 新评论 Tretyakov Rostyslav 2021.10.01 07:24 #16371 makssub #:是最后一个,不是倒数第二个( 看看你写的东西。 "如果价格下跌,另一个订单被打开,具有最大OrderOpenPrice的订单成为倒数第二个订单。" 该函数搜索最大或最小开盘价。 如果你只想要倒数第二张,你最好在开票时记住这张票。 Maksim Burov 2021.10.01 08:00 #16372 MakarFX #:看看你写的东西。"如果价格下跌,另一个订单被打开,具有最大OrderOpenPrice的订单是倒数第二个订单。"该函数搜索最大或最小开盘价。如果你只想要倒数第二张,你最好在开票时记住这张票。 我很抱歉,有时我没有很清楚地表达我的观点。 我已经按tick和时间做了,但在波动中,当价格可能先涨后跌时,它可能不是倒数第二。这些变体已经被研究出来了。所以开盘价是最好的选择。或者是一堆会重复检查的函数,在那里我肯定会非常困惑。我没有太多的时间把所有的东西都记在脑子里。 我以前写过倒数第二篇,它发出来了。有一个问题,没有区分OP_SELL和OP_BUY。当第二个出现时,它开始计数( Tretyakov Rostyslav 2021.10.01 08:09 #16373 makssub #:我很抱歉,有时我没有很清楚地表达我的观点。 我已经按时完成了,但在波动中,当价格可能上升,然后下降时,它可能不是倒数第二个。这些变体已经被研究出来了。所以开盘价是最好的选择。或者是一堆会重复检查的函数,在那里我肯定会非常困惑。我没有太多的时间把所有的东西都记在脑子里。我以前写过倒数第二篇,它发出来了。有一个问题,没有区分OP_SELL和OP_BUY。当我得到第二个时,它就开始计数了( 简单地写下你需要找到的东西(如果发生了,你需要得到它)......因为我也已经感到困惑了 Maksim Burov 2021.10.01 08:46 #16374 MakarFX #:简单地写下你需要找到的东西(如果发生了,你需要得到它)......因为我也已经感到困惑了 我已经强调了你需要找到哪个订单的价格 如果没有OP_BUY,这并不困难。如果出现OP_BUY,我的代码就无法工作( double FindPenultSellPrice() { double UpPrice = DBL_MAX, profit = 0; int i; for(i = OrdersTotal()-2; i >=0; i--) { if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_SELL) { if ( OrderOpenPrice() < UpPrice) { UpPrice = OrderOpenPrice(); } } } } return(UpPrice); } Valeriy Yastremskiy 2021.10.01 08:52 #16375 MakarFX #:简单地写下你需要找到的东西(如果发生了,你需要得到它)......我也已经感到困惑了 这不是按时间计算的倒数第二笔订单,而是按价格计算的倒数第二笔订单,如果价格已经走到了另一个方向。阿列克谢写得很对,我们应该按价格搜索。我们不应该改变最大或最低的数值。 Zy。我会记住最后一个订单(这是一个网格),并把倒数第二个订单放在我的变量中。该算法只应被完善,如果上升一个并立即下降一个,再上升一个并立即下降一个))))如果有两笔订单朝一个方向发展,那么我们应该记住倒数第二笔和最后一笔订单的票据,以备不时之需。 如果第三笔订单开启,倒数第二笔订单的票据就等于最后一笔,最后一笔订单的票据就等于第三笔。 Tretyakov Rostyslav 2021.10.01 09:25 #16376 makssub #:用颜色突出显示哪个订单的价格可以找到如果没有OP_BUY,这并不困难。如果出现OP_BUY,我的代码就无法工作( 试试这个方法 //+------------------------------------------------------------------+ //| Функция возвращает по символу и магику | //| 1 - размер лота последней позиции | //| 2 - цена последней открытой позиции | //| 3 - время последней открытой позиции | //+------------------------------------------------------------------+ double GetInfoLastPos(int a=1) { datetime t=0; double result=0,l=0,p=0,f=0; for(int pos=OrdersTotal()-1;pos>=0;pos--) { if(OrderSelect(pos, SELECT_BY_POS, MODE_TRADES)) { if(OrderSymbol()==_Symbol && OrderMagicNumber()==Magic) { if(OrderType()==OP_BUY || OrderType()==OP_SELL) { if(t<OrderCloseTime()) {t=OrderOpenTime(); l=OrderLots(); p=OrderOpenPrice();} } } } } if(a==1) {result=l;} else if(a==2) {result=p;} else if(a==3) {result=(double)t;} else {result=0;} return(result); } //+------------------------------------------------------------------+ double FindOpenPrice() { double AbsPoint=DBL_MAX; double openprice=0; for(int pos=OrdersTotal()-2;pos>=0;pos--) { if(OrderSelect(pos, SELECT_BY_POS, MODE_TRADES)) { if(OrderSymbol()==_Symbol && OrderMagicNumber()==Magic) { if(OrderType()==OP_BUY || OrderType()==OP_SELL) { if(AbsPoint>MathAbs(OrderOpenPrice()-GetInfoLastPos(2))) { AbsPoint=MathAbs(OrderOpenPrice()-GetInfoLastPos(2)); openprice = OrderOpenPrice(); } } } } } return(openprice); } //+------------------------------------------------------------------+ Maksim Burov 2021.10.01 10:53 #16377 MakarFX #:试试这个。 感谢你的辛勤工作。 有一个细微的差别)它在顶部发现,用红色标记。对于OP_SELL,它在底部,标有蓝色。让我马上告诉你,我没有检查过如果OP_BUY出现会怎么算。 Tretyakov Rostyslav 2021.10.01 11:01 #16378 makssub #:感谢你的辛勤工作。 有一个细微的差别)它是在顶部发现的,用红色标记。对于OP_SELL,它需要在底部,标记为蓝色。而且我必须马上说,我不知道如果OP_BUY出现,它将如何工作。上面是最近的!我让你写出你必须找到的东西,你给出了一些部分。例如,我需要:"如果一个卖点已经打开,我应该从上面找到最近的卖点......等等。"。 P.S. 你用红色标记了什么? 我没有看到 0_o Maksim Burov 2021.10.01 14:30 #16379 MakarFX #:最上面的那个是最接近的!我让你写出你需要找到的东西,但你给出了一些部分...例如,我需要,"如果卖出打开,在顶部找到最近的卖出......等等"。 P.S. 你用红色标记的是什么? 它发生在我身上。我想的是一件事,写的是另一件事。不细心 抱歉)以红色本身的冲击为代价)。 Tretyakov Rostyslav 2021.10.01 14:37 #16380 makssub #:它发生在我身上。我想的是一件事,写的是另一件事。我没注意,对不起,我对红色的感到很震惊) 那么你想要什么呢?) 1...163116321633163416351636163716381639164016411642164316441645...1953 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
是最后一个,不是倒数第二个(
看看你写的东西。
"如果价格下跌,另一个订单被打开,具有最大OrderOpenPrice的订单成为倒数第二个订单。"
该函数搜索最大或最小开盘价。
如果你只想要倒数第二张,你最好在开票时记住这张票。
看看你写的东西。
"如果价格下跌,另一个订单被打开,具有最大OrderOpenPrice的订单是倒数第二个订单。"
该函数搜索最大或最小开盘价。
如果你只想要倒数第二张,你最好在开票时记住这张票。
我很抱歉,有时我没有很清楚地表达我的观点。
我已经按tick和时间做了,但在波动中,当价格可能先涨后跌时,它可能不是倒数第二。这些变体已经被研究出来了。所以开盘价是最好的选择。或者是一堆会重复检查的函数,在那里我肯定会非常困惑。我没有太多的时间把所有的东西都记在脑子里。
我以前写过倒数第二篇,它发出来了。有一个问题,没有区分OP_SELL和OP_BUY。当第二个出现时,它开始计数(
我很抱歉,有时我没有很清楚地表达我的观点。
我已经按时完成了,但在波动中,当价格可能上升,然后下降时,它可能不是倒数第二个。这些变体已经被研究出来了。所以开盘价是最好的选择。或者是一堆会重复检查的函数,在那里我肯定会非常困惑。我没有太多的时间把所有的东西都记在脑子里。
我以前写过倒数第二篇,它发出来了。有一个问题,没有区分OP_SELL和OP_BUY。当我得到第二个时,它就开始计数了(
简单地写下你需要找到的东西(如果发生了,你需要得到它)......因为我也已经感到困惑了
简单地写下你需要找到的东西(如果发生了,你需要得到它)......因为我也已经感到困惑了
我已经强调了你需要找到哪个订单的价格
如果没有OP_BUY,这并不困难。如果出现OP_BUY,我的代码就无法工作(
简单地写下你需要找到的东西(如果发生了,你需要得到它)......我也已经感到困惑了
这不是按时间计算的倒数第二笔订单,而是按价格计算的倒数第二笔订单,如果价格已经走到了另一个方向。阿列克谢写得很对,我们应该按价格搜索。我们不应该改变最大或最低的数值。
Zy。我会记住最后一个订单(这是一个网格),并把倒数第二个订单放在我的变量中。该算法只应被完善,如果上升一个并立即下降一个,再上升一个并立即下降一个))))如果有两笔订单朝一个方向发展,那么我们应该记住倒数第二笔和最后一笔订单的票据,以备不时之需。 如果第三笔订单开启,倒数第二笔订单的票据就等于最后一笔,最后一笔订单的票据就等于第三笔。
用颜色突出显示哪个订单的价格可以找到
如果没有OP_BUY,这并不困难。如果出现OP_BUY,我的代码就无法工作(
试试这个方法
试试这个。
感谢你的辛勤工作。
有一个细微的差别)它在顶部发现,用红色标记。对于OP_SELL,它在底部,标有蓝色。让我马上告诉你,我没有检查过如果OP_BUY出现会怎么算。
感谢你的辛勤工作。
有一个细微的差别)它是在顶部发现的,用红色标记。对于OP_SELL,它需要在底部,标记为蓝色。而且我必须马上说,我不知道如果OP_BUY出现,它将如何工作。
上面是最近的!
我让你写出你必须找到的东西,你给出了一些部分。
例如,我需要:"如果一个卖点已经打开,我应该从上面找到最近的卖点......等等。"。
P.S. 你用红色标记了什么? 我没有看到 0_o最上面的那个是最接近的!
我让你写出你需要找到的东西,但你给出了一些部分...
例如,我需要,"如果卖出打开,在顶部找到最近的卖出......等等"。
P.S. 你用红色标记的是什么?它发生在我身上。我想的是一件事,写的是另一件事。不细心 抱歉)以红色本身的冲击为代价)。
它发生在我身上。我想的是一件事,写的是另一件事。我没注意,对不起,我对红色的感到很震惊)