新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 89

 
是不是该把所有的MT4帮助主题合并成一个了?
 
Renat Akhtyamov:
是不是该把所有关于MT4的主题合并成一个?

每个作者都有自己的分支。只是一个作者经营,另一个作者不经营,也不会经营。这只是一个为那些想要帮助的人提供的地方。我为什么要把我的分支塞进一个不打算用mql4帮助我的作者的分支?

 
Artyom Trishkin:
我也这么认为。
 

你好。

我在哪里可以找到MT4的语言描述?

 
DVlad:

你好。

我在哪里可以找到MT4的语言描述?

在F1的MetaEditor中。或者在这里,同样的事情,但在网上。你也可以谷歌一下关于C++的书籍。
Справочник MQL4
Справочник MQL4
  • docs.mql4.com
Справочник MQL4
 

你好。

帮助我找到最后一个订单的价格。

这个函数找到了最古老的订单的价格,我需要最年轻的订单。

要改变什么?


double GetOrderOpenPrice(string sy="", int op=-1, int mn=-1) {
  datetime t;
  double   r=0;
  int      i, k=OrdersTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()>1 && OrderType()<6) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (t<OrderOpenTime()) {
                t=OrderOpenTime();
                r=OrderOpenPrice();
              }
            }
          }
        }
      }
    }
  }
  return(r);
}
 
Marina Korotkih:

你好。

帮助我找到最后一个订单的价格。

这个函数可以找到最古老的订单的价格,我需要最年轻的订单。

要改变什么?


double GetOrderOpenPrice(string sy="", int op=-1, int mn=-1) {
  datetime t;
  double   r=0;
  int      i, k=OrdersTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()>1 && OrderType()<6) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (t<OrderOpenTime()) {
                t=OrderOpenTime();
                r=OrderOpenPrice();
              }
            }
          }
        }
      }
    }
  }
  return(r);
}
嗯,这是最新的,也就是说,最新的
 
Marina Korotkih:

你好。

帮助我找到最后一个订单的价格。

这个函数找到了最古老的订单的价格,我需要最年轻的订单。

要改变什么?


double GetOrderOpenPrice(string sy="", int op=-1, int mn=-1) {
  datetime t;
  double   r=0;
  int      i, k=OrdersTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()>1 && OrderType()<6) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (t<OrderOpenTime()) {
                t=OrderOpenTime();
                r=OrderOpenPrice();
              }
            }
          }
        }
      }
    }
  }
  return(r);
}
这就是它如何确定最后一个订单的价格。
 
Alekseu Fedotov:
这就是它如何确定最后一个订单的价格。
维塔利-穆齐琴科
那么,它是最近的,也就是最新的

不,该函数返回止损价1.07057,我需要第14个止损单的价格1.06637。


价格
 
Marina Korotkih:

不,该函数返回止损价1.07057,我需要第14个止损单的价格1.06637。

double GetOrderOpenPrice(string sy="", int op=-1, int mn=-1) {
 double r=-1;
 if (sy=="0") sy=Symbol();
  for (int i=0; i<OrdersTotal(); i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()>1 && OrderType()<6) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (r>OrderOpenPrice() || r==-1) {
                r=OrderOpenPrice();
  }}}}}}}
  return(r);
}
原因: