abbotton 发表于 2024-5-14 21:18:29

MQL5获取最后一个平仓订单的订单号

搜遍谷歌百度, mt5论坛和参考手册, 没有找到一个可以用的代码, 最后还是自己动手解决了.




struct OrderInfo {
    ulong            orderId;
    ulong            subOrderId;
    datetime         closeDate;
    ulong            ticket;
};

void BubbleSort(OrderInfo &array[]) {
    int total = ArraySize(array);

    for (int i = 0; i < total - 1; i++) {
      for (int j = 0; j < total - i - 1; j++) {
            if (array.closeDate < array.closeDate) {
                OrderInfo temp = array;
                array = array;
                array = temp;
            }
      }
    }
}

void OnStart() {
    OrderInfo myArr[];
    OrderInfo myArr2[];
    HistorySelect(0, TimeCurrent());
    int total = HistoryDealsTotal();
    for(int i = 0 ; i < total ; i++) {
      ulong ticket = HistoryDealGetTicket(i);
      ulong orderNo = HistoryDealGetInteger(ticket, DEAL_ORDER);
      int entry = HistoryDealGetInteger(ticket, DEAL_ENTRY);
      if(orderNo) {
            if(entry == 1 && !PositionSelectByTicket(orderNo)) {
                int count = ArraySize(myArr);
                ArrayResize(myArr, count + 1);
                myArr.orderId = orderNo;
                myArr.subOrderId = HistoryDealGetInteger(ticket, DEAL_POSITION_ID);
                myArr.closeDate = (datetime)HistoryDealGetInteger(ticket, DEAL_TIME);
                myArr.ticket = ticket;
            }
      }
    }
    BubbleSort(myArr);
    Print("最后一个平仓订单号:" + myArr.subOrderId);
}


8133 发表于 2024-5-17 12:58:31

[微笑][撇嘴][发呆][得意][流泪][闭嘴]

ctrab 发表于 2024-6-11 23:13:01

这也发布3H?

524359828 发表于 2024-6-28 07:04:30

看一下都要银子????

liguangxing2007 发表于 2024-7-8 10:21:25

这个有什么技巧吗

dyt20 发表于 2024-12-28 15:49:41

看看有什么
页: [1]
查看完整版本: MQL5获取最后一个平仓订单的订单号