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

 
Tretyakov Rostyslav #:

它是一种结构

而这是通过一个特定的符号对它的引用

...然后就没有阅读结构的例子了。从第一个问题来看,这个人也不会明白。

 
Tretyakov Rostyslav #:
发布关闭函数和"-x "是什么?

没有别的了。而x是一个未平仓订单的负利润值。

 
Tretyakov Rostyslav #:
发布关闭函数和"-x "是什么?

关闭功能是指在哪个条件下应该关闭订单?

X是一个条件吗?

那么我展示了什么?

或者如果你不介意的话,把需要的东西写得更详细一些。

无论如何,谢谢你

 
законопослушный гражданин 当前价格 信息。

但在使用的例子中,却说。

也就是说,引用MqlTick 结构的函数本身就在该结构内

怎么可能呢?

SymbolInfoTick函数将tick数据写入一个特殊的MqlTick 结构中,从其中的字段可以获得这些数据。

struct MqlTick
  {
   datetime     time;          // Время последнего обновления цен
   double       bid;           // Текущая цена Bid
   double       ask;           // Текущая цена Ask
   double       last;          // Текущая цена последней сделки (Last)
   ulong        volume;        // Объем для текущей цены Last
   long         time_msc;      // Время последнего обновления цен в миллисекундах
   uint         flags;         // Флаги тиков
   double       volume_real;   // Объем для текущей цены Last c повышенной точностью
  };
Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура для получения текущих цен
Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура для получения текущих цен
  • www.mql5.com
Структура для получения текущих цен - Структуры данных - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexander Avksentyev #:
// профит в пунктах
 int getOrderProfit() {
  switch (OrderType()) {
  case OP_BUY:
    return (int)((Bid - OrderOpenPrice()) / Point);
  case OP_SELL:
    return (int)((OrderOpenPrice() - Ask) / Point);
  default: 
    return 0;
  }
}

在调用之前,必须选择一个订单(OrderSelect)。

 
Alexander Avksentyev #:

关闭功能是指在什么条件下应该关闭一个订单?

我没有注意到大象)))。你认为未平仓订单的收盘价等于什么?

OrderClose(min_ticket,OrderLots(),OrderClosePrice(),iSlippage,clrPink);

试着这样做

   int min_ticket=FindTicketOrder();

   if(OrderSelect(min_ticket, SELECT_BY_TICKET,MODE_TRADES)) 
    { 
      if(OrderProfit()<=-x)
        {
         if(OrderType()==OP_BUY)
           {
            if(OrderClose(min_ticket,OrderLots(),Bid,iSlippage,clrPink))
               Print("Buy Order Close");
            else
               Print("Order вернул ошибку - ",GetLastError());
           }
         if(OrderType()==OP_SELL)
           {
            if(OrderClose(min_ticket,OrderLots(),Ask,iSlippage,clrPink))
               Print("Sell Order Close");
            else
               Print("Order вернул ошибку - ",GetLastError());
           }
        }
    } 
 
Mihail Matkovskij #:

在调用之前,必须选择一个订单(OrderSelect)。

如果该订单不是来自当前的字符?

 
Tretyakov Rostyslav #:

我也没有注意到大象)))。你认为未平仓订单的收盘价等于什么

试试这个方法

出价符号

 
Tretyakov Rostyslav #:

我也没有注意到大象)))。你认为未平仓订单的收盘价等于什么?

这样试试吧。

我已经得到了这种方式。

OrderClosePrice()

我在论坛上看到,你可以指定它,而不是出价和要价,它将会工作。我相信它,我是个天真的傻瓜。尝试了另一个出价||要价,也没有效果。
谢谢你的帮助!

 
Artyom Trishkin #:

如果该订单不是来自当前的符号?

那么SymbolInfoDouble

原因: