Пример кода для перебора открытых позиций в терминале Metatrader5 и их модификации.
CPositionInfo m_position; // объявляем экземпляры классов
CTrade trade;
//--------------------------------------------------
for(int j=PositionsTotal()-1;j>=0;j--)
{
if(m_position.SelectByIndex(j))
{
ulong tick = m_position.Ticket();
if(m_position.Magic()==Magic && m_position.Symbol() == pair && m_position.TakeProfit() != NormalizeDouble(take,SymbolInfoInteger(pair,SYMBOL_DIGITS)))// && m_position.PositionType() == POSITION_TYPE_BUY && m_position.TakeProfit() != NormalizeDouble(take,_Digits))
{
trade.PositionModify(tick,sl,NormalizeDouble(take,_Digits));
}
}
}