О возможности race conditions при использовании OrderValue() MQL / MT 3.83

 
Вопрос такой - проверяет у меня скрипт ордеры, примерно так

// код написан из головы, а не взят из скрипта - может не компилироваться
for i=1 to TotalTrades 
{
 if (OrderValue(i,VAL_TYPE))<>OP_BUY then continue;
 PR = OrderValue(i,VAL_PROFIT);
 if PR<(-100.0) then CloseOrder(OrderValue(i,VAL_TICKET), ...);
}; // for all trades



Вопрос:
Если между

PR = OrderValue(i,VAL_PROFIT)


и

CloseOrder(OrderValue(i,VAL_TICKET),...)


i-й ордер по какой-то причине закроется (скажем, по S/L), то эксперт закроет какой-то другой ордер (скорее всего тот, который был раньше с номером i+1)

Это так или нет? если нет, то почему, если да, то как бы от этого избавиться?

 
Вопрос, кажется, сводится вот к чему: может ли таблица открытых ордеров измениться в процессе работы скрипта?
 
Думаю, это чисто академический интерес, в реальной торговле никогда не возникающий. Чтобы он стал актуальным, необходимо, чтобы периодически висели гроздья открытых позиций. Хотя, на демо можно позволить все, но там и котировать будет автомат.
 
Rosh,
1. гроздья или нет, а по десятку бывает.
2. не обязательно иметь много позиций, достаточно, чтобы у ордера S/L стоял где-то близко к -$100