用 orderselect by pos 选择历史单的顺序是按tik 号排序,能不能按单子的平仓时间排序

 

用 orderselect by pos 选择历史单的顺序是按tik 号排序,能不能按单子的平仓时间排序 ?

for (int i=0;i<OrdersHistoryTotal() ;i++)

OrderSelect(i, SELECT_BY_POS,MODE_HISTORY);

这个用法的选择顺序是按tick的大小排序的,能不能按单子的结束时间排序,让先平仓的单子被选到?

 
Create an array and copy into one the order list. Then sort this array as you want.
 

这样实现不了呀,一维数组排序,如何将ticket 与 orderclosetime 对应起来?

mq4支持多维排序吗?

 

See sample

//+------------------------------------------------------------------+
//| returns sorted by TimeClose array of tickets                     |
//+------------------------------------------------------------------+
int LoadSortedTickets(int & Tickets[])
{
int i,counter;
int TicketAndTime[][2];
//----
ArrayResize(TicketAndTime,OrdersHistoryTotal());
 
for (i=0;i<OrdersHistoryTotal();i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
{
if (OrderType()<=OP_SELL)
{
TicketAndTime[counter][0]=OrderCloseTime();
TicketAndTime[counter][1]=OrderTicket();
counter++;
}
}
}
ArrayResize(TicketAndTime,counter);
ArrayResize(Tickets,counter);
ArraySort(TicketAndTime);
for (i=0;i<counter;i++)
{
Tickets[i]=TicketAndTime[i][1];
}
int err=GetLastError();
 
//----
return(counter);
}
原因: