Try this.
Global Includes section **********************************************
#include <Trade/Trade.mqh>
#include <Trade/PositionInfo.mqh>
ulong startTime;
CTrade sTrade;
CPositionInfo mPosition;
Custom Function Section ******************************************
void CloseAllPositions(ulong MagicStart)
{
for (int cnt = PositionsTotal() - 1; cnt >= 0 && !IsStopped(); cnt--)
{
if (PositionSelectByIndex(cnt))
{
ulong ticket = PositionGetInteger(POSITION_TICKET);
long magic = PositionGetInteger(POSITION_MAGIC);
if (magic == (long)MagicStart)
{
sTrade.PositionClose(ticket, 100);
uint code = sTrade.ResultRetcode();
Print("Close result code: ", code, " | Ticket: ", ticket);
}
}
}
}
Settings section *******************************************
startTime = GetMicrosecondCount();
sTrade.SetAsyncMode(true);
CloseAllPositions(MagicStart); // Pass your EA’s magic number
PrintPerformance(startTime);
~next~
Hope this works 