Камрады!
Такой пример. Открыты ордера, по номеру тикета каждому ордеру присваивается значение стоплосса (невидимого) в массив SL[] в формате цены.
0. Бай - SL[1]
1. Бай - SL[2] // достиг стоплосса и закроется в цикле переборки
2. Бай - SL[3]
3. Селл - SL[4]
В цикле переборки ордеров по тикету
for (i=0;i<OrdersTotal();i++)
{
OrderSelect;
if (стоплосс=0, открыт человеком) --> ставим стоплосс в массив SL[];
if (модификация стопа) --> подтягиваем стоп;
if (достигли стопа) --> OrderClose;
Здесь ордер с тикетом 1(второй в позиции, со стоплоссом SL[2] закрывается.
Внимание, вопрос:
Ордера не стало, и когда теперь сместятся тикеты?
Сразу? т.е. надо к OrderClose добавить переборку массива SL[] с целью смещения значений
for (j=i+1;j<OrdersTotal();j++) //- и да, чему сейчас равно OrdersTotal?
SL[j]=SL[j+1];
SL[j]=0;
или вынести переборку за цикл?
или вообще тикеты сместятся с приходом нового тика?