SELECT_BY_POS与SELECT_BY_TICKET这两个选定模式有什么区别啊?

 
bool OrderSelect( int index, int select, void pool)
函数选择定单。如果函数成功,返回的值为TRUE。如果函数失败,返回的值为FALSE。获得详细错误信息,请查看GetLastError()函数。
如果定单编号被选定,此pool参量被认知。此定单编号为唯一识别符。找出所选定单的列表,它的平仓时间必须进行分析。如果定单卖出时间为零, 开单和挂单将从终端位置列表打开。可以从定单类型区别开挂单和开单。 如果定单的卖出时间不等于0, 平单删除定单是在终端历史中被选择。他们同样可以区分定单类型
参量:
index - 定单索引。
select - 选定模式。可以为以下的任意值:
SELECT_BY_POS
SELECT_BY_TICKET 。
pool - 可选择定单索引。当选择SELECT_BY_POS参量时使用。可以为以下的任意值:
MODE_TRADES (default)- 来自交易的定单(开单和挂单),
MODE_HISTORY - 来自历史的定单(平仓和取消定单)。
示例:
  if(OrderSelect(12470, SELECT_BY_TICKET)==true)
    {
     Print("定单 #12470 开价格", OrderOpenPrice());
     Print("定单 #12470 收盘价格 ", OrderClosePrice());
    }
  else
    Print("OrderSelect 返回的错误 ",GetLastError());
 

SELECT_BY_POS 对于持仓单和挂单是按下单时间顺序,对于已平仓的历史单是平仓时间为顺序。

SELECT_BY_TICKET 是按定单编号,是下单时确定的, 但由于你不知道TICKET的编号规则,所以你也不知道TICKET 是否有序,如何有序,除非下单时自己记录下来。

原因: